mpe*_*pen 13 c# grammar lalr irony operator-precedence
Irony语法的相关部分:
var VARIABLE = new RegexBasedTerminal("variable", @"(?-i)\$?\w+");
variable.Rule = VARIABLE;
tag_blk.Rule = html_tag_kw + attr_args_opt + block;
term_simple.Rule = NUMBER | STRING | variable | boolean | "null" | term_list;
term.Rule = term_simple | term_filter;
block.Rule = statement_list | statement | ";";
statement.Rule = tag_blk | directive_blk | term;
Run Code Online (Sandbox Code Playgroud)
问题是"标签"和"变量"都可以出现在同一个地方.我希望我的解析器更喜欢变量上的标记,但它总是更喜欢变量.我怎么能改变呢?
我试图改变tag_blk.Rule以PreferShiftHere() + html_tag_kw + attr_args_opt + block;和ImplyPrecedenceHere(-100) + html_tag_kw + attr_args_opt + block;,但它并不能帮助任何.解析器甚至没有抱怨含糊不清.
| 归档时间: |
|
| 查看次数: |
1040 次 |
| 最近记录: |