Rewrote the whole lexer and parser handling to support tags like "if" and "for"