在线编写yacc代码的教程使用单引号分号和其他字符:
';' '+' '-' (etc)
但是在使用时:
'<' or '>'
我收到错误,直到我将其更改为双引号:
"<" or ">"
同样的,
'>=' '=<' '==' '!='
似乎不一样
">=" "=<" "==" "!="
yacc如何处理单引号?双引号?
什么时候应该使用令牌而不是把东西放在引号中?
ie: '!=' vs "!=" vs TOKNOTEQUALS
最佳答案 你可以在文字中使用’或’ – 它们是等价的.但是,你通常只能在引号之间放一个字符并得到一个明智的结果 – 一个接受单个字符标记的解析器.放入多个字符引号为您提供了一个令牌,但是您的词法分析器无法返回该令牌,因此它没用.