diff options
| author | traxys <quentin+dev@familleboyer.net> | 2022-02-13 17:18:41 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-02-13 16:18:41 +0000 |
| commit | ca64d8b028de11489bd9aebe1019af372e3f2879 (patch) | |
| tree | 463370c4313fe1a0ae020206bfeeaf223e3584e3 | |
| parent | tests: add failing test for incomplete arguments (diff) | |
| download | nvim-treesitter-ca64d8b028de11489bd9aebe1019af372e3f2879.tar nvim-treesitter-ca64d8b028de11489bd9aebe1019af372e3f2879.tar.gz nvim-treesitter-ca64d8b028de11489bd9aebe1019af372e3f2879.tar.bz2 nvim-treesitter-ca64d8b028de11489bd9aebe1019af372e3f2879.tar.lz nvim-treesitter-ca64d8b028de11489bd9aebe1019af372e3f2879.tar.xz nvim-treesitter-ca64d8b028de11489bd9aebe1019af372e3f2879.tar.zst nvim-treesitter-ca64d8b028de11489bd9aebe1019af372e3f2879.zip | |
feat: add lalrpop parser (#2524)
LALRPOP is a parser generator for Rust. This only parses the LALRPOP
side of the generator, not the nearly-rust code of the actions.
| -rw-r--r-- | README.md | 1 | ||||
| -rw-r--r-- | lua/nvim-treesitter/parsers.lua | 9 | ||||
| -rw-r--r-- | queries/lalrpop/highlights.scm | 57 | ||||
| -rw-r--r-- | queries/lalrpop/locals.scm | 5 |
4 files changed, 72 insertions, 0 deletions
@@ -205,6 +205,7 @@ We are looking for maintainers to add more parsers and to write query files for - [x] [JSON with comments](https://gitlab.com/WhyNotHugo/tree-sitter-jsonc.git) (maintained by @WhyNotHugo) - [x] [julia](https://github.com/tree-sitter/tree-sitter-julia) (maintained by @mroavi, @theHamsta) - [x] [kotlin](https://github.com/fwcd/tree-sitter-kotlin) (maintained by @SalBakraa) +- [x] [lalrpop](https://github.com/traxys/tree-sitter-lalrpop) (maintained by @traxys) - [x] [latex](https://github.com/latex-lsp/tree-sitter-latex) (maintained by @theHamsta, @clason) - [x] [ledger](https://github.com/cbarrete/tree-sitter-ledger) (maintained by @cbarrete) - [x] [llvm](https://github.com/benwilliamgraham/tree-sitter-llvm) (maintained by @benwilliamgraham) diff --git a/lua/nvim-treesitter/parsers.lua b/lua/nvim-treesitter/parsers.lua index 74c7c86e6..6bd316d65 100644 --- a/lua/nvim-treesitter/parsers.lua +++ b/lua/nvim-treesitter/parsers.lua @@ -920,6 +920,15 @@ list.vala = { maintainers = { "@matbme" }, } +list.lalrpop = { + install_info = { + url = "https://github.com/traxys/tree-sitter-lalrpop", + branch = "master", + files = { "src/parser.c", "src/scanner.c" }, + }, + maintainers = { "@traxys" }, +} + local M = { list = list, filetype_to_parsername = filetype_to_parsername, diff --git a/queries/lalrpop/highlights.scm b/queries/lalrpop/highlights.scm new file mode 100644 index 000000000..34040dd5f --- /dev/null +++ b/queries/lalrpop/highlights.scm @@ -0,0 +1,57 @@ +[ + "pub" + "grammar" + "match" + "extern" + "type" + "enum" +] @keyword + +[ + "+" + "*" + "?" +] @operator + +(grammar_type_params + "<" @punctuation.bracket + ">" @punctuation.bracket) + +(symbol + "<" @punctuation.bracket + ">" @punctuation.bracket) + +(binding_symbol + "<" @punctuation.bracket + ">" @punctuation.bracket) + +(binding_symbol + name: (identifier) @parameter) + +(bare_symbol + (macro + ((macro_id) @function))) + +(bare_symbol + (identifier) @function) + +(nonterminal_name + (macro_id) @function) + +(nonterminal_name + (identifier) @function) + +(nonterminal + (type_ref) @type) + +"(" @punctuation.bracket +")" @punctuation.bracket +"[" @punctuation.bracket +"]" @punctuation.bracket + +";" @punctuation.delimiter + +(lifetime (identifier) @label) + +(string_literal) @string +(regex_literal) @string diff --git a/queries/lalrpop/locals.scm b/queries/lalrpop/locals.scm new file mode 100644 index 000000000..7a30cce9f --- /dev/null +++ b/queries/lalrpop/locals.scm @@ -0,0 +1,5 @@ +(nonterminal_name + (macro_id) @definition.function) + +(nonterminal_name + (identifier) @definition.function) |
