单引号,双引号或代币?

时间:2011-04-21 01:31:04

标签: yacc

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

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

但是在使用时:

'<' or '>'

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

"<" or ">"

同样,

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

似乎与

不一样
">="  "=<"  "==" "!="

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

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

1 个答案:

答案 0 :(得分:2)

您可以在文字周围使用'" - 它们是等效的。但是,您通常只能在引号之间放置一个字符并获得合理的结果 - 一个接受该单个字符标记的解析器。在引号中放置多个字符会为您提供一个令牌,但是您的词法分析器无法返回该令牌,因此它无用。