Scheme grammar for tree-sitter.
- With R7RS support, a single
|
can no longer appear in the middle of an identifier. - The node
directive
no longer contains the sub nodesymbol
. It is now a single node. - Some extensions were added, see below.
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
-
Please open an issue to let me know it's really used if you want to add new extensions.
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.
The queries here are too simple and not intended to be useful in an editor. Please open an issue if you have suggestions.
Scheme
Tree-sitter