golang basic lexer + lr parser generator