single, double quotes, or tokens?
Tutorials on writing yacc code online use single quotes for semicolons, and other characters:
';' '+' '-' (et开发者_如何学Cc)
however when using:
'<' or '>'
I got errors until I changed it to double quotes:
"<" or ">"
Similarly,
'>=' '=<' '==' '!='
do not seem to be the same as
">=" "=<" "==" "!="
How does yacc treat single quotes? double quotes? And when should tokens be used instead of putting stuff in quotes?
ie: '!=' vs "!=" vs TOKNOTEQUALS
You can use either '
or "
around literals -- they're equivalent. HOWEVER, you can in general only put a single character between the quotes and get a sensible result -- a parser that accepts that single character token. Putting multiple characters in the quotes gives you a single token, but there's no way for your lexer to return that token, so its not useful.
精彩评论