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