1
1
mirror of https://github.com/github/semantic.git synced 2024-11-24 00:42:33 +03:00

Merge pull request #657 from ahelwer/patch-1

External scanners: used for CSGs, not CFGs
This commit is contained in:
Patrick Thomson 2021-08-24 09:07:30 -04:00 committed by GitHub
commit e9e1f01025
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -29,7 +29,7 @@ To serve these goals, the following options were considered alongside `tree-sitt
8. **Open source.** By using tree-sitter we can lean on open source contributors to do grammar development work.
9. **Low learning curve.** Writing grammars in JavaScript (as opposed to some custom notation/language) is quite powerful.
10. **Multiple algorithms for handling ambiguity.** Precedence annotations at compile time, GLR at runtime.
11. **External scanner support.** In case you need to parse a context free grammar. An example of an external scanner is in [Ruby's language support](https://github.com/tree-sitter/tree-sitter-ruby/blob/master/src/scanner.cc).
11. **External scanner support.** In case you need to parse a context-sensitive grammar. An example of an external scanner is in [Ruby's language support](https://github.com/tree-sitter/tree-sitter-ruby/blob/master/src/scanner.cc).
12. **Solid tooling for development and debugging.** Tree-sitter makes it easy to get up and running fairly quickly. It also provides detailed error messages to guide grammar development.
13. **Built in performance tooling.**
14. **Parsing is very fast.**