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)