我正在学习 PEGjs 语法,我请求以下帮助或指导:
我有这样的功能,PRODUCT(), SUM(), DIVIDE()
PRODUCT 可以将 number /PRODUCT()/SUM()/DIVIDE(
) 作为参数(任何数字,但逗号分隔)
ex: PRODUCT(2, 5, SUM(5, 6, 7), DIVIDE(5, 2), PRODUCT(4, 6, 20, 12))
同样,SUM 可以采用以逗号分隔的任意数量的参数。
Ex: SUM(4, 5, 10, DIVIDE(SUM(2, 5, 6), 3))
DIVIDE 将采用两个参数(必须有 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