我在Jison编写C ++语法,并且我已经设法使用此正则表达式正确检测字符文字:
\'([^\\\']|\\.)\' return 'CHAR_LIT'
然后将其添加到AST中:
| CHAR_LIT
{$$ = new yy.Ast('CHAR_LIT', [$1])}
但是,使用输入字符串文字'\n'
,$1
的值将计算为其字符串表示形式"'\\n'"
,而不是其实际字符值"\n"
,这就是我想要的
有没有办法告诉Jison我想要字符值而不是它的表示?
否则,Javascript中最好的方法是将带有字符表示的字符串解析为相应的字符值,例如将"\\t"
解析为"\t"
?