我有以下简单的语法:
grammar MyGrammar
rule comparison_operator
'=' / '>' <ComparisonOperator>
end
end
当我解析字符串>
时,它成功返回:
ComparisonOperator
当我解析字符串=
时,它返回时没有语法错误,但不将匹配的字符串与ComparisonOperator
实例相关联,而仅与
Treetop::Runtime::SyntaxNode
如果我颠倒语法中字符的顺序......
grammar MyGrammar
rule comparison_operator
'>' / '=' <ComparisonOperator>
end
end
那么它可以正常工作,=
但不能正常工作>
。
如果我将每个符号与ComparisonOperator
grammar MyGrammar
rule comparison_operator
'>' <ComparisonOperator> / '=' <ComparisonOperator>
end
end
那么它对两者都适用,但我觉得这不是很直观。如果一个人有很多符号替代品,它会变得很麻烦。
有没有办法以ComparisonOperator
更简单的方式将所有替代方案关联起来?
更新: 我在此处添加了一个新的 Github 存储库,其中包含演示此问题的所有代码:https ://github.com/pmatsinopoulos/treetop_tutorial