Split lexer and node from parser.

Parse.y is too long (more than 6000 lines)
so it is hard to read.

This change split lexer and ast node creation functions
from parse.y.

To avoid global namespace pollution,
I defines macros to rename node creation functions.