enso/docs/parser
2020-12-18 14:25:30 +00:00
..
architecture.md Add a markdown style guide (#1022) 2020-07-21 13:59:40 +01:00
ast.md Complete the implementation of the Enso lexer (#1177) 2020-10-30 14:06:24 +00:00
construct-resolution.md Complete the implementation of the Enso lexer (#1177) 2020-10-30 14:06:24 +00:00
jvm-object-generation.md Complete the implementation of the Enso lexer (#1177) 2020-10-30 14:06:24 +00:00
lexer.md Preparation for more parser work (#1363) 2020-12-18 14:25:30 +00:00
macro-resolution.md Preparation for more parser work (#1363) 2020-12-18 14:25:30 +00:00
operator-resolution.md Complete the implementation of the Enso lexer (#1177) 2020-10-30 14:06:24 +00:00
parser-driver.md Complete the implementation of the Enso lexer (#1177) 2020-10-30 14:06:24 +00:00
reader.md Complete the implementation of the Enso lexer (#1177) 2020-10-30 14:06:24 +00:00
README.md Complete the implementation of the Enso lexer (#1177) 2020-10-30 14:06:24 +00:00
tech-analysis.md Add a markdown style guide (#1022) 2020-07-21 13:59:40 +01:00

layout title category tags order
docs-index Enso's Parser summary
parser
readme
0

Enso's Parser

The parser is one of the most crucial components of the Enso runtime in that all code that a user writes must be parsed. This means that a good parser is fast, responsive, and lightweight; it shouldn't baulk at having thousands of lines of code thrown at it.

Enso's parser, however, is very special. In order to support interactive use it has to narrow down the scope of a syntax error as much as possible, while still providing useful output for the compiler around the rest of the parse errors. This feature makes it more complex than many common parsers, so making this work while still preserving performance is of paramount importance.

The various components of the parser's design and architecture are described below: