Begin abstract syntax implementation