Я изучаю грамматику PEGjs и я запрашиваю помощь или направлять по следующим вопросам:PEGjs: Запрос Помощь/руководство в определении арифметических функций
У меня есть такие функции, как, PRODUCT(), SUM(), DIVIDE()
ПРОДУКТ может занять несколько /PRODUCT()/SUM()/DIVIDE(
) в качестве параметров (любое количество, но разделенные запятой)
ex: PRODUCT(2, 5, SUM(5, 6, 7), DIVIDE(5, 2), PRODUCT(4, 6, 20, 12))
таким же образом, сумма может принимать любое число параметров, разделенных запятой.
Ex: SUM(4, 5, 10, DIVIDE(SUM(2, 5, 6), 3))
РАЗДЕЛИТЬ будет принимать два параметра (2 необходимо), число или другая функция
Ex: DIVIDE(3, PRODUCT(3, 4, SUM(2, 3)))
Может кто-нибудь помочь или направить меня, как я могу достичь?
Правила, у меня до сих пор
start = sum
/multiply
multiply = "PRODUCT("a:digit "," __ b:digit ")" {return a * b}
sum = "SUM("a:digit "," b:digit ")" {return a + b}
digit = [0-9]
__ = WhiteSpace*
WhiteSpace "whitespace"
= [ \t\r\n]
Указанное правило поддерживают только продукт/сумму два числа. Как я могу достичь вышеуказанного?
Заранее спасибо Manjunath Reddy
Большое спасибо за помощь. – user3130446