summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHeitor Augusto <44377258+HeitorAugustoLN@users.noreply.github.com>2026-01-18 16:54:59 -0300
committerHeitor Augusto <44377258+HeitorAugustoLN@users.noreply.github.com>2026-01-18 17:01:26 -0300
commitc9d3c16463214ba220a586b2b4a7154fc7c30532 (patch)
treecf60ae538d5f0ed8de2e38d37c0c04ccba2586b5
parent46e6cf2e4e92888a2eef6b393c7219eac4a5a612 (diff)
vimPlugins.nvim-treesitter: add parser and query dependencies
-rw-r--r--pkgs/applications/editors/vim/plugins/nvim-treesitter/generated.nix176
-rw-r--r--pkgs/applications/editors/vim/plugins/nvim-treesitter/overrides.nix51
-rwxr-xr-xpkgs/applications/editors/vim/plugins/utils/nvim-treesitter/update.py70
3 files changed, 273 insertions, 24 deletions
diff --git a/pkgs/applications/editors/vim/plugins/nvim-treesitter/generated.nix b/pkgs/applications/editors/vim/plugins/nvim-treesitter/generated.nix
index 86decf313fdb..01e2eb329ffa 100644
--- a/pkgs/applications/editors/vim/plugins/nvim-treesitter/generated.nix
+++ b/pkgs/applications/editors/vim/plugins/nvim-treesitter/generated.nix
@@ -52,6 +52,9 @@
rev = "3bd2036e710f609ea08fcfca5a1eb1169ecc114f";
hash = "sha256-VdfPZ39AEjvl+9r/LZNRGNIQsiTB9S065AnUc4MeohU=";
};
+ passthru.requires = [
+ "html"
+ ];
meta.homepage = "https://github.com/dlvandenberg/tree-sitter-angular";
};
apex = buildGrammar {
@@ -75,6 +78,9 @@
rev = "53eb391da4c6c5857f8defa2c583c46c2594f565";
hash = "sha256-qQVUWCOZ4y9FTsIf0FI3vmYBhLYz4hcqRTo+5C2MYvc=";
};
+ passthru.requires = [
+ "cpp"
+ ];
meta.homepage = "https://github.com/tree-sitter-grammars/tree-sitter-arduino";
};
asm = buildGrammar {
@@ -97,6 +103,9 @@
rev = "213f6e6973d9b456c6e50e86f19f66877e7ef0ee";
hash = "sha256-TpXs3jbYn39EHxTdtSfR7wLA1L8v9uyK/ATPp5v4WqE=";
};
+ passthru.requires = [
+ "html"
+ ];
meta.homepage = "https://github.com/virchau13/tree-sitter-astro";
};
authzed = buildGrammar {
@@ -405,6 +414,9 @@
rev = "12bd6f7e96080d2e70ec51d4068f2f66120dde35";
hash = "sha256-vmXTv6Idf0Le5ZVa8Rc1DVefqzUxkGeLGsYcSDNBpQU=";
};
+ passthru.requires = [
+ "c"
+ ];
meta.homepage = "https://github.com/tree-sitter/tree-sitter-cpp";
};
css = buildGrammar {
@@ -428,6 +440,9 @@
hash = "sha256-9mW0kT4av/ULFqLXdMuyLrMPtQxrIOKY60GQ4QDB33o=";
};
location = "csv";
+ passthru.requires = [
+ "tsv"
+ ];
meta.homepage = "https://github.com/tree-sitter-grammars/tree-sitter-csv";
};
cuda = buildGrammar {
@@ -439,6 +454,9 @@
rev = "48b066f334f4cf2174e05a50218ce2ed98b6fd01";
hash = "sha256-sX9AOe8dJJsRbzGq20qakWBnLiwYQ90mQspAuYxQzoQ=";
};
+ passthru.requires = [
+ "cpp"
+ ];
meta.homepage = "https://github.com/tree-sitter-grammars/tree-sitter-cuda";
};
cue = buildGrammar {
@@ -882,6 +900,9 @@
rev = "69086d7627c03e1f4baf766bcef14c60d9e92331";
hash = "sha256-U0P9QoOZST1h6XI83CI0/6/CDTvqkv1Yiq62h6YdHpI=";
};
+ passthru.requires = [
+ "gap"
+ ];
meta.homepage = "https://github.com/gap-system/tree-sitter-gaptst";
};
gdscript = buildGrammar {
@@ -1003,6 +1024,9 @@
rev = "12d98944c1d5077b957cbdb90d663a7c4d50118c";
hash = "sha256-3cJI6vcbU62kUIhphprNeAl9RyY9TThrzVeArdLfxnI=";
};
+ passthru.requires = [
+ "typescript"
+ ];
meta.homepage = "https://github.com/NullVoxPopuli/tree-sitter-glimmer-typescript";
};
glsl = buildGrammar {
@@ -1014,6 +1038,9 @@
rev = "24a6c8ef698e4480fecf8340d771fbcb5de8fbb4";
hash = "sha256-TjF79WH3bX4nueYr8CbPptkNb2lNkHQNB0VZoMB35Nk=";
};
+ passthru.requires = [
+ "c"
+ ];
meta.homepage = "https://github.com/tree-sitter-grammars/tree-sitter-glsl";
};
gn = buildGrammar {
@@ -1268,6 +1295,9 @@
rev = "02fa3b79b3ff9a296066da6277adfc3f26cbc9e0";
hash = "sha256-NsTf3DR3gHVMYZDmTNvThB5bJcDwTcJ1+3eJhvsiDn8=";
};
+ passthru.requires = [
+ "json"
+ ];
meta.homepage = "https://github.com/winston0410/tree-sitter-hjson";
};
hlsl = buildGrammar {
@@ -1279,6 +1309,9 @@
rev = "bab9111922d53d43668fabb61869bec51bbcb915";
hash = "sha256-BWjgXtMN6y/0ahD44Cm8a+MxxVMpCNhkf33V/vsCBTU=";
};
+ passthru.requires = [
+ "cpp"
+ ];
meta.homepage = "https://github.com/tree-sitter-grammars/tree-sitter-hlsl";
};
hlsplaylist = buildGrammar {
@@ -1422,6 +1455,9 @@
rev = "9b2f9aec2106b94b4e099fe75e73ebd8ae707c04";
hash = "sha256-vxe+g7o0gXgB4GjhjkxqLqcLL2+8wqMB3tm1xQFSitI=";
};
+ passthru.requires = [
+ "c"
+ ];
meta.homepage = "https://github.com/tree-sitter-grammars/tree-sitter-ispc";
};
janet_simple = buildGrammar {
@@ -1478,6 +1514,9 @@
hash = "sha256-a4/+tsouuYkkVEStpOEUiIos9H4Hw7NhJOFaasylWUk=";
};
location = "tree-sitter-jinja";
+ passthru.requires = [
+ "jinja_inline"
+ ];
meta.homepage = "https://github.com/cathaysia/tree-sitter-jinja";
};
jinja_inline = buildGrammar {
@@ -1788,6 +1827,9 @@
rev = "a8914d6c1fc5131f8e1c13f769fa704c9f5eb02f";
hash = "sha256-5qbZA2mxTvrsfUrpgD+4y3oeJsifA91c/hfcVwQBRgI=";
};
+ passthru.requires = [
+ "lua"
+ ];
meta.homepage = "https://github.com/tree-sitter-grammars/tree-sitter-luau";
};
m68k = buildGrammar {
@@ -1822,6 +1864,9 @@
hash = "sha256-IYqh6JT74deu1UU4Nyls9Eg88BvQeYEta2UXZAbuZek=";
};
location = "tree-sitter-markdown";
+ passthru.requires = [
+ "markdown_inline"
+ ];
meta.homepage = "https://github.com/tree-sitter-grammars/tree-sitter-markdown";
};
markdown_inline = buildGrammar {
@@ -1945,6 +1990,9 @@
rev = "4ad352773688deb84a95eeaa9872acda5b466439";
hash = "sha256-dinMmbD36o1QkcLk2mgycgHZ9sW5Mg6lfnxssynaj58=";
};
+ passthru.requires = [
+ "nim_format_string"
+ ];
meta.homepage = "https://github.com/alaviss/tree-sitter-nim";
};
nim_format_string = buildGrammar {
@@ -2011,6 +2059,9 @@
rev = "181a81b8f23a2d593e7ab4259981f50122909fda";
hash = "sha256-7W8ozhQJL+f+tQYz61EZexk9NkMu1pCAP5IIy1m3qak=";
};
+ passthru.requires = [
+ "c"
+ ];
meta.homepage = "https://github.com/tree-sitter-grammars/tree-sitter-objc";
};
objdump = buildGrammar {
@@ -2046,6 +2097,9 @@
hash = "sha256-8u1jtUFMjykVG6aCDzqcb4vFCY401CZ2o+JPGMadg6o=";
};
location = "grammars/interface";
+ passthru.requires = [
+ "ocaml"
+ ];
meta.homepage = "https://github.com/tree-sitter/tree-sitter-ocaml";
};
ocamllex = buildGrammar {
@@ -2125,6 +2179,9 @@
hash = "sha256-XEKlsqC7HJ3mShmcwmfpezNP9DHE8f73f7/ru4MuxEo=";
};
location = "php";
+ passthru.requires = [
+ "php_only"
+ ];
meta.homepage = "https://github.com/tree-sitter/tree-sitter-php";
};
php_only = buildGrammar {
@@ -2259,6 +2316,9 @@
hash = "sha256-SEqqmkfV/wsr1ObcBN5My29RY9TWfxnQlsnEEIZyR18=";
};
location = "grammars/problog";
+ passthru.requires = [
+ "prolog"
+ ];
meta.homepage = "https://github.com/foxyseta/tree-sitter-prolog";
};
prolog = buildGrammar {
@@ -2327,6 +2387,9 @@
hash = "sha256-9mW0kT4av/ULFqLXdMuyLrMPtQxrIOKY60GQ4QDB33o=";
};
location = "psv";
+ passthru.requires = [
+ "tsv"
+ ];
meta.homepage = "https://github.com/tree-sitter-grammars/tree-sitter-csv";
};
pug = buildGrammar {
@@ -2712,6 +2775,9 @@
rev = "c478c6868648eff49eb04a4df90d703dc45b312a";
hash = "sha256-BFtMT6eccBWUyq6b8UXRAbB1R1XD3CrrFf1DM3aUI5c=";
};
+ passthru.requires = [
+ "css"
+ ];
meta.homepage = "https://github.com/serenadeai/tree-sitter-scss";
};
sflog = buildGrammar {
@@ -3126,6 +3192,9 @@
hash = "sha256-Kq0KtkF6xtZcN2s8KzYGyguJH2iOTlA2WRytZ+KGTUE=";
};
location = "dialects/terraform";
+ passthru.requires = [
+ "hcl"
+ ];
meta.homepage = "https://github.com/MichaHoffmann/tree-sitter-hcl";
};
textproto = buildGrammar {
@@ -3227,6 +3296,9 @@
hash = "sha256-A0M6IBoY87ekSV4DfGHDU5zzFWdLjGqSyVr6VENgA+s=";
};
location = "tsx";
+ passthru.requires = [
+ "typescript"
+ ];
meta.homepage = "https://github.com/tree-sitter/tree-sitter-typescript";
};
turtle = buildGrammar {
@@ -3528,6 +3600,9 @@
hash = "sha256-0ztP30xWqVWy5upWPp0JwhpQphOJufzlcYn+KvLejVs=";
};
location = "xml";
+ passthru.requires = [
+ "dtd"
+ ];
meta.homepage = "https://github.com/tree-sitter-grammars/tree-sitter-xml";
};
xresources = buildGrammar {
@@ -3642,18 +3717,29 @@
};
angular = buildQueries {
language = "angular";
+ requires = [
+ "html"
+ "html_tags"
+ ];
};
apex = buildQueries {
language = "apex";
};
arduino = buildQueries {
language = "arduino";
+ requires = [
+ "cpp"
+ ];
};
asm = buildQueries {
language = "asm";
};
astro = buildQueries {
language = "astro";
+ requires = [
+ "html"
+ "html_tags"
+ ];
};
authzed = buildQueries {
language = "authzed";
@@ -3738,15 +3824,24 @@
};
cpp = buildQueries {
language = "cpp";
+ requires = [
+ "c"
+ ];
};
css = buildQueries {
language = "css";
};
csv = buildQueries {
language = "csv";
+ requires = [
+ "tsv"
+ ];
};
cuda = buildQueries {
language = "cuda";
+ requires = [
+ "cpp"
+ ];
};
cue = buildQueries {
language = "cue";
@@ -3870,6 +3965,9 @@
};
gaptst = buildQueries {
language = "gaptst";
+ requires = [
+ "gap"
+ ];
};
gdscript = buildQueries {
language = "gdscript";
@@ -3900,12 +3998,21 @@
};
glimmer_javascript = buildQueries {
language = "glimmer_javascript";
+ requires = [
+ "ecma"
+ ];
};
glimmer_typescript = buildQueries {
language = "glimmer_typescript";
+ requires = [
+ "typescript"
+ ];
};
glsl = buildQueries {
language = "glsl";
+ requires = [
+ "c"
+ ];
};
gn = buildQueries {
language = "gn";
@@ -3975,9 +4082,15 @@
};
hjson = buildQueries {
language = "hjson";
+ requires = [
+ "json"
+ ];
};
hlsl = buildQueries {
language = "hlsl";
+ requires = [
+ "cpp"
+ ];
};
hlsplaylist = buildQueries {
language = "hlsplaylist";
@@ -3990,6 +4103,9 @@
};
html = buildQueries {
language = "html";
+ requires = [
+ "html_tags"
+ ];
};
html_tags = buildQueries {
language = "html_tags";
@@ -4020,6 +4136,9 @@
};
ispc = buildQueries {
language = "ispc";
+ requires = [
+ "c"
+ ];
};
janet_simple = buildQueries {
language = "janet_simple";
@@ -4032,9 +4151,16 @@
};
javascript = buildQueries {
language = "javascript";
+ requires = [
+ "ecma"
+ "jsx"
+ ];
};
jinja = buildQueries {
language = "jinja";
+ requires = [
+ "jinja_inline"
+ ];
};
jinja_inline = buildQueries {
language = "jinja_inline";
@@ -4122,6 +4248,9 @@
};
luau = buildQueries {
language = "luau";
+ requires = [
+ "lua"
+ ];
};
m68k = buildQueries {
language = "m68k";
@@ -4131,6 +4260,9 @@
};
markdown = buildQueries {
language = "markdown";
+ requires = [
+ "markdown_inline"
+ ];
};
markdown_inline = buildQueries {
language = "markdown_inline";
@@ -4164,6 +4296,9 @@
};
nim = buildQueries {
language = "nim";
+ requires = [
+ "nim_format_string"
+ ];
};
nim_format_string = buildQueries {
language = "nim_format_string";
@@ -4182,6 +4317,9 @@
};
objc = buildQueries {
language = "objc";
+ requires = [
+ "c"
+ ];
};
objdump = buildQueries {
language = "objdump";
@@ -4191,6 +4329,9 @@
};
ocaml_interface = buildQueries {
language = "ocaml_interface";
+ requires = [
+ "ocaml"
+ ];
};
ocamllex = buildQueries {
language = "ocamllex";
@@ -4212,6 +4353,9 @@
};
php = buildQueries {
language = "php";
+ requires = [
+ "php_only"
+ ];
};
php_only = buildQueries {
language = "php_only";
@@ -4248,6 +4392,9 @@
};
problog = buildQueries {
language = "problog";
+ requires = [
+ "prolog"
+ ];
};
prolog = buildQueries {
language = "prolog";
@@ -4266,6 +4413,9 @@
};
psv = buildQueries {
language = "psv";
+ requires = [
+ "tsv"
+ ];
};
pug = buildQueries {
language = "pug";
@@ -4290,6 +4440,9 @@
};
qmljs = buildQueries {
language = "qmljs";
+ requires = [
+ "ecma"
+ ];
};
query = buildQueries {
language = "query";
@@ -4371,6 +4524,9 @@
};
scss = buildQueries {
language = "scss";
+ requires = [
+ "css"
+ ];
};
sflog = buildQueries {
language = "sflog";
@@ -4443,6 +4599,9 @@
};
svelte = buildQueries {
language = "svelte";
+ requires = [
+ "html_tags"
+ ];
};
sway = buildQueries {
language = "sway";
@@ -4482,6 +4641,9 @@
};
terraform = buildQueries {
language = "terraform";
+ requires = [
+ "hcl"
+ ];
};
textproto = buildQueries {
language = "textproto";
@@ -4509,6 +4671,11 @@
};
tsx = buildQueries {
language = "tsx";
+ requires = [
+ "ecma"
+ "jsx"
+ "typescript"
+ ];
};
turtle = buildQueries {
language = "turtle";
@@ -4518,6 +4685,9 @@
};
typescript = buildQueries {
language = "typescript";
+ requires = [
+ "ecma"
+ ];
};
typespec = buildQueries {
language = "typespec";
@@ -4569,6 +4739,9 @@
};
vue = buildQueries {
language = "vue";
+ requires = [
+ "html_tags"
+ ];
};
wgsl = buildQueries {
language = "wgsl";
@@ -4590,6 +4763,9 @@
};
xml = buildQueries {
language = "xml";
+ requires = [
+ "dtd"
+ ];
};
xresources = buildQueries {
language = "xresources";
diff --git a/pkgs/applications/editors/vim/plugins/nvim-treesitter/overrides.nix b/pkgs/applications/editors/vim/plugins/nvim-treesitter/overrides.nix
index 9786265ec6de..3e6ed03ace08 100644
--- a/pkgs/applications/editors/vim/plugins/nvim-treesitter/overrides.nix
+++ b/pkgs/applications/editors/vim/plugins/nvim-treesitter/overrides.nix
@@ -17,12 +17,15 @@ let
inherit (neovimUtils) grammarToPlugin;
buildQueries =
- { language }:
+ {
+ language,
+ requires ? [ ],
+ }:
vimUtils.toVimPlugin (
runCommand "nvim-treesitter-queries-${language}"
{
passthru = {
- inherit language;
+ inherit language requires;
isTreesitterQuery = true;
};
meta.description = "Queries for ${language} from nvim-treesitter";
@@ -45,18 +48,50 @@ let
inherit (generated) parsers queries;
- parsersWithMeta = lib.mapAttrs (
+ queriesWithDeps = lib.mapAttrs (
+ lang: query:
+ let
+ requires = query.requires or [ ];
+ dependencies = map (req: queries.${req}) requires;
+ in
+ if dependencies != [ ] then
+ query.overrideAttrs (old: {
+ passthru = old.passthru or { } // {
+ inherit dependencies;
+ };
+ })
+ else
+ query
+ ) queries;
+
+ parsersWithQueries = lib.mapAttrs (
lang: parser:
- if lib.hasAttr lang queries then
+ if lib.hasAttr lang queriesWithDeps then
parser.overrideAttrs (old: {
- passthru = (old.passthru or { }) // {
- associatedQuery = queries.${lang};
+ passthru = old.passthru or { } // {
+ associatedQuery = queriesWithDeps.${lang};
};
})
else
parser
) parsers;
+ parsersWithMeta = lib.mapAttrs (
+ lang: parser:
+ let
+ requires = parser.requires or [ ];
+ dependencies = map (req: grammarToPlugin parsersWithQueries.${req}) requires;
+ in
+ if dependencies != [ ] then
+ parser.overrideAttrs (old: {
+ passthru = old.passthru or { } // {
+ inherit dependencies;
+ };
+ })
+ else
+ parser
+ ) parsersWithQueries;
+
# add aliases so grammars from `tree-sitter` are overwritten in `withPlugins`
# for example, for ocaml_interface, the following aliases will be added
# ocaml-interface
@@ -92,7 +127,7 @@ let
grammarPlugins = map grammarToPlugin selectedGrammars;
queryPlugins = lib.pipe selectedGrammars [
- (map (g: g.passthru.associatedQuery or null))
+ (map (g: g.associatedQuery or null))
(lib.filter (q: q != null))
];
in
@@ -115,9 +150,9 @@ in
grammarToPlugin
withPlugins
withAllGrammars
- queries
;
+ queries = queriesWithDeps;
parsers = grammarPlugins;
tests = {
diff --git a/pkgs/applications/editors/vim/plugins/utils/nvim-treesitter/update.py b/pkgs/applications/editors/vim/plugins/utils/nvim-treesitter/update.py
index cc71c9495dc4..ce1ff9bdef87 100755
--- a/pkgs/applications/editors/vim/plugins/utils/nvim-treesitter/update.py
+++ b/pkgs/applications/editors/vim/plugins/utils/nvim-treesitter/update.py
@@ -15,12 +15,10 @@ log = logging.getLogger("vim-updater")
NURR_JSON_URL = (
"https://raw.githubusercontent.com/lumen-oss/nurr/main/tree-sitter-parsers.json"
)
-NVIM_TREESITTER_QUERIES_URL = (
- "https://api.github.com/repos/nvim-treesitter/nvim-treesitter/contents/runtime/queries"
-)
+NVIM_TREESITTER_QUERIES_URL = "https://api.github.com/repos/nvim-treesitter/nvim-treesitter/contents/runtime/queries"
-def generate_grammar(lang, parser_info):
+def generate_grammar(lang, parser_info, parsers_map):
"""Generate grammar for a language based on the parser info"""
if "install_info" not in parser_info:
log.warning(f"Parser {lang} does not have install_info, skipping")
@@ -36,9 +34,7 @@ def generate_grammar(lang, parser_info):
version = "0.0.0+rev={rev[:7]}";
src = """
- generated += subprocess.check_output(
- ["nurl", url, rev, "--indent=6"], text=True
- )
+ generated += subprocess.check_output(["nurl", url, rev, "--indent=6"], text=True)
generated += ";"
location = install_info.get("location", "")
@@ -50,6 +46,23 @@ def generate_grammar(lang, parser_info):
generated += """
generate = true;"""
+ # Add requires field - only include parsers
+ requires = parser_info.get("requires", [])
+ if requires:
+ # Filter to only include parser dependencies (those with install_info)
+ parser_requires = [
+ req
+ for req in requires
+ if req in parsers_map and "install_info" in parsers_map[req]
+ ]
+ if parser_requires:
+ generated += """
+ passthru.requires = [
+"""
+ for req in parser_requires:
+ generated += f' "{req}"\n'
+ generated += " ];"
+
generated += f"""
meta.homepage = "{url}";
}};
@@ -58,12 +71,28 @@ def generate_grammar(lang, parser_info):
return generated
-def generate_query(lang):
+def generate_query(lang: str, parser_info: dict | None, queries_set: set[str]):
"""Generate query derivation for a language"""
- return f""" {lang} = buildQueries {{
- language = "{lang}";
- }};
+ generated = f""" {lang} = buildQueries {{
+ language = "{lang}";"""
+
+ # Add requires field for queries - include everything that has queries
+ if parser_info and "requires" in parser_info:
+ requires = parser_info["requires"]
+ # Filter to only include langs that have queries
+ query_requires = [req for req in requires if queries_set and req in queries_set]
+ if query_requires:
+ generated += """
+ requires = [
"""
+ for req in query_requires:
+ generated += f' "{req}"\n'
+ generated += " ];"
+
+ generated += """
+ };
+"""
+ return generated
def fetch_nurr_parsers():
@@ -111,9 +140,9 @@ def fetch_available_queries():
return languages
-def process_parser_info(parser_info):
+def process_parser_info(parser_info, parsers_map):
"""Process a single parser info entry and generate grammar for it"""
- return generate_grammar(parser_info["lang"], parser_info)
+ return generate_grammar(parser_info["lang"], parser_info, parsers_map)
def update_grammars():
@@ -121,6 +150,9 @@ def update_grammars():
parsers_info = fetch_nurr_parsers()
queries_list = fetch_available_queries()
+ # Create a mapping of lang -> parser_info for quick lookup
+ parsers_map = {p["lang"]: p for p in parsers_info}
+
generated_file = """# generated by pkgs/applications/editors/vim/plugins/utils/nvim-treesitter/update.py
# Using parser data from https://github.com/nvim-neorocks/nurr/blob/main/tree-sitter-parsers.json
@@ -141,7 +173,9 @@ def update_grammars():
# Process parsers in parallel for better performance
with ThreadPoolExecutor(max_workers=5) as executor:
- for generated in executor.map(process_parser_info, parsers_info):
+ for generated in executor.map(
+ lambda p: process_parser_info(p, parsers_map), parsers_info
+ ):
generated_file += generated
generated_file += """ };
@@ -149,9 +183,13 @@ def update_grammars():
queries = {
"""
- # Process queries
+ # Convert queries list to a set for fast lookup
+ queries_set = set(queries_list)
+
+ # Process queries - include parser info if available for requires field
for lang in queries_list:
- generated_file += generate_query(lang)
+ parser_info = parsers_map.get(lang)
+ generated_file += generate_query(lang, parser_info, queries_set)
generated_file += " };\n}\n"
return generated_file