Skip to content

Parser

The parser converts tokens into an AST.

This process is called syntactic analysis.

For:

let x = 10

the parser creates a structure equivalent to:

VariableDeclaration
├── name: x
└── initializer: 10

The parser uses precedence levels:

assignment
↓
logical OR
↓
logical AND
↓
equality
↓
comparison
↓
term
↓
factor
↓
unary
↓
call
↓
primary

For:

a + b * 2

the parser produces:

+
/ a *
/ b 2

rather than:

*
/ + 2
/ a b

So the expression means:

a + (b * 2)