I have a grammar that I've written using Yacc. The relevant parts of the grammar are excerpted here
postfix
: primary
| postfix '[' expr ']'
| postfix '[' expr ':' expr ']'
| postfix "." STRING
| postfix '(' ')'
| postfix '(' args ')'
;
unary
: postfix
| '!' unary
| '-' unary
| '+' unary
;
If you look at the postfix definition you'll notice that I have double quotes around the period in the fourth rule. I had to put this in because I got a shift/reduce conflict without it. I'm a bit confused why the shift/reduce conflict goes away when I change the type of quotes used and I suspect there is something going on here that I've missed. If anyone can explain the difference in these quotes and which one I ought to use I'd appreciate it.