Lex should return the token identifier, and place other token information in lval (which replaces the usual yylval).
The above text taken from the go document.
I used the variable(yylval) in the action part of grammar rules in the yacc file(some.y file). The code worked in Go 1.5. But the same code didn't compile in Go 1.6. When I checked the generated y.go file(from the 'go yacc tool some.y' command), Go creates different variable names in different version.
var yylval yySymType //in G0 1.5
var yyVAL yySymType //in Go 1.6
Is this against backward compatibility? or Go doesn't guarantee backward compatibility for the variable? or Is usage of yylval variable is wrong?
Code worked well after replacing the varibale name yylval with yyVAL.