Finish parser. 2 points to improve: use lookahead() to avoid ungettoken; create struct node to optimize sdt output.