MGrammar用于解析IF语句
我正在构建一个MGrammar规范来解析一些寻找特定信息位的伪代码。除了1个重要元素外,我的大多数规范都在工作。
伪代码支持if-then-else语法,我一直无法找到解析它的令人满意的方法。确切的结构是......
IF expression operator expression THEN
Statement1
Statement2
Statementn
ELSEIF expression operator expression THEN
Statement1
Statement2
Statementn
ELSE
Statement1
Statement2
Statementn
ENDIF
...... Else和Elseif是可选的。
到目前为止我所拥有的是:
`syntax Statement = r:ReturnClause => r |
i:IfClause => i |
ei:ElseifClause => ei |
e:ElseClause => e |
结束:EndClause => end |
v:表达式=> v;
语法IfClause =如果name:Identifier operator:Operator Then语句:Statement => If [name,operator,Then [statement]];
语法ElseifClause = Elseif名称:Identifier运算符:Operator Then语句:Statement => ElseIf [name,operator,Then [statement]];
语法ElseClause = Else语句:Statement => Else [statement];
语法EndClause = Endif; `
但是,'Then'和'Else'之后的Statement不够贪婪,只捕获解析树中的第一个语句。
有没有人试图使用MGrammar实现If语句的解析或有任何建议?
没有找到相关结果
已邀请:
1 个回复
钾涎净介