From ca64d8b028de11489bd9aebe1019af372e3f2879 Mon Sep 17 00:00:00 2001 From: traxys Date: Sun, 13 Feb 2022 17:18:41 +0100 Subject: 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. --- queries/lalrpop/highlights.scm | 57 ++++++++++++++++++++++++++++++++++++++++++ queries/lalrpop/locals.scm | 5 ++++ 2 files changed, 62 insertions(+) create mode 100644 queries/lalrpop/highlights.scm create mode 100644 queries/lalrpop/locals.scm (limited to 'queries') diff --git a/queries/lalrpop/highlights.scm b/queries/lalrpop/highlights.scm new file mode 100644 index 00000000..34040dd5 --- /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 00000000..7a30cce9 --- /dev/null +++ b/queries/lalrpop/locals.scm @@ -0,0 +1,5 @@ +(nonterminal_name + (macro_id) @definition.function) + +(nonterminal_name + (identifier) @definition.function) -- cgit v1.2.3