antlr中的插入符号前缀而不是后缀
我知道插入符号后缀在antlr中的含义(即make root),但如果插入符号是前缀,我一直在阅读的以下语法(该语法是全新的,由一个学习antlr的新团队完成)中会是什么意思呢 另外,我知道=>的意思,但是->呢?->意味着什么 谢谢,antlr中的插入符号前缀而不是后缀,antlr,antlr3,Antlr,Antlr3,我知道插入符号后缀在antlr中的含义(即make root),但如果插入符号是前缀,我一直在阅读的以下语法(该语法是全新的,由一个学习antlr的新团队完成)中会是什么意思呢 另外,我知道=>的意思,但是->呢?->意味着什么 谢谢, Dean将^用作内联树运算符,指示某个令牌应成为树的根 例如,规则: p : A B^ C; p : A B C -> ^(B A C); 创建以下AST: B / \ A C 还有另一种创建AST的方法,它使用重写规则。重写规则放在解析器
Dean将
^
用作内联树运算符,指示某个令牌应成为树的根
例如,规则:
p : A B^ C;
p : A B C -> ^(B A C);
创建以下AST:
B
/ \
A C
还有另一种创建AST的方法,它使用重写规则。重写规则放在解析器规则的替代规则之后(或右侧)。您可以使用一个“箭头”->
启动重写规则,然后是希望在AST中出现的规则/标记
以前面的规则为例:
p : A B C;
您希望反转令牌,但保持助理“平坦”(无根节点)。这可以使用以下重写规则完成:
如果你想创建一个类似于p:ab^C
,您可以使用^(…)
启动重写规则,括号内的第一个标记/规则将成为根节点。因此,规则是:
p : A B^ C;
p : A B C -> ^(B A C);
产生与p:ab^C相同的AST代码>
相关的: