我正在使用 Irony 为脚本语言创建解析器,但我遇到了一个小问题:如何在 Irony 中翻译这样的 EBNF 表达式?
'(' [ Ident { ',' Ident } ] ')'
我已经尝试了一些技巧,比如
Chunk.Rule = (Ident | Ident + "," + Chunk);
CallArgs.Rule = '(' + Chunk + ')' | '(' + ')';
但这很丑陋,我什至不确定这是否按应有的方式工作(还没有尝试过……)。有人有什么建议吗?
编辑:我发现了这些辅助方法(MakeStarList、MakePlusList),但由于完全缺乏 Irony 的文档,我无法找到它们的使用方法……有人知道吗?