A compiler uses an abstract syntax tree (AST) as a hierarchical, intermediate representation of the source code that captures its grammatical