我正在编写一个组合语法,该语法具有在权威指南中定义的标准STRING标记;
STRING: '"' (ESC|.)*? '"' ;
fragment
ESC : '\\"' | '\\\\' ; // 2-char sequences \" and \\
我注意到的一件事是STRING令牌的.Text
属性始终是输入中看到的引用的转义形式,就像这样;
// from grammar like rule: title:STRING;
var title = context.title.Text; // == \"my string\"
这意味着我必须纠正'解析器中的字符串,剥离引号和处理转义字符,无论我在哪里引用字符串标记。这感觉就像在解析器中完成了一项令人兴奋的工作。
我想知道是否有办法改变词法分析器的输出,以便词法分析器可以显示清理内容?我注意到生成的词法分析器上有很多可能的覆盖,但我注意到IToken.Text
是只读的,所以我无法看到如何改变它。
其他有用的地方是;
"foo"
。'sql string'
。$foo
,其中有趣的文字为foo
。答案 0 :(得分:0)