The Runtime Theory
Lexing and Parsing

How a Parser Turns Tokens Into Structure

A lexer groups characters into tokens such as identifiers, numbers, and punctuation.

The Runtime Theory Team5 min read#lexer#parser#ast
▸ On this page

The model

A lexer groups characters into tokens such as identifiers, numbers, and punctuation. A parser consumes that token stream according to a grammar and builds a structured representation, often an abstract syntax tree. Separating these jobs makes it easier to handle whitespace, literals, precedence, and syntax errors coherently.

A concrete walk-through

For the expression 2 + 3 * 4, a precedence-aware parser constructs multiplication beneath addition so evaluation yields 14. Parentheses alter the tree by creating an explicit grouping. The AST usually omits surface details that do not affect meaning, such as redundant whitespace.

Costs and failure cases

A parser accepting syntactically valid input does not prove the names are declared or types match; those checks belong to later semantic analysis. Error recovery matters in editors, where parsing should continue after a malformed statement to provide useful diagnostics.

Check your understanding

Draw the AST for a - b - c under left-associative subtraction. Then explain what output would result if the parser accidentally made it right-associative.

Further reading

Crafting Interpreters: Scanning and Parsing

Not started

Sign in to save your learning progress.

Sign in to save