.github/workflows | ||
bindings | ||
corpus | ||
queries | ||
script | ||
src | ||
test | ||
tools/highlight-test-generator | ||
.gitattributes | ||
.gitignore | ||
.npmignore | ||
binding.gyp | ||
Cargo.toml | ||
grammar.js | ||
LICENSE | ||
package.json | ||
Package.swift | ||
README.md | ||
test.js |
tree-sitter-c-sharp
C# grammar for tree-sitter based upon the Roslyn grammar with changes in order to:
- Deal with differences between the parsing technologies
- Work around some bugs in that grammar
- Handle
#if
,#else
,#elif
,#endif
blocks - Support syntax highlighting/parsing of fragments
- Simplify the output tree
Status
Comprehensive supports C# 1 through 11.0 with the following exceptions:
async
,var
andawait
cannot be used as identifiers everywhere they are valid- Raw string literals (C# 11)
C# 12.0 (under development)
- Alias any type
- Collection expressions
- Default lambda parameters
- Experimental attribute
- Inline arrays
- Interceptors
- Primary constructors
- Ref readonly parameters
References
- Official C# 6 Language Spec provides chapters that formally define the language grammar.
- Roslyn C# language grammar export
- SharpLab (web-based syntax tree playground based on Roslyn)