refactored ast, compiler and parserG