# tree-sitter-c-sharp
[![CI][ci]](https://github.com/tree-sitter/tree-sitter-c-sharp/actions/workflows/ci.yml)
[![discord][discord]](https://discord.gg/w7nTvsVJhm)
[![matrix][matrix]](https://matrix.to/#/#tree-sitter-chat:matrix.org)
[![crates][crates]](https://crates.io/crates/tree-sitter-c-sharp)
[![npm][npm]](https://www.npmjs.com/package/tree-sitter-c-sharp)
[![pypi][pypi]](https://pypi.org/project/tree-sitter-c-sharp)
C# grammar for [tree-sitter](https://github.com/tree-sitter/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
- Reduce parser state count and complexity
- Be in-line with tree-sitter's convention where applicable
### Status
Comprehensive supports C# 1 through 13.0 with the following exception:
- [ ] `async`, `var` and `await` cannot be used as identifiers everywhere they are valid
### References
- [Official C# 6 Language Spec](https://github.com/dotnet/csharplang/blob/master/spec/) provides chapters that formally define the language grammar.
- [Roslyn C# language grammar export](https://github.com/dotnet/roslyn/blob/master/src/Compilers/CSharp/Portable/Generated/CSharp.Generated.g4)
- [SharpLab](https://sharplab.io) (web-based syntax tree playground based on Roslyn)
[ci]: https://img.shields.io/github/actions/workflow/status/tree-sitter/tree-sitter-c-sharp/ci.yml?logo=github&label=CI
[discord]: https://img.shields.io/discord/1063097320771698699?logo=discord&label=discord
[matrix]: https://img.shields.io/matrix/tree-sitter-chat%3Amatrix.org?logo=matrix&label=matrix
[npm]: https://img.shields.io/npm/v/tree-sitter-c-sharp?logo=npm
[crates]: https://img.shields.io/crates/v/tree-sitter-c-sharp?logo=rust
[pypi]: https://img.shields.io/pypi/v/tree-sitter-c-sharp?logo=pypi&logoColor=ffd242
Raw data
{
"_id": null,
"home_page": null,
"name": "tree-sitter-c-sharp",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": null,
"keywords": "incremental, parsing, tree-sitter, c-sharp",
"author": null,
"author_email": "Max Brunsfeld <maxbrunsfeld@gmail.com>, Amaan Qureshi <amaanq12@gmail.com>",
"download_url": "https://files.pythonhosted.org/packages/f2/1b/88b6d60b68bfda6f004e39197f3454d323b542a56a5cf6432866b2eaf6c8/tree-sitter-c-sharp-0.21.2.tar.gz",
"platform": null,
"description": "# tree-sitter-c-sharp\n\n[![CI][ci]](https://github.com/tree-sitter/tree-sitter-c-sharp/actions/workflows/ci.yml)\n[![discord][discord]](https://discord.gg/w7nTvsVJhm)\n[![matrix][matrix]](https://matrix.to/#/#tree-sitter-chat:matrix.org)\n[![crates][crates]](https://crates.io/crates/tree-sitter-c-sharp)\n[![npm][npm]](https://www.npmjs.com/package/tree-sitter-c-sharp)\n[![pypi][pypi]](https://pypi.org/project/tree-sitter-c-sharp)\n\nC# grammar for [tree-sitter](https://github.com/tree-sitter/tree-sitter) based upon the Roslyn grammar with changes in order to:\n\n- Deal with differences between the parsing technologies\n- Work around some bugs in that grammar\n- Handle `#if`, `#else`, `#elif`, `#endif` blocks\n- Support syntax highlighting/parsing of fragments\n- Simplify the output tree\n- Reduce parser state count and complexity\n- Be in-line with tree-sitter's convention where applicable\n\n### Status\n\nComprehensive supports C# 1 through 13.0 with the following exception:\n\n- [ ] `async`, `var` and `await` cannot be used as identifiers everywhere they are valid\n\n### References\n\n- [Official C# 6 Language Spec](https://github.com/dotnet/csharplang/blob/master/spec/) provides chapters that formally define the language grammar.\n- [Roslyn C# language grammar export](https://github.com/dotnet/roslyn/blob/master/src/Compilers/CSharp/Portable/Generated/CSharp.Generated.g4)\n- [SharpLab](https://sharplab.io) (web-based syntax tree playground based on Roslyn)\n\n[ci]: https://img.shields.io/github/actions/workflow/status/tree-sitter/tree-sitter-c-sharp/ci.yml?logo=github&label=CI\n[discord]: https://img.shields.io/discord/1063097320771698699?logo=discord&label=discord\n[matrix]: https://img.shields.io/matrix/tree-sitter-chat%3Amatrix.org?logo=matrix&label=matrix\n[npm]: https://img.shields.io/npm/v/tree-sitter-c-sharp?logo=npm\n[crates]: https://img.shields.io/crates/v/tree-sitter-c-sharp?logo=rust\n[pypi]: https://img.shields.io/pypi/v/tree-sitter-c-sharp?logo=pypi&logoColor=ffd242\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "C# grammar for tree-sitter",
"version": "0.21.2",
"project_urls": {
"Homepage": "https://github.com/tree-sitter/tree-sitter-c-sharp"
},
"split_keywords": [
"incremental",
" parsing",
" tree-sitter",
" c-sharp"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "92445a9ada938519ab5077bf0d8e445f6269677e182bf2a3b4175f07db0a62d6",
"md5": "f775d873ce8bace0a63c9aef54e639ea",
"sha256": "72f05432910a660976256f661507cbbb9c474430c43e136b540806c734707965"
},
"downloads": -1,
"filename": "tree_sitter_c_sharp-0.21.2-cp38-abi3-macosx_10_9_x86_64.whl",
"has_sig": false,
"md5_digest": "f775d873ce8bace0a63c9aef54e639ea",
"packagetype": "bdist_wheel",
"python_version": "cp38",
"requires_python": ">=3.8",
"size": 364040,
"upload_time": "2024-05-07T15:26:10",
"upload_time_iso_8601": "2024-05-07T15:26:10.035343Z",
"url": "https://files.pythonhosted.org/packages/92/44/5a9ada938519ab5077bf0d8e445f6269677e182bf2a3b4175f07db0a62d6/tree_sitter_c_sharp-0.21.2-cp38-abi3-macosx_10_9_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "674a529948d18ba2f5c80d2a40434720d001725932ec95c2222e12abd1757563",
"md5": "ad8fad085632e312dd42068e103bfab8",
"sha256": "fc9ea671205124a454ce347c90158582b08e7463467cffd60f9a78f4ad1e76d9"
},
"downloads": -1,
"filename": "tree_sitter_c_sharp-0.21.2-cp38-abi3-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "ad8fad085632e312dd42068e103bfab8",
"packagetype": "bdist_wheel",
"python_version": "cp38",
"requires_python": ">=3.8",
"size": 408424,
"upload_time": "2024-05-07T15:26:12",
"upload_time_iso_8601": "2024-05-07T15:26:12.086700Z",
"url": "https://files.pythonhosted.org/packages/67/4a/529948d18ba2f5c80d2a40434720d001725932ec95c2222e12abd1757563/tree_sitter_c_sharp-0.21.2-cp38-abi3-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "378289ebc1c7edb102a5c752277e3897532dc53521359cfaa6403a83dc287d34",
"md5": "7f276b24da5e9337e7929eb8fd05d5de",
"sha256": "3669971d973c1cc58ea5606bf884aa6c504d1121d1433cea9461eed2c44d4604"
},
"downloads": -1,
"filename": "tree_sitter_c_sharp-0.21.2-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"has_sig": false,
"md5_digest": "7f276b24da5e9337e7929eb8fd05d5de",
"packagetype": "bdist_wheel",
"python_version": "cp38",
"requires_python": ">=3.8",
"size": 406784,
"upload_time": "2024-05-07T15:26:13",
"upload_time_iso_8601": "2024-05-07T15:26:13.888668Z",
"url": "https://files.pythonhosted.org/packages/37/82/89ebc1c7edb102a5c752277e3897532dc53521359cfaa6403a83dc287d34/tree_sitter_c_sharp-0.21.2-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "3faae19a130b9812d719a90a4a71b51d39452d6140b5df4267e787c95ad936e9",
"md5": "f8bc36a00f0b0ac16a7e0e79511bdecf",
"sha256": "82dc46e929dad7fc64f3a22077d8a3e39bc597cf0f4ce9a50b12be62aacf54d1"
},
"downloads": -1,
"filename": "tree_sitter_c_sharp-0.21.2-cp38-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "f8bc36a00f0b0ac16a7e0e79511bdecf",
"packagetype": "bdist_wheel",
"python_version": "cp38",
"requires_python": ">=3.8",
"size": 394376,
"upload_time": "2024-05-07T15:26:15",
"upload_time_iso_8601": "2024-05-07T15:26:15.372305Z",
"url": "https://files.pythonhosted.org/packages/3f/aa/e19a130b9812d719a90a4a71b51d39452d6140b5df4267e787c95ad936e9/tree_sitter_c_sharp-0.21.2-cp38-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "b5ea7ee6b22355650549eb0acc865a7ac6584c5c9f2e31185a930122843410a7",
"md5": "d3cc9b02619200aafe26577a10e09b51",
"sha256": "70e5c95644603f3dedbeddc1bca2258e1d2ce2b3995225bca6fa216f08333cae"
},
"downloads": -1,
"filename": "tree_sitter_c_sharp-0.21.2-cp38-abi3-musllinux_1_1_aarch64.whl",
"has_sig": false,
"md5_digest": "d3cc9b02619200aafe26577a10e09b51",
"packagetype": "bdist_wheel",
"python_version": "cp38",
"requires_python": ">=3.8",
"size": 406360,
"upload_time": "2024-05-07T15:26:18",
"upload_time_iso_8601": "2024-05-07T15:26:18.915236Z",
"url": "https://files.pythonhosted.org/packages/b5/ea/7ee6b22355650549eb0acc865a7ac6584c5c9f2e31185a930122843410a7/tree_sitter_c_sharp-0.21.2-cp38-abi3-musllinux_1_1_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "5e779c8894a8bf3876c43310ec050f06fc5534d8cfa73645cf750138752eb04f",
"md5": "12a934e8ee866e200a3a1550d7ab4f73",
"sha256": "12a78b17bfcf343efe01c6df52ebba67fecfbdfd41408ac11b100ed2083ca3cc"
},
"downloads": -1,
"filename": "tree_sitter_c_sharp-0.21.2-cp38-abi3-musllinux_1_1_x86_64.whl",
"has_sig": false,
"md5_digest": "12a934e8ee866e200a3a1550d7ab4f73",
"packagetype": "bdist_wheel",
"python_version": "cp38",
"requires_python": ">=3.8",
"size": 394689,
"upload_time": "2024-05-07T15:26:20",
"upload_time_iso_8601": "2024-05-07T15:26:20.453566Z",
"url": "https://files.pythonhosted.org/packages/5e/77/9c8894a8bf3876c43310ec050f06fc5534d8cfa73645cf750138752eb04f/tree_sitter_c_sharp-0.21.2-cp38-abi3-musllinux_1_1_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "3538f815b96ac8213856d8e17db400b45f4b4f28dc127665d5379827266b508c",
"md5": "5e2ccdf2c1dc936572ea92162644feae",
"sha256": "88cfc8e3980a88fbcf64d86b45286ff19f7bec1cac2a71299b26b9c92bf4b558"
},
"downloads": -1,
"filename": "tree_sitter_c_sharp-0.21.2-cp38-abi3-win_amd64.whl",
"has_sig": false,
"md5_digest": "5e2ccdf2c1dc936572ea92162644feae",
"packagetype": "bdist_wheel",
"python_version": "cp38",
"requires_python": ">=3.8",
"size": 367732,
"upload_time": "2024-05-07T15:26:21",
"upload_time_iso_8601": "2024-05-07T15:26:21.676789Z",
"url": "https://files.pythonhosted.org/packages/35/38/f815b96ac8213856d8e17db400b45f4b4f28dc127665d5379827266b508c/tree_sitter_c_sharp-0.21.2-cp38-abi3-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "f21b88b6d60b68bfda6f004e39197f3454d323b542a56a5cf6432866b2eaf6c8",
"md5": "e5f06015d2a9e21a180b6f9e23abf49b",
"sha256": "7404ccf96ccf5c02fcf48d78537d4358ba34672cf6fb89481f163fae971e07bc"
},
"downloads": -1,
"filename": "tree-sitter-c-sharp-0.21.2.tar.gz",
"has_sig": false,
"md5_digest": "e5f06015d2a9e21a180b6f9e23abf49b",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 1340629,
"upload_time": "2024-05-07T15:26:24",
"upload_time_iso_8601": "2024-05-07T15:26:24.868169Z",
"url": "https://files.pythonhosted.org/packages/f2/1b/88b6d60b68bfda6f004e39197f3454d323b542a56a5cf6432866b2eaf6c8/tree-sitter-c-sharp-0.21.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-05-07 15:26:24",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "tree-sitter",
"github_project": "tree-sitter-c-sharp",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "tree-sitter-c-sharp"
}