abstract syntax update