1
static const String tabChar = '\u0009';
Parser tab() => ref(token, tabChar);
expect(tab().accept(tabChar), isTrue);

使用token来自https://github.com/petitparser/dart-petitparser/blob/ddd9921d702dd18cda4e2f84190777b7dc20b3e2/example/dart/src/grammar.dart的方法(使用默认trim解析器)

需要改变什么来摆脱错误?

不支持的操作:无法解析引用

4

1 回答 1

1

解析器图中存在未解析的引用,您需要先解析它们,然后才能解析输入。

您的示例代码缺少上下文来准确说明出了什么问题。如果您对定义进行子类化GrammarDefinition并调用build(),则生成的解析器将解析所有引用。查看GrammarDefinition中的文档,并DartGrammarDefinition它的测试中查看它是如何使用的。

于 2018-01-29T21:15:12.387 回答