add documentation for abstract syntax tree