# Tree sitter grammar for CFEngine policy language
This tree-sitter grammar parses CFEngine policy language and turns it into an abstract syntax tree.
It is used to provide syntax highlighting in the Zed editor, via this extension:
https://github.com/olehermanse/zed-cfengine
The grammar currently supports all major features of the language, including:
- Bundle blocks
- Body blocks
- Promise type definition blocks
- Promise types, class guards, promises, stakeholders (promisees)
- Macros
- Function calls
- Lists, strings, expansions (with `$()` and `@()`)
## Todos
- Using the grammar for linting / syntax checking (language server)
- Highlighting inside strings and comments
- Recognizing when there is JSON inside policy
- Class guards which are quoted strings
- Using the grammar for code indentation
- Using the grammar for extensions to other editors
Before contributing for the first time, it's recommended to go through the tree-sitter tutorial for getting familiar with how everything works:
https://tree-sitter.github.io/tree-sitter/creating-parsers
Inspired by Lars Erik Wik's initial implementation available here:
https://github.com/larsewi/tree-sitter-cfengine
## Run containerized tests locally:
```
docker build --tag tree-sitter-cfengine .
```
Raw data
{
"_id": null,
"home_page": null,
"name": "tree-sitter-cfengine",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.9",
"maintainer_email": null,
"keywords": "incremental, parsing, tree-sitter, cfengine",
"author": null,
"author_email": "Ole Herman Schumacher Elgesem <oleherman93@gmail.com>",
"download_url": "https://files.pythonhosted.org/packages/4c/35/4b56377fe5dfd6b2010582134aa5049e1d7d6289eccb000b52fee59772a6/tree_sitter_cfengine-1.0.8.tar.gz",
"platform": null,
"description": "# Tree sitter grammar for CFEngine policy language\n\nThis tree-sitter grammar parses CFEngine policy language and turns it into an abstract syntax tree.\nIt is used to provide syntax highlighting in the Zed editor, via this extension:\n\nhttps://github.com/olehermanse/zed-cfengine\n\nThe grammar currently supports all major features of the language, including:\n\n- Bundle blocks\n- Body blocks\n- Promise type definition blocks\n- Promise types, class guards, promises, stakeholders (promisees)\n- Macros\n- Function calls\n- Lists, strings, expansions (with `$()` and `@()`)\n\n## Todos\n\n- Using the grammar for linting / syntax checking (language server)\n- Highlighting inside strings and comments\n- Recognizing when there is JSON inside policy\n- Class guards which are quoted strings\n- Using the grammar for code indentation\n- Using the grammar for extensions to other editors\n\nBefore contributing for the first time, it's recommended to go through the tree-sitter tutorial for getting familiar with how everything works:\n\nhttps://tree-sitter.github.io/tree-sitter/creating-parsers\n\nInspired by Lars Erik Wik's initial implementation available here:\n\nhttps://github.com/larsewi/tree-sitter-cfengine\n\n\n## Run containerized tests locally:\n\n```\ndocker build --tag tree-sitter-cfengine .\n```\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "CFEngine grammar for tree-sitter",
"version": "1.0.8",
"project_urls": {
"Homepage": "https://github.com/olehermanse/tree-sitter-cfengine"
},
"split_keywords": [
"incremental",
" parsing",
" tree-sitter",
" cfengine"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "bfeebb3c884b725d6b82e1439d101e26ab7c7e4f1ce0d685e49040648b50d1d3",
"md5": "5f9d9b30774699c8d4d82814e414e794",
"sha256": "3b47a91e449d0dd48212081297a7689c3a99352f15bf9a2aa7719d52ded45af9"
},
"downloads": -1,
"filename": "tree_sitter_cfengine-1.0.8-cp39-abi3-macosx_10_9_x86_64.whl",
"has_sig": false,
"md5_digest": "5f9d9b30774699c8d4d82814e414e794",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.9",
"size": 11303,
"upload_time": "2024-10-20T20:02:35",
"upload_time_iso_8601": "2024-10-20T20:02:35.556048Z",
"url": "https://files.pythonhosted.org/packages/bf/ee/bb3c884b725d6b82e1439d101e26ab7c7e4f1ce0d685e49040648b50d1d3/tree_sitter_cfengine-1.0.8-cp39-abi3-macosx_10_9_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "4e4ef1ffdb82fe3ce751169ad821d4045bfc2a6b425c0acd3c74171a7624519f",
"md5": "0c09652f91bdbf50eedaa869432da98d",
"sha256": "647218fc741b2e4407f35e01d5c08891f7f61b48a6733480ab04cafda940b220"
},
"downloads": -1,
"filename": "tree_sitter_cfengine-1.0.8-cp39-abi3-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "0c09652f91bdbf50eedaa869432da98d",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.9",
"size": 11828,
"upload_time": "2024-10-20T20:02:37",
"upload_time_iso_8601": "2024-10-20T20:02:37.064580Z",
"url": "https://files.pythonhosted.org/packages/4e/4e/f1ffdb82fe3ce751169ad821d4045bfc2a6b425c0acd3c74171a7624519f/tree_sitter_cfengine-1.0.8-cp39-abi3-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "96872df7e8428fbde56cd944b923240ab733488704cb6056d8208c55c9baaa2b",
"md5": "a0fa5ad35c59d06f245d5d9e3ce7768a",
"sha256": "9782b7d51f977ab38e8f9dc2dbc43ecc19a787bbe87b08dbe43b984f16b99393"
},
"downloads": -1,
"filename": "tree_sitter_cfengine-1.0.8-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"has_sig": false,
"md5_digest": "a0fa5ad35c59d06f245d5d9e3ce7768a",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.9",
"size": 23703,
"upload_time": "2024-10-20T20:02:38",
"upload_time_iso_8601": "2024-10-20T20:02:38.185708Z",
"url": "https://files.pythonhosted.org/packages/96/87/2df7e8428fbde56cd944b923240ab733488704cb6056d8208c55c9baaa2b/tree_sitter_cfengine-1.0.8-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "478f9cb8f9eaa3601f4f8bc53ce28174465a9b4c5e26613955f2989d67d4e482",
"md5": "0ad26f1b28e7f920deec6d99a9aeef50",
"sha256": "d501a9b7371af68e1b39284d9a26a1518201b63e6661a5a80b8bcc79a4363892"
},
"downloads": -1,
"filename": "tree_sitter_cfengine-1.0.8-cp39-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "0ad26f1b28e7f920deec6d99a9aeef50",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.9",
"size": 23312,
"upload_time": "2024-10-20T20:02:39",
"upload_time_iso_8601": "2024-10-20T20:02:39.268754Z",
"url": "https://files.pythonhosted.org/packages/47/8f/9cb8f9eaa3601f4f8bc53ce28174465a9b4c5e26613955f2989d67d4e482/tree_sitter_cfengine-1.0.8-cp39-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": "0da224cc97825d56e3cb9150aa97402567d30380862705a91525b804aceb4f6f",
"md5": "d7fd565bba2ec91a2f44253f62da7385",
"sha256": "c080e8621a8ff2991c3b8c2d05fcd03e57eb45ff9a7ed83a33382cdf097c95c7"
},
"downloads": -1,
"filename": "tree_sitter_cfengine-1.0.8-cp39-abi3-musllinux_1_2_x86_64.whl",
"has_sig": false,
"md5_digest": "d7fd565bba2ec91a2f44253f62da7385",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.9",
"size": 21657,
"upload_time": "2024-10-20T20:02:40",
"upload_time_iso_8601": "2024-10-20T20:02:40.770251Z",
"url": "https://files.pythonhosted.org/packages/0d/a2/24cc97825d56e3cb9150aa97402567d30380862705a91525b804aceb4f6f/tree_sitter_cfengine-1.0.8-cp39-abi3-musllinux_1_2_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "116b12e514de3ccbf54ec33552ad0d93b2e0039df0e47ebd9c3c8f0b72af6512",
"md5": "84db6b13d8ce32d5cef07407d01e3972",
"sha256": "3bae17a9b2b6b5c01c606ed6b03b8685bf0e8f1d4dcc87c45c6a89fa0c37920b"
},
"downloads": -1,
"filename": "tree_sitter_cfengine-1.0.8-cp39-abi3-win_amd64.whl",
"has_sig": false,
"md5_digest": "84db6b13d8ce32d5cef07407d01e3972",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.9",
"size": 14576,
"upload_time": "2024-10-20T20:02:41",
"upload_time_iso_8601": "2024-10-20T20:02:41.532593Z",
"url": "https://files.pythonhosted.org/packages/11/6b/12e514de3ccbf54ec33552ad0d93b2e0039df0e47ebd9c3c8f0b72af6512/tree_sitter_cfengine-1.0.8-cp39-abi3-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "13e4b719be2c1f1ce48c0a781b242d9d509e92c0041e6e7e581d4fdff92a4456",
"md5": "264172a78648934f6378ed5854ec049e",
"sha256": "41e5ac40a767893d9dd09ddc4ef2886bd008d72376ad14060c11abe6270e80b9"
},
"downloads": -1,
"filename": "tree_sitter_cfengine-1.0.8-cp39-abi3-win_arm64.whl",
"has_sig": false,
"md5_digest": "264172a78648934f6378ed5854ec049e",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.9",
"size": 13165,
"upload_time": "2024-10-20T20:02:43",
"upload_time_iso_8601": "2024-10-20T20:02:43.002508Z",
"url": "https://files.pythonhosted.org/packages/13/e4/b719be2c1f1ce48c0a781b242d9d509e92c0041e6e7e581d4fdff92a4456/tree_sitter_cfengine-1.0.8-cp39-abi3-win_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "4c354b56377fe5dfd6b2010582134aa5049e1d7d6289eccb000b52fee59772a6",
"md5": "b84ad415377de96f5315aaa74e9c1dfc",
"sha256": "ced0f72aba70db975c4f6a92bd50dda3444ee17a83250bdfc14baa6480150ee4"
},
"downloads": -1,
"filename": "tree_sitter_cfengine-1.0.8.tar.gz",
"has_sig": false,
"md5_digest": "b84ad415377de96f5315aaa74e9c1dfc",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.9",
"size": 14338,
"upload_time": "2024-10-20T20:02:44",
"upload_time_iso_8601": "2024-10-20T20:02:44.122820Z",
"url": "https://files.pythonhosted.org/packages/4c/35/4b56377fe5dfd6b2010582134aa5049e1d7d6289eccb000b52fee59772a6/tree_sitter_cfengine-1.0.8.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-10-20 20:02:44",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "olehermanse",
"github_project": "tree-sitter-cfengine",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "tree-sitter-cfengine"
}