direct representation of abstract syntax trees