modify upto/downto for compatibility
Split lexer and node from parser.