Skip to content

6cdh/tree-sitter-scheme

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

99 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

tree-sitter-scheme

Build/test

Scheme grammar for tree-sitter.

Recent News

  • With R7RS support, a single | can no longer appear in the middle of an identifier.
  • The node directive no longer contains the sub node symbol. 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

Please open an issue to let me know it's really used if you want to add new extensions.

Implementation

  • Support for implementation
    • Chez Scheme (#1)
    • Chicken Scheme (#3)
    • Guile Scheme (#7)

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