An abstract syntax tree (AST) is a tree that represents an expression, statement or other part of a program.
For example, an AST for expression (2+4)*4 might look as follows.
* / \ / \ + 4 / \ / \ 2 4I say might because you choose the form of your abstract syntax trees.
Instead of having node kinds * and /, you might have a node kind op with extra information telling the operator.
op:* / \ / \ op:+ num:4 / \ / \ num:2 num:4
Assignment 3 describes how to create abstract syntax trees in C.