aboutsummaryrefslogtreecommitdiffstats
path: root/queries
diff options
context:
space:
mode:
authortraxys <quentin+dev@familleboyer.net>2022-02-13 17:18:41 +0100
committerGitHub <noreply@github.com>2022-02-13 16:18:41 +0000
commitca64d8b028de11489bd9aebe1019af372e3f2879 (patch)
tree463370c4313fe1a0ae020206bfeeaf223e3584e3 /queries
parenttests: add failing test for incomplete arguments (diff)
downloadnvim-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.
Diffstat (limited to 'queries')
-rw-r--r--queries/lalrpop/highlights.scm57
-rw-r--r--queries/lalrpop/locals.scm5
2 files changed, 62 insertions, 0 deletions
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)