updated grammar and ast