伪代码支持if-then-else语法,我一直无法找到令人满意的解析方法。确切的结构是。。。
IF expression operator expression THEN
Statement1
Statement2
Statementn
ELSEIF expression operator expression THEN
Statement1
Statement2
Statementn
ELSE
Statement1
Statement2
Statementn
ENDIF
到目前为止,我得到的是:
`语法语句=r:ReturnClause=>r|
i:IfClause=>我|
ei:ElseifClause=>ei|
e: ELSCLUSE=>e|
结束:EndClause=>结束|
v:表达式=>v
语法ElseifClause=Elseif name:标识符运算符:运算符然后语句:语句=>ElseIf[名称、运算符,然后是[语句];
但是,“Then”和“Else”后面的语句不够贪婪,只捕获解析树中的第一条语句。
是否有人尝试使用MGrammar实现If语句的解析,或者有任何建议??