From 61f42cc647b08614e6b7e7a4213956b880488a9e Mon Sep 17 00:00:00 2001 From: eupn <36292692+eupn@users.noreply.github.com> Date: Thu, 8 Aug 2019 00:18:47 +0700 Subject: [PATCH] architecture.md: "finish not Y" -> "finish node Y" Is this a typo? --- docs/dev/architecture.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/dev/architecture.md b/docs/dev/architecture.md index 9e9651801a..4caacea7d0 100644 --- a/docs/dev/architecture.md +++ b/docs/dev/architecture.md @@ -70,7 +70,7 @@ Rust syntax tree structure and parser. See - [rowan](https://github.com/rust-analyzer/rowan) library is used for constructing syntax trees. - `grammar` module is the actual parser. It is a hand-written recursive descent parser, which - produces a sequence of events like "start node X", "finish not Y". It works similarly to [kotlin's parser](https://github.com/JetBrains/kotlin/blob/4d951de616b20feca92f3e9cc9679b2de9e65195/compiler/frontend/src/org/jetbrains/kotlin/parsing/KotlinParsing.java), + produces a sequence of events like "start node X", "finish node Y". It works similarly to [kotlin's parser](https://github.com/JetBrains/kotlin/blob/4d951de616b20feca92f3e9cc9679b2de9e65195/compiler/frontend/src/org/jetbrains/kotlin/parsing/KotlinParsing.java), which is a good source of inspiration for dealing with syntax errors and incomplete input. Original [libsyntax parser](https://github.com/rust-lang/rust/blob/6b99adeb11313197f409b4f7c4083c2ceca8a4fe/src/libsyntax/parse/parser.rs) is what we use for the definition of the Rust language. - `parser_api/parser_impl` bridges the tree-agnostic parser from `grammar` with `rowan` trees.