implementation of Abstract Syntax Tree