tree-sitter-scheme
Scheme grammar for tree-sitter.
Recent News
- With R7RS support, a single
|can no longer appear in the middle of an identifier. - The node
directiveno longer contains the sub nodesymbol. It is now a single node. - Some extensions were added, see below.
Status
tree-sitter-scheme should work on a superset of Scheme.
Different implementations might have conflicting grammars. I am not sure if I should support them. If you need some implementation-specific features, please open an issue, then I will consider supporting it.
current status:
- R5RS
- R6RS
- R7RS
- Extensions
-
{}as replacement for()or[] - extend symbols which can start with digits, period, ... etc as long as it's not a number
- keyword
#:symbol - escape sequence in string
\+ any character - characters
#\bel,#\ls,#\nel,#\rubout,#\vt - character
#\u[A-Fa-f0-9]+
-
Please open an issue to let me know it's really used if you want to add new extensions.
Implementation
- Support for implementation
Usage
See nodes.md for all visible nodes.
This parser doesn't parse language constructs. Instead, it parses code as lists.
If you want language constructs support, use custom queries (see #5), also see thchha/tree-sitter-scheme.
Query
The queries here are too simple and not intended to be useful in an editor. Please open an issue if you have suggestions.
Reference
Scheme
Tree-sitter