yacc – 单引号,双引号还是令牌?

在线编写yacc代码的教程使用单引号分号和其他字符:

';'  '+'  '-' (etc)

但是在使用时:

'<' or '>'

我收到错误,直到我将其更改为双引号:

"<" or ">"

同样的,

'>='  '=<'  '==' '!='

似乎不一样

">="  "=<"  "==" "!="

yacc如何处理单引号?双引号?
什么时候应该使用令牌而不是把东西放在引号中?

ie: '!=' vs "!=" vs TOKNOTEQUALS

最佳答案 你可以在文字中使用’或’ – 它们是等价的.但是,你通常只能在引号之间放一个字符并得到一个明智的结果 – 一个接受单个字符标记的解析器.放入多个字符引号为您提供了一个令牌,但是您的词法分析器无法返回该令牌,因此它没用.

点赞