我在 Jison 中编写了一个 C++ 语法,并且我已经成功地用这个正则表达式正确地检测了字符文字:
\'([^\\\']|\\.)\' return 'CHAR_LIT'
然后像这样将它添加到 AST 中:
| CHAR_LIT
{$$ = new yy.Ast('CHAR_LIT', [$1])}
但是,对于输入字符串文字'\n'
,值的$1
计算结果是它的字符串表示"'\\n'"
,而不是它的实际字符值"\n"
,这正是我想要的。
有什么方法可以告诉 Jison 我想要字符值而不是它的表示?否则,在 Javascript 中将具有字符表示的字符串解析为其对应的字符值的最佳方法是什么,例如解析"\\t"
为"\t"
?