我正在使用 Grammar::Tracer使用以下设置:
第6页
use v6;
use lib '.';
use MyGrammar;
my $res = MyGrammar.parse('hello 6 9 bye');
say $res;
我的语法.pm6 :
unit grammar MyGrammar;
use Grammar::Tracer;
rule TOP { [<number> || <word> ]* }
rule number { \d+ }
rule word { \w+}
但未启用跟踪。我猜是因为语法
MyGrammar
不在 use Grammar::Tracer
的词法范围内陈述?
最佳答案
Grammar::Tracer
模块通过导出一个自定义元类来代替 grammar
的默认元类来工作。关键词。这必须在关键字 grammar
之前已经存在。遇到,因为那是我们解析并提交要用于声明的类型的元类的时候。
解决办法是把 use
grammar
之前的声明宣言:
use Grammar::Tracer;
unit grammar MyGrammar;
关于grammar - 如何将 Grammar::Tracer 与单元范围语法一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55569905/