From cee6f003fd58c64916c629f7d8b27b870d6f78c5 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Tue, 19 Mar 2024 10:01:05 +0100 Subject: [PATCH 1/4] Tree-sitter: Split up `ast_node_info` table into two tables --- .../src/extractor/mod.rs | 59 +++++++++-------- .../src/generator/mod.rs | 64 ++++++++++++------- .../src/generator/ql_gen.rs | 27 ++++---- 3 files changed, 86 insertions(+), 64 deletions(-) diff --git a/shared/tree-sitter-extractor/src/extractor/mod.rs b/shared/tree-sitter-extractor/src/extractor/mod.rs index 0d493ebd9e1a..d26e5e45975e 100644 --- a/shared/tree-sitter-extractor/src/extractor/mod.rs +++ b/shared/tree-sitter-extractor/src/extractor/mod.rs @@ -209,10 +209,10 @@ struct Visitor<'a> { diagnostics_writer: &'a mut diagnostics::LogWriter, /// A trap::Writer to accumulate trap entries trap_writer: &'a mut trap::Writer, - /// A counter for top-level child nodes - toplevel_child_counter: usize, - /// Language-specific name of the AST info table - ast_node_info_table_name: String, + /// Language-specific name of the AST location table + ast_node_location_table_name: String, + /// Language-specific name of the AST parent table + ast_node_parent_table_name: String, /// Language-specific name of the tokeninfo table tokeninfo_table_name: String, /// A lookup table from type name to node types @@ -242,8 +242,8 @@ impl<'a> Visitor<'a> { source, diagnostics_writer, trap_writer, - toplevel_child_counter: 0, - ast_node_info_table_name: format!("{}_ast_node_info", language_prefix), + ast_node_location_table_name: format!("{}_ast_node_location", language_prefix), + ast_node_parent_table_name: format!("{}_ast_node_parent", language_prefix), tokeninfo_table_name: format!("{}_tokeninfo", language_prefix), schema, stack: Vec::new(), @@ -342,27 +342,29 @@ impl<'a> Visitor<'a> { }) .unwrap(); let mut valid = true; - let (parent_id, parent_index) = match self.stack.last_mut() { + let parent_info = match self.stack.last_mut() { Some(p) if !node.is_extra() => { p.1 += 1; - (p.0, p.1 - 1) - } - _ => { - self.toplevel_child_counter += 1; - (self.file_label, self.toplevel_child_counter - 1) + Some((p.0, p.1 - 1)) } + _ => None, }; match &table.kind { EntryKind::Token { kind_id, .. } => { self.trap_writer.add_tuple( - &self.ast_node_info_table_name, - vec![ - trap::Arg::Label(id), - trap::Arg::Label(parent_id), - trap::Arg::Int(parent_index), - trap::Arg::Label(loc_label), - ], + &self.ast_node_location_table_name, + vec![trap::Arg::Label(id), trap::Arg::Label(loc_label)], ); + if let Some((parent_id, parent_index)) = parent_info { + self.trap_writer.add_tuple( + &self.ast_node_parent_table_name, + vec![ + trap::Arg::Label(id), + trap::Arg::Label(parent_id), + trap::Arg::Int(parent_index), + ], + ); + }; self.trap_writer.add_tuple( &self.tokeninfo_table_name, vec![ @@ -378,14 +380,19 @@ impl<'a> Visitor<'a> { } => { if let Some(args) = self.complex_node(&node, fields, &child_nodes, id) { self.trap_writer.add_tuple( - &self.ast_node_info_table_name, - vec![ - trap::Arg::Label(id), - trap::Arg::Label(parent_id), - trap::Arg::Int(parent_index), - trap::Arg::Label(loc_label), - ], + &self.ast_node_location_table_name, + vec![trap::Arg::Label(id), trap::Arg::Label(loc_label)], ); + if let Some((parent_id, parent_index)) = parent_info { + self.trap_writer.add_tuple( + &self.ast_node_parent_table_name, + vec![ + trap::Arg::Label(id), + trap::Arg::Label(parent_id), + trap::Arg::Int(parent_index), + ], + ); + }; let mut all_args = vec![trap::Arg::Label(id)]; all_args.extend(args); self.trap_writer.add_tuple(table_name, all_args); diff --git a/shared/tree-sitter-extractor/src/generator/mod.rs b/shared/tree-sitter-extractor/src/generator/mod.rs index 0d01deae57fa..ea41f3190e61 100644 --- a/shared/tree-sitter-extractor/src/generator/mod.rs +++ b/shared/tree-sitter-extractor/src/generator/mod.rs @@ -52,8 +52,8 @@ pub fn generate( for language in languages { let prefix = node_types::to_snake_case(&language.name); let ast_node_name = format!("{}_ast_node", &prefix); - let node_info_table_name = format!("{}_ast_node_info", &prefix); - let ast_node_parent_name = format!("{}_ast_node_parent", &prefix); + let node_location_table_name = format!("{}_ast_node_location", &prefix); + let node_parent_table_name = format!("{}_ast_node_parent", &prefix); let token_name = format!("{}_token", &prefix); let tokeninfo_name = format!("{}_tokeninfo", &prefix); let reserved_word_name = format!("{}_reserved_word", &prefix); @@ -72,13 +72,12 @@ pub fn generate( name: &ast_node_name, members: ast_node_members, }), - dbscheme::Entry::Union(dbscheme::Union { - name: &ast_node_parent_name, - members: [&ast_node_name, "file"].iter().cloned().collect(), - }), - dbscheme::Entry::Table(create_ast_node_info_table( - &node_info_table_name, - &ast_node_parent_name, + dbscheme::Entry::Table(create_ast_node_location_table( + &node_location_table_name, + &ast_node_name, + )), + dbscheme::Entry::Table(create_ast_node_parent_table( + &node_parent_table_name, &ast_node_name, )), ], @@ -87,7 +86,8 @@ pub fn generate( let mut body = vec![ ql::TopLevel::Class(ql_gen::create_ast_node_class( &ast_node_name, - &node_info_table_name, + &node_location_table_name, + &node_parent_table_name, )), ql::TopLevel::Class(ql_gen::create_token_class(&token_name, &tokeninfo_name)), ql::TopLevel::Class(ql_gen::create_reserved_word_class(&reserved_word_name)), @@ -335,16 +335,13 @@ fn convert_nodes( (entries, ast_node_members, token_kinds) } -/// Creates a dbscheme table specifying the parent node and location for each -/// AST node. +/// Creates a dbscheme table specifying the location for each AST node. /// /// # Arguments /// - `name` - the name of the table to create. -/// - `parent_name` - the name of the parent type. /// - `ast_node_name` - the name of the node child type. -fn create_ast_node_info_table<'a>( +fn create_ast_node_location_table<'a>( name: &'a str, - parent_name: &'a str, ast_node_name: &'a str, ) -> dbscheme::Table<'a> { dbscheme::Table { @@ -358,24 +355,45 @@ fn create_ast_node_info_table<'a>( ql_type_is_ref: true, }, dbscheme::Column { - db_type: dbscheme::DbColumnType::Int, - name: "parent", unique: false, - ql_type: ql::Type::At(parent_name), + db_type: dbscheme::DbColumnType::Int, + name: "loc", + ql_type: ql::Type::At("location_default"), ql_type_is_ref: true, }, + ], + keysets: None, + } +} + +/// Creates a dbscheme table specifying the parent node for each AST node. +/// +/// # Arguments +/// - `name` - the name of the table to create. +/// - `ast_node_name` - the name of the node child type. +fn create_ast_node_parent_table<'a>(name: &'a str, ast_node_name: &'a str) -> dbscheme::Table<'a> { + dbscheme::Table { + name, + columns: vec![ dbscheme::Column { - unique: false, db_type: dbscheme::DbColumnType::Int, - name: "parent_index", - ql_type: ql::Type::Int, + name: "node", + unique: true, + ql_type: ql::Type::At(ast_node_name), + ql_type_is_ref: true, + }, + dbscheme::Column { + db_type: dbscheme::DbColumnType::Int, + name: "parent", + unique: false, + ql_type: ql::Type::At(ast_node_name), ql_type_is_ref: true, }, dbscheme::Column { unique: false, db_type: dbscheme::DbColumnType::Int, - name: "loc", - ql_type: ql::Type::At("location_default"), + name: "parent_index", + ql_type: ql::Type::Int, ql_type_is_ref: true, }, ], diff --git a/shared/tree-sitter-extractor/src/generator/ql_gen.rs b/shared/tree-sitter-extractor/src/generator/ql_gen.rs index 4407cbdd32eb..919ff43af428 100644 --- a/shared/tree-sitter-extractor/src/generator/ql_gen.rs +++ b/shared/tree-sitter-extractor/src/generator/ql_gen.rs @@ -4,7 +4,11 @@ use crate::{generator::ql, node_types}; /// Creates the hard-coded `AstNode` class that acts as a supertype of all /// classes we generate. -pub fn create_ast_node_class<'a>(ast_node: &'a str, node_info_table: &'a str) -> ql::Class<'a> { +pub fn create_ast_node_class<'a>( + ast_node: &'a str, + node_location_table: &'a str, + node_parent_table: &'a str, +) -> ql::Class<'a> { // Default implementation of `toString` calls `this.getAPrimaryQlClass()` let to_string = ql::Predicate { qldoc: Some(String::from( @@ -32,13 +36,8 @@ pub fn create_ast_node_class<'a>(ast_node: &'a str, node_info_table: &'a str) -> return_type: Some(ql::Type::Normal("L::Location")), formal_parameters: vec![], body: ql::Expression::Pred( - node_info_table, - vec![ - ql::Expression::Var("this"), - ql::Expression::Var("_"), // parent - ql::Expression::Var("_"), // parent index - ql::Expression::Var("result"), // location - ], + node_location_table, + vec![ql::Expression::Var("this"), ql::Expression::Var("result")], ), }; let get_a_field_or_child = create_none_predicate( @@ -55,12 +54,11 @@ pub fn create_ast_node_class<'a>(ast_node: &'a str, node_info_table: &'a str) -> return_type: Some(ql::Type::Normal("AstNode")), formal_parameters: vec![], body: ql::Expression::Pred( - node_info_table, + node_parent_table, vec![ ql::Expression::Var("this"), ql::Expression::Var("result"), - ql::Expression::Var("_"), // parent index - ql::Expression::Var("_"), // location + ql::Expression::Var("_"), ], ), }; @@ -74,12 +72,11 @@ pub fn create_ast_node_class<'a>(ast_node: &'a str, node_info_table: &'a str) -> return_type: Some(ql::Type::Int), formal_parameters: vec![], body: ql::Expression::Pred( - node_info_table, + node_parent_table, vec![ ql::Expression::Var("this"), - ql::Expression::Var("_"), // parent - ql::Expression::Var("result"), // parent index - ql::Expression::Var("_"), // location + ql::Expression::Var("_"), + ql::Expression::Var("result"), ], ), }; From 72ff494739e9d2c93baf6c4359a9180dcdfed20b Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Tue, 19 Mar 2024 10:33:12 +0100 Subject: [PATCH 2/4] Ruby: Regenerate dbscheme and stats --- ruby/extractor/Cargo.lock | 2 +- ruby/extractor/Cargo.toml | 2 +- ruby/extractor/cargo-bazel-lock.json | 268 +- ruby/ql/lib/codeql/ruby/AST.qll | 7 +- .../codeql/ruby/ast/internal/TreeSitter.qll | 12 +- ruby/ql/lib/ruby.dbscheme | 24 +- ruby/ql/lib/ruby.dbscheme.stats | 7316 ++++++++--------- 7 files changed, 3693 insertions(+), 3938 deletions(-) diff --git a/ruby/extractor/Cargo.lock b/ruby/extractor/Cargo.lock index d5e8f132f240..750d630402b3 100644 --- a/ruby/extractor/Cargo.lock +++ b/ruby/extractor/Cargo.lock @@ -176,7 +176,7 @@ checksum = "8a2dd5a6fe8c6e3502f568a6353e5273bbb15193ad9a89e457b9970798efbea1" [[package]] name = "codeql-extractor" version = "0.2.0" -source = "git+https://github.com/github/codeql.git?rev=514a92d5bd1e24e4b7367d64430762ffd1ffbe7f#514a92d5bd1e24e4b7367d64430762ffd1ffbe7f" +source = "git+https://github.com/github/codeql.git?rev=cee6f003fd58c64916c629f7d8b27b870d6f78c5#cee6f003fd58c64916c629f7d8b27b870d6f78c5" dependencies = [ "chrono", "encoding", diff --git a/ruby/extractor/Cargo.toml b/ruby/extractor/Cargo.toml index 8bb8cd96dce0..87a9f9f7a802 100644 --- a/ruby/extractor/Cargo.toml +++ b/ruby/extractor/Cargo.toml @@ -34,4 +34,4 @@ lazy_static = "1.4.0" # of lock-file update time, but `rules_rust` pins generates a bazel rule that unconditionally downloads `main`, which # breaks build hermeticity. So, rev-pinning it is. # See also https://github.com/bazelbuild/rules_rust/issues/2502. -codeql-extractor = { git = "https://github.com/github/codeql.git", rev = "514a92d5bd1e24e4b7367d64430762ffd1ffbe7f" } +codeql-extractor = { git = "https://github.com/github/codeql.git", rev = "cee6f003fd58c64916c629f7d8b27b870d6f78c5" } diff --git a/ruby/extractor/cargo-bazel-lock.json b/ruby/extractor/cargo-bazel-lock.json index 76a63d4376d4..15b868806650 100644 --- a/ruby/extractor/cargo-bazel-lock.json +++ b/ruby/extractor/cargo-bazel-lock.json @@ -1,5 +1,5 @@ { - "checksum": "1c460a0aa044e422d51b182416888e0a45d131996cc1821a0fedbab3cd2b07bf", + "checksum": "76aa7a86db3d70a3b257062c5c6b87da62e07258e6f16a487d8c42aa561c0224", "crates": { "adler 1.0.2": { "name": "adler", @@ -7,7 +7,7 @@ "package_url": "https://github.com/jonas-schievink/adler.git", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/adler/1.0.2/download", + "url": "https://static.crates.io/crates/adler/1.0.2/download", "sha256": "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" } }, @@ -44,7 +44,7 @@ "package_url": "https://github.com/BurntSushi/aho-corasick", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/aho-corasick/0.7.20/download", + "url": "https://static.crates.io/crates/aho-corasick/0.7.20/download", "sha256": "cc936419f96fa211c1b9166887b38e5e40b19958e5b895be7c1f93adec7071ac" } }, @@ -96,7 +96,7 @@ "package_url": "https://github.com/BurntSushi/aho-corasick", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/aho-corasick/1.1.2/download", + "url": "https://static.crates.io/crates/aho-corasick/1.1.2/download", "sha256": "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0" } }, @@ -149,7 +149,7 @@ "package_url": "https://github.com/nical/android_system_properties", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/android_system_properties/0.1.5/download", + "url": "https://static.crates.io/crates/android_system_properties/0.1.5/download", "sha256": "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" } }, @@ -194,7 +194,7 @@ "package_url": "https://github.com/rust-cli/anstyle.git", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/anstream/0.2.6/download", + "url": "https://static.crates.io/crates/anstream/0.2.6/download", "sha256": "342258dd14006105c2b75ab1bd7543a03bdf0cfc94383303ac212a04939dff6f" } }, @@ -274,7 +274,7 @@ "package_url": "https://github.com/rust-cli/anstyle.git", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/anstyle/0.3.5/download", + "url": "https://static.crates.io/crates/anstyle/0.3.5/download", "sha256": "23ea9e81bd02e310c216d080f6223c179012256e5151c41db88d12c88a1684d2" } }, @@ -317,7 +317,7 @@ "package_url": "https://github.com/rust-cli/anstyle.git", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/anstyle-parse/0.1.1/download", + "url": "https://static.crates.io/crates/anstyle-parse/0.1.1/download", "sha256": "a7d1bb534e9efed14f3e5f44e7dd1a4f709384023a4165199a4241e18dff0116" } }, @@ -369,7 +369,7 @@ "package_url": "https://github.com/rust-cli/anstyle.git", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/anstyle-wincon/0.2.0/download", + "url": "https://static.crates.io/crates/anstyle-wincon/0.2.0/download", "sha256": "c3127af6145b149f3287bb9a0d10ad9c5692dba8c53ad48285e5bec4063834fa" } }, @@ -421,7 +421,7 @@ "package_url": "https://github.com/cuviper/autocfg", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/autocfg/1.1.0/download", + "url": "https://static.crates.io/crates/autocfg/1.1.0/download", "sha256": "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" } }, @@ -457,7 +457,7 @@ "package_url": "https://github.com/bitflags/bitflags", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/bitflags/1.3.2/download", + "url": "https://static.crates.io/crates/bitflags/1.3.2/download", "sha256": "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" } }, @@ -499,7 +499,7 @@ "package_url": "https://github.com/BurntSushi/bstr", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/bstr/1.9.0/download", + "url": "https://static.crates.io/crates/bstr/1.9.0/download", "sha256": "c48f0051a4b4c5e0b6d365cd04af53aeaa209e3cc15ec2cdb69e73cc87fbd0dc" } }, @@ -551,7 +551,7 @@ "package_url": "https://github.com/fitzgen/bumpalo", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/bumpalo/3.12.0/download", + "url": "https://static.crates.io/crates/bumpalo/3.12.0/download", "sha256": "0d261e256854913907f67ed06efbc3338dfe6179796deefc1ff763fc1aee5535" } }, @@ -593,7 +593,7 @@ "package_url": "https://github.com/rust-lang/cc-rs", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/cc/1.0.79/download", + "url": "https://static.crates.io/crates/cc/1.0.79/download", "sha256": "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f" } }, @@ -629,7 +629,7 @@ "package_url": "https://github.com/alexcrichton/cfg-if", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/cfg-if/1.0.0/download", + "url": "https://static.crates.io/crates/cfg-if/1.0.0/download", "sha256": "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" } }, @@ -665,7 +665,7 @@ "package_url": "https://github.com/chronotope/chrono", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/chrono/0.4.24/download", + "url": "https://static.crates.io/crates/chrono/0.4.24/download", "sha256": "4e3c5919066adf22df73762e50cffcde3a758f2a848b113b586d1f86728b673b" } }, @@ -761,7 +761,7 @@ "package_url": "https://github.com/clap-rs/clap", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/clap/4.2.1/download", + "url": "https://static.crates.io/crates/clap/4.2.1/download", "sha256": "046ae530c528f252094e4a77886ee1374437744b2bff1497aa898bbddbbb29b3" } }, @@ -832,7 +832,7 @@ "package_url": "https://github.com/clap-rs/clap", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/clap_builder/4.2.1/download", + "url": "https://static.crates.io/crates/clap_builder/4.2.1/download", "sha256": "223163f58c9a40c3b0a43e1c4b50a9ce09f007ea2cb1ec258a687945b4b7929f" } }, @@ -904,7 +904,7 @@ "package_url": "https://github.com/clap-rs/clap/tree/master/clap_derive", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/clap_derive/4.2.0/download", + "url": "https://static.crates.io/crates/clap_derive/4.2.0/download", "sha256": "3f9644cd56d6b87dbe899ef8b053e331c0637664e9e21a33dfcdc36093f5c5c4" } }, @@ -967,7 +967,7 @@ "package_url": "https://github.com/clap-rs/clap/tree/master/clap_lex", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/clap_lex/0.4.1/download", + "url": "https://static.crates.io/crates/clap_lex/0.4.1/download", "sha256": "8a2dd5a6fe8c6e3502f568a6353e5273bbb15193ad9a89e457b9970798efbea1" } }, @@ -1005,7 +1005,7 @@ "Git": { "remote": "https://github.com/github/codeql.git", "commitish": { - "Rev": "514a92d5bd1e24e4b7367d64430762ffd1ffbe7f" + "Rev": "cee6f003fd58c64916c629f7d8b27b870d6f78c5" }, "strip_prefix": "shared/tree-sitter-extractor" } @@ -1159,7 +1159,7 @@ "package_url": "https://github.com/brendanzab/codespan", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/codespan-reporting/0.11.1/download", + "url": "https://static.crates.io/crates/codespan-reporting/0.11.1/download", "sha256": "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e" } }, @@ -1207,7 +1207,7 @@ "package_url": "https://github.com/rust-cli/concolor", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/concolor-override/1.0.0/download", + "url": "https://static.crates.io/crates/concolor-override/1.0.0/download", "sha256": "a855d4a1978dc52fb0536a04d384c2c0c1aa273597f08b77c8c4d3b2eec6037f" } }, @@ -1243,7 +1243,7 @@ "package_url": "https://github.com/rust-cli/concolor", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/concolor-query/0.3.3/download", + "url": "https://static.crates.io/crates/concolor-query/0.3.3/download", "sha256": "88d11d52c3d7ca2e6d0040212be9e4dbbcd78b6447f535b6b561f449427944cf" } }, @@ -1290,7 +1290,7 @@ "package_url": "https://github.com/servo/core-foundation-rs", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/core-foundation-sys/0.8.4/download", + "url": "https://static.crates.io/crates/core-foundation-sys/0.8.4/download", "sha256": "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa" } }, @@ -1326,7 +1326,7 @@ "package_url": "https://github.com/srijs/rust-crc32fast", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/crc32fast/1.3.2/download", + "url": "https://static.crates.io/crates/crc32fast/1.3.2/download", "sha256": "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d" } }, @@ -1396,7 +1396,7 @@ "package_url": "https://github.com/crossbeam-rs/crossbeam", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/crossbeam-channel/0.5.7/download", + "url": "https://static.crates.io/crates/crossbeam-channel/0.5.7/download", "sha256": "cf2b3e8478797446514c91ef04bafcb59faba183e621ad488df88983cc14128c" } }, @@ -1453,7 +1453,7 @@ "package_url": "https://github.com/crossbeam-rs/crossbeam", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/crossbeam-deque/0.8.3/download", + "url": "https://static.crates.io/crates/crossbeam-deque/0.8.3/download", "sha256": "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef" } }, @@ -1515,7 +1515,7 @@ "package_url": "https://github.com/crossbeam-rs/crossbeam", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/crossbeam-epoch/0.9.14/download", + "url": "https://static.crates.io/crates/crossbeam-epoch/0.9.14/download", "sha256": "46bd5f3f85273295a9d14aedfb86f6aadbff6d8f5295c4a9edb08e819dcf5695" } }, @@ -1606,7 +1606,7 @@ "package_url": "https://github.com/crossbeam-rs/crossbeam", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/crossbeam-utils/0.8.15/download", + "url": "https://static.crates.io/crates/crossbeam-utils/0.8.15/download", "sha256": "3c063cd8cc95f5c377ed0d4b49a4b21f632396ff690e8470c29b3359b346984b" } }, @@ -1676,7 +1676,7 @@ "package_url": "https://github.com/dtolnay/cxx", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/cxx/1.0.94/download", + "url": "https://static.crates.io/crates/cxx/1.0.94/download", "sha256": "f61f1b6389c3fe1c316bf8a4dccc90a38208354b330925bce1f74a6c4756eb93" } }, @@ -1771,7 +1771,7 @@ "package_url": "https://github.com/dtolnay/cxx", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/cxx-build/1.0.94/download", + "url": "https://static.crates.io/crates/cxx-build/1.0.94/download", "sha256": "12cee708e8962df2aeb38f594aae5d827c022b6460ac71a7a3e2c3c2aae5a07b" } }, @@ -1840,7 +1840,7 @@ "package_url": "https://github.com/dtolnay/cxx", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/cxxbridge-flags/1.0.94/download", + "url": "https://static.crates.io/crates/cxxbridge-flags/1.0.94/download", "sha256": "7944172ae7e4068c533afbb984114a56c46e9ccddda550499caa222902c7f7bb" } }, @@ -1876,7 +1876,7 @@ "package_url": "https://github.com/dtolnay/cxx", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/cxxbridge-macro/1.0.94/download", + "url": "https://static.crates.io/crates/cxxbridge-macro/1.0.94/download", "sha256": "2345488264226bf682893e25de0769f3360aac9957980ec49361b083ddaa5bc5" } }, @@ -1929,7 +1929,7 @@ "package_url": "https://github.com/bluss/either", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/either/1.8.1/download", + "url": "https://static.crates.io/crates/either/1.8.1/download", "sha256": "7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91" } }, @@ -1965,7 +1965,7 @@ "package_url": "https://github.com/lifthrasiir/rust-encoding", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/encoding/0.2.33/download", + "url": "https://static.crates.io/crates/encoding/0.2.33/download", "sha256": "6b0d943856b990d12d3b55b359144ff341533e516d94098b1d3fc1ac666d36ec" } }, @@ -2025,7 +2025,7 @@ "package_url": "https://github.com/lifthrasiir/rust-encoding", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/encoding-index-japanese/1.20141219.5/download", + "url": "https://static.crates.io/crates/encoding-index-japanese/1.20141219.5/download", "sha256": "04e8b2ff42e9a05335dbf8b5c6f7567e5591d0d916ccef4e0b1710d32a0d0c91" } }, @@ -2069,7 +2069,7 @@ "package_url": "https://github.com/lifthrasiir/rust-encoding", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/encoding-index-korean/1.20141219.5/download", + "url": "https://static.crates.io/crates/encoding-index-korean/1.20141219.5/download", "sha256": "4dc33fb8e6bcba213fe2f14275f0963fd16f0a02c878e3095ecfdf5bee529d81" } }, @@ -2113,7 +2113,7 @@ "package_url": "https://github.com/lifthrasiir/rust-encoding", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/encoding-index-simpchinese/1.20141219.5/download", + "url": "https://static.crates.io/crates/encoding-index-simpchinese/1.20141219.5/download", "sha256": "d87a7194909b9118fc707194baa434a4e3b0fb6a5a757c73c3adb07aa25031f7" } }, @@ -2157,7 +2157,7 @@ "package_url": "https://github.com/lifthrasiir/rust-encoding", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/encoding-index-singlebyte/1.20141219.5/download", + "url": "https://static.crates.io/crates/encoding-index-singlebyte/1.20141219.5/download", "sha256": "3351d5acffb224af9ca265f435b859c7c01537c0849754d3db3fdf2bfe2ae84a" } }, @@ -2201,7 +2201,7 @@ "package_url": "https://github.com/lifthrasiir/rust-encoding", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/encoding-index-tradchinese/1.20141219.5/download", + "url": "https://static.crates.io/crates/encoding-index-tradchinese/1.20141219.5/download", "sha256": "fd0e20d5688ce3cab59eb3ef3a2083a5c77bf496cb798dc6fcdb75f323890c18" } }, @@ -2245,7 +2245,7 @@ "package_url": "https://github.com/lifthrasiir/rust-encoding", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/encoding_index_tests/0.1.4/download", + "url": "https://static.crates.io/crates/encoding_index_tests/0.1.4/download", "sha256": "a246d82be1c9d791c5dfde9a2bd045fc3cbba3fa2b11ad558f27d01712f00569" } }, @@ -2280,7 +2280,7 @@ "package_url": "https://github.com/lambda-fairy/rust-errno", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/errno/0.3.0/download", + "url": "https://static.crates.io/crates/errno/0.3.0/download", "sha256": "50d6a0976c999d473fe89ad888d5a284e55366d9dc9038b1ba2aa15128c4afa0" } }, @@ -2351,7 +2351,7 @@ "package_url": "https://github.com/mneumann/errno-dragonfly-rs", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/errno-dragonfly/0.1.2/download", + "url": "https://static.crates.io/crates/errno-dragonfly/0.1.2/download", "sha256": "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf" } }, @@ -2422,7 +2422,7 @@ "package_url": "https://github.com/rust-lang/flate2-rs", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/flate2/1.0.25/download", + "url": "https://static.crates.io/crates/flate2/1.0.25/download", "sha256": "a8a2db397cb1c8772f31494cb8917e48cd1e64f0fa7efac59fbd741a0a8ce841" } }, @@ -2479,7 +2479,7 @@ "package_url": "https://github.com/BurntSushi/ripgrep/tree/master/crates/globset", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/globset/0.4.14/download", + "url": "https://static.crates.io/crates/globset/0.4.14/download", "sha256": "57da3b9b5b85bd66f31093f8c408b90a74431672542466497dcbdfdc02034be1" } }, @@ -2547,7 +2547,7 @@ "package_url": "https://github.com/withoutboats/heck", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/heck/0.4.1/download", + "url": "https://static.crates.io/crates/heck/0.4.1/download", "sha256": "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" } }, @@ -2589,7 +2589,7 @@ "package_url": "https://github.com/hermitcore/rusty-hermit", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/hermit-abi/0.2.6/download", + "url": "https://static.crates.io/crates/hermit-abi/0.2.6/download", "sha256": "ee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7" } }, @@ -2634,7 +2634,7 @@ "package_url": "https://github.com/hermitcore/rusty-hermit", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/hermit-abi/0.3.1/download", + "url": "https://static.crates.io/crates/hermit-abi/0.3.1/download", "sha256": "fed44880c466736ef9a5c5b5facefb5ed0785676d0c02d612db14e54f0d84286" } }, @@ -2670,7 +2670,7 @@ "package_url": "https://github.com/strawlab/iana-time-zone", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/iana-time-zone/0.1.56/download", + "url": "https://static.crates.io/crates/iana-time-zone/0.1.56/download", "sha256": "0722cd7114b7de04316e7ea5456a0bbb20e4adb46fd27a3697adb812cff0f37c" } }, @@ -2751,7 +2751,7 @@ "package_url": "https://github.com/strawlab/iana-time-zone", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/iana-time-zone-haiku/0.1.1/download", + "url": "https://static.crates.io/crates/iana-time-zone-haiku/0.1.1/download", "sha256": "0703ae284fc167426161c2e3f1da3ea71d94b21bedbcc9494e92b28e334e3dca" } }, @@ -2832,7 +2832,7 @@ "package_url": "https://github.com/sunfishcode/io-lifetimes", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/io-lifetimes/1.0.10/download", + "url": "https://static.crates.io/crates/io-lifetimes/1.0.10/download", "sha256": "9c66c74d2ae7e79a5a8f7ac924adbe38ee42a859c6539ad869eb51f0b52dc220" } }, @@ -2920,7 +2920,7 @@ "package_url": "https://github.com/sunfishcode/is-terminal", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/is-terminal/0.4.6/download", + "url": "https://static.crates.io/crates/is-terminal/0.4.6/download", "sha256": "256017f749ab3117e93acb91063009e1f1bb56d03965b14c2c8df4eb02c524d8" } }, @@ -2983,7 +2983,7 @@ "package_url": "https://github.com/dtolnay/itoa", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/itoa/1.0.6/download", + "url": "https://static.crates.io/crates/itoa/1.0.6/download", "sha256": "453ad9f582a441959e5f0d088b02ce04cfe8d51a8eaf077f12ac6d3e94164ca6" } }, @@ -3019,7 +3019,7 @@ "package_url": "https://github.com/rustwasm/wasm-bindgen/tree/master/crates/js-sys", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/js-sys/0.3.61/download", + "url": "https://static.crates.io/crates/js-sys/0.3.61/download", "sha256": "445dde2150c55e483f3d8416706b97ec8e8237c307e5b7b4b8dd15e6af2a0730" } }, @@ -3064,7 +3064,7 @@ "package_url": "https://github.com/rust-lang-nursery/lazy-static.rs", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/lazy_static/1.4.0/download", + "url": "https://static.crates.io/crates/lazy_static/1.4.0/download", "sha256": "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" } }, @@ -3100,7 +3100,7 @@ "package_url": "https://github.com/rust-lang/libc", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/libc/0.2.141/download", + "url": "https://static.crates.io/crates/libc/0.2.141/download", "sha256": "3304a64d199bb964be99741b7a14d26972741915b3649639149b2479bb46f4b5" } }, @@ -3257,7 +3257,7 @@ "package_url": "https://github.com/dtolnay/link-cplusplus", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/link-cplusplus/1.0.8/download", + "url": "https://static.crates.io/crates/link-cplusplus/1.0.8/download", "sha256": "ecd207c9c713c34f95a097a5b029ac2ce6010530c7b49d7fea24d977dede04f5" } }, @@ -3326,7 +3326,7 @@ "package_url": "https://github.com/sunfishcode/linux-raw-sys", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/linux-raw-sys/0.3.1/download", + "url": "https://static.crates.io/crates/linux-raw-sys/0.3.1/download", "sha256": "d59d8c75012853d2e872fb56bc8a2e53718e2cafe1a4c823143141c6d90c322f" } }, @@ -3398,7 +3398,7 @@ "package_url": "https://github.com/rust-lang/log", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/log/0.4.20/download", + "url": "https://static.crates.io/crates/log/0.4.20/download", "sha256": "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" } }, @@ -3440,7 +3440,7 @@ "package_url": "https://github.com/hawkw/matchers", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/matchers/0.1.0/download", + "url": "https://static.crates.io/crates/matchers/0.1.0/download", "sha256": "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" } }, @@ -3484,7 +3484,7 @@ "package_url": "https://github.com/BurntSushi/memchr", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/memchr/2.7.1/download", + "url": "https://static.crates.io/crates/memchr/2.7.1/download", "sha256": "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149" } }, @@ -3528,7 +3528,7 @@ "package_url": "https://github.com/Gilnaa/memoffset", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/memoffset/0.8.0/download", + "url": "https://static.crates.io/crates/memoffset/0.8.0/download", "sha256": "d61c719bcfbcf5d62b3a09efa6088de8c54bc0bfcd3ea7ae39fcc186108b8de1" } }, @@ -3601,7 +3601,7 @@ "package_url": "https://github.com/Frommi/miniz_oxide/tree/master/miniz_oxide", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/miniz_oxide/0.6.2/download", + "url": "https://static.crates.io/crates/miniz_oxide/0.6.2/download", "sha256": "b275950c28b37e794e8c55d88aeb5e139d0ce23fdbbeda68f8d7174abdf9e8fa" } }, @@ -3653,7 +3653,7 @@ "package_url": "https://github.com/nushell/nu-ansi-term", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/nu-ansi-term/0.46.0/download", + "url": "https://static.crates.io/crates/nu-ansi-term/0.46.0/download", "sha256": "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" } }, @@ -3704,7 +3704,7 @@ "package_url": "https://github.com/rust-num/num-integer", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/num-integer/0.1.45/download", + "url": "https://static.crates.io/crates/num-integer/0.1.45/download", "sha256": "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" } }, @@ -3776,7 +3776,7 @@ "package_url": "https://github.com/rust-num/num-traits", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/num-traits/0.2.15/download", + "url": "https://static.crates.io/crates/num-traits/0.2.15/download", "sha256": "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd" } }, @@ -3844,7 +3844,7 @@ "package_url": "https://github.com/seanmonstar/num_cpus", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/num_cpus/1.15.0/download", + "url": "https://static.crates.io/crates/num_cpus/1.15.0/download", "sha256": "0fac9e2da13b5eb447a6ce3d392f23a29d8694bff781bf03a16cd9ac8697593b" } }, @@ -3897,7 +3897,7 @@ "package_url": "https://github.com/matklad/once_cell", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/once_cell/1.17.1/download", + "url": "https://static.crates.io/crates/once_cell/1.17.1/download", "sha256": "b7e5500299e16ebb147ae15a00a942af264cf3688f47923b8fc2cd5858f23ad3" } }, @@ -3942,7 +3942,7 @@ "package_url": "https://github.com/danaugrs/overload", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/overload/0.1.1/download", + "url": "https://static.crates.io/crates/overload/0.1.1/download", "sha256": "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" } }, @@ -3977,7 +3977,7 @@ "package_url": "https://github.com/taiki-e/pin-project-lite", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/pin-project-lite/0.2.9/download", + "url": "https://static.crates.io/crates/pin-project-lite/0.2.9/download", "sha256": "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116" } }, @@ -4013,7 +4013,7 @@ "package_url": "https://github.com/dtolnay/proc-macro2", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/proc-macro2/1.0.56/download", + "url": "https://static.crates.io/crates/proc-macro2/1.0.56/download", "sha256": "2b63bdb0cd06f1f4dedf69b254734f9b45af66e4a031e42a7480257d9898b435" } }, @@ -4083,7 +4083,7 @@ "package_url": "https://github.com/dtolnay/quote", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/quote/1.0.26/download", + "url": "https://static.crates.io/crates/quote/1.0.26/download", "sha256": "4424af4bf778aae2051a77b60283332f386554255d722233d09fbfc7e30da2fc" } }, @@ -4153,7 +4153,7 @@ "package_url": "https://github.com/rayon-rs/rayon", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/rayon/1.7.0/download", + "url": "https://static.crates.io/crates/rayon/1.7.0/download", "sha256": "1d2df5196e37bcc87abebc0053e20787d73847bb33134a69841207dd0a47f03b" } }, @@ -4202,7 +4202,7 @@ "package_url": "https://github.com/rayon-rs/rayon", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/rayon-core/1.11.0/download", + "url": "https://static.crates.io/crates/rayon-core/1.11.0/download", "sha256": "4b8f95bd6966f5c87776639160a66bd8ab9895d9d4ab01ddba9fc60661aebe8d" } }, @@ -4278,7 +4278,7 @@ "package_url": "https://github.com/rust-lang/regex", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/regex/1.7.3/download", + "url": "https://static.crates.io/crates/regex/1.7.3/download", "sha256": "8b1f693b24f6ac912f4893ef08244d70b6067480d2f1a46e950c9691e6749d1d" } }, @@ -4353,7 +4353,7 @@ "package_url": "https://github.com/BurntSushi/regex-automata", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/regex-automata/0.1.10/download", + "url": "https://static.crates.io/crates/regex-automata/0.1.10/download", "sha256": "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" } }, @@ -4406,7 +4406,7 @@ "package_url": "https://github.com/rust-lang/regex/tree/master/regex-automata", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/regex-automata/0.4.3/download", + "url": "https://static.crates.io/crates/regex-automata/0.4.3/download", "sha256": "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f" } }, @@ -4478,7 +4478,7 @@ "package_url": "https://github.com/rust-lang/regex", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/regex-syntax/0.6.29/download", + "url": "https://static.crates.io/crates/regex-syntax/0.6.29/download", "sha256": "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" } }, @@ -4528,7 +4528,7 @@ "package_url": "https://github.com/rust-lang/regex/tree/master/regex-syntax", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/regex-syntax/0.8.2/download", + "url": "https://static.crates.io/crates/regex-syntax/0.8.2/download", "sha256": "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" } }, @@ -4570,7 +4570,7 @@ "package_url": "https://github.com/bytecodealliance/rustix", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/rustix/0.37.7/download", + "url": "https://static.crates.io/crates/rustix/0.37.7/download", "sha256": "2aae838e49b3d63e9274e1c01833cc8139d3fec468c3b84688c628f44b1ae11d" } }, @@ -4682,7 +4682,7 @@ "package_url": "https://github.com/dtolnay/ryu", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/ryu/1.0.13/download", + "url": "https://static.crates.io/crates/ryu/1.0.13/download", "sha256": "f91339c0467de62360649f8d3e185ca8de4224ff281f66000de5eb2a77a79041" } }, @@ -4718,7 +4718,7 @@ "package_url": "https://github.com/bluss/scopeguard", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/scopeguard/1.1.0/download", + "url": "https://static.crates.io/crates/scopeguard/1.1.0/download", "sha256": "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" } }, @@ -4754,7 +4754,7 @@ "package_url": "https://github.com/dtolnay/scratch", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/scratch/1.0.5/download", + "url": "https://static.crates.io/crates/scratch/1.0.5/download", "sha256": "1792db035ce95be60c3f8853017b3999209281c24e2ba5bc8e59bf97a0c590c1" } }, @@ -4813,7 +4813,7 @@ "package_url": "https://github.com/serde-rs/serde", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/serde/1.0.159/download", + "url": "https://static.crates.io/crates/serde/1.0.159/download", "sha256": "3c04e8343c3daeec41f58990b9d77068df31209f2af111e059e9fe9646693065" } }, @@ -4890,7 +4890,7 @@ "package_url": "https://github.com/serde-rs/serde", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/serde_derive/1.0.159/download", + "url": "https://static.crates.io/crates/serde_derive/1.0.159/download", "sha256": "4c614d17805b093df4b147b51339e7e44bf05ef59fba1e45d83500bcfb4d8585" } }, @@ -4967,7 +4967,7 @@ "package_url": "https://github.com/serde-rs/json", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/serde_json/1.0.95/download", + "url": "https://static.crates.io/crates/serde_json/1.0.95/download", "sha256": "d721eca97ac802aa7777b701877c8004d950fc142651367300d21c1cc0194744" } }, @@ -5045,7 +5045,7 @@ "package_url": "https://github.com/hawkw/sharded-slab", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/sharded-slab/0.1.4/download", + "url": "https://static.crates.io/crates/sharded-slab/0.1.4/download", "sha256": "900fba806f70c630b0a382d0d825e17a0f19fcd059a2ade1ff237bcddf446b31" } }, @@ -5089,7 +5089,7 @@ "package_url": "https://github.com/servo/rust-smallvec", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/smallvec/1.10.0/download", + "url": "https://static.crates.io/crates/smallvec/1.10.0/download", "sha256": "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0" } }, @@ -5125,7 +5125,7 @@ "package_url": "https://github.com/dguo/strsim-rs", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/strsim/0.10.0/download", + "url": "https://static.crates.io/crates/strsim/0.10.0/download", "sha256": "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" } }, @@ -5160,7 +5160,7 @@ "package_url": "https://github.com/dtolnay/syn", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/syn/1.0.109/download", + "url": "https://static.crates.io/crates/syn/1.0.109/download", "sha256": "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" } }, @@ -5250,7 +5250,7 @@ "package_url": "https://github.com/dtolnay/syn", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/syn/2.0.13/download", + "url": "https://static.crates.io/crates/syn/2.0.13/download", "sha256": "4c9da457c5285ac1f936ebd076af6dac17a61cfe7826f2076b4d015cf47bc8ec" } }, @@ -5316,7 +5316,7 @@ "package_url": "https://github.com/BurntSushi/termcolor", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/termcolor/1.2.0/download", + "url": "https://static.crates.io/crates/termcolor/1.2.0/download", "sha256": "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6" } }, @@ -5363,7 +5363,7 @@ "package_url": "https://github.com/Amanieu/thread_local-rs", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/thread_local/1.1.7/download", + "url": "https://static.crates.io/crates/thread_local/1.1.7/download", "sha256": "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152" } }, @@ -5412,7 +5412,7 @@ "package_url": "https://github.com/time-rs/time", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/time/0.1.45/download", + "url": "https://static.crates.io/crates/time/0.1.45/download", "sha256": "1b797afad3f312d1c66a56d11d0316f916356d11bd158fbc6ca6389ff6bf805a" } }, @@ -5470,7 +5470,7 @@ "package_url": "https://github.com/tokio-rs/tracing", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/tracing/0.1.37/download", + "url": "https://static.crates.io/crates/tracing/0.1.37/download", "sha256": "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8" } }, @@ -5540,7 +5540,7 @@ "package_url": "https://github.com/tokio-rs/tracing", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/tracing-attributes/0.1.23/download", + "url": "https://static.crates.io/crates/tracing-attributes/0.1.23/download", "sha256": "4017f8f45139870ca7e672686113917c71c7a6e02d4924eda67186083c03081a" } }, @@ -5592,7 +5592,7 @@ "package_url": "https://github.com/tokio-rs/tracing", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/tracing-core/0.1.30/download", + "url": "https://static.crates.io/crates/tracing-core/0.1.30/download", "sha256": "24eb03ba0eab1fd845050058ce5e616558e8f8d8fca633e6b163fe25c797213a" } }, @@ -5651,7 +5651,7 @@ "package_url": "https://github.com/tokio-rs/tracing", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/tracing-log/0.1.3/download", + "url": "https://static.crates.io/crates/tracing-log/0.1.3/download", "sha256": "78ddad33d2d10b1ed7eb9d1f518a5674713876e97e5bb9b7345a7984fbb4f922" } }, @@ -5710,7 +5710,7 @@ "package_url": "https://github.com/tokio-rs/tracing", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/tracing-subscriber/0.3.16/download", + "url": "https://static.crates.io/crates/tracing-subscriber/0.3.16/download", "sha256": "a6176eae26dd70d0c919749377897b54a9276bd7061339665dd68777926b5a70" } }, @@ -5811,7 +5811,7 @@ "package_url": "https://github.com/tree-sitter/tree-sitter", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/tree-sitter/0.20.10/download", + "url": "https://static.crates.io/crates/tree-sitter/0.20.10/download", "sha256": "e747b1f9b7b931ed39a548c1fae149101497de3c1fc8d9e18c62c1a66c683d3d" } }, @@ -6028,7 +6028,7 @@ "package_url": "https://github.com/dtolnay/unicode-ident", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/unicode-ident/1.0.8/download", + "url": "https://static.crates.io/crates/unicode-ident/1.0.8/download", "sha256": "e5464a87b239f13a63a501f2701565754bae92d243d4bb7eb12f6d57d2269bf4" } }, @@ -6065,7 +6065,7 @@ "package_url": "https://github.com/unicode-rs/unicode-width", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/unicode-width/0.1.10/download", + "url": "https://static.crates.io/crates/unicode-width/0.1.10/download", "sha256": "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b" } }, @@ -6101,7 +6101,7 @@ "package_url": "https://github.com/alacritty/vte", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/utf8parse/0.2.1/download", + "url": "https://static.crates.io/crates/utf8parse/0.2.1/download", "sha256": "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" } }, @@ -6143,7 +6143,7 @@ "package_url": "https://github.com/tokio-rs/valuable", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/valuable/0.1.0/download", + "url": "https://static.crates.io/crates/valuable/0.1.0/download", "sha256": "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" } }, @@ -6201,7 +6201,7 @@ "package_url": "https://github.com/bytecodealliance/wasi", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/wasi/0.10.0+wasi-snapshot-preview1/download", + "url": "https://static.crates.io/crates/wasi/0.10.0+wasi-snapshot-preview1/download", "sha256": "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f" } }, @@ -6244,7 +6244,7 @@ "package_url": "https://github.com/rustwasm/wasm-bindgen", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/wasm-bindgen/0.2.84/download", + "url": "https://static.crates.io/crates/wasm-bindgen/0.2.84/download", "sha256": "31f8dcbc21f30d9b8f2ea926ecb58f6b91192c17e9d33594b3df58b2007ca53b" } }, @@ -6324,7 +6324,7 @@ "package_url": "https://github.com/rustwasm/wasm-bindgen/tree/master/crates/backend", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/wasm-bindgen-backend/0.2.84/download", + "url": "https://static.crates.io/crates/wasm-bindgen-backend/0.2.84/download", "sha256": "95ce90fd5bcc06af55a641a86428ee4229e44e07033963a2290a8e241607ccb9" } }, @@ -6399,7 +6399,7 @@ "package_url": "https://github.com/rustwasm/wasm-bindgen/tree/master/crates/macro", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/wasm-bindgen-macro/0.2.84/download", + "url": "https://static.crates.io/crates/wasm-bindgen-macro/0.2.84/download", "sha256": "4c21f77c0bedc37fd5dc21f897894a5ca01e7bb159884559461862ae90c0b4c5" } }, @@ -6454,7 +6454,7 @@ "package_url": "https://github.com/rustwasm/wasm-bindgen/tree/master/crates/macro-support", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/wasm-bindgen-macro-support/0.2.84/download", + "url": "https://static.crates.io/crates/wasm-bindgen-macro-support/0.2.84/download", "sha256": "2aff81306fcac3c7515ad4e177f521b5c9a15f2b08f4e32d823066102f35a5f6" } }, @@ -6521,7 +6521,7 @@ "package_url": "https://github.com/rustwasm/wasm-bindgen/tree/master/crates/shared", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/wasm-bindgen-shared/0.2.84/download", + "url": "https://static.crates.io/crates/wasm-bindgen-shared/0.2.84/download", "sha256": "0046fef7e28c3804e5e38bfa31ea2a0f73905319b677e57ebe37e49358989b5d" } }, @@ -6581,7 +6581,7 @@ "package_url": "https://github.com/retep998/winapi-rs", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/winapi/0.3.9/download", + "url": "https://static.crates.io/crates/winapi/0.3.9/download", "sha256": "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" } }, @@ -6670,7 +6670,7 @@ "package_url": "https://github.com/retep998/winapi-rs", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/winapi-i686-pc-windows-gnu/0.4.0/download", + "url": "https://static.crates.io/crates/winapi-i686-pc-windows-gnu/0.4.0/download", "sha256": "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" } }, @@ -6729,7 +6729,7 @@ "package_url": "https://github.com/BurntSushi/winapi-util", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/winapi-util/0.1.5/download", + "url": "https://static.crates.io/crates/winapi-util/0.1.5/download", "sha256": "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" } }, @@ -6776,7 +6776,7 @@ "package_url": "https://github.com/retep998/winapi-rs", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/winapi-x86_64-pc-windows-gnu/0.4.0/download", + "url": "https://static.crates.io/crates/winapi-x86_64-pc-windows-gnu/0.4.0/download", "sha256": "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" } }, @@ -6835,7 +6835,7 @@ "package_url": "https://github.com/microsoft/windows-rs", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/windows/0.48.0/download", + "url": "https://static.crates.io/crates/windows/0.48.0/download", "sha256": "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f" } }, @@ -6880,7 +6880,7 @@ "package_url": "https://github.com/microsoft/windows-rs", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/windows-sys/0.45.0/download", + "url": "https://static.crates.io/crates/windows-sys/0.45.0/download", "sha256": "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" } }, @@ -6939,7 +6939,7 @@ "package_url": "https://github.com/microsoft/windows-rs", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/windows-sys/0.48.0/download", + "url": "https://static.crates.io/crates/windows-sys/0.48.0/download", "sha256": "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" } }, @@ -7000,7 +7000,7 @@ "package_url": "https://github.com/microsoft/windows-rs", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/windows-targets/0.42.2/download", + "url": "https://static.crates.io/crates/windows-targets/0.42.2/download", "sha256": "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" } }, @@ -7113,7 +7113,7 @@ "package_url": "https://github.com/microsoft/windows-rs", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/windows-targets/0.48.0/download", + "url": "https://static.crates.io/crates/windows-targets/0.48.0/download", "sha256": "7b1eb6f0cd7c80c79759c929114ef071b87354ce476d9d94271031c0497adfd5" } }, @@ -7196,7 +7196,7 @@ "package_url": "https://github.com/microsoft/windows-rs", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/windows_aarch64_gnullvm/0.42.2/download", + "url": "https://static.crates.io/crates/windows_aarch64_gnullvm/0.42.2/download", "sha256": "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" } }, @@ -7255,7 +7255,7 @@ "package_url": "https://github.com/microsoft/windows-rs", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/windows_aarch64_gnullvm/0.48.0/download", + "url": "https://static.crates.io/crates/windows_aarch64_gnullvm/0.48.0/download", "sha256": "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc" } }, @@ -7314,7 +7314,7 @@ "package_url": "https://github.com/microsoft/windows-rs", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/windows_aarch64_msvc/0.42.2/download", + "url": "https://static.crates.io/crates/windows_aarch64_msvc/0.42.2/download", "sha256": "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" } }, @@ -7373,7 +7373,7 @@ "package_url": "https://github.com/microsoft/windows-rs", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/windows_aarch64_msvc/0.48.0/download", + "url": "https://static.crates.io/crates/windows_aarch64_msvc/0.48.0/download", "sha256": "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3" } }, @@ -7432,7 +7432,7 @@ "package_url": "https://github.com/microsoft/windows-rs", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/windows_i686_gnu/0.42.2/download", + "url": "https://static.crates.io/crates/windows_i686_gnu/0.42.2/download", "sha256": "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" } }, @@ -7491,7 +7491,7 @@ "package_url": "https://github.com/microsoft/windows-rs", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/windows_i686_gnu/0.48.0/download", + "url": "https://static.crates.io/crates/windows_i686_gnu/0.48.0/download", "sha256": "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241" } }, @@ -7550,7 +7550,7 @@ "package_url": "https://github.com/microsoft/windows-rs", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/windows_i686_msvc/0.42.2/download", + "url": "https://static.crates.io/crates/windows_i686_msvc/0.42.2/download", "sha256": "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" } }, @@ -7609,7 +7609,7 @@ "package_url": "https://github.com/microsoft/windows-rs", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/windows_i686_msvc/0.48.0/download", + "url": "https://static.crates.io/crates/windows_i686_msvc/0.48.0/download", "sha256": "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00" } }, @@ -7668,7 +7668,7 @@ "package_url": "https://github.com/microsoft/windows-rs", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/windows_x86_64_gnu/0.42.2/download", + "url": "https://static.crates.io/crates/windows_x86_64_gnu/0.42.2/download", "sha256": "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" } }, @@ -7727,7 +7727,7 @@ "package_url": "https://github.com/microsoft/windows-rs", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/windows_x86_64_gnu/0.48.0/download", + "url": "https://static.crates.io/crates/windows_x86_64_gnu/0.48.0/download", "sha256": "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1" } }, @@ -7786,7 +7786,7 @@ "package_url": "https://github.com/microsoft/windows-rs", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/windows_x86_64_gnullvm/0.42.2/download", + "url": "https://static.crates.io/crates/windows_x86_64_gnullvm/0.42.2/download", "sha256": "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" } }, @@ -7845,7 +7845,7 @@ "package_url": "https://github.com/microsoft/windows-rs", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/windows_x86_64_gnullvm/0.48.0/download", + "url": "https://static.crates.io/crates/windows_x86_64_gnullvm/0.48.0/download", "sha256": "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953" } }, @@ -7904,7 +7904,7 @@ "package_url": "https://github.com/microsoft/windows-rs", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/windows_x86_64_msvc/0.42.2/download", + "url": "https://static.crates.io/crates/windows_x86_64_msvc/0.42.2/download", "sha256": "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" } }, @@ -7963,7 +7963,7 @@ "package_url": "https://github.com/microsoft/windows-rs", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/windows_x86_64_msvc/0.48.0/download", + "url": "https://static.crates.io/crates/windows_x86_64_msvc/0.48.0/download", "sha256": "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a" } }, diff --git a/ruby/ql/lib/codeql/ruby/AST.qll b/ruby/ql/lib/codeql/ruby/AST.qll index d517c8f4d44f..e8dc28692c07 100644 --- a/ruby/ql/lib/codeql/ruby/AST.qll +++ b/ruby/ql/lib/codeql/ruby/AST.qll @@ -137,7 +137,12 @@ class AstNode extends TAstNode { /** A Ruby source file */ class RubyFile extends File { - RubyFile() { ruby_ast_node_info(_, this, _, _) } + RubyFile() { + exists(Location loc | + ruby_ast_node_location(_, loc) and + this = loc.getFile() + ) + } /** Gets a token in this file. */ private Ruby::Token getAToken() { result.getLocation().getFile() = this } diff --git a/ruby/ql/lib/codeql/ruby/ast/internal/TreeSitter.qll b/ruby/ql/lib/codeql/ruby/ast/internal/TreeSitter.qll index ef268f69ded3..441f4ffefcc6 100644 --- a/ruby/ql/lib/codeql/ruby/ast/internal/TreeSitter.qll +++ b/ruby/ql/lib/codeql/ruby/ast/internal/TreeSitter.qll @@ -12,13 +12,13 @@ module Ruby { string toString() { result = this.getAPrimaryQlClass() } /** Gets the location of this element. */ - final L::Location getLocation() { ruby_ast_node_info(this, _, _, result) } + final L::Location getLocation() { ruby_ast_node_location(this, result) } /** Gets the parent of this element. */ - final AstNode getParent() { ruby_ast_node_info(this, result, _, _) } + final AstNode getParent() { ruby_ast_node_parent(this, result, _) } /** Gets the index of this node among the children of its parent. */ - final int getParentIndex() { ruby_ast_node_info(this, _, result, _) } + final int getParentIndex() { ruby_ast_node_parent(this, _, result) } /** Gets a field or child node of this node. */ AstNode getAFieldOrChild() { none() } @@ -1929,13 +1929,13 @@ module Erb { string toString() { result = this.getAPrimaryQlClass() } /** Gets the location of this element. */ - final L::Location getLocation() { erb_ast_node_info(this, _, _, result) } + final L::Location getLocation() { erb_ast_node_location(this, result) } /** Gets the parent of this element. */ - final AstNode getParent() { erb_ast_node_info(this, result, _, _) } + final AstNode getParent() { erb_ast_node_parent(this, result, _) } /** Gets the index of this node among the children of its parent. */ - final int getParentIndex() { erb_ast_node_info(this, _, result, _) } + final int getParentIndex() { erb_ast_node_parent(this, _, result) } /** Gets a field or child node of this node. */ AstNode getAFieldOrChild() { none() } diff --git a/ruby/ql/lib/ruby.dbscheme b/ruby/ql/lib/ruby.dbscheme index f9f0f4023e43..440de75c71e9 100644 --- a/ruby/ql/lib/ruby.dbscheme +++ b/ruby/ql/lib/ruby.dbscheme @@ -1421,14 +1421,16 @@ case @ruby_token.kind of @ruby_ast_node = @ruby_alias | @ruby_alternative_pattern | @ruby_argument_list | @ruby_array | @ruby_array_pattern | @ruby_as_pattern | @ruby_assignment | @ruby_bare_string | @ruby_bare_symbol | @ruby_begin | @ruby_begin_block | @ruby_binary | @ruby_block | @ruby_block_argument | @ruby_block_body | @ruby_block_parameter | @ruby_block_parameters | @ruby_body_statement | @ruby_break | @ruby_call | @ruby_case__ | @ruby_case_match | @ruby_chained_string | @ruby_class | @ruby_complex | @ruby_conditional | @ruby_delimited_symbol | @ruby_destructured_left_assignment | @ruby_destructured_parameter | @ruby_do | @ruby_do_block | @ruby_element_reference | @ruby_else | @ruby_elsif | @ruby_end_block | @ruby_ensure | @ruby_exception_variable | @ruby_exceptions | @ruby_expression_reference_pattern | @ruby_find_pattern | @ruby_for | @ruby_hash | @ruby_hash_pattern | @ruby_hash_splat_argument | @ruby_hash_splat_parameter | @ruby_heredoc_body | @ruby_if | @ruby_if_guard | @ruby_if_modifier | @ruby_in | @ruby_in_clause | @ruby_interpolation | @ruby_keyword_parameter | @ruby_keyword_pattern | @ruby_lambda | @ruby_lambda_parameters | @ruby_left_assignment_list | @ruby_match_pattern | @ruby_method | @ruby_method_parameters | @ruby_module | @ruby_next | @ruby_operator_assignment | @ruby_optional_parameter | @ruby_pair | @ruby_parenthesized_pattern | @ruby_parenthesized_statements | @ruby_pattern | @ruby_program | @ruby_range | @ruby_rational | @ruby_redo | @ruby_regex | @ruby_rescue | @ruby_rescue_modifier | @ruby_rest_assignment | @ruby_retry | @ruby_return | @ruby_right_assignment_list | @ruby_scope_resolution | @ruby_setter | @ruby_singleton_class | @ruby_singleton_method | @ruby_splat_argument | @ruby_splat_parameter | @ruby_string__ | @ruby_string_array | @ruby_subshell | @ruby_superclass | @ruby_symbol_array | @ruby_test_pattern | @ruby_then | @ruby_token | @ruby_unary | @ruby_undef | @ruby_unless | @ruby_unless_guard | @ruby_unless_modifier | @ruby_until | @ruby_until_modifier | @ruby_variable_reference_pattern | @ruby_when | @ruby_while | @ruby_while_modifier | @ruby_yield -@ruby_ast_node_parent = @file | @ruby_ast_node +ruby_ast_node_location( + unique int node: @ruby_ast_node ref, + int loc: @location_default ref +); #keyset[parent, parent_index] -ruby_ast_node_info( +ruby_ast_node_parent( unique int node: @ruby_ast_node ref, - int parent: @ruby_ast_node_parent ref, - int parent_index: int ref, - int loc: @location_default ref + int parent: @ruby_ast_node ref, + int parent_index: int ref ); /*- Erb dbscheme -*/ @@ -1497,13 +1499,15 @@ case @erb_token.kind of @erb_ast_node = @erb_comment_directive | @erb_directive | @erb_graphql_directive | @erb_output_directive | @erb_template | @erb_token -@erb_ast_node_parent = @erb_ast_node | @file +erb_ast_node_location( + unique int node: @erb_ast_node ref, + int loc: @location_default ref +); #keyset[parent, parent_index] -erb_ast_node_info( +erb_ast_node_parent( unique int node: @erb_ast_node ref, - int parent: @erb_ast_node_parent ref, - int parent_index: int ref, - int loc: @location_default ref + int parent: @erb_ast_node ref, + int parent_index: int ref ); diff --git a/ruby/ql/lib/ruby.dbscheme.stats b/ruby/ql/lib/ruby.dbscheme.stats index e7d7f5e27eb7..fd8850293b49 100644 --- a/ruby/ql/lib/ruby.dbscheme.stats +++ b/ruby/ql/lib/ruby.dbscheme.stats @@ -5,7 +5,7 @@ @diagnostic_error - 156 + 0 @diagnostic_info @@ -13,15 +13,15 @@ @diagnostic_warning - 0 + 188 @erb_comment_directive - 40 + 26 @erb_directive - 1225 + 1108 @erb_graphql_directive @@ -29,43 +29,43 @@ @erb_output_directive - 3555 + 3270 @erb_reserved_word - 9567 + 8756 @erb_template - 1531 + 1508 @erb_token_code - 4781 + 4378 @erb_token_comment - 27 + 26 @erb_token_content - 4977 + 4555 @file - 18245 + 18724 @folder - 5002 + 5165 @location_default - 9022418 + 9223392 @ruby_alias - 1307 + 1289 @ruby_alternative_pattern @@ -73,35 +73,35 @@ @ruby_argument_list - 691738 + 706474 @ruby_array - 248289 + 249320 @ruby_array_pattern - 178 + 179 @ruby_as_pattern - 153 + 156 @ruby_assignment - 137583 + 141202 @ruby_bare_string - 12799 + 13136 @ruby_bare_symbol - 7967 + 8435 @ruby_begin - 2590 + 2610 @ruby_begin_block @@ -109,143 +109,143 @@ @ruby_binary_ampersand - 570 + 630 @ruby_binary_ampersandampersand - 8179 + 8142 @ruby_binary_and - 1233 + 1189 @ruby_binary_bangequal - 1459 + 1434 @ruby_binary_bangtilde - 168 + 176 @ruby_binary_caret - 160 + 153 @ruby_binary_equalequal - 32934 + 33761 @ruby_binary_equalequalequal - 656 + 689 @ruby_binary_equaltilde - 1800 + 1823 @ruby_binary_langle - 1181 + 1101 @ruby_binary_langleequal - 407 + 431 @ruby_binary_langleequalrangle - 778 + 764 @ruby_binary_langlelangle - 10731 + 10779 @ruby_binary_minus - 2691 + 2747 @ruby_binary_or - 635 + 647 @ruby_binary_percent - 979 + 986 @ruby_binary_pipe - 1000 + 1058 @ruby_binary_pipepipe - 7430 + 7336 @ruby_binary_plus - 6453 + 6593 @ruby_binary_rangle - 2129 + 2114 @ruby_binary_rangleequal - 595 + 597 @ruby_binary_ranglerangle - 234 + 259 @ruby_binary_slash - 1269 + 1169 @ruby_binary_star - 3560 + 3490 @ruby_binary_starstar - 1358 + 1227 @ruby_block - 101695 + 104143 @ruby_block_argument - 6477 + 6547 @ruby_block_body - 101379 + 103820 @ruby_block_parameter - 2569 + 2543 @ruby_block_parameters - 24941 + 25884 @ruby_body_statement - 208998 + 213896 @ruby_break - 3434 + 3414 @ruby_call - 1006605 + 1027501 @ruby_case__ - 1289 + 1319 @ruby_case_match - 234 + 232 @ruby_chained_string @@ -253,47 +253,47 @@ @ruby_class - 17258 + 17441 @ruby_complex - 66 + 72 @ruby_conditional - 2954 + 2896 @ruby_delimited_symbol - 1258 + 1247 @ruby_destructured_left_assignment - 107 + 108 @ruby_destructured_parameter - 194 + 208 @ruby_do - 1681 + 1675 @ruby_do_block - 142452 + 145534 @ruby_element_reference - 80778 + 82606 @ruby_else - 7505 + 7681 @ruby_elsif - 1510 + 1583 @ruby_end_block @@ -301,15 +301,15 @@ @ruby_ensure - 3981 + 4106 @ruby_exception_variable - 924 + 935 @ruby_exceptions - 1938 + 1904 @ruby_expression_reference_pattern @@ -321,31 +321,31 @@ @ruby_for - 158 + 136 @ruby_hash - 40888 + 41915 @ruby_hash_pattern - 75 + 73 @ruby_hash_splat_argument - 1902 + 1989 @ruby_hash_splat_parameter - 1596 + 1574 @ruby_heredoc_body - 6178 + 6934 @ruby_if - 16391 + 16164 @ruby_if_guard @@ -353,39 +353,39 @@ @ruby_if_modifier - 14611 + 14541 @ruby_in - 158 + 136 @ruby_in_clause - 385 + 381 @ruby_interpolation - 38305 + 38493 @ruby_keyword_parameter - 4144 + 4763 @ruby_keyword_pattern - 80 + 77 @ruby_lambda - 7948 + 8187 @ruby_lambda_parameters - 1762 + 1811 @ruby_left_assignment_list - 2994 + 3100 @ruby_match_pattern @@ -393,39 +393,39 @@ @ruby_method - 102124 + 103532 @ruby_method_parameters - 30832 + 31208 @ruby_module - 22353 + 22962 @ruby_next - 1902 + 2020 @ruby_operator_assignment_ampersandampersandequal - 90 + 118 @ruby_operator_assignment_ampersandequal - 18 + 17 @ruby_operator_assignment_caretequal - 5 + 6 @ruby_operator_assignment_langlelangleequal - 26 + 19 @ruby_operator_assignment_minusequal - 300 + 305 @ruby_operator_assignment_percentequal @@ -433,19 +433,19 @@ @ruby_operator_assignment_pipeequal - 156 + 164 @ruby_operator_assignment_pipepipeequal - 4190 + 4272 @ruby_operator_assignment_plusequal - 1647 + 1732 @ruby_operator_assignment_ranglerangleequal - 10 + 11 @ruby_operator_assignment_slashequal @@ -453,7 +453,7 @@ @ruby_operator_assignment_starequal - 52 + 42 @ruby_operator_assignment_starstarequal @@ -461,11 +461,11 @@ @ruby_optional_parameter - 6636 + 6556 @ruby_pair - 248347 + 254198 @ruby_parenthesized_pattern @@ -473,27 +473,27 @@ @ruby_parenthesized_statements - 10912 + 11296 @ruby_pattern - 4153 + 4745 @ruby_program - 18219 + 18697 @ruby_range_dotdot - 3136 + 3690 @ruby_range_dotdotdot - 1634 + 1376 @ruby_rational - 138 + 166 @ruby_redo @@ -501,107 +501,107 @@ @ruby_regex - 13350 + 13680 @ruby_rescue - 2346 + 2299 @ruby_rescue_modifier - 448 + 458 @ruby_reserved_word - 3820965 + 3894800 @ruby_rest_assignment - 401 + 414 @ruby_retry - 60 + 58 @ruby_return - 8197 + 7979 @ruby_right_assignment_list - 1224 + 1280 @ruby_scope_resolution - 84884 + 87113 @ruby_setter - 653 + 656 @ruby_singleton_class - 663 + 677 @ruby_singleton_method - 6459 + 6325 @ruby_splat_argument - 3454 + 3606 @ruby_splat_parameter - 3192 + 3014 @ruby_string__ - 485218 + 490602 @ruby_string_array - 4213 + 4287 @ruby_subshell - 365 + 359 @ruby_superclass - 13666 + 13806 @ruby_symbol_array - 2170 + 2240 @ruby_test_pattern - 4 + 5 @ruby_then - 22451 + 22229 @ruby_token_character - 432 + 440 @ruby_token_class_variable - 868 + 887 @ruby_token_comment - 190672 + 194426 @ruby_token_constant - 294731 + 302373 @ruby_token_empty_statement - 55 + 58 @ruby_token_encoding @@ -609,11 +609,11 @@ @ruby_token_escape_sequence - 77855 + 80835 @ruby_token_false - 17433 + 17355 @ruby_token_file @@ -621,51 +621,51 @@ @ruby_token_float - 8491 + 8689 @ruby_token_forward_argument - 79 + 194 @ruby_token_forward_parameter - 144 + 287 @ruby_token_global_variable - 7342 + 7165 @ruby_token_hash_key_symbol - 241330 + 246826 @ruby_token_hash_splat_nil - 11 + 14 @ruby_token_heredoc_beginning - 6177 + 6933 @ruby_token_heredoc_content - 12929 + 12986 @ruby_token_heredoc_end - 6178 + 6934 @ruby_token_identifier - 1551542 + 1590836 @ruby_token_instance_variable - 87122 + 89852 @ruby_token_integer - 306586 + 310358 @ruby_token_line @@ -673,59 +673,59 @@ @ruby_token_nil - 18636 + 19333 @ruby_token_operator - 849 + 878 @ruby_token_self - 13755 + 14094 @ruby_token_simple_symbol - 261524 + 267609 @ruby_token_string_content - 502063 + 510164 @ruby_token_super - 5313 + 5329 @ruby_token_true - 24277 + 25065 @ruby_token_uninterpreted 11 - + @ruby_unary_bang - 5952 + 5909 @ruby_unary_definedquestion - 1301 + 1369 @ruby_unary_minus - 9633 + 9830 @ruby_unary_not - 190 + 172 @ruby_unary_plus - 1427 + 1394 @ruby_unary_tilde - 98 + 97 @ruby_undef @@ -733,7 +733,7 @@ @ruby_unless - 2663 + 2723 @ruby_unless_guard @@ -741,15 +741,15 @@ @ruby_unless_modifier - 3505 + 3416 @ruby_until - 123 + 126 @ruby_until_modifier - 234 + 238 @ruby_variable_reference_pattern @@ -757,19 +757,19 @@ @ruby_when - 3392 + 3882 @ruby_while - 1400 + 1413 @ruby_while_modifier - 194 + 198 @ruby_yield - 2477 + 2450 @yaml_alias_node @@ -794,15 +794,15 @@ containerparent - 23222 + 23863 parent - 5002 + 5165 child - 23222 + 23863 @@ -816,37 +816,37 @@ 1 2 - 2290 + 2394 2 3 - 934 + 968 3 4 - 421 + 417 4 5 - 315 + 295 5 7 - 408 + 443 7 14 - 408 + 403 14 126 - 223 + 242 @@ -862,7 +862,7 @@ 1 2 - 23222 + 23863 @@ -872,11 +872,11 @@ diagnostics - 157 + 188 id - 157 + 188 severity @@ -888,15 +888,15 @@ error_message - 26 + 53 full_error_message - 118 + 161 location - 157 + 174 @@ -910,7 +910,7 @@ 1 2 - 157 + 188 @@ -926,7 +926,7 @@ 1 2 - 157 + 188 @@ -942,7 +942,7 @@ 1 2 - 157 + 188 @@ -958,7 +958,7 @@ 1 2 - 157 + 188 @@ -974,7 +974,7 @@ 1 2 - 157 + 188 @@ -988,8 +988,8 @@ 12 - 12 - 13 + 14 + 15 13 @@ -1020,8 +1020,8 @@ 12 - 2 - 3 + 4 + 5 13 @@ -1036,8 +1036,8 @@ 12 - 9 - 10 + 12 + 13 13 @@ -1052,8 +1052,8 @@ 12 - 12 - 13 + 13 + 14 13 @@ -1068,8 +1068,8 @@ 12 - 12 - 13 + 14 + 15 13 @@ -1100,8 +1100,8 @@ 12 - 2 - 3 + 4 + 5 13 @@ -1116,8 +1116,8 @@ 12 - 9 - 10 + 12 + 13 13 @@ -1132,8 +1132,8 @@ 12 - 12 - 13 + 13 + 14 13 @@ -1150,11 +1150,16 @@ 1 2 + 26 + + + 2 + 3 13 - 11 - 12 + 10 + 11 13 @@ -1171,7 +1176,7 @@ 1 2 - 26 + 53 @@ -1187,7 +1192,7 @@ 1 2 - 26 + 53 @@ -1203,6 +1208,11 @@ 1 2 + 26 + + + 2 + 3 13 @@ -1224,11 +1234,16 @@ 1 2 + 26 + + + 2 + 3 13 - 11 - 12 + 10 + 11 13 @@ -1245,12 +1260,12 @@ 1 2 - 78 + 134 2 3 - 39 + 26 @@ -1266,7 +1281,7 @@ 1 2 - 118 + 161 @@ -1282,7 +1297,7 @@ 1 2 - 118 + 161 @@ -1298,7 +1313,7 @@ 1 2 - 118 + 161 @@ -1314,12 +1329,12 @@ 1 2 - 78 + 134 2 3 - 39 + 26 @@ -1335,7 +1350,12 @@ 1 2 - 157 + 161 + + + 2 + 3 + 13 @@ -1351,7 +1371,7 @@ 1 2 - 157 + 174 @@ -1367,7 +1387,7 @@ 1 2 - 157 + 174 @@ -1383,7 +1403,12 @@ 1 2 - 157 + 161 + + + 2 + 3 + 13 @@ -1399,7 +1424,12 @@ 1 2 - 157 + 161 + + + 2 + 3 + 13 @@ -1408,30 +1438,22 @@ - erb_ast_node_info - 24486 + erb_ast_node_location + 22409 node - 24486 - - - parent - 5532 - - - parent_index - 608 + 22409 loc - 24484 + 22407 node - parent + loc 12 @@ -1439,15 +1461,15 @@ 1 2 - 24486 + 22409 - node - parent_index + loc + node 12 @@ -1455,15 +1477,40 @@ 1 2 - 24486 + 22404 + + + 2 + 3 + 2 + + + + erb_ast_node_parent + 22069 + + + node + 22069 + + + parent + 4718 + + + parent_index + 564 + + + node - loc + parent 12 @@ -1471,33 +1518,23 @@ 1 2 - 24486 + 22069 - parent - node + node + parent_index 12 1 - 3 - 384 - - - 3 - 4 - 4908 - - - 4 - 240 - 239 + 2 + 22069 @@ -1505,7 +1542,7 @@ parent - parent_index + node 12 @@ -1513,17 +1550,17 @@ 1 3 - 384 + 9 3 4 - 4908 + 4494 4 240 - 239 + 215 @@ -1531,7 +1568,7 @@ parent - loc + parent_index 12 @@ -1539,17 +1576,17 @@ 1 3 - 384 + 9 3 4 - 4908 + 4494 4 240 - 239 + 215 @@ -1565,62 +1602,57 @@ 1 2 - 33 + 25 2 3 - 84 + 33 3 4 - 12 + 33 4 5 - 101 + 122 5 6 - 53 + 96 6 - 7 - 50 - - - 7 8 - 43 + 40 8 - 14 - 50 + 13 + 42 - 14 - 23 - 53 + 13 + 20 + 44 - 24 - 39 - 45 + 21 + 31 + 42 - 41 - 62 - 45 + 35 + 55 + 44 - 65 - 2173 - 33 + 55 + 1998 + 37 @@ -1636,191 +1668,57 @@ 1 2 - 33 + 25 2 3 - 84 + 33 3 4 - 12 + 33 4 5 - 101 + 122 5 6 - 53 + 96 6 - 7 - 50 - - - 7 8 - 43 + 40 8 - 14 - 50 + 13 + 42 - 14 - 23 - 53 + 13 + 20 + 44 - 24 - 39 - 45 + 21 + 31 + 42 - 41 - 62 - 45 + 35 + 55 + 44 - 65 - 2173 - 33 - - - - - - - parent_index - loc - - - 12 - - - 1 - 2 - 33 - - - 2 - 3 - 84 - - - 3 - 4 - 12 - - - 4 - 5 - 101 - - - 5 - 6 - 53 - - - 6 - 7 - 50 - - - 7 - 8 - 43 - - - 8 - 14 - 50 - - - 14 - 23 - 53 - - - 24 - 39 - 45 - - - 41 - 62 - 45 - - - 65 - 2172 - 33 - - - - - - - loc - node - - - 12 - - - 1 - 2 - 24481 - - - 2 - 3 - 2 - - - - - - - loc - parent - - - 12 - - - 1 - 2 - 24481 - - - 2 - 3 - 2 - - - - - - - loc - parent_index - - - 12 - - - 1 - 2 - 24484 + 55 + 1998 + 37 @@ -1830,15 +1728,15 @@ erb_comment_directive_child - 27 + 26 erb_comment_directive - 27 + 26 child - 27 + 26 @@ -1852,7 +1750,7 @@ 1 2 - 27 + 26 @@ -1868,7 +1766,7 @@ 1 2 - 27 + 26 @@ -1878,26 +1776,26 @@ erb_comment_directive_def - 27 + 26 id - 27 + 26 erb_directive_child - 1225 + 1108 erb_directive - 1225 + 1108 child - 1225 + 1108 @@ -1911,7 +1809,7 @@ 1 2 - 1225 + 1108 @@ -1927,7 +1825,7 @@ 1 2 - 1225 + 1108 @@ -1937,11 +1835,11 @@ erb_directive_def - 1225 + 1108 id - 1225 + 1108 @@ -2007,15 +1905,15 @@ erb_output_directive_child - 3555 + 3270 erb_output_directive - 3555 + 3270 child - 3555 + 3270 @@ -2029,7 +1927,7 @@ 1 2 - 3555 + 3270 @@ -2045,7 +1943,7 @@ 1 2 - 3555 + 3270 @@ -2055,30 +1953,30 @@ erb_output_directive_def - 3555 + 3270 id - 3555 + 3270 erb_template_child - 9761 + 8934 erb_template - 374 + 340 index - 608 + 564 child - 9761 + 8934 @@ -2092,53 +1990,58 @@ 1 3 - 10 + 9 3 4 - 124 + 115 4 7 - 25 + 21 7 - 11 - 30 + 10 + 25 - 11 - 15 - 33 + 10 + 14 + 28 - 15 - 26 - 30 + 14 + 24 + 25 - 27 - 35 - 30 + 24 + 33 + 25 - 35 - 50 - 33 + 33 + 44 + 25 - 53 - 78 - 30 + 45 + 64 + 25 - 82 - 240 + 67 + 149 25 + + 200 + 240 + 9 + @@ -2153,53 +2056,58 @@ 1 3 - 10 + 9 3 4 - 124 + 115 4 7 - 25 + 21 7 - 11 - 30 + 10 + 25 - 11 - 15 - 33 + 10 + 14 + 28 - 15 - 26 - 30 + 14 + 24 + 25 - 27 - 35 - 30 + 24 + 33 + 25 - 35 - 50 - 33 + 33 + 44 + 25 - 53 - 78 - 30 + 45 + 64 + 25 - 82 - 240 + 67 + 149 25 + + 200 + 240 + 9 + @@ -2214,62 +2122,57 @@ 1 2 - 33 + 25 2 3 - 84 + 33 3 4 - 12 + 33 4 5 - 101 + 122 5 6 - 53 + 96 6 - 7 - 50 - - - 7 8 - 43 + 40 8 - 14 - 50 + 13 + 42 - 14 - 23 - 53 + 13 + 20 + 44 - 24 - 39 - 45 + 21 + 31 + 42 - 41 - 62 - 45 + 35 + 55 + 44 - 65 - 148 - 33 + 55 + 145 + 37 @@ -2285,62 +2188,57 @@ 1 2 - 33 + 25 2 3 - 84 + 33 3 4 - 12 + 33 4 5 - 101 + 122 5 6 - 53 + 96 6 - 7 - 50 - - - 7 8 - 43 + 40 8 - 14 - 50 + 13 + 42 - 14 - 23 - 53 + 13 + 20 + 44 - 24 - 39 - 45 + 21 + 31 + 42 - 41 - 62 - 45 + 35 + 55 + 44 - 65 - 148 - 33 + 55 + 145 + 37 @@ -2356,7 +2254,7 @@ 1 2 - 9761 + 8934 @@ -2372,7 +2270,7 @@ 1 2 - 9761 + 8934 @@ -2382,30 +2280,30 @@ erb_template_def - 1531 + 1508 id - 1531 + 1508 erb_tokeninfo - 19328 + 17690 id - 19328 + 17690 kind - 10 + 7 value - 5305 + 4822 @@ -2419,7 +2317,7 @@ 1 2 - 19328 + 17690 @@ -2435,7 +2333,7 @@ 1 2 - 19328 + 17690 @@ -2449,23 +2347,18 @@ 12 - 1 - 2 - 2 - - - 1877 - 1878 + 1853 + 1854 2 - 1954 - 1955 + 1928 + 1929 2 - 3756 - 3757 + 3706 + 3707 2 @@ -2480,23 +2373,18 @@ 12 - 1 - 2 - 2 - - - 6 - 7 + 5 + 6 2 - 992 - 993 + 984 + 985 2 - 1084 - 1085 + 1052 + 1053 2 @@ -2513,17 +2401,17 @@ 1 2 - 4289 + 3879 2 3 - 636 + 600 3 - 1811 - 379 + 1786 + 342 @@ -2539,7 +2427,7 @@ 1 2 - 5305 + 4822 @@ -2549,15 +2437,15 @@ files - 18245 + 18724 id - 18245 + 18724 name - 18245 + 18724 @@ -2571,7 +2459,7 @@ 1 2 - 18245 + 18724 @@ -2587,7 +2475,7 @@ 1 2 - 18245 + 18724 @@ -2597,15 +2485,15 @@ folders - 5002 + 5165 id - 5002 + 5165 name - 5002 + 5165 @@ -2619,7 +2507,7 @@ 1 2 - 5002 + 5165 @@ -2635,7 +2523,7 @@ 1 2 - 5002 + 5165 @@ -2645,31 +2533,31 @@ locations_default - 9022418 + 9223392 id - 9022418 + 9223392 file - 18245 + 18724 beginLine - 31147 + 31826 beginColumn - 5186 + 5300 endLine - 31147 + 31826 endColumn - 5292 + 5407 @@ -2683,7 +2571,7 @@ 1 2 - 9022418 + 9223392 @@ -2699,7 +2587,7 @@ 1 2 - 9022418 + 9223392 @@ -2715,7 +2603,7 @@ 1 2 - 9022418 + 9223392 @@ -2731,7 +2619,7 @@ 1 2 - 9022418 + 9223392 @@ -2747,7 +2635,7 @@ 1 2 - 9022418 + 9223392 @@ -2763,72 +2651,72 @@ 1 32 - 1434 + 1479 32 47 - 1382 + 1412 47 - 70 - 1369 + 71 + 1452 - 70 - 91 - 1369 + 71 + 94 + 1439 - 91 - 117 - 1369 + 94 + 119 + 1412 - 117 - 159 - 1395 + 119 + 161 + 1412 - 159 - 208 - 1408 + 161 + 209 + 1466 - 208 - 256 - 1369 + 209 + 260 + 1439 - 256 - 326 - 1408 + 260 + 333 + 1412 - 327 - 444 - 1382 + 336 + 445 + 1425 - 444 - 671 - 1369 + 445 + 679 + 1412 - 671 - 1185 - 1369 + 684 + 1221 + 1412 - 1186 - 4592 - 1369 + 1228 + 5812 + 1412 - 4636 + 7145 22841 - 250 + 134 @@ -2844,67 +2732,67 @@ 1 7 - 1342 + 1398 7 10 - 1632 + 1641 10 13 - 1434 + 1479 13 16 - 1592 + 1668 16 20 - 1579 + 1600 20 - 24 - 1369 + 25 + 1587 - 24 - 30 - 1448 + 25 + 31 + 1573 - 30 - 37 - 1487 + 31 + 38 + 1506 - 37 - 47 - 1395 + 38 + 49 + 1506 - 47 - 64 - 1382 + 49 + 69 + 1425 - 64 - 99 - 1382 + 69 + 117 + 1425 - 100 - 207 - 1382 + 119 + 275 + 1412 - 207 + 276 2339 - 816 + 497 @@ -2920,67 +2808,67 @@ 1 16 - 1487 + 1533 16 - 23 - 1395 + 24 + 1493 - 23 - 30 - 1382 + 24 + 31 + 1412 - 30 - 39 - 1369 + 31 + 40 + 1573 - 39 - 45 - 1527 + 40 + 46 + 1452 - 45 + 46 52 - 1566 + 1533 52 - 59 - 1369 + 60 + 1587 - 59 - 67 - 1566 + 60 + 68 + 1721 - 67 - 73 - 1448 + 68 + 76 + 1533 - 73 - 82 - 1408 + 76 + 85 + 1452 - 82 - 94 - 1448 + 85 + 98 + 1412 - 94 - 114 - 1395 + 98 + 122 + 1412 - 114 + 122 357 - 882 + 605 @@ -2996,67 +2884,67 @@ 1 7 - 1342 + 1398 7 10 - 1592 + 1600 10 13 - 1461 + 1506 13 16 - 1566 + 1641 16 20 - 1592 + 1614 20 - 24 - 1382 + 25 + 1600 - 24 - 30 - 1461 + 25 + 31 + 1587 - 30 - 37 - 1487 + 31 + 38 + 1506 - 37 - 47 - 1395 + 38 + 49 + 1506 - 47 - 64 - 1382 + 49 + 69 + 1425 - 64 - 99 - 1382 + 69 + 117 + 1425 - 100 - 207 - 1382 + 119 + 275 + 1412 - 207 + 276 2339 - 816 + 497 @@ -3071,68 +2959,68 @@ 1 - 20 - 1632 + 19 + 1412 - 20 - 28 - 1395 + 19 + 27 + 1587 - 28 - 36 - 1513 + 27 + 35 + 1425 - 36 - 45 - 1434 + 35 + 44 + 1452 - 45 - 51 - 1487 + 44 + 50 + 1600 - 51 - 58 - 1513 + 50 + 57 + 1533 - 58 - 66 - 1500 + 57 + 64 + 1439 - 66 - 73 - 1500 + 64 + 71 + 1412 - 73 - 80 - 1448 + 71 + 78 + 1533 - 80 - 89 - 1421 + 78 + 87 + 1520 - 89 - 102 - 1474 + 87 + 99 + 1493 - 102 - 128 - 1369 + 99 + 118 + 1425 - 128 + 118 367 - 552 + 887 @@ -3148,72 +3036,72 @@ 1 2 - 1566 + 1600 2 5 - 1592 + 1627 5 6 - 3409 + 3484 6 10 - 2646 + 2676 10 17 - 2804 + 2878 17 24 - 2409 + 2421 24 43 - 2382 + 2448 43 78 - 2369 + 2394 78 - 118 - 2395 + 117 + 2394 - 118 - 174 - 2343 + 117 + 168 + 2407 - 174 - 268 - 2356 + 169 + 262 + 2421 - 271 - 751 - 2343 + 262 + 703 + 2394 - 757 - 7072 - 2343 + 708 + 5999 + 2394 - 7434 - 10856 - 184 + 6159 + 10971 + 282 @@ -3229,47 +3117,47 @@ 1 2 - 10083 + 10304 2 3 - 5555 + 5609 3 - 6 - 2343 + 7 + 2838 - 6 - 9 - 2330 + 7 + 10 + 2663 - 9 - 14 - 2501 + 10 + 15 + 2407 - 14 - 21 - 2356 + 15 + 23 + 2394 - 21 - 44 - 2356 + 23 + 58 + 2407 - 44 - 179 - 2356 + 58 + 287 + 2394 - 180 - 1386 - 1263 + 296 + 1392 + 807 @@ -3285,72 +3173,72 @@ 1 2 - 1566 + 1600 2 3 - 1474 + 1520 3 4 - 2356 + 2394 4 6 - 2606 + 2650 6 8 - 1777 + 1775 8 13 - 2711 + 2811 13 18 - 2474 + 2448 18 29 - 2540 + 2582 29 44 - 2343 + 2475 44 56 - 2422 + 2582 56 - 68 - 2409 + 69 + 2475 - 68 - 85 - 2448 + 69 + 86 + 2461 - 85 - 112 - 2369 + 86 + 113 + 2407 - 112 + 113 205 - 1645 + 1641 @@ -3366,42 +3254,42 @@ 1 2 - 11123 + 11299 2 3 - 6411 + 6591 3 4 - 2369 + 2380 4 5 - 1685 + 1815 5 7 - 2553 + 2623 7 - 11 - 2856 + 10 + 2367 - 11 - 19 - 2488 + 10 + 17 + 2461 - 19 - 242 - 1658 + 17 + 240 + 2286 @@ -3417,72 +3305,72 @@ 1 2 - 1566 + 1600 2 4 - 1592 + 1627 4 5 - 3462 + 3537 5 7 - 2119 + 2152 7 11 - 2698 + 2744 11 15 - 2409 + 2461 15 24 - 2395 + 2394 24 39 - 2369 + 2421 39 52 - 2409 + 2448 52 65 - 2369 + 2542 65 - 79 - 2474 + 80 + 2555 - 79 - 101 - 2395 + 80 + 102 + 2434 - 101 - 135 - 2356 + 102 + 136 + 2421 - 135 - 208 - 526 + 136 + 209 + 484 @@ -3498,72 +3386,72 @@ 1 2 - 473 + 484 2 3 - 592 + 605 3 4 - 250 + 255 4 5 - 276 + 269 5 6 - 315 + 336 6 9 - 460 + 457 9 16 - 408 + 430 16 - 44 - 394 + 43 + 403 - 45 - 177 - 394 + 46 + 182 + 403 - 180 - 796 - 394 + 184 + 794 + 403 - 816 - 3017 - 394 + 811 + 3014 + 403 - 3017 - 8160 - 394 + 3015 + 8230 + 403 - 8349 - 25541 - 394 + 8347 + 25670 + 403 - 28440 - 38986 - 39 + 28494 + 38951 + 40 @@ -3579,7 +3467,7 @@ 1 2 - 1434 + 1466 2 @@ -3589,42 +3477,42 @@ 3 4 - 473 + 484 4 9 - 394 + 417 9 37 - 394 + 403 37 - 120 - 394 + 118 + 403 - 126 - 378 - 394 + 124 + 381 + 403 - 379 - 730 - 394 + 381 + 728 + 403 - 755 - 982 - 394 + 754 + 985 + 403 - 992 - 1386 - 302 + 996 + 1392 + 309 @@ -3640,62 +3528,67 @@ 1 2 - 539 + 551 2 3 - 697 + 712 3 4 - 315 + 322 4 5 - 368 + 363 + + + 5 + 7 + 363 - 5 - 8 - 473 + 7 + 13 + 457 - 8 - 15 - 421 + 13 + 35 + 403 - 15 - 45 - 394 + 35 + 103 + 403 - 45 - 125 - 394 + 109 + 281 + 403 - 132 - 341 - 394 + 286 + 583 + 403 - 342 - 667 - 394 + 591 + 927 + 403 - 682 - 1002 - 394 + 935 + 1163 + 403 - 1003 - 1403 - 394 + 1198 + 1405 + 107 @@ -3711,62 +3604,67 @@ 1 2 - 539 + 551 2 3 - 697 + 712 3 4 - 315 + 322 4 5 - 368 + 363 5 - 8 - 473 + 7 + 363 - 8 - 15 - 421 + 7 + 13 + 457 - 15 - 45 - 394 + 13 + 35 + 403 - 48 - 125 - 394 + 35 + 105 + 403 - 133 - 345 - 394 + 108 + 282 + 403 - 346 - 687 - 394 + 287 + 596 + 403 - 694 - 1029 - 408 + 596 + 945 + 403 - 1029 - 1409 - 381 + 956 + 1202 + 403 + + + 1223 + 1412 + 107 @@ -3782,52 +3680,52 @@ 1 2 - 1290 + 1318 2 3 - 697 + 712 3 4 - 513 + 524 4 6 - 434 + 443 6 15 - 394 + 403 15 37 - 394 + 403 37 66 - 394 + 403 66 98 - 394 + 403 100 - 126 - 394 + 127 + 403 - 126 + 128 180 - 276 + 282 @@ -3843,72 +3741,72 @@ 1 3 - 315 + 322 3 4 - 3435 + 3510 4 6 - 2474 + 2528 6 9 - 2356 + 2394 9 13 - 2448 + 2488 13 20 - 2395 + 2407 20 - 32 - 2369 + 33 + 2461 - 32 - 61 - 2356 + 33 + 64 + 2421 - 61 - 102 - 2356 + 64 + 103 + 2421 - 102 - 145 - 2395 + 103 + 143 + 2448 - 145 - 219 - 2356 + 143 + 220 + 2394 - 219 - 436 - 2343 + 220 + 446 + 2394 - 443 - 1758 - 2343 + 446 + 1691 + 2394 - 1798 - 10208 - 1197 + 1717 + 10278 + 1237 @@ -3924,47 +3822,47 @@ 1 2 - 10083 + 10304 2 3 - 5555 + 5609 3 - 6 - 2343 + 7 + 2838 - 6 - 9 - 2330 + 7 + 10 + 2663 - 9 - 14 - 2501 + 10 + 15 + 2407 - 14 - 21 - 2343 + 15 + 23 + 2394 - 21 - 44 - 2369 + 23 + 58 + 2407 - 44 - 179 - 2356 + 58 + 287 + 2394 - 180 - 1370 - 1263 + 296 + 1376 + 807 @@ -3980,42 +3878,47 @@ 1 2 - 11202 + 11420 2 3 - 5871 + 5959 3 4 - 2553 + 2636 4 5 - 1658 + 1654 5 7 - 2527 + 2650 7 - 11 - 2830 + 10 + 2407 - 11 - 20 - 2422 + 10 + 17 + 2394 - 20 + 17 + 34 + 2434 + + + 34 43 - 2079 + 269 @@ -4031,67 +3934,67 @@ 1 3 - 1579 + 1614 3 4 - 3422 + 3497 4 6 - 2764 + 2824 6 8 - 1671 + 1694 8 12 - 2488 + 2502 12 17 - 2711 + 2771 17 28 - 2448 + 2421 28 - 43 - 2435 + 42 + 2448 - 43 + 42 55 - 2409 + 2650 55 67 - 2343 + 2407 67 82 - 2382 + 2434 82 - 107 - 2409 + 108 + 2461 - 107 + 108 204 - 2079 + 2098 @@ -4107,72 +4010,72 @@ 1 2 - 1553 + 1587 2 3 - 1474 + 1520 3 4 - 2382 + 2421 4 6 - 2606 + 2650 6 8 - 1737 + 1748 8 13 - 2777 + 2851 13 18 - 2435 + 2448 18 30 - 2514 + 2488 30 - 46 - 2567 + 45 + 2448 - 46 - 59 - 2409 + 45 + 58 + 2542 - 59 - 72 - 2369 + 58 + 71 + 2421 - 72 - 89 - 2409 + 71 + 86 + 2407 - 89 - 117 - 2435 + 86 + 113 + 2394 - 117 - 208 - 1474 + 113 + 209 + 1896 @@ -4188,72 +4091,72 @@ 1 2 - 408 + 417 2 3 - 473 + 484 3 5 - 447 + 457 5 6 - 171 + 174 6 8 - 460 + 470 8 12 - 408 + 417 12 24 - 408 + 417 24 72 - 408 + 417 76 - 275 - 408 + 277 + 417 - 277 - 1197 - 408 + 278 + 1206 + 417 1227 - 3883 - 408 + 3859 + 417 - 3987 - 8621 - 408 + 3977 + 8618 + 417 - 9003 - 11196 - 408 + 9094 + 11251 + 417 - 11489 - 19733 - 65 + 11548 + 19740 + 67 @@ -4269,52 +4172,52 @@ 1 2 - 1448 + 1479 2 3 - 566 + 578 3 4 - 552 + 538 4 - 9 - 447 + 8 + 417 - 9 - 46 - 408 + 8 + 29 + 417 - 46 - 152 - 408 + 35 + 115 + 417 - 159 - 442 - 408 + 115 + 399 + 417 - 454 - 851 - 408 + 427 + 798 + 417 - 868 - 1055 - 408 + 805 + 1038 + 417 - 1055 - 1353 - 236 + 1039 + 1359 + 309 @@ -4330,62 +4233,62 @@ 1 2 - 579 + 591 2 3 - 631 + 645 3 4 - 329 + 336 4 6 - 460 + 470 6 9 - 473 + 470 9 17 - 421 + 443 17 - 45 - 408 + 47 + 417 - 49 - 149 - 408 + 51 + 153 + 417 - 150 - 385 - 421 + 153 + 387 + 417 - 389 - 729 - 408 + 390 + 717 + 417 - 736 - 1057 - 408 + 730 + 1059 + 417 - 1060 - 1397 - 342 + 1062 + 1404 + 363 @@ -4401,62 +4304,62 @@ 1 2 - 908 + 928 2 3 - 381 + 390 3 4 - 487 + 497 4 5 - 355 + 363 5 7 - 368 + 363 7 14 - 434 + 443 15 33 - 447 + 470 33 49 - 408 + 417 49 64 - 434 + 430 - 64 - 82 - 421 + 65 + 81 + 417 - 83 + 81 96 - 421 + 457 97 - 108 - 223 + 109 + 228 @@ -4472,62 +4375,62 @@ 1 2 - 579 + 591 2 3 - 645 + 659 3 4 - 329 + 336 4 6 - 447 + 457 6 9 - 473 + 470 9 - 17 - 447 + 16 + 417 - 17 - 55 - 408 + 16 + 43 + 430 - 55 - 162 - 408 + 45 + 151 + 430 - 171 - 382 - 408 + 161 + 379 + 417 - 396 - 729 - 408 + 384 + 712 + 417 - 767 - 1048 - 408 + 729 + 1046 + 417 - 1056 - 1390 - 329 + 1049 + 1397 + 363 @@ -4537,19 +4440,19 @@ ruby_alias_def - 1307 + 1289 id - 1307 + 1289 alias - 1307 + 1289 name - 1307 + 1289 @@ -4563,7 +4466,7 @@ 1 2 - 1307 + 1289 @@ -4579,7 +4482,7 @@ 1 2 - 1307 + 1289 @@ -4595,7 +4498,7 @@ 1 2 - 1307 + 1289 @@ -4611,7 +4514,7 @@ 1 2 - 1307 + 1289 @@ -4627,7 +4530,7 @@ 1 2 - 1307 + 1289 @@ -4643,7 +4546,7 @@ 1 2 - 1307 + 1289 @@ -4820,19 +4723,19 @@ ruby_argument_list_child - 861033 + 879410 ruby_argument_list - 691475 + 706205 index - 434 + 443 child - 861033 + 879410 @@ -4846,17 +4749,17 @@ 1 2 - 584369 + 596855 2 3 - 67125 + 68483 3 34 - 39980 + 40866 @@ -4872,17 +4775,17 @@ 1 2 - 584369 + 596855 2 3 - 67125 + 68483 3 34 - 39980 + 40866 @@ -4898,46 +4801,46 @@ 1 2 - 144 + 147 2 3 - 39 + 40 3 7 - 39 + 40 7 11 - 39 + 40 11 21 - 39 + 40 23 45 - 39 + 40 56 - 386 - 39 + 385 + 40 - 960 - 8137 - 39 + 963 + 8130 + 40 - 52526 - 52527 + 52499 + 52500 13 @@ -4954,46 +4857,46 @@ 1 2 - 144 + 147 2 3 - 39 + 40 3 7 - 39 + 40 7 11 - 39 + 40 11 21 - 39 + 40 23 45 - 39 + 40 56 - 386 - 39 + 385 + 40 - 960 - 8137 - 39 + 963 + 8130 + 40 - 52526 - 52527 + 52499 + 52500 13 @@ -5010,7 +4913,7 @@ 1 2 - 861033 + 879410 @@ -5026,7 +4929,7 @@ 1 2 - 861033 + 879410 @@ -5036,22 +4939,22 @@ ruby_argument_list_def - 691738 + 706474 id - 691738 + 706474 ruby_array_child - 704712 + 708919 ruby_array - 239714 + 240456 index @@ -5059,7 +4962,7 @@ child - 704712 + 708919 @@ -5073,17 +4976,17 @@ 1 2 - 12460 + 12708 2 3 - 213368 + 213730 3 63361 - 13886 + 14018 @@ -5099,17 +5002,17 @@ 1 2 - 12460 + 12708 2 3 - 213368 + 213730 3 63361 - 13886 + 14018 @@ -5149,7 +5052,7 @@ 11 - 239715 + 240457 1294 @@ -5190,7 +5093,7 @@ 11 - 239715 + 240457 1294 @@ -5207,7 +5110,7 @@ 1 2 - 704712 + 708919 @@ -5223,7 +5126,7 @@ 1 2 - 704712 + 708919 @@ -5233,22 +5136,22 @@ ruby_array_def - 248289 + 249320 id - 248289 + 249320 ruby_array_pattern_child - 334 + 336 ruby_array_pattern - 167 + 168 index @@ -5256,7 +5159,7 @@ child - 334 + 336 @@ -5275,7 +5178,7 @@ 2 3 - 96 + 97 3 @@ -5306,7 +5209,7 @@ 2 3 - 96 + 97 3 @@ -5355,13 +5258,13 @@ 1 - 116 - 117 + 117 + 118 1 - 167 - 168 + 168 + 169 1 @@ -5401,13 +5304,13 @@ 1 - 116 - 117 + 117 + 118 1 - 167 - 168 + 168 + 169 1 @@ -5424,7 +5327,7 @@ 1 2 - 334 + 336 @@ -5440,7 +5343,7 @@ 1 2 - 334 + 336 @@ -5450,15 +5353,15 @@ ruby_array_pattern_class - 50 + 51 ruby_array_pattern - 50 + 51 class - 50 + 51 @@ -5472,7 +5375,7 @@ 1 2 - 50 + 51 @@ -5488,7 +5391,7 @@ 1 2 - 50 + 51 @@ -5498,30 +5401,30 @@ ruby_array_pattern_def - 178 + 179 id - 178 + 179 ruby_as_pattern_def - 153 + 156 id - 153 + 156 name - 153 + 156 value - 153 + 156 @@ -5535,7 +5438,7 @@ 1 2 - 153 + 156 @@ -5551,7 +5454,7 @@ 1 2 - 153 + 156 @@ -5567,7 +5470,7 @@ 1 2 - 153 + 156 @@ -5583,7 +5486,7 @@ 1 2 - 153 + 156 @@ -5599,7 +5502,7 @@ 1 2 - 153 + 156 @@ -5615,7 +5518,7 @@ 1 2 - 153 + 156 @@ -5625,19 +5528,19 @@ ruby_assignment_def - 137583 + 141202 id - 137583 + 141202 left - 137583 + 141202 right - 137583 + 141202 @@ -5651,7 +5554,7 @@ 1 2 - 137583 + 141202 @@ -5667,7 +5570,7 @@ 1 2 - 137583 + 141202 @@ -5683,7 +5586,7 @@ 1 2 - 137583 + 141202 @@ -5699,7 +5602,7 @@ 1 2 - 137583 + 141202 @@ -5715,7 +5618,7 @@ 1 2 - 137583 + 141202 @@ -5731,39 +5634,31 @@ 1 2 - 137583 + 141202 - - - ruby_ast_node_info - 9511543 - - - node - 9511543 - - - parent - 3325876 - + + + ruby_ast_node_location + 9723503 + - parent_index - 2830 + node + 9723503 loc - 9008872 + 9209550 node - parent + loc 12 @@ -5771,15 +5666,15 @@ 1 2 - 9511543 + 9723503 - node - parent_index + loc + node 12 @@ -5787,15 +5682,40 @@ 1 2 - 9511543 + 8697279 + + + 2 + 4 + 512270 + + + + ruby_ast_node_parent + 9674605 + + + node + 9674605 + + + parent + 3381025 + + + parent_index + 2892 + + + node - loc + parent 12 @@ -5803,15 +5723,15 @@ 1 2 - 9511543 + 9674605 - parent - node + node + parent_index 12 @@ -5819,27 +5739,7 @@ 1 2 - 535595 - - - 2 - 3 - 457056 - - - 3 - 4 - 1793325 - - - 4 - 5 - 352556 - - - 5 - 216 - 187343 + 9674605 @@ -5847,7 +5747,7 @@ parent - parent_index + node 12 @@ -5855,27 +5755,27 @@ 1 2 - 535595 + 533793 2 3 - 457056 + 465418 3 4 - 1793325 + 1832321 4 5 - 352556 + 359620 5 216 - 187343 + 189871 @@ -5883,7 +5783,7 @@ parent - loc + parent_index 12 @@ -5891,27 +5791,27 @@ 1 2 - 535595 + 533793 2 3 - 457056 + 465418 3 4 - 1793325 + 1832321 4 5 - 352556 + 359620 5 216 - 187343 + 189871 @@ -5927,57 +5827,52 @@ 1 2 - 460 + 470 2 3 - 236 + 242 3 4 - 355 + 363 4 6 - 157 + 161 6 7 - 315 + 484 7 - 11 - 250 - - - 11 - 21 - 197 + 17 + 255 - 21 - 42 - 223 + 17 + 29 + 228 - 43 - 94 - 223 + 33 + 71 + 228 - 98 - 498 - 223 + 72 + 298 + 228 - 533 - 252642 - 184 + 358 + 251345 + 228 @@ -5993,186 +5888,52 @@ 1 2 - 460 - - - 2 - 3 - 236 - - - 3 - 4 - 355 - - - 4 - 6 - 157 - - - 6 - 7 - 315 - - - 7 - 11 - 250 - - - 11 - 21 - 197 - - - 21 - 42 - 223 - - - 43 - 94 - 223 - - - 98 - 498 - 223 - - - 533 - 252642 - 184 - - - - - - - parent_index - loc - - - 12 - - - 1 - 2 - 460 + 470 2 3 - 236 + 242 3 4 - 355 + 363 4 6 - 157 + 161 6 7 - 315 + 484 7 - 11 - 250 - - - 11 - 21 - 197 - - - 21 - 42 - 223 - - - 43 - 94 - 223 - - - 98 - 498 - 223 - - - 533 - 252273 - 184 - - - - - - - loc - node - - - 12 - - - 1 - 2 - 8507847 - - - 2 - 4 - 501025 + 17 + 255 - - - - - - loc - parent - - - 12 - - 1 - 2 - 8507847 + 17 + 29 + 228 - 2 - 4 - 501025 + 33 + 71 + 228 - - - - - - loc - parent_index - - - 12 - - 1 - 2 - 8511059 + 72 + 298 + 228 - 2 - 3 - 497813 + 358 + 251345 + 228 @@ -6182,11 +5943,11 @@ ruby_bare_string_child - 16385 + 16784 ruby_bare_string - 12799 + 13136 index @@ -6194,7 +5955,7 @@ child - 16385 + 16784 @@ -6208,12 +5969,12 @@ 1 2 - 12434 + 12728 2 2310 - 365 + 408 @@ -6229,12 +5990,12 @@ 1 2 - 12434 + 12728 2 2310 - 365 + 408 @@ -6264,7 +6025,7 @@ 4 - 12800 + 13137 19 @@ -6295,7 +6056,7 @@ 4 - 12800 + 13137 19 @@ -6312,7 +6073,7 @@ 1 2 - 16385 + 16784 @@ -6328,7 +6089,7 @@ 1 2 - 16385 + 16784 @@ -6338,22 +6099,22 @@ ruby_bare_string_def - 12799 + 13136 id - 12799 + 13136 ruby_bare_symbol_child - 7967 + 8435 ruby_bare_symbol - 7967 + 8435 index @@ -6361,7 +6122,7 @@ child - 7967 + 8435 @@ -6375,7 +6136,7 @@ 1 2 - 7967 + 8435 @@ -6391,7 +6152,7 @@ 1 2 - 7967 + 8435 @@ -6405,8 +6166,8 @@ 12 - 3128 - 3129 + 3570 + 3571 2 @@ -6421,8 +6182,8 @@ 12 - 3128 - 3129 + 3570 + 3571 2 @@ -6439,7 +6200,7 @@ 1 2 - 7967 + 8435 @@ -6455,7 +6216,7 @@ 1 2 - 7967 + 8435 @@ -6465,18 +6226,18 @@ ruby_bare_symbol_def - 7967 + 8435 id - 7967 + 8435 ruby_begin_block_child - 33 + 39 ruby_begin_block @@ -6488,7 +6249,7 @@ child - 33 + 39 @@ -6502,7 +6263,7 @@ 1 2 - 4 + 3 2 @@ -6512,17 +6273,12 @@ 3 4 - 1 - - - 5 - 6 2 7 8 - 2 + 4 @@ -6538,7 +6294,7 @@ 1 2 - 4 + 3 2 @@ -6548,17 +6304,12 @@ 3 4 - 1 - - - 5 - 6 2 7 8 - 2 + 4 @@ -6571,24 +6322,19 @@ 12 - - 2 - 3 - 2 - 4 5 - 2 + 4 - 5 - 6 + 6 + 7 1 - 6 - 7 + 7 + 8 1 @@ -6607,26 +6353,21 @@ 12 - - 2 - 3 - 2 - 4 5 - 2 - - - 5 - 6 - 1 + 4 6 7 1 + + 7 + 8 + 1 + 10 11 @@ -6646,7 +6387,7 @@ 1 2 - 33 + 39 @@ -6662,7 +6403,7 @@ 1 2 - 33 + 39 @@ -6683,11 +6424,11 @@ ruby_begin_child - 7613 + 7606 ruby_begin - 2590 + 2610 index @@ -6695,7 +6436,7 @@ child - 7613 + 7606 @@ -6709,32 +6450,32 @@ 1 2 - 163 + 161 2 3 - 1398 + 1414 3 4 - 512 + 537 4 5 - 211 + 200 5 8 - 226 + 221 8 40 - 80 + 77 @@ -6750,32 +6491,32 @@ 1 2 - 163 + 161 2 3 - 1398 + 1414 3 4 - 512 + 537 4 5 - 211 + 200 5 8 - 226 + 221 8 40 - 80 + 77 @@ -6824,23 +6565,23 @@ 3 - 39 - 62 + 37 + 59 3 - 80 - 175 + 77 + 166 3 - 306 - 1030 + 298 + 1036 3 - 2427 - 2591 + 2449 + 2611 2 @@ -6890,23 +6631,23 @@ 3 - 39 - 62 + 37 + 59 3 - 80 - 175 + 77 + 166 3 - 306 - 1030 + 298 + 1036 3 - 2427 - 2591 + 2449 + 2611 2 @@ -6923,7 +6664,7 @@ 1 2 - 7613 + 7606 @@ -6939,7 +6680,7 @@ 1 2 - 7613 + 7606 @@ -6949,26 +6690,26 @@ ruby_begin_def - 2590 + 2610 id - 2590 + 2610 ruby_binary_def - 71864 + 73665 id - 71864 + 73665 left - 71864 + 73665 operator @@ -6976,7 +6717,7 @@ right - 71864 + 73665 @@ -6990,7 +6731,7 @@ 1 2 - 71864 + 73665 @@ -7006,7 +6747,7 @@ 1 2 - 71864 + 73665 @@ -7022,7 +6763,7 @@ 1 2 - 71864 + 73665 @@ -7038,7 +6779,7 @@ 1 2 - 71864 + 73665 @@ -7054,7 +6795,7 @@ 1 2 - 71864 + 73665 @@ -7070,7 +6811,7 @@ 1 2 - 71864 + 73665 @@ -7084,68 +6825,68 @@ 12 - 160 - 169 + 153 + 177 2 - 234 - 408 + 259 + 432 2 - 570 - 596 + 597 + 631 2 - 635 - 657 + 647 + 690 2 - 778 - 974 + 764 + 987 2 - 979 - 1001 + 1026 + 1033 2 - 1014 - 1071 + 1058 + 1073 2 - 1233 - 1270 + 1169 + 1190 2 - 1358 - 1801 + 1227 + 1824 2 - 1837 - 2322 + 2079 + 2661 2 - 2691 - 3561 + 2747 + 3491 2 - 6453 - 7170 + 6593 + 7408 2 - 32934 - 32935 + 33761 + 33762 1 @@ -7160,68 +6901,68 @@ 12 - 160 - 169 + 153 + 177 2 - 234 - 408 + 259 + 432 2 - 570 - 596 + 597 + 631 2 - 635 - 657 + 647 + 690 2 - 778 - 974 + 764 + 987 2 - 979 - 1001 + 1026 + 1033 2 - 1014 - 1071 + 1058 + 1073 2 - 1233 - 1270 + 1169 + 1190 2 - 1358 - 1801 + 1227 + 1824 2 - 1837 - 2322 + 2079 + 2661 2 - 2691 - 3561 + 2747 + 3491 2 - 6453 - 7170 + 6593 + 7408 2 - 32934 - 32935 + 33761 + 33762 1 @@ -7236,68 +6977,68 @@ 12 - 160 - 169 + 153 + 177 2 - 234 - 408 + 259 + 432 2 - 570 - 596 + 597 + 631 2 - 635 - 657 + 647 + 690 2 - 778 - 974 + 764 + 987 2 - 979 - 1001 + 1026 + 1033 2 - 1014 - 1071 + 1058 + 1073 2 - 1233 - 1270 + 1169 + 1190 2 - 1358 - 1801 + 1227 + 1824 2 - 1837 - 2322 + 2079 + 2661 2 - 2691 - 3561 + 2747 + 3491 2 - 6453 - 7170 + 6593 + 7408 2 - 32934 - 32935 + 33761 + 33762 1 @@ -7314,7 +7055,7 @@ 1 2 - 71864 + 73665 @@ -7330,7 +7071,7 @@ 1 2 - 71864 + 73665 @@ -7346,7 +7087,7 @@ 1 2 - 71864 + 73665 @@ -7356,15 +7097,15 @@ ruby_block_argument_child - 6477 + 6541 ruby_block_argument - 6477 + 6541 child - 6477 + 6541 @@ -7378,7 +7119,7 @@ 1 2 - 6477 + 6541 @@ -7394,7 +7135,7 @@ 1 2 - 6477 + 6541 @@ -7404,26 +7145,26 @@ ruby_block_argument_def - 6477 + 6547 id - 6477 + 6547 ruby_block_body - 101379 + 103820 ruby_block - 101379 + 103820 body - 101379 + 103820 @@ -7437,7 +7178,7 @@ 1 2 - 101379 + 103820 @@ -7453,7 +7194,7 @@ 1 2 - 101379 + 103820 @@ -7463,19 +7204,19 @@ ruby_block_body_child - 101550 + 103995 ruby_block_body - 101379 + 103820 index - 52 + 53 child - 101550 + 103995 @@ -7489,12 +7230,12 @@ 1 2 - 101260 + 103699 2 5 - 118 + 121 @@ -7510,12 +7251,12 @@ 1 2 - 101260 + 103699 2 5 - 118 + 121 @@ -7539,8 +7280,8 @@ 13 - 7701 - 7702 + 7718 + 7719 13 @@ -7565,8 +7306,8 @@ 13 - 7701 - 7702 + 7718 + 7719 13 @@ -7583,7 +7324,7 @@ 1 2 - 101550 + 103995 @@ -7599,7 +7340,7 @@ 1 2 - 101550 + 103995 @@ -7609,48 +7350,48 @@ ruby_block_body_def - 101379 + 103820 id - 101379 + 103820 ruby_block_def - 101695 + 104143 id - 101695 + 104143 ruby_block_parameter_def - 2569 + 2543 id - 2569 + 2543 ruby_block_parameter_name - 2569 + 2537 ruby_block_parameter - 2569 + 2537 name - 2569 + 2537 @@ -7664,7 +7405,7 @@ 1 2 - 2569 + 2537 @@ -7680,7 +7421,7 @@ 1 2 - 2569 + 2537 @@ -7690,15 +7431,15 @@ ruby_block_parameters - 10585 + 10767 ruby_block - 10585 + 10767 parameters - 10585 + 10767 @@ -7712,7 +7453,7 @@ 1 2 - 10585 + 10767 @@ -7728,7 +7469,7 @@ 1 2 - 10585 + 10767 @@ -7738,19 +7479,19 @@ ruby_block_parameters_child - 28929 + 30131 ruby_block_parameters - 24941 + 25884 index - 15 + 14 child - 28929 + 30131 @@ -7764,17 +7505,17 @@ 1 2 - 21362 + 22189 2 3 - 3263 + 3329 3 6 - 316 + 365 @@ -7790,17 +7531,17 @@ 1 2 - 21362 + 22189 2 3 - 3263 + 3329 3 6 - 316 + 365 @@ -7814,29 +7555,29 @@ 12 - 11 - 12 - 3 + 27 + 28 + 2 - 19 - 20 - 3 + 35 + 36 + 2 - 103 - 104 - 3 + 122 + 123 + 2 - 1166 - 1167 - 3 + 1232 + 1233 + 2 - 8125 - 8126 - 3 + 8630 + 8631 + 2 @@ -7850,29 +7591,29 @@ 12 - 11 - 12 - 3 + 27 + 28 + 2 - 19 - 20 - 3 + 35 + 36 + 2 - 103 - 104 - 3 + 122 + 123 + 2 - 1166 - 1167 - 3 + 1232 + 1233 + 2 - 8125 - 8126 - 3 + 8630 + 8631 + 2 @@ -7888,7 +7629,7 @@ 1 2 - 28929 + 30131 @@ -7904,7 +7645,7 @@ 1 2 - 28929 + 30131 @@ -7914,11 +7655,11 @@ ruby_block_parameters_def - 24941 + 25884 id - 24941 + 25884 @@ -8061,19 +7802,19 @@ ruby_body_statement_child - 627527 + 641142 ruby_body_statement - 202481 + 206879 index - 1135 + 1187 child - 627527 + 641142 @@ -8087,37 +7828,37 @@ 1 2 - 93050 + 95107 2 3 - 37058 + 37693 3 4 - 24051 + 24510 4 5 - 15391 + 15881 5 7 - 15925 + 16388 7 23 - 15269 + 15560 23 - 371 - 1734 + 397 + 1736 @@ -8133,37 +7874,37 @@ 1 2 - 93050 + 95107 2 3 - 37058 + 37693 3 4 - 24051 + 24510 4 5 - 15391 + 15881 5 7 - 15925 + 16388 7 23 - 15269 + 15560 23 - 371 - 1734 + 397 + 1736 @@ -8179,67 +7920,67 @@ 1 2 - 79 + 140 2 3 - 119 + 122 3 4 - 76 + 77 4 5 - 85 + 62 5 7 - 79 + 98 - 7 + 8 10 - 98 + 86 10 - 14 - 92 + 12 + 89 - 14 - 23 - 89 + 12 + 26 + 95 - 24 - 39 - 85 + 26 + 42 + 92 - 39 - 69 + 42 + 77 89 - 69 - 144 - 85 + 80 + 179 + 89 - 144 - 566 - 85 + 184 + 1016 + 89 - 623 - 65961 - 67 + 1134 + 68975 + 47 @@ -8255,67 +7996,67 @@ 1 2 - 79 + 140 2 3 - 119 + 122 3 4 - 76 + 77 4 5 - 85 + 62 5 7 - 79 + 98 - 7 + 8 10 - 98 + 86 10 - 14 - 92 + 12 + 89 - 14 - 23 - 89 + 12 + 26 + 95 - 24 - 39 - 85 + 26 + 42 + 92 - 39 - 69 + 42 + 77 89 - 69 - 144 - 85 + 80 + 179 + 89 - 144 - 566 - 85 + 184 + 1016 + 89 - 623 - 65961 - 67 + 1134 + 68975 + 47 @@ -8331,7 +8072,7 @@ 1 2 - 627527 + 641142 @@ -8347,7 +8088,7 @@ 1 2 - 627527 + 641142 @@ -8357,26 +8098,26 @@ ruby_body_statement_def - 208998 + 213896 id - 208998 + 213896 ruby_break_child - 399 + 394 ruby_break - 399 + 394 child - 399 + 394 @@ -8390,7 +8131,7 @@ 1 2 - 399 + 394 @@ -8406,7 +8147,7 @@ 1 2 - 399 + 394 @@ -8416,26 +8157,26 @@ ruby_break_def - 3434 + 3414 id - 3434 + 3414 ruby_call_arguments - 688552 + 703178 ruby_call - 688552 + 703178 arguments - 688552 + 703178 @@ -8449,7 +8190,7 @@ 1 2 - 688552 + 703178 @@ -8465,7 +8206,7 @@ 1 2 - 688552 + 703178 @@ -8475,15 +8216,15 @@ ruby_call_block - 240751 + 246208 ruby_call - 240751 + 246208 block - 240751 + 246208 @@ -8497,7 +8238,7 @@ 1 2 - 240751 + 246208 @@ -8513,7 +8254,7 @@ 1 2 - 240751 + 246208 @@ -8523,26 +8264,26 @@ ruby_call_def - 1006605 + 1027501 id - 1006605 + 1027501 ruby_call_method - 1006605 + 1027501 ruby_call - 1006605 + 1027501 method - 1006605 + 1027501 @@ -8556,7 +8297,7 @@ 1 2 - 1006605 + 1027501 @@ -8572,7 +8313,7 @@ 1 2 - 1006605 + 1027501 @@ -8582,15 +8323,15 @@ ruby_call_operator - 562262 + 571632 ruby_call - 562262 + 571632 operator - 562262 + 571632 @@ -8604,7 +8345,7 @@ 1 2 - 562262 + 571632 @@ -8620,7 +8361,7 @@ 1 2 - 562262 + 571632 @@ -8630,15 +8371,15 @@ ruby_call_receiver - 562262 + 571632 ruby_call - 562262 + 571632 receiver - 562262 + 571632 @@ -8652,7 +8393,7 @@ 1 2 - 562262 + 571632 @@ -8668,7 +8409,7 @@ 1 2 - 562262 + 571632 @@ -8678,19 +8419,19 @@ ruby_case_child - 4349 + 4685 ruby_case__ - 1289 + 1267 index - 67 + 86 child - 4349 + 4685 @@ -8704,32 +8445,37 @@ 1 2 - 36 + 69 2 3 - 328 + 405 3 4 - 546 + 399 4 5 - 202 + 166 5 - 7 - 110 + 6 + 89 - 7 - 23 - 64 + 6 + 12 + 100 + + + 12 + 87 + 39 @@ -8745,32 +8491,37 @@ 1 2 - 36 + 69 2 3 - 328 + 405 3 4 - 546 + 399 4 5 - 202 + 166 5 - 7 - 110 + 6 + 89 - 7 - 23 - 64 + 6 + 12 + 100 + + + 12 + 87 + 39 @@ -8786,42 +8537,37 @@ 1 2 - 21 + 42 2 3 - 9 + 12 - 4 + 3 6 6 - 8 - 11 - 6 - - - 14 - 22 - 6 + 6 + 9 + 7 - 33 - 58 - 6 + 9 + 31 + 7 - 123 - 302 - 6 + 39 + 140 + 7 - 408 - 421 - 6 + 228 + 1268 + 5 @@ -8837,42 +8583,37 @@ 1 2 - 21 + 42 2 3 - 9 + 12 - 4 + 3 6 6 - 8 - 11 - 6 - - - 14 - 22 - 6 + 6 + 9 + 7 - 33 - 58 - 6 + 9 + 31 + 7 - 123 - 302 - 6 + 39 + 140 + 7 - 408 - 421 - 6 + 228 + 1268 + 5 @@ -8888,7 +8629,7 @@ 1 2 - 4349 + 4685 @@ -8904,7 +8645,7 @@ 1 2 - 4349 + 4685 @@ -8914,22 +8655,22 @@ ruby_case_def - 1289 + 1319 id - 1289 + 1319 ruby_case_match_clauses - 385 + 381 ruby_case_match - 234 + 232 index @@ -8937,7 +8678,7 @@ clauses - 385 + 381 @@ -8951,12 +8692,12 @@ 1 2 - 161 + 160 2 3 - 41 + 40 3 @@ -8982,12 +8723,12 @@ 1 2 - 161 + 160 2 3 - 41 + 40 3 @@ -9013,17 +8754,12 @@ 1 2 - 3 - - - 2 - 3 - 1 - - - 4 - 5 - 1 + 2 + + + 2 + 3 + 3 5 @@ -9051,13 +8787,13 @@ 1 - 73 - 74 + 72 + 73 1 - 234 - 235 + 232 + 233 1 @@ -9074,17 +8810,12 @@ 1 2 - 3 + 2 2 3 - 1 - - - 4 - 5 - 1 + 3 5 @@ -9112,13 +8843,13 @@ 1 - 73 - 74 + 72 + 73 1 - 234 - 235 + 232 + 233 1 @@ -9135,7 +8866,7 @@ 1 2 - 385 + 381 @@ -9151,7 +8882,7 @@ 1 2 - 385 + 381 @@ -9161,15 +8892,15 @@ ruby_case_match_def - 234 + 232 id - 234 + 232 value - 234 + 232 @@ -9183,7 +8914,7 @@ 1 2 - 234 + 232 @@ -9199,7 +8930,7 @@ 1 2 - 234 + 232 @@ -9257,15 +8988,15 @@ ruby_case_value - 1246 + 1277 ruby_case__ - 1246 + 1277 value - 1246 + 1277 @@ -9279,7 +9010,7 @@ 1 2 - 1246 + 1277 @@ -9295,7 +9026,7 @@ 1 2 - 1246 + 1277 @@ -9305,7 +9036,7 @@ ruby_chained_string_child - 3346 + 3320 ruby_chained_string @@ -9313,11 +9044,11 @@ index - 36 + 35 child - 3346 + 3320 @@ -9331,32 +9062,32 @@ 2 3 - 297 + 296 3 4 - 202 + 215 4 5 - 131 + 128 5 6 - 122 + 116 6 8 - 67 + 65 8 13 - 61 + 59 @@ -9372,32 +9103,32 @@ 2 3 - 297 + 296 3 4 - 202 + 215 4 5 - 131 + 128 5 6 - 122 + 116 6 8 - 67 + 65 8 13 - 61 + 59 @@ -9413,57 +9144,57 @@ 2 3 - 3 + 2 4 5 - 3 + 2 7 8 - 3 + 2 8 9 - 3 + 2 20 21 - 3 + 2 33 34 - 3 + 2 42 43 - 3 + 2 - 82 - 83 - 3 + 81 + 82 + 2 - 125 - 126 - 3 + 124 + 125 + 2 - 191 - 192 - 3 + 196 + 197 + 2 - 288 - 289 - 6 + 295 + 296 + 5 @@ -9479,57 +9210,57 @@ 2 3 - 3 + 2 4 5 - 3 + 2 7 8 - 3 + 2 8 9 - 3 + 2 20 21 - 3 + 2 33 34 - 3 + 2 42 43 - 3 + 2 - 82 - 83 - 3 + 81 + 82 + 2 - 125 - 126 - 3 + 124 + 125 + 2 - 191 - 192 - 3 + 196 + 197 + 2 - 288 - 289 - 6 + 295 + 296 + 5 @@ -9545,7 +9276,7 @@ 1 2 - 3346 + 3320 @@ -9561,7 +9292,7 @@ 1 2 - 3346 + 3320 @@ -9582,15 +9313,15 @@ ruby_class_body - 15560 + 15734 ruby_class - 15560 + 15734 body - 15560 + 15734 @@ -9604,7 +9335,7 @@ 1 2 - 15560 + 15734 @@ -9620,7 +9351,7 @@ 1 2 - 15560 + 15734 @@ -9630,15 +9361,15 @@ ruby_class_def - 17258 + 17441 id - 17258 + 17441 name - 17258 + 17441 @@ -9652,7 +9383,7 @@ 1 2 - 17258 + 17441 @@ -9668,7 +9399,7 @@ 1 2 - 17258 + 17441 @@ -9678,15 +9409,15 @@ ruby_class_superclass - 13666 + 13806 ruby_class - 13666 + 13806 superclass - 13666 + 13806 @@ -9700,7 +9431,7 @@ 1 2 - 13666 + 13806 @@ -9716,7 +9447,7 @@ 1 2 - 13666 + 13806 @@ -9726,15 +9457,15 @@ ruby_complex_def - 66 + 72 id - 66 + 72 child - 66 + 72 @@ -9748,7 +9479,7 @@ 1 2 - 66 + 72 @@ -9764,7 +9495,7 @@ 1 2 - 66 + 72 @@ -9774,23 +9505,23 @@ ruby_conditional_def - 2954 + 2896 id - 2954 + 2896 alternative - 2954 + 2896 condition - 2954 + 2896 consequence - 2954 + 2896 @@ -9804,7 +9535,7 @@ 1 2 - 2954 + 2896 @@ -9820,7 +9551,7 @@ 1 2 - 2954 + 2896 @@ -9836,7 +9567,7 @@ 1 2 - 2954 + 2896 @@ -9852,7 +9583,7 @@ 1 2 - 2954 + 2896 @@ -9868,7 +9599,7 @@ 1 2 - 2954 + 2896 @@ -9884,7 +9615,7 @@ 1 2 - 2954 + 2896 @@ -9900,7 +9631,7 @@ 1 2 - 2954 + 2896 @@ -9916,7 +9647,7 @@ 1 2 - 2954 + 2896 @@ -9932,7 +9663,7 @@ 1 2 - 2954 + 2896 @@ -9948,7 +9679,7 @@ 1 2 - 2954 + 2896 @@ -9964,7 +9695,7 @@ 1 2 - 2954 + 2896 @@ -9980,7 +9711,7 @@ 1 2 - 2954 + 2896 @@ -9990,19 +9721,19 @@ ruby_delimited_symbol_child - 1749 + 1742 ruby_delimited_symbol - 1258 + 1247 index - 24 + 23 child - 1749 + 1742 @@ -10016,7 +9747,7 @@ 1 2 - 930 + 920 2 @@ -10026,7 +9757,7 @@ 3 9 - 73 + 71 @@ -10042,7 +9773,7 @@ 1 2 - 930 + 920 2 @@ -10052,7 +9783,7 @@ 3 9 - 73 + 71 @@ -10068,42 +9799,42 @@ 1 2 - 3 + 2 3 4 - 3 + 2 - 5 - 6 - 3 + 6 + 7 + 2 - 8 - 9 - 3 + 9 + 10 + 2 - 12 - 13 - 3 + 13 + 14 + 2 24 25 - 3 + 2 - 107 - 108 - 3 + 109 + 110 + 2 - 410 - 411 - 3 + 416 + 417 + 2 @@ -10119,42 +9850,42 @@ 1 2 - 3 + 2 3 4 - 3 + 2 - 5 - 6 - 3 + 6 + 7 + 2 - 8 - 9 - 3 + 9 + 10 + 2 - 12 - 13 - 3 + 13 + 14 + 2 24 25 - 3 + 2 - 107 - 108 - 3 + 109 + 110 + 2 - 410 - 411 - 3 + 416 + 417 + 2 @@ -10170,7 +9901,7 @@ 1 2 - 1749 + 1742 @@ -10186,7 +9917,7 @@ 1 2 - 1749 + 1742 @@ -10196,22 +9927,22 @@ ruby_delimited_symbol_def - 1258 + 1247 id - 1258 + 1247 ruby_destructured_left_assignment_child - 222 + 226 ruby_destructured_left_assignment - 107 + 108 index @@ -10219,7 +9950,7 @@ child - 222 + 226 @@ -10248,7 +9979,7 @@ 4 5 - 4 + 5 @@ -10279,7 +10010,7 @@ 4 5 - 4 + 5 @@ -10293,23 +10024,23 @@ 12 - 4 - 5 + 5 + 6 1 - 16 - 17 + 17 + 18 1 - 95 - 96 + 96 + 97 1 - 107 - 108 + 108 + 109 1 @@ -10324,23 +10055,23 @@ 12 - 4 - 5 + 5 + 6 1 - 16 - 17 + 17 + 18 1 - 95 - 96 + 96 + 97 1 - 107 - 108 + 108 + 109 1 @@ -10357,7 +10088,7 @@ 1 2 - 222 + 226 @@ -10373,7 +10104,7 @@ 1 2 - 222 + 226 @@ -10383,22 +10114,22 @@ ruby_destructured_left_assignment_def - 107 + 108 id - 107 + 108 ruby_destructured_parameter_child - 424 + 463 ruby_destructured_parameter - 194 + 208 index @@ -10406,7 +10137,7 @@ child - 424 + 463 @@ -10425,7 +10156,7 @@ 2 3 - 150 + 162 3 @@ -10435,7 +10166,7 @@ 4 12 - 9 + 11 @@ -10456,7 +10187,7 @@ 2 3 - 150 + 162 3 @@ -10466,7 +10197,7 @@ 4 12 - 9 + 11 @@ -10480,38 +10211,38 @@ 12 - 1 - 2 + 2 + 3 1 - 2 - 3 + 3 + 4 5 - 4 - 5 + 5 + 6 1 - 9 - 10 + 11 + 12 1 - 28 - 29 + 30 + 31 1 - 178 - 179 + 192 + 193 1 - 194 - 195 + 208 + 209 1 @@ -10526,38 +10257,38 @@ 12 - 1 - 2 + 2 + 3 1 - 2 - 3 + 3 + 4 5 - 4 - 5 + 5 + 6 1 - 9 - 10 + 11 + 12 1 - 28 - 29 + 30 + 31 1 - 178 - 179 + 192 + 193 1 - 194 - 195 + 208 + 209 1 @@ -10574,7 +10305,7 @@ 1 2 - 424 + 463 @@ -10590,7 +10321,7 @@ 1 2 - 424 + 463 @@ -10600,26 +10331,26 @@ ruby_destructured_parameter_def - 194 + 208 id - 194 + 208 ruby_do_block_body - 142294 + 145373 ruby_do_block - 142294 + 145373 body - 142294 + 145373 @@ -10633,7 +10364,7 @@ 1 2 - 142294 + 145373 @@ -10649,7 +10380,7 @@ 1 2 - 142294 + 145373 @@ -10659,26 +10390,26 @@ ruby_do_block_def - 142452 + 145534 id - 142452 + 145534 ruby_do_block_parameters - 16036 + 16724 ruby_do_block - 16036 + 16724 parameters - 16036 + 16724 @@ -10692,7 +10423,7 @@ 1 2 - 16036 + 16724 @@ -10708,7 +10439,7 @@ 1 2 - 16036 + 16724 @@ -10718,11 +10449,11 @@ ruby_do_child - 9374 + 9352 ruby_do - 1655 + 1651 index @@ -10730,7 +10461,7 @@ child - 9374 + 9352 @@ -10744,37 +10475,37 @@ 1 2 - 350 + 347 2 3 - 296 + 300 3 4 - 200 + 204 4 - 5 - 77 + 6 + 149 - 5 + 6 7 - 106 + 25 7 8 - 140 + 137 8 9 - 206 + 209 9 @@ -10805,37 +10536,37 @@ 1 2 - 350 + 347 2 3 - 296 + 300 3 4 - 200 + 204 4 - 5 - 77 + 6 + 149 - 5 + 6 7 - 106 + 25 7 8 - 140 + 137 8 9 - 206 + 209 9 @@ -10890,7 +10621,7 @@ 116 - 1656 + 1652 15 @@ -10931,7 +10662,7 @@ 116 - 1656 + 1652 15 @@ -10948,7 +10679,7 @@ 1 2 - 9374 + 9352 @@ -10964,7 +10695,7 @@ 1 2 - 9374 + 9352 @@ -10974,30 +10705,30 @@ ruby_do_def - 1681 + 1675 id - 1681 + 1675 ruby_element_reference_child - 80931 + 82748 ruby_element_reference - 80773 + 82601 index - 5 + 4 child - 80931 + 82748 @@ -11011,12 +10742,12 @@ 1 2 - 80615 + 82455 2 3 - 157 + 146 @@ -11032,12 +10763,12 @@ 1 2 - 80615 + 82455 2 3 - 157 + 146 @@ -11056,8 +10787,8 @@ 2 - 31710 - 31711 + 34958 + 34959 2 @@ -11077,8 +10808,8 @@ 2 - 31710 - 31711 + 34958 + 34959 2 @@ -11095,7 +10826,7 @@ 1 2 - 80931 + 82748 @@ -11111,7 +10842,7 @@ 1 2 - 80931 + 82748 @@ -11121,15 +10852,15 @@ ruby_element_reference_def - 80778 + 82606 id - 80778 + 82606 object - 80778 + 82606 @@ -11143,7 +10874,7 @@ 1 2 - 80778 + 82606 @@ -11159,7 +10890,7 @@ 1 2 - 80778 + 82606 @@ -11169,19 +10900,19 @@ ruby_else_child - 9507 + 9730 ruby_else - 7493 + 7669 index - 33 + 32 child - 9507 + 9730 @@ -11195,17 +10926,17 @@ 1 2 - 6305 + 6454 2 3 - 742 + 758 3 12 - 445 + 455 @@ -11221,17 +10952,17 @@ 1 2 - 6305 + 6454 2 3 - 742 + 758 3 12 - 445 + 455 @@ -11247,57 +10978,57 @@ 1 2 - 3 - - - 3 - 4 - 3 + 2 4 5 - 3 + 2 5 6 - 3 + 2 + + + 6 + 7 + 2 9 10 - 3 + 2 15 16 - 3 + 2 26 27 - 3 + 2 - 61 - 62 - 3 + 64 + 65 + 2 - 145 - 146 - 3 + 152 + 153 + 2 - 387 - 388 - 3 + 405 + 406 + 2 - 2441 - 2442 - 3 + 2557 + 2558 + 2 @@ -11313,57 +11044,57 @@ 1 2 - 3 - - - 3 - 4 - 3 + 2 4 5 - 3 + 2 5 6 - 3 + 2 + + + 6 + 7 + 2 9 10 - 3 + 2 15 16 - 3 + 2 26 27 - 3 + 2 - 61 - 62 - 3 + 64 + 65 + 2 - 145 - 146 - 3 + 152 + 153 + 2 - 387 - 388 - 3 + 405 + 406 + 2 - 2441 - 2442 - 3 + 2557 + 2558 + 2 @@ -11379,7 +11110,7 @@ 1 2 - 9507 + 9730 @@ -11395,7 +11126,7 @@ 1 2 - 9507 + 9730 @@ -11405,26 +11136,26 @@ ruby_else_def - 7505 + 7681 id - 7505 + 7681 ruby_elsif_alternative - 982 + 1058 ruby_elsif - 982 + 1058 alternative - 982 + 1058 @@ -11438,7 +11169,7 @@ 1 2 - 982 + 1058 @@ -11454,7 +11185,7 @@ 1 2 - 982 + 1058 @@ -11464,15 +11195,15 @@ ruby_elsif_consequence - 1505 + 1571 ruby_elsif - 1505 + 1571 consequence - 1505 + 1571 @@ -11486,7 +11217,7 @@ 1 2 - 1505 + 1571 @@ -11502,7 +11233,7 @@ 1 2 - 1505 + 1571 @@ -11512,15 +11243,15 @@ ruby_elsif_def - 1510 + 1583 id - 1510 + 1583 condition - 1510 + 1583 @@ -11534,7 +11265,7 @@ 1 2 - 1510 + 1583 @@ -11550,7 +11281,7 @@ 1 2 - 1510 + 1583 @@ -11568,7 +11299,7 @@ index - 9 + 10 child @@ -11586,12 +11317,12 @@ 1 2 - 7 + 8 2 3 - 4 + 3 3 @@ -11599,8 +11330,8 @@ 1 - 9 - 10 + 10 + 11 1 @@ -11617,12 +11348,12 @@ 1 2 - 7 + 8 2 3 - 4 + 3 3 @@ -11630,8 +11361,8 @@ 1 - 9 - 10 + 10 + 11 1 @@ -11648,7 +11379,7 @@ 1 2 - 6 + 7 2 @@ -11656,8 +11387,8 @@ 1 - 6 - 7 + 5 + 6 1 @@ -11679,7 +11410,7 @@ 1 2 - 6 + 7 2 @@ -11687,8 +11418,8 @@ 1 - 6 - 7 + 5 + 6 1 @@ -11747,19 +11478,19 @@ ruby_ensure_child - 5114 + 5236 ruby_ensure - 3981 + 4106 index - 49 + 47 child - 5114 + 5236 @@ -11773,17 +11504,17 @@ 1 2 - 3204 + 3323 2 3 - 543 + 554 3 17 - 233 + 227 @@ -11799,17 +11530,17 @@ 1 2 - 3204 + 3323 2 3 - 543 + 554 3 17 - 233 + 227 @@ -11825,42 +11556,42 @@ 1 2 - 24 + 23 3 4 - 6 + 5 4 5 - 3 + 2 5 6 - 3 + 2 17 18 - 3 + 2 76 77 - 3 + 2 - 253 - 254 - 3 + 261 + 262 + 2 - 1297 - 1298 - 3 + 1369 + 1370 + 2 @@ -11876,42 +11607,42 @@ 1 2 - 24 + 23 3 4 - 6 + 5 4 5 - 3 + 2 5 6 - 3 + 2 17 18 - 3 + 2 76 77 - 3 + 2 - 253 - 254 - 3 + 261 + 262 + 2 - 1297 - 1298 - 3 + 1369 + 1370 + 2 @@ -11927,7 +11658,7 @@ 1 2 - 5114 + 5236 @@ -11943,7 +11674,7 @@ 1 2 - 5114 + 5236 @@ -11953,26 +11684,26 @@ ruby_ensure_def - 3981 + 4106 id - 3981 + 4106 ruby_exception_variable_def - 924 + 935 id - 924 + 935 child - 924 + 935 @@ -11986,7 +11717,7 @@ 1 2 - 924 + 935 @@ -12002,7 +11733,7 @@ 1 2 - 924 + 935 @@ -12012,19 +11743,19 @@ ruby_exceptions_child - 2188 + 2128 ruby_exceptions - 1938 + 1904 index - 20 + 11 child - 2188 + 2128 @@ -12038,17 +11769,17 @@ 1 2 - 1770 + 1748 2 - 4 - 152 + 5 + 153 - 4 - 9 - 15 + 5 + 6 + 2 @@ -12064,17 +11795,17 @@ 1 2 - 1770 + 1748 2 - 4 - 152 + 5 + 153 - 4 - 9 - 15 + 5 + 6 + 2 @@ -12090,11 +11821,6 @@ 1 2 - 7 - - - 2 - 3 2 @@ -12103,8 +11829,8 @@ 2 - 21 - 22 + 22 + 23 2 @@ -12113,8 +11839,8 @@ 2 - 761 - 762 + 806 + 807 2 @@ -12131,11 +11857,6 @@ 1 2 - 7 - - - 2 - 3 2 @@ -12144,8 +11865,8 @@ 2 - 21 - 22 + 22 + 23 2 @@ -12154,8 +11875,8 @@ 2 - 761 - 762 + 806 + 807 2 @@ -12172,7 +11893,7 @@ 1 2 - 2188 + 2128 @@ -12188,7 +11909,7 @@ 1 2 - 2188 + 2128 @@ -12198,11 +11919,11 @@ ruby_exceptions_def - 1938 + 1904 id - 1938 + 1904 @@ -12452,23 +12173,23 @@ ruby_for_def - 158 + 136 id - 158 + 136 body - 158 + 136 pattern - 158 + 136 value - 158 + 136 @@ -12482,7 +12203,7 @@ 1 2 - 158 + 136 @@ -12498,7 +12219,7 @@ 1 2 - 158 + 136 @@ -12514,7 +12235,7 @@ 1 2 - 158 + 136 @@ -12530,7 +12251,7 @@ 1 2 - 158 + 136 @@ -12546,7 +12267,7 @@ 1 2 - 158 + 136 @@ -12562,7 +12283,7 @@ 1 2 - 158 + 136 @@ -12578,7 +12299,7 @@ 1 2 - 158 + 136 @@ -12594,7 +12315,7 @@ 1 2 - 158 + 136 @@ -12610,7 +12331,7 @@ 1 2 - 158 + 136 @@ -12626,7 +12347,7 @@ 1 2 - 158 + 136 @@ -12642,7 +12363,7 @@ 1 2 - 158 + 136 @@ -12658,7 +12379,7 @@ 1 2 - 158 + 136 @@ -12668,19 +12389,19 @@ ruby_hash_child - 93915 + 96207 ruby_hash - 37005 + 37893 index - 1408 + 1439 child - 93915 + 96207 @@ -12694,32 +12415,32 @@ 1 2 - 15244 + 15577 2 3 - 10347 + 10573 3 4 - 4146 + 4318 4 5 - 4291 + 4385 5 20 - 2817 + 2878 20 108 - 157 + 161 @@ -12735,32 +12456,32 @@ 1 2 - 15244 + 15577 2 3 - 10347 + 10573 3 4 - 4146 + 4318 4 5 - 4291 + 4385 5 20 - 2817 + 2878 20 108 - 157 + 161 @@ -12776,41 +12497,41 @@ 1 2 - 355 + 363 2 3 - 250 + 255 3 4 - 329 + 336 5 6 - 105 + 107 7 13 - 118 + 121 16 55 - 118 + 121 59 - 1654 - 118 + 1660 + 121 - 2811 - 2812 + 2817 + 2818 13 @@ -12827,41 +12548,41 @@ 1 2 - 355 + 363 2 3 - 250 + 255 3 4 - 329 + 336 5 6 - 105 + 107 7 13 - 118 + 121 16 55 - 118 + 121 59 - 1654 - 118 + 1660 + 121 - 2811 - 2812 + 2817 + 2818 13 @@ -12878,7 +12599,7 @@ 1 2 - 93915 + 96207 @@ -12894,7 +12615,7 @@ 1 2 - 93915 + 96207 @@ -12904,22 +12625,22 @@ ruby_hash_def - 40888 + 41915 id - 40888 + 41915 ruby_hash_pattern_child - 98 + 94 ruby_hash_pattern - 70 + 68 index @@ -12927,7 +12648,7 @@ child - 98 + 94 @@ -12946,7 +12667,7 @@ 2 3 - 14 + 12 3 @@ -12972,7 +12693,7 @@ 2 3 - 14 + 12 3 @@ -13001,13 +12722,13 @@ 1 - 20 - 21 + 18 + 19 1 - 70 - 71 + 68 + 69 1 @@ -13032,13 +12753,13 @@ 1 - 20 - 21 + 18 + 19 1 - 70 - 71 + 68 + 69 1 @@ -13055,7 +12776,7 @@ 1 2 - 98 + 94 @@ -13071,7 +12792,7 @@ 1 2 - 98 + 94 @@ -13081,15 +12802,15 @@ ruby_hash_pattern_class - 9 + 32 ruby_hash_pattern - 9 + 32 class - 9 + 32 @@ -13103,7 +12824,7 @@ 1 2 - 9 + 32 @@ -13119,7 +12840,7 @@ 1 2 - 9 + 32 @@ -13129,26 +12850,26 @@ ruby_hash_pattern_def - 75 + 73 id - 75 + 73 ruby_hash_splat_argument_child - 1902 + 1988 ruby_hash_splat_argument - 1902 + 1988 child - 1902 + 1988 @@ -13162,7 +12883,7 @@ 1 2 - 1902 + 1988 @@ -13178,7 +12899,7 @@ 1 2 - 1902 + 1988 @@ -13188,37 +12909,37 @@ ruby_hash_splat_argument_def - 1902 + 1989 id - 1902 + 1989 ruby_hash_splat_parameter_def - 1596 + 1574 id - 1596 + 1574 ruby_hash_splat_parameter_name - 1366 + 1352 ruby_hash_splat_parameter - 1366 + 1352 name - 1366 + 1352 @@ -13232,7 +12953,7 @@ 1 2 - 1366 + 1352 @@ -13248,7 +12969,7 @@ 1 2 - 1366 + 1352 @@ -13258,19 +12979,19 @@ ruby_heredoc_body_child - 26162 + 26244 ruby_heredoc_body - 5519 + 5817 index - 552 + 512 child - 26162 + 26244 @@ -13284,12 +13005,12 @@ 2 3 - 3156 + 3504 4 5 - 692 + 701 5 @@ -13299,7 +13020,7 @@ 6 7 - 720 + 675 7 @@ -13308,13 +13029,13 @@ 10 - 15 - 415 + 17 + 467 - 16 + 17 218 - 203 + 137 @@ -13330,12 +13051,12 @@ 2 3 - 3156 + 3504 4 5 - 692 + 701 5 @@ -13345,7 +13066,7 @@ 6 7 - 720 + 675 7 @@ -13354,13 +13075,13 @@ 10 - 15 - 415 + 17 + 467 - 16 + 17 218 - 203 + 137 @@ -13376,32 +13097,32 @@ 1 2 - 326 + 302 2 3 - 43 + 40 3 5 - 50 + 47 5 - 11 - 43 + 13 + 40 - 11 - 46 - 43 + 13 + 43 + 40 - 57 - 2168 - 45 + 56 + 2463 + 42 @@ -13417,32 +13138,32 @@ 1 2 - 326 + 302 2 3 - 43 + 40 3 5 - 50 + 47 5 - 11 - 43 + 13 + 40 - 11 - 46 - 43 + 13 + 43 + 40 - 57 - 2168 - 45 + 56 + 2463 + 42 @@ -13458,7 +13179,7 @@ 1 2 - 26162 + 26244 @@ -13474,7 +13195,7 @@ 1 2 - 26162 + 26244 @@ -13484,26 +13205,26 @@ ruby_heredoc_body_def - 6178 + 6934 id - 6178 + 6934 ruby_if_alternative - 7005 + 7192 ruby_if - 7005 + 7192 alternative - 7005 + 7192 @@ -13517,7 +13238,7 @@ 1 2 - 7005 + 7192 @@ -13533,7 +13254,7 @@ 1 2 - 7005 + 7192 @@ -13543,15 +13264,15 @@ ruby_if_consequence - 16338 + 16117 ruby_if - 16338 + 16117 consequence - 16338 + 16117 @@ -13565,7 +13286,7 @@ 1 2 - 16338 + 16117 @@ -13581,7 +13302,7 @@ 1 2 - 16338 + 16117 @@ -13591,15 +13312,15 @@ ruby_if_def - 16391 + 16164 id - 16391 + 16164 condition - 16391 + 16164 @@ -13613,7 +13334,7 @@ 1 2 - 16391 + 16164 @@ -13629,7 +13350,7 @@ 1 2 - 16391 + 16164 @@ -13687,19 +13408,19 @@ ruby_if_modifier_def - 14611 + 14541 id - 14611 + 14541 body - 14611 + 14541 condition - 14611 + 14541 @@ -13713,7 +13434,7 @@ 1 2 - 14611 + 14541 @@ -13729,7 +13450,7 @@ 1 2 - 14611 + 14541 @@ -13745,7 +13466,7 @@ 1 2 - 14611 + 14541 @@ -13761,7 +13482,7 @@ 1 2 - 14611 + 14541 @@ -13777,7 +13498,7 @@ 1 2 - 14611 + 14541 @@ -13793,7 +13514,7 @@ 1 2 - 14611 + 14541 @@ -13803,15 +13524,15 @@ ruby_in_clause_body - 345 + 341 ruby_in_clause - 345 + 341 body - 345 + 341 @@ -13825,7 +13546,7 @@ 1 2 - 345 + 341 @@ -13841,7 +13562,7 @@ 1 2 - 345 + 341 @@ -13851,15 +13572,15 @@ ruby_in_clause_def - 385 + 381 id - 385 + 381 pattern - 385 + 381 @@ -13873,7 +13594,7 @@ 1 2 - 385 + 381 @@ -13889,7 +13610,7 @@ 1 2 - 385 + 381 @@ -13947,15 +13668,15 @@ ruby_in_def - 158 + 136 id - 158 + 136 child - 158 + 136 @@ -13969,7 +13690,7 @@ 1 2 - 158 + 136 @@ -13985,7 +13706,7 @@ 1 2 - 158 + 136 @@ -13995,11 +13716,11 @@ ruby_interpolation_child - 38305 + 38493 ruby_interpolation - 38305 + 38493 index @@ -14007,7 +13728,7 @@ child - 38305 + 38493 @@ -14021,7 +13742,7 @@ 1 2 - 38305 + 38493 @@ -14037,7 +13758,7 @@ 1 2 - 38305 + 38493 @@ -14051,8 +13772,8 @@ 12 - 15038 - 15039 + 16291 + 16292 2 @@ -14067,8 +13788,8 @@ 12 - 15038 - 15039 + 16291 + 16292 2 @@ -14085,7 +13806,7 @@ 1 2 - 38305 + 38493 @@ -14101,7 +13822,7 @@ 1 2 - 38305 + 38493 @@ -14111,26 +13832,26 @@ ruby_interpolation_def - 38305 + 38493 id - 38305 + 38493 ruby_keyword_parameter_def - 4144 + 4763 id - 4144 + 4763 name - 4144 + 4763 @@ -14144,7 +13865,7 @@ 1 2 - 4144 + 4763 @@ -14160,7 +13881,7 @@ 1 2 - 4144 + 4763 @@ -14170,15 +13891,15 @@ ruby_keyword_parameter_value - 3100 + 3293 ruby_keyword_parameter - 3100 + 3293 value - 3100 + 3293 @@ -14192,7 +13913,7 @@ 1 2 - 3100 + 3293 @@ -14208,7 +13929,7 @@ 1 2 - 3100 + 3293 @@ -14218,15 +13939,15 @@ ruby_keyword_pattern_def - 80 + 77 id - 80 + 77 key__ - 80 + 77 @@ -14240,7 +13961,7 @@ 1 2 - 80 + 77 @@ -14256,7 +13977,7 @@ 1 2 - 80 + 77 @@ -14266,15 +13987,15 @@ ruby_keyword_pattern_value - 40 + 56 ruby_keyword_pattern - 40 + 56 value - 40 + 56 @@ -14288,7 +14009,7 @@ 1 2 - 40 + 56 @@ -14304,7 +14025,7 @@ 1 2 - 40 + 56 @@ -14314,15 +14035,15 @@ ruby_lambda_def - 7948 + 8187 id - 7948 + 8187 body - 7948 + 8187 @@ -14336,7 +14057,7 @@ 1 2 - 7948 + 8187 @@ -14352,7 +14073,7 @@ 1 2 - 7948 + 8187 @@ -14362,15 +14083,15 @@ ruby_lambda_parameters - 1762 + 1811 ruby_lambda - 1762 + 1811 parameters - 1762 + 1811 @@ -14384,7 +14105,7 @@ 1 2 - 1762 + 1811 @@ -14400,7 +14121,7 @@ 1 2 - 1762 + 1811 @@ -14410,11 +14131,11 @@ ruby_lambda_parameters_child - 2109 + 2197 ruby_lambda_parameters - 1752 + 1801 index @@ -14422,7 +14143,7 @@ child - 2109 + 2197 @@ -14436,17 +14157,17 @@ 1 2 - 1514 + 1545 2 3 - 167 + 164 3 9 - 71 + 92 @@ -14462,17 +14183,17 @@ 1 2 - 1514 + 1545 2 3 - 167 + 164 3 9 - 71 + 92 @@ -14511,18 +14232,18 @@ 1 - 71 - 72 + 92 + 93 1 - 238 - 239 + 256 + 257 1 - 1752 - 1753 + 1801 + 1802 1 @@ -14562,18 +14283,18 @@ 1 - 71 - 72 + 92 + 93 1 - 238 - 239 + 256 + 257 1 - 1752 - 1753 + 1801 + 1802 1 @@ -14590,7 +14311,7 @@ 1 2 - 2109 + 2197 @@ -14606,7 +14327,7 @@ 1 2 - 2109 + 2197 @@ -14616,22 +14337,22 @@ ruby_lambda_parameters_def - 1762 + 1811 id - 1762 + 1811 ruby_left_assignment_list_child - 6610 + 6934 ruby_left_assignment_list - 2994 + 3100 index @@ -14639,7 +14360,7 @@ child - 6610 + 6934 @@ -14653,22 +14374,22 @@ 1 2 - 372 + 382 2 3 - 1951 + 2002 3 4 - 505 + 531 4 16 - 166 + 185 @@ -14684,22 +14405,22 @@ 1 2 - 372 + 382 2 3 - 1951 + 2002 3 4 - 505 + 531 4 16 - 166 + 185 @@ -14713,63 +14434,63 @@ 12 - 2 - 3 - 1 - - - 4 - 5 - 2 + 3 + 4 + 1 6 7 - 3 + 2 10 11 + 3 + + + 15 + 16 1 - 14 - 15 + 20 + 21 1 - 16 - 17 + 22 + 23 1 - 30 - 31 + 41 + 42 1 - 59 - 60 + 72 + 73 1 - 166 - 167 + 185 + 186 1 - 671 - 672 + 716 + 717 1 - 2622 - 2623 + 2718 + 2719 1 - 2994 - 2995 + 3100 + 3101 1 @@ -14784,63 +14505,63 @@ 12 - 2 - 3 + 3 + 4 1 - - 4 - 5 - 2 - 6 7 - 3 + 2 10 11 + 3 + + + 15 + 16 1 - 14 - 15 + 20 + 21 1 - 16 - 17 + 22 + 23 1 - 30 - 31 + 41 + 42 1 - 59 - 60 + 72 + 73 1 - 166 - 167 + 185 + 186 1 - 671 - 672 + 716 + 717 1 - 2622 - 2623 + 2718 + 2719 1 - 2994 - 2995 + 3100 + 3101 1 @@ -14857,7 +14578,7 @@ 1 2 - 6610 + 6934 @@ -14873,7 +14594,7 @@ 1 2 - 6610 + 6934 @@ -14883,11 +14604,11 @@ ruby_left_assignment_list_def - 2994 + 3100 id - 2994 + 3100 @@ -15010,15 +14731,15 @@ ruby_method_body - 101013 + 102401 ruby_method - 101013 + 102401 body - 101013 + 102401 @@ -15032,7 +14753,7 @@ 1 2 - 101013 + 102401 @@ -15048,7 +14769,7 @@ 1 2 - 101013 + 102401 @@ -15058,15 +14779,15 @@ ruby_method_def - 102124 + 103532 id - 102124 + 103532 name - 102124 + 103532 @@ -15080,7 +14801,7 @@ 1 2 - 102124 + 103532 @@ -15096,7 +14817,7 @@ 1 2 - 102124 + 103532 @@ -15106,15 +14827,15 @@ ruby_method_parameters - 29141 + 29519 ruby_method - 29141 + 29519 parameters - 29141 + 29519 @@ -15128,7 +14849,7 @@ 1 2 - 29141 + 29519 @@ -15144,7 +14865,7 @@ 1 2 - 29141 + 29519 @@ -15154,19 +14875,19 @@ ruby_method_parameters_child - 50543 + 51112 ruby_method_parameters - 30620 + 31001 index - 39 + 41 child - 50543 + 51112 @@ -15180,22 +14901,22 @@ 1 2 - 18615 + 18836 2 3 - 7339 + 7543 3 4 - 2903 + 2840 4 - 14 - 1762 + 15 + 1781 @@ -15211,22 +14932,22 @@ 1 2 - 18615 + 18836 2 3 - 7339 + 7543 3 4 - 2903 + 2840 4 - 14 - 1762 + 15 + 1781 @@ -15242,62 +14963,62 @@ 1 2 - 6 + 8 4 5 - 3 + 2 - 5 - 6 - 3 + 7 + 8 + 2 - 11 - 12 - 3 + 13 + 14 + 2 - 29 - 30 - 3 + 37 + 38 + 2 - 54 - 55 - 3 + 59 + 60 + 2 - 125 - 126 - 3 + 129 + 130 + 2 - 255 - 256 - 3 + 262 + 263 + 2 - 574 - 575 - 3 + 594 + 595 + 2 - 1520 - 1521 - 3 + 1541 + 1542 + 2 - 3911 - 3912 - 3 + 4056 + 4057 + 2 - 9975 - 9976 - 3 + 10336 + 10337 + 2 @@ -15313,62 +15034,62 @@ 1 2 - 6 + 8 4 5 - 3 + 2 - 5 - 6 - 3 + 7 + 8 + 2 - 11 - 12 - 3 + 13 + 14 + 2 - 29 - 30 - 3 + 37 + 38 + 2 - 54 - 55 - 3 + 59 + 60 + 2 - 125 - 126 - 3 + 129 + 130 + 2 - 255 - 256 - 3 + 262 + 263 + 2 - 574 - 575 - 3 + 594 + 595 + 2 - 1520 - 1521 - 3 + 1541 + 1542 + 2 - 3911 - 3912 - 3 + 4056 + 4057 + 2 - 9975 - 9976 - 3 + 10336 + 10337 + 2 @@ -15384,7 +15105,7 @@ 1 2 - 50543 + 51112 @@ -15400,7 +15121,7 @@ 1 2 - 50543 + 51112 @@ -15410,26 +15131,26 @@ ruby_method_parameters_def - 30832 + 31208 id - 30832 + 31208 ruby_module_body - 22274 + 22881 ruby_module - 22274 + 22881 body - 22274 + 22881 @@ -15443,7 +15164,7 @@ 1 2 - 22274 + 22881 @@ -15459,7 +15180,7 @@ 1 2 - 22274 + 22881 @@ -15469,15 +15190,15 @@ ruby_module_def - 22353 + 22962 id - 22353 + 22962 name - 22353 + 22962 @@ -15491,7 +15212,7 @@ 1 2 - 22353 + 22962 @@ -15507,7 +15228,7 @@ 1 2 - 22353 + 22962 @@ -15517,15 +15238,15 @@ ruby_next_child - 241 + 256 ruby_next - 241 + 256 child - 241 + 256 @@ -15539,7 +15260,7 @@ 1 2 - 241 + 256 @@ -15555,7 +15276,7 @@ 1 2 - 241 + 256 @@ -15565,34 +15286,34 @@ ruby_next_def - 1902 + 2020 id - 1902 + 2020 ruby_operator_assignment_def - 6006 + 6160 id - 6006 + 6160 left - 6006 + 6160 operator - 17 + 16 right - 6006 + 6160 @@ -15606,7 +15327,7 @@ 1 2 - 6006 + 6160 @@ -15622,7 +15343,7 @@ 1 2 - 6006 + 6160 @@ -15638,7 +15359,7 @@ 1 2 - 6006 + 6160 @@ -15654,7 +15375,7 @@ 1 2 - 6006 + 6160 @@ -15670,7 +15391,7 @@ 1 2 - 6006 + 6160 @@ -15686,7 +15407,7 @@ 1 2 - 6006 + 6160 @@ -15700,8 +15421,8 @@ 12 - 2 - 3 + 3 + 4 2 @@ -15710,28 +15431,28 @@ 2 - 8 - 9 + 10 + 11 2 - 9 - 10 + 11 + 12 2 - 60 - 61 + 64 + 65 2 - 630 - 631 + 707 + 708 2 - 1645 - 1646 + 1808 + 1809 2 @@ -15746,8 +15467,8 @@ 12 - 2 - 3 + 3 + 4 2 @@ -15756,28 +15477,28 @@ 2 - 8 - 9 + 10 + 11 2 - 9 - 10 + 11 + 12 2 - 60 - 61 + 64 + 65 2 - 630 - 631 + 707 + 708 2 - 1645 - 1646 + 1808 + 1809 2 @@ -15792,8 +15513,8 @@ 12 - 2 - 3 + 3 + 4 2 @@ -15802,28 +15523,28 @@ 2 - 8 - 9 + 10 + 11 2 - 9 - 10 + 11 + 12 2 - 60 - 61 + 64 + 65 2 - 630 - 631 + 707 + 708 2 - 1645 - 1646 + 1808 + 1809 2 @@ -15840,7 +15561,7 @@ 1 2 - 6006 + 6160 @@ -15856,7 +15577,7 @@ 1 2 - 6006 + 6160 @@ -15872,7 +15593,7 @@ 1 2 - 6006 + 6160 @@ -15882,19 +15603,19 @@ ruby_optional_parameter_def - 6636 + 6556 id - 6636 + 6556 name - 6636 + 6556 value - 6636 + 6556 @@ -15908,7 +15629,7 @@ 1 2 - 6636 + 6556 @@ -15924,7 +15645,7 @@ 1 2 - 6636 + 6556 @@ -15940,7 +15661,7 @@ 1 2 - 6636 + 6556 @@ -15956,7 +15677,7 @@ 1 2 - 6636 + 6556 @@ -15972,7 +15693,7 @@ 1 2 - 6636 + 6556 @@ -15988,7 +15709,7 @@ 1 2 - 6636 + 6556 @@ -15998,15 +15719,15 @@ ruby_pair_def - 248347 + 254198 id - 248347 + 254198 key__ - 248347 + 254198 @@ -16020,7 +15741,7 @@ 1 2 - 248347 + 254198 @@ -16036,7 +15757,7 @@ 1 2 - 248347 + 254198 @@ -16046,15 +15767,15 @@ ruby_pair_value - 248347 + 254198 ruby_pair - 248347 + 254198 value - 248347 + 254198 @@ -16068,7 +15789,7 @@ 1 2 - 248347 + 254198 @@ -16084,7 +15805,7 @@ 1 2 - 248347 + 254198 @@ -16142,11 +15863,11 @@ ruby_parenthesized_statements_child - 10948 + 11347 ruby_parenthesized_statements - 10874 + 11258 index @@ -16154,7 +15875,7 @@ child - 10948 + 11347 @@ -16168,12 +15889,12 @@ 1 2 - 10810 + 11179 2 5 - 64 + 79 @@ -16189,12 +15910,12 @@ 1 2 - 10810 + 11179 2 5 - 64 + 79 @@ -16218,13 +15939,13 @@ 1 - 64 - 65 + 79 + 80 1 - 10874 - 10875 + 11258 + 11259 1 @@ -16249,13 +15970,13 @@ 1 - 64 - 65 + 79 + 80 1 - 10874 - 10875 + 11258 + 11259 1 @@ -16272,7 +15993,7 @@ 1 2 - 10948 + 11347 @@ -16288,7 +16009,7 @@ 1 2 - 10948 + 11347 @@ -16298,26 +16019,26 @@ ruby_parenthesized_statements_def - 10912 + 11296 id - 10912 + 11296 ruby_pattern_def - 4153 + 4745 id - 4153 + 4745 child - 4153 + 4745 @@ -16331,7 +16052,7 @@ 1 2 - 4153 + 4745 @@ -16347,7 +16068,7 @@ 1 2 - 4153 + 4745 @@ -16357,11 +16078,11 @@ ruby_program_child - 33982 + 33893 ruby_program - 10658 + 10674 index @@ -16369,7 +16090,7 @@ child - 33982 + 33893 @@ -16383,32 +16104,32 @@ 1 2 - 3932 + 3956 2 3 - 2514 + 2531 3 4 - 1758 + 1772 4 5 - 801 + 794 5 8 - 917 + 902 8 - 79 - 733 + 81 + 716 @@ -16424,32 +16145,32 @@ 1 2 - 3932 + 3956 2 3 - 2514 + 2531 3 4 - 1758 + 1772 4 5 - 801 + 794 5 8 - 917 + 902 8 - 79 - 733 + 81 + 716 @@ -16465,57 +16186,57 @@ 1 2 - 46 + 50 2 3 - 36 + 29 - 4 - 9 - 21 + 3 + 7 + 17 - 9 - 12 - 18 + 8 + 11 + 17 - 13 - 17 - 18 + 11 + 15 + 17 - 17 - 28 - 18 + 16 + 23 + 17 - 29 - 44 - 18 + 26 + 36 + 17 - 45 - 80 - 18 + 38 + 60 + 17 - 89 - 190 - 18 + 67 + 129 + 17 - 239 - 1373 - 18 + 145 + 397 + 17 - 2191 - 3473 - 6 + 540 + 3560 + 14 @@ -16531,57 +16252,57 @@ 1 2 - 46 + 50 2 3 - 36 + 29 - - 4 - 9 - 21 + + 3 + 7 + 17 - 9 - 12 - 18 + 8 + 11 + 17 - 13 - 17 - 18 + 11 + 15 + 17 - 17 - 28 - 18 + 16 + 23 + 17 - 29 - 44 - 18 + 26 + 36 + 17 - 45 - 80 - 18 + 38 + 60 + 17 - 89 - 190 - 18 + 67 + 129 + 17 - 239 - 1373 - 18 + 145 + 397 + 17 - 2191 - 3473 - 6 + 540 + 3560 + 14 @@ -16597,7 +16318,7 @@ 1 2 - 33982 + 33893 @@ -16613,7 +16334,7 @@ 1 2 - 33982 + 33893 @@ -16623,26 +16344,26 @@ ruby_program_def - 18219 + 18697 id - 18219 + 18697 ruby_range_begin - 4491 + 4748 ruby_range - 4491 + 4748 begin - 4491 + 4748 @@ -16656,7 +16377,7 @@ 1 2 - 4491 + 4748 @@ -16672,7 +16393,7 @@ 1 2 - 4491 + 4748 @@ -16682,11 +16403,11 @@ ruby_range_def - 4770 + 5066 id - 4770 + 5066 operator @@ -16704,7 +16425,7 @@ 1 2 - 4770 + 5066 @@ -16718,13 +16439,13 @@ 12 - 1634 - 1635 + 1376 + 1377 1 - 3136 - 3137 + 3690 + 3691 1 @@ -16735,15 +16456,15 @@ ruby_range_end - 4576 + 4818 ruby_range - 4576 + 4818 end - 4576 + 4818 @@ -16757,7 +16478,7 @@ 1 2 - 4576 + 4818 @@ -16773,7 +16494,7 @@ 1 2 - 4576 + 4818 @@ -16783,15 +16504,15 @@ ruby_rational_def - 138 + 166 id - 138 + 166 child - 138 + 166 @@ -16805,7 +16526,7 @@ 1 2 - 138 + 166 @@ -16821,7 +16542,7 @@ 1 2 - 138 + 166 @@ -16890,19 +16611,19 @@ ruby_regex_child - 44658 + 45368 ruby_regex - 13335 + 13665 index - 150 + 146 child - 44658 + 45368 @@ -16916,42 +16637,42 @@ 1 2 - 6808 + 7006 2 3 - 752 + 800 3 4 - 1826 + 1868 4 5 - 506 + 500 5 6 - 1108 + 1124 6 8 - 1034 + 1031 8 16 - 1055 + 1094 16 50 - 242 + 236 @@ -16967,42 +16688,42 @@ 1 2 - 6808 + 7006 2 3 - 752 + 800 3 4 - 1826 + 1868 4 5 - 506 + 500 5 6 - 1108 + 1124 6 8 - 1034 + 1031 8 16 - 1055 + 1094 16 50 - 242 + 236 @@ -17018,67 +16739,67 @@ 1 2 - 18 + 17 4 5 - 12 + 11 6 7 - 3 + 2 7 8 - 12 + 11 8 15 - 12 + 11 15 - 19 - 12 + 18 + 8 - 19 - 23 - 9 + 18 + 21 + 11 - 23 + 21 31 - 12 + 11 32 80 - 12 + 11 103 - 175 - 12 + 184 + 11 - 239 - 424 - 12 + 249 + 445 + 11 - 671 - 1287 - 12 + 696 + 1331 + 11 - 1881 - 4345 - 9 + 1953 + 4557 + 8 @@ -17094,67 +16815,67 @@ 1 2 - 18 + 17 4 5 - 12 + 11 6 7 - 3 + 2 7 8 - 12 + 11 8 15 - 12 + 11 15 - 19 - 12 + 18 + 8 - 19 - 23 - 9 + 18 + 21 + 11 - 23 + 21 31 - 12 + 11 32 80 - 12 + 11 103 - 175 - 12 + 184 + 11 - 239 - 424 - 12 + 249 + 445 + 11 - 671 - 1287 - 12 + 696 + 1331 + 11 - 1881 - 4345 - 9 + 1953 + 4557 + 8 @@ -17170,7 +16891,7 @@ 1 2 - 44658 + 45368 @@ -17186,7 +16907,7 @@ 1 2 - 44658 + 45368 @@ -17196,26 +16917,26 @@ ruby_regex_def - 13350 + 13680 id - 13350 + 13680 ruby_rescue_body - 2083 + 2050 ruby_rescue - 2083 + 2050 body - 2083 + 2050 @@ -17229,7 +16950,7 @@ 1 2 - 2083 + 2050 @@ -17245,7 +16966,7 @@ 1 2 - 2083 + 2050 @@ -17255,26 +16976,26 @@ ruby_rescue_def - 2346 + 2299 id - 2346 + 2299 ruby_rescue_exceptions - 1938 + 1904 ruby_rescue - 1938 + 1904 exceptions - 1938 + 1904 @@ -17288,7 +17009,7 @@ 1 2 - 1938 + 1904 @@ -17304,7 +17025,7 @@ 1 2 - 1938 + 1904 @@ -17314,19 +17035,19 @@ ruby_rescue_modifier_def - 448 + 458 id - 448 + 458 body - 448 + 458 handler - 448 + 458 @@ -17340,7 +17061,7 @@ 1 2 - 448 + 458 @@ -17356,7 +17077,7 @@ 1 2 - 448 + 458 @@ -17372,7 +17093,7 @@ 1 2 - 448 + 458 @@ -17388,7 +17109,7 @@ 1 2 - 448 + 458 @@ -17404,7 +17125,7 @@ 1 2 - 448 + 458 @@ -17420,7 +17141,7 @@ 1 2 - 448 + 458 @@ -17430,15 +17151,15 @@ ruby_rescue_variable - 924 + 935 ruby_rescue - 924 + 935 variable - 924 + 935 @@ -17452,7 +17173,7 @@ 1 2 - 924 + 935 @@ -17468,7 +17189,7 @@ 1 2 - 924 + 935 @@ -17478,15 +17199,15 @@ ruby_rest_assignment_child - 383 + 392 ruby_rest_assignment - 383 + 392 child - 383 + 392 @@ -17500,7 +17221,7 @@ 1 2 - 383 + 392 @@ -17516,7 +17237,7 @@ 1 2 - 383 + 392 @@ -17526,11 +17247,11 @@ ruby_rest_assignment_def - 401 + 414 id - 401 + 414 @@ -17585,26 +17306,26 @@ ruby_retry_def - 60 + 58 id - 60 + 58 ruby_return_child - 5084 + 4938 ruby_return - 5084 + 4938 child - 5084 + 4938 @@ -17618,7 +17339,7 @@ 1 2 - 5084 + 4938 @@ -17634,7 +17355,7 @@ 1 2 - 5084 + 4938 @@ -17644,30 +17365,30 @@ ruby_return_def - 8197 + 7979 id - 8197 + 7979 ruby_right_assignment_list_child - 2600 + 2741 ruby_right_assignment_list - 1224 + 1280 index - 15 + 14 child - 2600 + 2741 @@ -17681,17 +17402,17 @@ 2 3 - 1098 + 1136 3 4 - 104 + 113 4 6 - 21 + 29 @@ -17707,17 +17428,17 @@ 2 3 - 1098 + 1136 3 4 - 104 + 113 4 6 - 21 + 29 @@ -17731,24 +17452,24 @@ 12 - 1 - 2 - 3 + 2 + 3 + 2 - 7 - 8 - 3 + 10 + 11 + 2 - 41 - 42 - 3 + 48 + 49 + 2 - 399 - 400 - 6 + 427 + 428 + 5 @@ -17762,24 +17483,24 @@ 12 - 1 - 2 - 3 + 2 + 3 + 2 - 7 - 8 - 3 + 10 + 11 + 2 - 41 - 42 - 3 + 48 + 49 + 2 - 399 - 400 - 6 + 427 + 428 + 5 @@ -17795,7 +17516,7 @@ 1 2 - 2600 + 2741 @@ -17811,7 +17532,7 @@ 1 2 - 2600 + 2741 @@ -17821,26 +17542,26 @@ ruby_right_assignment_list_def - 1224 + 1280 id - 1224 + 1280 ruby_scope_resolution_def - 84884 + 87113 id - 84884 + 87113 name - 84884 + 87113 @@ -17854,7 +17575,7 @@ 1 2 - 84884 + 87113 @@ -17870,7 +17591,7 @@ 1 2 - 84884 + 87113 @@ -17880,15 +17601,15 @@ ruby_scope_resolution_scope - 83028 + 85203 ruby_scope_resolution - 83028 + 85203 scope - 83028 + 85203 @@ -17902,7 +17623,7 @@ 1 2 - 83028 + 85203 @@ -17918,7 +17639,7 @@ 1 2 - 83028 + 85203 @@ -17928,15 +17649,15 @@ ruby_setter_def - 653 + 656 id - 653 + 656 name - 653 + 656 @@ -17950,7 +17671,7 @@ 1 2 - 653 + 656 @@ -17966,7 +17687,7 @@ 1 2 - 653 + 656 @@ -17976,15 +17697,15 @@ ruby_singleton_class_body - 663 + 677 ruby_singleton_class - 663 + 677 body - 663 + 677 @@ -17998,7 +17719,7 @@ 1 2 - 663 + 677 @@ -18014,7 +17735,7 @@ 1 2 - 663 + 677 @@ -18024,15 +17745,15 @@ ruby_singleton_class_def - 663 + 677 id - 663 + 677 value - 663 + 677 @@ -18046,7 +17767,7 @@ 1 2 - 663 + 677 @@ -18062,7 +17783,7 @@ 1 2 - 663 + 677 @@ -18072,15 +17793,15 @@ ruby_singleton_method_body - 6447 + 6313 ruby_singleton_method - 6447 + 6313 body - 6447 + 6313 @@ -18094,7 +17815,7 @@ 1 2 - 6447 + 6313 @@ -18110,7 +17831,7 @@ 1 2 - 6447 + 6313 @@ -18120,19 +17841,19 @@ ruby_singleton_method_def - 6459 + 6325 id - 6459 + 6325 name - 6459 + 6325 object - 6459 + 6325 @@ -18146,7 +17867,7 @@ 1 2 - 6459 + 6325 @@ -18162,7 +17883,7 @@ 1 2 - 6459 + 6325 @@ -18178,7 +17899,7 @@ 1 2 - 6459 + 6325 @@ -18194,7 +17915,7 @@ 1 2 - 6459 + 6325 @@ -18210,7 +17931,7 @@ 1 2 - 6459 + 6325 @@ -18226,7 +17947,7 @@ 1 2 - 6459 + 6325 @@ -18236,15 +17957,15 @@ ruby_singleton_method_parameters - 4073 + 3929 ruby_singleton_method - 4073 + 3929 parameters - 4073 + 3929 @@ -18258,7 +17979,7 @@ 1 2 - 4073 + 3929 @@ -18274,7 +17995,7 @@ 1 2 - 4073 + 3929 @@ -18284,15 +18005,15 @@ ruby_splat_argument_child - 3454 + 3605 ruby_splat_argument - 3454 + 3605 child - 3454 + 3605 @@ -18306,7 +18027,7 @@ 1 2 - 3454 + 3605 @@ -18322,7 +18043,7 @@ 1 2 - 3454 + 3605 @@ -18332,37 +18053,37 @@ ruby_splat_argument_def - 3454 + 3606 id - 3454 + 3606 ruby_splat_parameter_def - 3192 + 3014 id - 3192 + 3014 ruby_splat_parameter_name - 2514 + 2297 ruby_splat_parameter - 2514 + 2297 name - 2514 + 2297 @@ -18376,7 +18097,7 @@ 1 2 - 2514 + 2297 @@ -18392,7 +18113,7 @@ 1 2 - 2514 + 2297 @@ -18402,19 +18123,19 @@ ruby_string_array_child - 12799 + 13136 ruby_string_array - 4062 + 4120 index - 536 + 606 child - 12799 + 13136 @@ -18428,32 +18149,32 @@ 1 2 - 1313 + 1350 2 3 - 1310 + 1304 3 4 - 625 + 630 4 5 - 349 + 356 5 10 - 325 + 332 10 - 537 - 140 + 607 + 148 @@ -18469,32 +18190,32 @@ 1 2 - 1313 + 1350 2 3 - 1310 + 1304 3 4 - 625 + 630 4 5 - 349 + 356 5 10 - 325 + 332 10 - 537 - 140 + 607 + 148 @@ -18510,22 +18231,22 @@ 1 2 - 432 + 506 2 - 7 - 42 + 10 + 48 - 7 - 47 - 41 + 11 + 266 + 46 - 49 - 4063 - 21 + 344 + 4121 + 6 @@ -18541,22 +18262,22 @@ 1 2 - 432 + 506 2 - 7 - 42 + 10 + 48 - 7 - 47 - 41 + 11 + 266 + 46 - 49 - 4063 - 21 + 344 + 4121 + 6 @@ -18572,7 +18293,7 @@ 1 2 - 12799 + 13136 @@ -18588,7 +18309,7 @@ 1 2 - 12799 + 13136 @@ -18598,22 +18319,22 @@ ruby_string_array_def - 4213 + 4287 id - 4213 + 4287 ruby_string_child - 549106 + 559228 ruby_string__ - 477859 + 483542 index @@ -18621,7 +18342,7 @@ child - 549106 + 559228 @@ -18635,12 +18356,12 @@ 1 2 - 449884 + 454555 2 282 - 27975 + 28987 @@ -18656,12 +18377,12 @@ 1 2 - 449884 + 454555 2 282 - 27975 + 28987 @@ -18677,31 +18398,36 @@ 1 2 - 129 + 95 - 4 - 5 - 64 + 2 + 3 + 34 5 - 7 + 6 + 64 + + + 6 + 9 22 - 7 - 27 + 9 + 37 22 - 28 - 83 + 37 + 108 22 - 104 - 477860 + 129 + 483543 22 @@ -18718,31 +18444,36 @@ 1 2 - 129 + 95 - 4 - 5 - 64 + 2 + 3 + 34 5 - 7 + 6 + 64 + + + 6 + 9 22 - 7 - 27 + 9 + 37 22 - 28 - 83 + 37 + 108 22 - 104 - 477860 + 129 + 483543 22 @@ -18759,7 +18490,7 @@ 1 2 - 549106 + 559228 @@ -18775,7 +18506,7 @@ 1 2 - 549106 + 559228 @@ -18785,30 +18516,30 @@ ruby_string_def - 485218 + 490602 id - 485218 + 490602 ruby_subshell_child - 561 + 551 ruby_subshell - 365 + 359 index - 33 + 32 child - 561 + 551 @@ -18827,17 +18558,17 @@ 2 3 - 58 + 53 3 5 - 33 + 32 5 12 - 9 + 8 @@ -18858,17 +18589,17 @@ 2 3 - 58 + 53 3 5 - 33 + 32 5 12 - 9 + 8 @@ -18884,37 +18615,37 @@ 1 2 - 12 + 11 2 3 - 6 + 5 3 4 - 3 + 2 - 6 - 7 - 3 + 7 + 8 + 2 14 15 - 3 + 2 - 33 - 34 - 3 + 32 + 33 + 2 - 119 - 120 - 3 + 120 + 121 + 2 @@ -18930,37 +18661,37 @@ 1 2 - 12 + 11 2 3 - 6 + 5 3 4 - 3 + 2 - 6 - 7 - 3 + 7 + 8 + 2 14 15 - 3 + 2 - 33 - 34 - 3 + 32 + 33 + 2 - 119 - 120 - 3 + 120 + 121 + 2 @@ -18976,7 +18707,7 @@ 1 2 - 561 + 551 @@ -18992,7 +18723,7 @@ 1 2 - 561 + 551 @@ -19002,26 +18733,26 @@ ruby_subshell_def - 365 + 359 id - 365 + 359 ruby_superclass_def - 13666 + 13806 id - 13666 + 13806 child - 13666 + 13806 @@ -19035,7 +18766,7 @@ 1 2 - 13666 + 13806 @@ -19051,7 +18782,7 @@ 1 2 - 13666 + 13806 @@ -19061,19 +18792,19 @@ ruby_symbol_array_child - 7967 + 8435 ruby_symbol_array - 2170 + 2240 index - 241 + 233 child - 7967 + 8435 @@ -19087,37 +18818,37 @@ 1 2 - 178 + 219 2 3 - 1161 + 1129 3 4 - 354 + 347 4 5 - 127 + 160 5 8 - 183 + 189 8 - 94 - 163 + 24 + 170 - 95 - 96 - 2 + 24 + 100 + 23 @@ -19133,37 +18864,37 @@ 1 2 - 178 + 219 2 3 - 1161 + 1129 3 4 - 354 + 347 4 5 - 127 + 160 5 8 - 183 + 189 8 - 94 - 163 + 24 + 170 - 95 - 96 - 2 + 24 + 100 + 23 @@ -19179,37 +18910,37 @@ 1 2 - 5 + 9 2 3 - 152 + 139 4 - 9 - 20 + 8 + 18 - 9 - 20 - 20 + 8 + 17 + 18 - 23 - 47 - 20 + 19 + 41 + 18 - 55 - 783 - 20 + 44 + 163 + 18 - 852 - 853 - 2 + 230 + 949 + 9 @@ -19225,37 +18956,37 @@ 1 2 - 5 + 9 2 3 - 152 + 139 4 - 9 - 20 + 8 + 18 - 9 - 20 - 20 + 8 + 17 + 18 - 23 - 47 - 20 + 19 + 41 + 18 - 55 - 783 - 20 + 44 + 163 + 18 - 852 - 853 - 2 + 230 + 949 + 9 @@ -19271,7 +19002,7 @@ 1 2 - 7967 + 8435 @@ -19287,7 +19018,7 @@ 1 2 - 7967 + 8435 @@ -19297,30 +19028,30 @@ ruby_symbol_array_def - 2170 + 2240 id - 2170 + 2240 ruby_test_pattern_def - 4 + 5 id - 4 + 5 pattern - 4 + 5 value - 4 + 5 @@ -19334,7 +19065,7 @@ 1 2 - 4 + 5 @@ -19350,7 +19081,7 @@ 1 2 - 4 + 5 @@ -19366,7 +19097,7 @@ 1 2 - 4 + 5 @@ -19382,7 +19113,7 @@ 1 2 - 4 + 5 @@ -19398,7 +19129,7 @@ 1 2 - 4 + 5 @@ -19414,7 +19145,7 @@ 1 2 - 4 + 5 @@ -19424,19 +19155,19 @@ ruby_then_child - 37566 + 37016 ruby_then - 22451 + 22229 index - 91 + 85 child - 37566 + 37016 @@ -19450,22 +19181,22 @@ 1 2 - 14093 + 13943 2 3 - 5076 + 5070 3 4 - 1811 + 1817 4 37 - 1469 + 1398 @@ -19481,22 +19212,22 @@ 1 2 - 14093 + 13943 2 3 - 5076 + 5070 3 4 - 1811 + 1817 4 37 - 1469 + 1398 @@ -19512,51 +19243,51 @@ 1 2 - 35 + 30 - 3 + 2 4 - 2 + 4 4 5 - 10 + 9 - 5 + 6 8 - 5 + 4 - 9 - 10 - 5 + 8 + 9 + 4 10 - 18 + 19 7 - 29 - 60 + 30 + 61 7 - 95 - 309 + 98 + 310 7 - 577 - 3282 + 592 + 3508 7 - 8814 - 8815 + 9408 + 9409 2 @@ -19573,51 +19304,51 @@ 1 2 - 35 + 30 - 3 + 2 4 - 2 + 4 4 5 - 10 + 9 - 5 + 6 8 - 5 + 4 - 9 - 10 - 5 + 8 + 9 + 4 10 - 18 + 19 7 - 29 - 60 + 30 + 61 7 - 95 - 309 + 98 + 310 7 - 577 - 3282 + 592 + 3508 7 - 8814 - 8815 + 9408 + 9409 2 @@ -19634,7 +19365,7 @@ 1 2 - 37566 + 37016 @@ -19650,7 +19381,7 @@ 1 2 - 37566 + 37016 @@ -19660,22 +19391,22 @@ ruby_then_def - 22451 + 22229 id - 22451 + 22229 ruby_tokeninfo - 6212759 + 6351611 id - 6212759 + 6351611 kind @@ -19683,7 +19414,7 @@ value - 272576 + 275925 @@ -19697,7 +19428,7 @@ 1 2 - 6212759 + 6351611 @@ -19713,7 +19444,7 @@ 1 2 - 6212759 + 6351611 @@ -19727,63 +19458,68 @@ 12 - 42 + 1 + 2 + 4 + + + 49 160 - 5 + 4 - 262 - 428 - 5 + 291 + 443 + 4 - 1906 - 1907 + 2054 + 2055 2 - 2167 - 2168 - 5 + 2462 + 2463 + 4 - 4685 - 4919 - 5 + 5047 + 5260 + 4 - 5076 - 6845 - 5 + 5496 + 7346 + 4 - 9531 - 10121 - 5 + 10365 + 10609 + 4 - 14916 - 20953 - 5 + 15376 + 22709 + 4 - 28887 - 64458 - 5 + 31415 + 70704 + 4 - 69189 - 98135 - 5 + 77014 + 106932 + 4 - 117445 - 609106 - 5 + 129596 + 673263 + 4 - 1367617 - 1367618 + 1509036 + 1509037 2 @@ -19800,51 +19536,51 @@ 1 2 - 12 + 16 - 5 + 6 26 - 5 + 4 - 30 - 41 - 5 + 36 + 48 + 4 - 70 - 122 - 5 + 68 + 121 + 4 - 135 - 172 - 5 + 151 + 181 + 4 - 1500 - 1951 - 5 + 1509 + 2060 + 4 - 3612 - 4307 - 5 + 3983 + 4628 + 4 - 5291 - 8590 - 5 + 5781 + 9380 + 4 - 12176 - 21807 - 5 + 13063 + 24102 + 4 - 53746 - 53747 + 58689 + 58690 2 @@ -19861,32 +19597,32 @@ 1 2 - 162402 + 164156 2 3 - 39879 + 41140 3 4 - 19155 + 19333 4 7 - 22724 + 22761 7 29 - 20693 + 20750 29 - 222217 - 7720 + 243390 + 7783 @@ -19902,12 +19638,12 @@ 1 2 - 259340 + 262839 2 5 - 13235 + 13085 @@ -19917,15 +19653,15 @@ ruby_unary_def - 13726 + 14535 id - 13726 + 14535 operand - 13726 + 14535 operator @@ -19943,7 +19679,7 @@ 1 2 - 13726 + 14535 @@ -19959,7 +19695,7 @@ 1 2 - 13726 + 14535 @@ -19975,7 +19711,7 @@ 1 2 - 13726 + 14535 @@ -19991,7 +19727,7 @@ 1 2 - 13726 + 14535 @@ -20005,33 +19741,33 @@ 12 - 98 - 99 + 97 + 98 1 - 190 - 191 + 172 + 173 1 - 566 - 567 + 947 + 948 1 - 1301 - 1302 + 1369 + 1370 1 - 1938 - 1939 + 2120 + 2121 1 - 9633 - 9634 + 9830 + 9831 1 @@ -20046,33 +19782,33 @@ 12 - 98 - 99 + 97 + 98 1 - 190 - 191 + 172 + 173 1 - 566 - 567 + 947 + 948 1 - 1301 - 1302 + 1369 + 1370 1 - 1938 - 1939 + 2120 + 2121 1 - 9633 - 9634 + 9830 + 9831 1 @@ -20230,15 +19966,15 @@ ruby_unless_alternative - 42 + 43 ruby_unless - 42 + 43 alternative - 42 + 43 @@ -20252,7 +19988,7 @@ 1 2 - 42 + 43 @@ -20268,7 +20004,7 @@ 1 2 - 42 + 43 @@ -20278,15 +20014,15 @@ ruby_unless_consequence - 2662 + 2721 ruby_unless - 2662 + 2721 consequence - 2662 + 2721 @@ -20300,7 +20036,7 @@ 1 2 - 2662 + 2721 @@ -20316,7 +20052,7 @@ 1 2 - 2662 + 2721 @@ -20326,15 +20062,15 @@ ruby_unless_def - 2663 + 2723 id - 2663 + 2723 condition - 2663 + 2723 @@ -20348,7 +20084,7 @@ 1 2 - 2663 + 2723 @@ -20364,7 +20100,7 @@ 1 2 - 2663 + 2723 @@ -20422,19 +20158,19 @@ ruby_unless_modifier_def - 3505 + 3416 id - 3505 + 3416 body - 3505 + 3416 condition - 3505 + 3416 @@ -20448,7 +20184,7 @@ 1 2 - 3505 + 3416 @@ -20464,7 +20200,7 @@ 1 2 - 3505 + 3416 @@ -20480,7 +20216,7 @@ 1 2 - 3505 + 3416 @@ -20496,7 +20232,7 @@ 1 2 - 3505 + 3416 @@ -20512,7 +20248,7 @@ 1 2 - 3505 + 3416 @@ -20528,7 +20264,7 @@ 1 2 - 3505 + 3416 @@ -20538,19 +20274,19 @@ ruby_until_def - 123 + 126 id - 123 + 126 body - 123 + 126 condition - 123 + 126 @@ -20564,7 +20300,7 @@ 1 2 - 123 + 126 @@ -20580,7 +20316,7 @@ 1 2 - 123 + 126 @@ -20596,7 +20332,7 @@ 1 2 - 123 + 126 @@ -20612,7 +20348,7 @@ 1 2 - 123 + 126 @@ -20628,7 +20364,7 @@ 1 2 - 123 + 126 @@ -20644,7 +20380,7 @@ 1 2 - 123 + 126 @@ -20654,19 +20390,19 @@ ruby_until_modifier_def - 234 + 238 id - 234 + 238 body - 234 + 238 condition - 234 + 238 @@ -20680,7 +20416,7 @@ 1 2 - 234 + 238 @@ -20696,7 +20432,7 @@ 1 2 - 234 + 238 @@ -20712,7 +20448,7 @@ 1 2 - 234 + 238 @@ -20728,7 +20464,7 @@ 1 2 - 234 + 238 @@ -20744,7 +20480,7 @@ 1 2 - 234 + 238 @@ -20760,7 +20496,7 @@ 1 2 - 234 + 238 @@ -20818,15 +20554,15 @@ ruby_when_body - 3358 + 3790 ruby_when - 3358 + 3790 body - 3358 + 3790 @@ -20840,7 +20576,7 @@ 1 2 - 3358 + 3790 @@ -20856,7 +20592,7 @@ 1 2 - 3358 + 3790 @@ -20866,22 +20602,22 @@ ruby_when_def - 3392 + 3882 id - 3392 + 3882 ruby_when_pattern - 4153 + 4745 ruby_when - 3377 + 3882 index @@ -20889,7 +20625,7 @@ pattern - 4153 + 4745 @@ -20903,17 +20639,17 @@ 1 2 - 2934 + 3393 2 3 - 293 + 330 3 16 - 150 + 159 @@ -20929,17 +20665,17 @@ 1 2 - 2934 + 3393 2 3 - 293 + 330 3 16 - 150 + 159 @@ -20960,51 +20696,56 @@ 3 4 - 4 + 2 4 5 + 2 + + + 5 + 6 1 - 6 - 7 + 10 + 11 1 - 14 - 15 + 19 + 20 1 - 25 - 26 + 31 + 32 1 - 35 - 36 + 44 + 45 1 - 85 - 86 + 90 + 91 1 - 150 - 151 + 159 + 160 1 - 443 - 444 + 489 + 490 1 - 3377 - 3378 + 3882 + 3883 1 @@ -21026,51 +20767,56 @@ 3 4 - 4 + 2 4 5 + 2 + + + 5 + 6 1 - 6 - 7 + 10 + 11 1 - 14 - 15 + 19 + 20 1 - 25 - 26 + 31 + 32 1 - 35 - 36 + 44 + 45 1 - 85 - 86 + 90 + 91 1 - 150 - 151 + 159 + 160 1 - 443 - 444 + 489 + 490 1 - 3377 - 3378 + 3882 + 3883 1 @@ -21087,7 +20833,7 @@ 1 2 - 4153 + 4745 @@ -21103,7 +20849,7 @@ 1 2 - 4153 + 4745 @@ -21113,19 +20859,19 @@ ruby_while_def - 1400 + 1413 id - 1400 + 1413 body - 1400 + 1413 condition - 1400 + 1413 @@ -21139,7 +20885,7 @@ 1 2 - 1400 + 1413 @@ -21155,7 +20901,7 @@ 1 2 - 1400 + 1413 @@ -21171,7 +20917,7 @@ 1 2 - 1400 + 1413 @@ -21187,7 +20933,7 @@ 1 2 - 1400 + 1413 @@ -21203,7 +20949,7 @@ 1 2 - 1400 + 1413 @@ -21219,7 +20965,7 @@ 1 2 - 1400 + 1413 @@ -21229,19 +20975,19 @@ ruby_while_modifier_def - 194 + 198 id - 194 + 198 body - 194 + 198 condition - 194 + 198 @@ -21255,7 +21001,7 @@ 1 2 - 194 + 198 @@ -21271,7 +21017,7 @@ 1 2 - 194 + 198 @@ -21287,7 +21033,7 @@ 1 2 - 194 + 198 @@ -21303,7 +21049,7 @@ 1 2 - 194 + 198 @@ -21319,7 +21065,7 @@ 1 2 - 194 + 198 @@ -21335,7 +21081,7 @@ 1 2 - 194 + 198 @@ -21345,15 +21091,15 @@ ruby_yield_child - 1111 + 1103 ruby_yield - 1111 + 1103 child - 1111 + 1103 @@ -21367,7 +21113,7 @@ 1 2 - 1111 + 1103 @@ -21383,7 +21129,7 @@ 1 2 - 1111 + 1103 @@ -21393,11 +21139,11 @@ ruby_yield_def - 2477 + 2450 id - 2477 + 2450 From 865026f22bbd22226ee8686fb6f4f7eb6f3ee88d Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Tue, 19 Mar 2024 10:41:17 +0100 Subject: [PATCH 3/4] Ruby: Add up/downgrade scripts (sigh) --- .../erb_ast_node_info.ql | 44 + .../old.dbscheme | 1513 +++++++++++++++++ .../ruby.dbscheme | 1509 ++++++++++++++++ .../ruby_ast_node_info.ql | 44 + .../upgrade.properties | 8 + .../erb_ast_node_location.ql | 11 + .../erb_ast_node_parent.ql | 7 + .../old.dbscheme | 1509 ++++++++++++++++ .../ruby.dbscheme | 1513 +++++++++++++++++ .../ruby_ast_node_location.ql | 11 + .../ruby_ast_node_parent.ql | 7 + .../upgrade.properties | 8 + 12 files changed, 6184 insertions(+) create mode 100644 ruby/downgrades/440de75c71e9206ce16eed49a22c76e7889b5fc3/erb_ast_node_info.ql create mode 100644 ruby/downgrades/440de75c71e9206ce16eed49a22c76e7889b5fc3/old.dbscheme create mode 100644 ruby/downgrades/440de75c71e9206ce16eed49a22c76e7889b5fc3/ruby.dbscheme create mode 100644 ruby/downgrades/440de75c71e9206ce16eed49a22c76e7889b5fc3/ruby_ast_node_info.ql create mode 100644 ruby/downgrades/440de75c71e9206ce16eed49a22c76e7889b5fc3/upgrade.properties create mode 100644 ruby/ql/lib/upgrades/f9f0f4023e433184fda76f595247bf448b782135/erb_ast_node_location.ql create mode 100644 ruby/ql/lib/upgrades/f9f0f4023e433184fda76f595247bf448b782135/erb_ast_node_parent.ql create mode 100644 ruby/ql/lib/upgrades/f9f0f4023e433184fda76f595247bf448b782135/old.dbscheme create mode 100644 ruby/ql/lib/upgrades/f9f0f4023e433184fda76f595247bf448b782135/ruby.dbscheme create mode 100644 ruby/ql/lib/upgrades/f9f0f4023e433184fda76f595247bf448b782135/ruby_ast_node_location.ql create mode 100644 ruby/ql/lib/upgrades/f9f0f4023e433184fda76f595247bf448b782135/ruby_ast_node_parent.ql create mode 100644 ruby/ql/lib/upgrades/f9f0f4023e433184fda76f595247bf448b782135/upgrade.properties diff --git a/ruby/downgrades/440de75c71e9206ce16eed49a22c76e7889b5fc3/erb_ast_node_info.ql b/ruby/downgrades/440de75c71e9206ce16eed49a22c76e7889b5fc3/erb_ast_node_info.ql new file mode 100644 index 000000000000..ed8cf128f1d5 --- /dev/null +++ b/ruby/downgrades/440de75c71e9206ce16eed49a22c76e7889b5fc3/erb_ast_node_info.ql @@ -0,0 +1,44 @@ +class TAstNodeParent = @file or @erb_ast_node; + +abstract class AstNodeParent extends TAstNodeParent { + string toString() { none() } +} + +class AstNode extends AstNodeParent, @erb_ast_node { } + +class File extends AstNodeParent, @file { } + +class Location extends @location_default { + string toString() { none() } +} + +pragma[nomagic] +predicate hasFileParent( + AstNode n, File f, int startline, int startcolumn, int endline, int endcolumn +) { + exists(Location loc | + not erb_ast_node_parent(n, _, _) and + erb_ast_node_location(n, loc) and + locations_default(loc, f, startline, startcolumn, endline, endcolumn) + ) +} + +pragma[nomagic] +predicate hasFileParent(AstNode n, File f, int i) { + n = + rank[i + 1](AstNode n0, int startline, int startcolumn, int endline, int endcolumn | + hasFileParent(n0, f, startline, startcolumn, endline, endcolumn) + | + n0 order by startline, startcolumn, endline, endcolumn + ) +} + +from AstNode n, AstNodeParent parent, int i, Location location +where + erb_ast_node_location(n, location) and + ( + erb_ast_node_parent(n, parent, i) + or + hasFileParent(n, parent, i) + ) +select n, parent, i, location diff --git a/ruby/downgrades/440de75c71e9206ce16eed49a22c76e7889b5fc3/old.dbscheme b/ruby/downgrades/440de75c71e9206ce16eed49a22c76e7889b5fc3/old.dbscheme new file mode 100644 index 000000000000..440de75c71e9 --- /dev/null +++ b/ruby/downgrades/440de75c71e9206ce16eed49a22c76e7889b5fc3/old.dbscheme @@ -0,0 +1,1513 @@ +// CodeQL database schema for Ruby +// Automatically generated from the tree-sitter grammar; do not edit + +/*- Files and folders -*/ + +/** + * The location of an element. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_default( + unique int id: @location_default, + int file: @file ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @file | @folder + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +/*- Source location prefix -*/ + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/*- Diagnostic messages -*/ + +diagnostics( + unique int id: @diagnostic, + int severity: int ref, + string error_tag: string ref, + string error_message: string ref, + string full_error_message: string ref, + int location: @location_default ref +); + +/*- Diagnostic messages: severity -*/ + +case @diagnostic.severity of + 10 = @diagnostic_debug +| 20 = @diagnostic_info +| 30 = @diagnostic_warning +| 40 = @diagnostic_error +; + +/*- YAML -*/ + +#keyset[parent, idx] +yaml (unique int id: @yaml_node, + int kind: int ref, + int parent: @yaml_node_parent ref, + int idx: int ref, + string tag: string ref, + string tostring: string ref); + +case @yaml_node.kind of + 0 = @yaml_scalar_node +| 1 = @yaml_mapping_node +| 2 = @yaml_sequence_node +| 3 = @yaml_alias_node +; + +@yaml_collection_node = @yaml_mapping_node | @yaml_sequence_node; + +@yaml_node_parent = @yaml_collection_node | @file; + +yaml_anchors (unique int node: @yaml_node ref, + string anchor: string ref); + +yaml_aliases (unique int alias: @yaml_alias_node ref, + string target: string ref); + +yaml_scalars (unique int scalar: @yaml_scalar_node ref, + int style: int ref, + string value: string ref); + +yaml_errors (unique int id: @yaml_error, + string message: string ref); + +yaml_locations(unique int locatable: @yaml_locatable ref, + int location: @location_default ref); + +@yaml_locatable = @yaml_node | @yaml_error; + +/*- Ruby dbscheme -*/ +@ruby_underscore_arg = @ruby_assignment | @ruby_binary | @ruby_conditional | @ruby_operator_assignment | @ruby_range | @ruby_unary | @ruby_underscore_primary + +@ruby_underscore_call_operator = @ruby_reserved_word + +@ruby_underscore_expression = @ruby_assignment | @ruby_binary | @ruby_break | @ruby_call | @ruby_match_pattern | @ruby_next | @ruby_operator_assignment | @ruby_return | @ruby_test_pattern | @ruby_unary | @ruby_underscore_arg | @ruby_yield + +@ruby_underscore_lhs = @ruby_call | @ruby_element_reference | @ruby_scope_resolution | @ruby_token_false | @ruby_token_nil | @ruby_token_true | @ruby_underscore_variable + +@ruby_underscore_method_name = @ruby_delimited_symbol | @ruby_setter | @ruby_token_constant | @ruby_token_identifier | @ruby_token_operator | @ruby_token_simple_symbol | @ruby_underscore_nonlocal_variable + +@ruby_underscore_nonlocal_variable = @ruby_token_class_variable | @ruby_token_global_variable | @ruby_token_instance_variable + +@ruby_underscore_pattern_constant = @ruby_scope_resolution | @ruby_token_constant + +@ruby_underscore_pattern_expr = @ruby_alternative_pattern | @ruby_as_pattern | @ruby_underscore_pattern_expr_basic + +@ruby_underscore_pattern_expr_basic = @ruby_array_pattern | @ruby_expression_reference_pattern | @ruby_find_pattern | @ruby_hash_pattern | @ruby_parenthesized_pattern | @ruby_range | @ruby_token_identifier | @ruby_underscore_pattern_constant | @ruby_underscore_pattern_primitive | @ruby_variable_reference_pattern + +@ruby_underscore_pattern_primitive = @ruby_delimited_symbol | @ruby_lambda | @ruby_regex | @ruby_string__ | @ruby_string_array | @ruby_subshell | @ruby_symbol_array | @ruby_token_encoding | @ruby_token_false | @ruby_token_file | @ruby_token_heredoc_beginning | @ruby_token_line | @ruby_token_nil | @ruby_token_self | @ruby_token_simple_symbol | @ruby_token_true | @ruby_unary | @ruby_underscore_simple_numeric + +@ruby_underscore_pattern_top_expr_body = @ruby_array_pattern | @ruby_find_pattern | @ruby_hash_pattern | @ruby_underscore_pattern_expr + +@ruby_underscore_primary = @ruby_array | @ruby_begin | @ruby_break | @ruby_call | @ruby_case__ | @ruby_case_match | @ruby_chained_string | @ruby_class | @ruby_delimited_symbol | @ruby_for | @ruby_hash | @ruby_if | @ruby_lambda | @ruby_method | @ruby_module | @ruby_next | @ruby_parenthesized_statements | @ruby_redo | @ruby_regex | @ruby_retry | @ruby_return | @ruby_singleton_class | @ruby_singleton_method | @ruby_string__ | @ruby_string_array | @ruby_subshell | @ruby_symbol_array | @ruby_token_character | @ruby_token_heredoc_beginning | @ruby_token_simple_symbol | @ruby_unary | @ruby_underscore_lhs | @ruby_underscore_simple_numeric | @ruby_unless | @ruby_until | @ruby_while | @ruby_yield + +@ruby_underscore_simple_numeric = @ruby_complex | @ruby_rational | @ruby_token_float | @ruby_token_integer + +@ruby_underscore_statement = @ruby_alias | @ruby_begin_block | @ruby_end_block | @ruby_if_modifier | @ruby_rescue_modifier | @ruby_undef | @ruby_underscore_expression | @ruby_unless_modifier | @ruby_until_modifier | @ruby_while_modifier + +@ruby_underscore_variable = @ruby_token_constant | @ruby_token_identifier | @ruby_token_self | @ruby_token_super | @ruby_underscore_nonlocal_variable + +ruby_alias_def( + unique int id: @ruby_alias, + int alias: @ruby_underscore_method_name ref, + int name: @ruby_underscore_method_name ref +); + +#keyset[ruby_alternative_pattern, index] +ruby_alternative_pattern_alternatives( + int ruby_alternative_pattern: @ruby_alternative_pattern ref, + int index: int ref, + unique int alternatives: @ruby_underscore_pattern_expr_basic ref +); + +ruby_alternative_pattern_def( + unique int id: @ruby_alternative_pattern +); + +@ruby_argument_list_child_type = @ruby_block_argument | @ruby_hash_splat_argument | @ruby_pair | @ruby_splat_argument | @ruby_token_forward_argument | @ruby_underscore_expression + +#keyset[ruby_argument_list, index] +ruby_argument_list_child( + int ruby_argument_list: @ruby_argument_list ref, + int index: int ref, + unique int child: @ruby_argument_list_child_type ref +); + +ruby_argument_list_def( + unique int id: @ruby_argument_list +); + +@ruby_array_child_type = @ruby_block_argument | @ruby_hash_splat_argument | @ruby_pair | @ruby_splat_argument | @ruby_token_forward_argument | @ruby_underscore_expression + +#keyset[ruby_array, index] +ruby_array_child( + int ruby_array: @ruby_array ref, + int index: int ref, + unique int child: @ruby_array_child_type ref +); + +ruby_array_def( + unique int id: @ruby_array +); + +ruby_array_pattern_class( + unique int ruby_array_pattern: @ruby_array_pattern ref, + unique int class: @ruby_underscore_pattern_constant ref +); + +@ruby_array_pattern_child_type = @ruby_splat_parameter | @ruby_underscore_pattern_expr + +#keyset[ruby_array_pattern, index] +ruby_array_pattern_child( + int ruby_array_pattern: @ruby_array_pattern ref, + int index: int ref, + unique int child: @ruby_array_pattern_child_type ref +); + +ruby_array_pattern_def( + unique int id: @ruby_array_pattern +); + +ruby_as_pattern_def( + unique int id: @ruby_as_pattern, + int name: @ruby_token_identifier ref, + int value: @ruby_underscore_pattern_expr ref +); + +@ruby_assignment_left_type = @ruby_left_assignment_list | @ruby_underscore_lhs + +@ruby_assignment_right_type = @ruby_rescue_modifier | @ruby_right_assignment_list | @ruby_splat_argument | @ruby_underscore_expression + +ruby_assignment_def( + unique int id: @ruby_assignment, + int left: @ruby_assignment_left_type ref, + int right: @ruby_assignment_right_type ref +); + +@ruby_bare_string_child_type = @ruby_interpolation | @ruby_token_escape_sequence | @ruby_token_string_content + +#keyset[ruby_bare_string, index] +ruby_bare_string_child( + int ruby_bare_string: @ruby_bare_string ref, + int index: int ref, + unique int child: @ruby_bare_string_child_type ref +); + +ruby_bare_string_def( + unique int id: @ruby_bare_string +); + +@ruby_bare_symbol_child_type = @ruby_interpolation | @ruby_token_escape_sequence | @ruby_token_string_content + +#keyset[ruby_bare_symbol, index] +ruby_bare_symbol_child( + int ruby_bare_symbol: @ruby_bare_symbol ref, + int index: int ref, + unique int child: @ruby_bare_symbol_child_type ref +); + +ruby_bare_symbol_def( + unique int id: @ruby_bare_symbol +); + +@ruby_begin_child_type = @ruby_else | @ruby_ensure | @ruby_rescue | @ruby_token_empty_statement | @ruby_underscore_statement + +#keyset[ruby_begin, index] +ruby_begin_child( + int ruby_begin: @ruby_begin ref, + int index: int ref, + unique int child: @ruby_begin_child_type ref +); + +ruby_begin_def( + unique int id: @ruby_begin +); + +@ruby_begin_block_child_type = @ruby_token_empty_statement | @ruby_underscore_statement + +#keyset[ruby_begin_block, index] +ruby_begin_block_child( + int ruby_begin_block: @ruby_begin_block ref, + int index: int ref, + unique int child: @ruby_begin_block_child_type ref +); + +ruby_begin_block_def( + unique int id: @ruby_begin_block +); + +@ruby_binary_left_type = @ruby_underscore_expression | @ruby_underscore_simple_numeric + +case @ruby_binary.operator of + 0 = @ruby_binary_bangequal +| 1 = @ruby_binary_bangtilde +| 2 = @ruby_binary_percent +| 3 = @ruby_binary_ampersand +| 4 = @ruby_binary_ampersandampersand +| 5 = @ruby_binary_star +| 6 = @ruby_binary_starstar +| 7 = @ruby_binary_plus +| 8 = @ruby_binary_minus +| 9 = @ruby_binary_slash +| 10 = @ruby_binary_langle +| 11 = @ruby_binary_langlelangle +| 12 = @ruby_binary_langleequal +| 13 = @ruby_binary_langleequalrangle +| 14 = @ruby_binary_equalequal +| 15 = @ruby_binary_equalequalequal +| 16 = @ruby_binary_equaltilde +| 17 = @ruby_binary_rangle +| 18 = @ruby_binary_rangleequal +| 19 = @ruby_binary_ranglerangle +| 20 = @ruby_binary_caret +| 21 = @ruby_binary_and +| 22 = @ruby_binary_or +| 23 = @ruby_binary_pipe +| 24 = @ruby_binary_pipepipe +; + + +ruby_binary_def( + unique int id: @ruby_binary, + int left: @ruby_binary_left_type ref, + int operator: int ref, + int right: @ruby_underscore_expression ref +); + +ruby_block_body( + unique int ruby_block: @ruby_block ref, + unique int body: @ruby_block_body ref +); + +ruby_block_parameters( + unique int ruby_block: @ruby_block ref, + unique int parameters: @ruby_block_parameters ref +); + +ruby_block_def( + unique int id: @ruby_block +); + +ruby_block_argument_child( + unique int ruby_block_argument: @ruby_block_argument ref, + unique int child: @ruby_underscore_arg ref +); + +ruby_block_argument_def( + unique int id: @ruby_block_argument +); + +@ruby_block_body_child_type = @ruby_token_empty_statement | @ruby_underscore_statement + +#keyset[ruby_block_body, index] +ruby_block_body_child( + int ruby_block_body: @ruby_block_body ref, + int index: int ref, + unique int child: @ruby_block_body_child_type ref +); + +ruby_block_body_def( + unique int id: @ruby_block_body +); + +ruby_block_parameter_name( + unique int ruby_block_parameter: @ruby_block_parameter ref, + unique int name: @ruby_token_identifier ref +); + +ruby_block_parameter_def( + unique int id: @ruby_block_parameter +); + +#keyset[ruby_block_parameters, index] +ruby_block_parameters_locals( + int ruby_block_parameters: @ruby_block_parameters ref, + int index: int ref, + unique int locals: @ruby_token_identifier ref +); + +@ruby_block_parameters_child_type = @ruby_block_parameter | @ruby_destructured_parameter | @ruby_hash_splat_parameter | @ruby_keyword_parameter | @ruby_optional_parameter | @ruby_splat_parameter | @ruby_token_forward_parameter | @ruby_token_hash_splat_nil | @ruby_token_identifier + +#keyset[ruby_block_parameters, index] +ruby_block_parameters_child( + int ruby_block_parameters: @ruby_block_parameters ref, + int index: int ref, + unique int child: @ruby_block_parameters_child_type ref +); + +ruby_block_parameters_def( + unique int id: @ruby_block_parameters +); + +@ruby_body_statement_child_type = @ruby_else | @ruby_ensure | @ruby_rescue | @ruby_token_empty_statement | @ruby_underscore_statement + +#keyset[ruby_body_statement, index] +ruby_body_statement_child( + int ruby_body_statement: @ruby_body_statement ref, + int index: int ref, + unique int child: @ruby_body_statement_child_type ref +); + +ruby_body_statement_def( + unique int id: @ruby_body_statement +); + +ruby_break_child( + unique int ruby_break: @ruby_break ref, + unique int child: @ruby_argument_list ref +); + +ruby_break_def( + unique int id: @ruby_break +); + +ruby_call_arguments( + unique int ruby_call: @ruby_call ref, + unique int arguments: @ruby_argument_list ref +); + +@ruby_call_block_type = @ruby_block | @ruby_do_block + +ruby_call_block( + unique int ruby_call: @ruby_call ref, + unique int block: @ruby_call_block_type ref +); + +@ruby_call_method_type = @ruby_token_operator | @ruby_underscore_variable + +ruby_call_method( + unique int ruby_call: @ruby_call ref, + unique int method: @ruby_call_method_type ref +); + +ruby_call_operator( + unique int ruby_call: @ruby_call ref, + unique int operator: @ruby_underscore_call_operator ref +); + +ruby_call_receiver( + unique int ruby_call: @ruby_call ref, + unique int receiver: @ruby_underscore_primary ref +); + +ruby_call_def( + unique int id: @ruby_call +); + +ruby_case_value( + unique int ruby_case__: @ruby_case__ ref, + unique int value: @ruby_underscore_statement ref +); + +@ruby_case_child_type = @ruby_else | @ruby_when + +#keyset[ruby_case__, index] +ruby_case_child( + int ruby_case__: @ruby_case__ ref, + int index: int ref, + unique int child: @ruby_case_child_type ref +); + +ruby_case_def( + unique int id: @ruby_case__ +); + +#keyset[ruby_case_match, index] +ruby_case_match_clauses( + int ruby_case_match: @ruby_case_match ref, + int index: int ref, + unique int clauses: @ruby_in_clause ref +); + +ruby_case_match_else( + unique int ruby_case_match: @ruby_case_match ref, + unique int else: @ruby_else ref +); + +ruby_case_match_def( + unique int id: @ruby_case_match, + int value: @ruby_underscore_statement ref +); + +#keyset[ruby_chained_string, index] +ruby_chained_string_child( + int ruby_chained_string: @ruby_chained_string ref, + int index: int ref, + unique int child: @ruby_string__ ref +); + +ruby_chained_string_def( + unique int id: @ruby_chained_string +); + +ruby_class_body( + unique int ruby_class: @ruby_class ref, + unique int body: @ruby_body_statement ref +); + +@ruby_class_name_type = @ruby_scope_resolution | @ruby_token_constant + +ruby_class_superclass( + unique int ruby_class: @ruby_class ref, + unique int superclass: @ruby_superclass ref +); + +ruby_class_def( + unique int id: @ruby_class, + int name: @ruby_class_name_type ref +); + +@ruby_complex_child_type = @ruby_rational | @ruby_token_float | @ruby_token_integer + +ruby_complex_def( + unique int id: @ruby_complex, + int child: @ruby_complex_child_type ref +); + +ruby_conditional_def( + unique int id: @ruby_conditional, + int alternative: @ruby_underscore_arg ref, + int condition: @ruby_underscore_arg ref, + int consequence: @ruby_underscore_arg ref +); + +@ruby_delimited_symbol_child_type = @ruby_interpolation | @ruby_token_escape_sequence | @ruby_token_string_content + +#keyset[ruby_delimited_symbol, index] +ruby_delimited_symbol_child( + int ruby_delimited_symbol: @ruby_delimited_symbol ref, + int index: int ref, + unique int child: @ruby_delimited_symbol_child_type ref +); + +ruby_delimited_symbol_def( + unique int id: @ruby_delimited_symbol +); + +@ruby_destructured_left_assignment_child_type = @ruby_destructured_left_assignment | @ruby_rest_assignment | @ruby_underscore_lhs + +#keyset[ruby_destructured_left_assignment, index] +ruby_destructured_left_assignment_child( + int ruby_destructured_left_assignment: @ruby_destructured_left_assignment ref, + int index: int ref, + unique int child: @ruby_destructured_left_assignment_child_type ref +); + +ruby_destructured_left_assignment_def( + unique int id: @ruby_destructured_left_assignment +); + +@ruby_destructured_parameter_child_type = @ruby_block_parameter | @ruby_destructured_parameter | @ruby_hash_splat_parameter | @ruby_keyword_parameter | @ruby_optional_parameter | @ruby_splat_parameter | @ruby_token_forward_parameter | @ruby_token_hash_splat_nil | @ruby_token_identifier + +#keyset[ruby_destructured_parameter, index] +ruby_destructured_parameter_child( + int ruby_destructured_parameter: @ruby_destructured_parameter ref, + int index: int ref, + unique int child: @ruby_destructured_parameter_child_type ref +); + +ruby_destructured_parameter_def( + unique int id: @ruby_destructured_parameter +); + +@ruby_do_child_type = @ruby_token_empty_statement | @ruby_underscore_statement + +#keyset[ruby_do, index] +ruby_do_child( + int ruby_do: @ruby_do ref, + int index: int ref, + unique int child: @ruby_do_child_type ref +); + +ruby_do_def( + unique int id: @ruby_do +); + +ruby_do_block_body( + unique int ruby_do_block: @ruby_do_block ref, + unique int body: @ruby_body_statement ref +); + +ruby_do_block_parameters( + unique int ruby_do_block: @ruby_do_block ref, + unique int parameters: @ruby_block_parameters ref +); + +ruby_do_block_def( + unique int id: @ruby_do_block +); + +@ruby_element_reference_child_type = @ruby_block_argument | @ruby_hash_splat_argument | @ruby_pair | @ruby_splat_argument | @ruby_token_forward_argument | @ruby_underscore_expression + +#keyset[ruby_element_reference, index] +ruby_element_reference_child( + int ruby_element_reference: @ruby_element_reference ref, + int index: int ref, + unique int child: @ruby_element_reference_child_type ref +); + +ruby_element_reference_def( + unique int id: @ruby_element_reference, + int object: @ruby_underscore_primary ref +); + +@ruby_else_child_type = @ruby_token_empty_statement | @ruby_underscore_statement + +#keyset[ruby_else, index] +ruby_else_child( + int ruby_else: @ruby_else ref, + int index: int ref, + unique int child: @ruby_else_child_type ref +); + +ruby_else_def( + unique int id: @ruby_else +); + +@ruby_elsif_alternative_type = @ruby_else | @ruby_elsif + +ruby_elsif_alternative( + unique int ruby_elsif: @ruby_elsif ref, + unique int alternative: @ruby_elsif_alternative_type ref +); + +ruby_elsif_consequence( + unique int ruby_elsif: @ruby_elsif ref, + unique int consequence: @ruby_then ref +); + +ruby_elsif_def( + unique int id: @ruby_elsif, + int condition: @ruby_underscore_statement ref +); + +@ruby_end_block_child_type = @ruby_token_empty_statement | @ruby_underscore_statement + +#keyset[ruby_end_block, index] +ruby_end_block_child( + int ruby_end_block: @ruby_end_block ref, + int index: int ref, + unique int child: @ruby_end_block_child_type ref +); + +ruby_end_block_def( + unique int id: @ruby_end_block +); + +@ruby_ensure_child_type = @ruby_token_empty_statement | @ruby_underscore_statement + +#keyset[ruby_ensure, index] +ruby_ensure_child( + int ruby_ensure: @ruby_ensure ref, + int index: int ref, + unique int child: @ruby_ensure_child_type ref +); + +ruby_ensure_def( + unique int id: @ruby_ensure +); + +ruby_exception_variable_def( + unique int id: @ruby_exception_variable, + int child: @ruby_underscore_lhs ref +); + +@ruby_exceptions_child_type = @ruby_splat_argument | @ruby_underscore_arg + +#keyset[ruby_exceptions, index] +ruby_exceptions_child( + int ruby_exceptions: @ruby_exceptions ref, + int index: int ref, + unique int child: @ruby_exceptions_child_type ref +); + +ruby_exceptions_def( + unique int id: @ruby_exceptions +); + +ruby_expression_reference_pattern_def( + unique int id: @ruby_expression_reference_pattern, + int value: @ruby_underscore_expression ref +); + +ruby_find_pattern_class( + unique int ruby_find_pattern: @ruby_find_pattern ref, + unique int class: @ruby_underscore_pattern_constant ref +); + +@ruby_find_pattern_child_type = @ruby_splat_parameter | @ruby_underscore_pattern_expr + +#keyset[ruby_find_pattern, index] +ruby_find_pattern_child( + int ruby_find_pattern: @ruby_find_pattern ref, + int index: int ref, + unique int child: @ruby_find_pattern_child_type ref +); + +ruby_find_pattern_def( + unique int id: @ruby_find_pattern +); + +@ruby_for_pattern_type = @ruby_left_assignment_list | @ruby_underscore_lhs + +ruby_for_def( + unique int id: @ruby_for, + int body: @ruby_do ref, + int pattern: @ruby_for_pattern_type ref, + int value: @ruby_in ref +); + +@ruby_hash_child_type = @ruby_hash_splat_argument | @ruby_pair + +#keyset[ruby_hash, index] +ruby_hash_child( + int ruby_hash: @ruby_hash ref, + int index: int ref, + unique int child: @ruby_hash_child_type ref +); + +ruby_hash_def( + unique int id: @ruby_hash +); + +ruby_hash_pattern_class( + unique int ruby_hash_pattern: @ruby_hash_pattern ref, + unique int class: @ruby_underscore_pattern_constant ref +); + +@ruby_hash_pattern_child_type = @ruby_hash_splat_parameter | @ruby_keyword_pattern | @ruby_token_hash_splat_nil + +#keyset[ruby_hash_pattern, index] +ruby_hash_pattern_child( + int ruby_hash_pattern: @ruby_hash_pattern ref, + int index: int ref, + unique int child: @ruby_hash_pattern_child_type ref +); + +ruby_hash_pattern_def( + unique int id: @ruby_hash_pattern +); + +ruby_hash_splat_argument_child( + unique int ruby_hash_splat_argument: @ruby_hash_splat_argument ref, + unique int child: @ruby_underscore_arg ref +); + +ruby_hash_splat_argument_def( + unique int id: @ruby_hash_splat_argument +); + +ruby_hash_splat_parameter_name( + unique int ruby_hash_splat_parameter: @ruby_hash_splat_parameter ref, + unique int name: @ruby_token_identifier ref +); + +ruby_hash_splat_parameter_def( + unique int id: @ruby_hash_splat_parameter +); + +@ruby_heredoc_body_child_type = @ruby_interpolation | @ruby_token_escape_sequence | @ruby_token_heredoc_content | @ruby_token_heredoc_end + +#keyset[ruby_heredoc_body, index] +ruby_heredoc_body_child( + int ruby_heredoc_body: @ruby_heredoc_body ref, + int index: int ref, + unique int child: @ruby_heredoc_body_child_type ref +); + +ruby_heredoc_body_def( + unique int id: @ruby_heredoc_body +); + +@ruby_if_alternative_type = @ruby_else | @ruby_elsif + +ruby_if_alternative( + unique int ruby_if: @ruby_if ref, + unique int alternative: @ruby_if_alternative_type ref +); + +ruby_if_consequence( + unique int ruby_if: @ruby_if ref, + unique int consequence: @ruby_then ref +); + +ruby_if_def( + unique int id: @ruby_if, + int condition: @ruby_underscore_statement ref +); + +ruby_if_guard_def( + unique int id: @ruby_if_guard, + int condition: @ruby_underscore_expression ref +); + +ruby_if_modifier_def( + unique int id: @ruby_if_modifier, + int body: @ruby_underscore_statement ref, + int condition: @ruby_underscore_expression ref +); + +ruby_in_def( + unique int id: @ruby_in, + int child: @ruby_underscore_arg ref +); + +ruby_in_clause_body( + unique int ruby_in_clause: @ruby_in_clause ref, + unique int body: @ruby_then ref +); + +@ruby_in_clause_guard_type = @ruby_if_guard | @ruby_unless_guard + +ruby_in_clause_guard( + unique int ruby_in_clause: @ruby_in_clause ref, + unique int guard: @ruby_in_clause_guard_type ref +); + +ruby_in_clause_def( + unique int id: @ruby_in_clause, + int pattern: @ruby_underscore_pattern_top_expr_body ref +); + +@ruby_interpolation_child_type = @ruby_token_empty_statement | @ruby_underscore_nonlocal_variable | @ruby_underscore_statement + +#keyset[ruby_interpolation, index] +ruby_interpolation_child( + int ruby_interpolation: @ruby_interpolation ref, + int index: int ref, + unique int child: @ruby_interpolation_child_type ref +); + +ruby_interpolation_def( + unique int id: @ruby_interpolation +); + +ruby_keyword_parameter_value( + unique int ruby_keyword_parameter: @ruby_keyword_parameter ref, + unique int value: @ruby_underscore_arg ref +); + +ruby_keyword_parameter_def( + unique int id: @ruby_keyword_parameter, + int name: @ruby_token_identifier ref +); + +@ruby_keyword_pattern_key_type = @ruby_string__ | @ruby_token_hash_key_symbol + +ruby_keyword_pattern_value( + unique int ruby_keyword_pattern: @ruby_keyword_pattern ref, + unique int value: @ruby_underscore_pattern_expr ref +); + +ruby_keyword_pattern_def( + unique int id: @ruby_keyword_pattern, + int key__: @ruby_keyword_pattern_key_type ref +); + +@ruby_lambda_body_type = @ruby_block | @ruby_do_block + +ruby_lambda_parameters( + unique int ruby_lambda: @ruby_lambda ref, + unique int parameters: @ruby_lambda_parameters ref +); + +ruby_lambda_def( + unique int id: @ruby_lambda, + int body: @ruby_lambda_body_type ref +); + +@ruby_lambda_parameters_child_type = @ruby_block_parameter | @ruby_destructured_parameter | @ruby_hash_splat_parameter | @ruby_keyword_parameter | @ruby_optional_parameter | @ruby_splat_parameter | @ruby_token_forward_parameter | @ruby_token_hash_splat_nil | @ruby_token_identifier + +#keyset[ruby_lambda_parameters, index] +ruby_lambda_parameters_child( + int ruby_lambda_parameters: @ruby_lambda_parameters ref, + int index: int ref, + unique int child: @ruby_lambda_parameters_child_type ref +); + +ruby_lambda_parameters_def( + unique int id: @ruby_lambda_parameters +); + +@ruby_left_assignment_list_child_type = @ruby_destructured_left_assignment | @ruby_rest_assignment | @ruby_underscore_lhs + +#keyset[ruby_left_assignment_list, index] +ruby_left_assignment_list_child( + int ruby_left_assignment_list: @ruby_left_assignment_list ref, + int index: int ref, + unique int child: @ruby_left_assignment_list_child_type ref +); + +ruby_left_assignment_list_def( + unique int id: @ruby_left_assignment_list +); + +ruby_match_pattern_def( + unique int id: @ruby_match_pattern, + int pattern: @ruby_underscore_pattern_top_expr_body ref, + int value: @ruby_underscore_arg ref +); + +@ruby_method_body_type = @ruby_body_statement | @ruby_rescue_modifier | @ruby_underscore_arg + +ruby_method_body( + unique int ruby_method: @ruby_method ref, + unique int body: @ruby_method_body_type ref +); + +ruby_method_parameters( + unique int ruby_method: @ruby_method ref, + unique int parameters: @ruby_method_parameters ref +); + +ruby_method_def( + unique int id: @ruby_method, + int name: @ruby_underscore_method_name ref +); + +@ruby_method_parameters_child_type = @ruby_block_parameter | @ruby_destructured_parameter | @ruby_hash_splat_parameter | @ruby_keyword_parameter | @ruby_optional_parameter | @ruby_splat_parameter | @ruby_token_forward_parameter | @ruby_token_hash_splat_nil | @ruby_token_identifier + +#keyset[ruby_method_parameters, index] +ruby_method_parameters_child( + int ruby_method_parameters: @ruby_method_parameters ref, + int index: int ref, + unique int child: @ruby_method_parameters_child_type ref +); + +ruby_method_parameters_def( + unique int id: @ruby_method_parameters +); + +ruby_module_body( + unique int ruby_module: @ruby_module ref, + unique int body: @ruby_body_statement ref +); + +@ruby_module_name_type = @ruby_scope_resolution | @ruby_token_constant + +ruby_module_def( + unique int id: @ruby_module, + int name: @ruby_module_name_type ref +); + +ruby_next_child( + unique int ruby_next: @ruby_next ref, + unique int child: @ruby_argument_list ref +); + +ruby_next_def( + unique int id: @ruby_next +); + +case @ruby_operator_assignment.operator of + 0 = @ruby_operator_assignment_percentequal +| 1 = @ruby_operator_assignment_ampersandampersandequal +| 2 = @ruby_operator_assignment_ampersandequal +| 3 = @ruby_operator_assignment_starstarequal +| 4 = @ruby_operator_assignment_starequal +| 5 = @ruby_operator_assignment_plusequal +| 6 = @ruby_operator_assignment_minusequal +| 7 = @ruby_operator_assignment_slashequal +| 8 = @ruby_operator_assignment_langlelangleequal +| 9 = @ruby_operator_assignment_ranglerangleequal +| 10 = @ruby_operator_assignment_caretequal +| 11 = @ruby_operator_assignment_pipeequal +| 12 = @ruby_operator_assignment_pipepipeequal +; + + +@ruby_operator_assignment_right_type = @ruby_rescue_modifier | @ruby_underscore_expression + +ruby_operator_assignment_def( + unique int id: @ruby_operator_assignment, + int left: @ruby_underscore_lhs ref, + int operator: int ref, + int right: @ruby_operator_assignment_right_type ref +); + +ruby_optional_parameter_def( + unique int id: @ruby_optional_parameter, + int name: @ruby_token_identifier ref, + int value: @ruby_underscore_arg ref +); + +@ruby_pair_key_type = @ruby_string__ | @ruby_token_hash_key_symbol | @ruby_underscore_arg + +ruby_pair_value( + unique int ruby_pair: @ruby_pair ref, + unique int value: @ruby_underscore_arg ref +); + +ruby_pair_def( + unique int id: @ruby_pair, + int key__: @ruby_pair_key_type ref +); + +ruby_parenthesized_pattern_def( + unique int id: @ruby_parenthesized_pattern, + int child: @ruby_underscore_pattern_expr ref +); + +@ruby_parenthesized_statements_child_type = @ruby_token_empty_statement | @ruby_underscore_statement + +#keyset[ruby_parenthesized_statements, index] +ruby_parenthesized_statements_child( + int ruby_parenthesized_statements: @ruby_parenthesized_statements ref, + int index: int ref, + unique int child: @ruby_parenthesized_statements_child_type ref +); + +ruby_parenthesized_statements_def( + unique int id: @ruby_parenthesized_statements +); + +@ruby_pattern_child_type = @ruby_splat_argument | @ruby_underscore_arg + +ruby_pattern_def( + unique int id: @ruby_pattern, + int child: @ruby_pattern_child_type ref +); + +@ruby_program_child_type = @ruby_token_empty_statement | @ruby_token_uninterpreted | @ruby_underscore_statement + +#keyset[ruby_program, index] +ruby_program_child( + int ruby_program: @ruby_program ref, + int index: int ref, + unique int child: @ruby_program_child_type ref +); + +ruby_program_def( + unique int id: @ruby_program +); + +@ruby_range_begin_type = @ruby_underscore_arg | @ruby_underscore_pattern_primitive + +ruby_range_begin( + unique int ruby_range: @ruby_range ref, + unique int begin: @ruby_range_begin_type ref +); + +@ruby_range_end_type = @ruby_underscore_arg | @ruby_underscore_pattern_primitive + +ruby_range_end( + unique int ruby_range: @ruby_range ref, + unique int end: @ruby_range_end_type ref +); + +case @ruby_range.operator of + 0 = @ruby_range_dotdot +| 1 = @ruby_range_dotdotdot +; + + +ruby_range_def( + unique int id: @ruby_range, + int operator: int ref +); + +@ruby_rational_child_type = @ruby_token_float | @ruby_token_integer + +ruby_rational_def( + unique int id: @ruby_rational, + int child: @ruby_rational_child_type ref +); + +ruby_redo_child( + unique int ruby_redo: @ruby_redo ref, + unique int child: @ruby_argument_list ref +); + +ruby_redo_def( + unique int id: @ruby_redo +); + +@ruby_regex_child_type = @ruby_interpolation | @ruby_token_escape_sequence | @ruby_token_string_content + +#keyset[ruby_regex, index] +ruby_regex_child( + int ruby_regex: @ruby_regex ref, + int index: int ref, + unique int child: @ruby_regex_child_type ref +); + +ruby_regex_def( + unique int id: @ruby_regex +); + +ruby_rescue_body( + unique int ruby_rescue: @ruby_rescue ref, + unique int body: @ruby_then ref +); + +ruby_rescue_exceptions( + unique int ruby_rescue: @ruby_rescue ref, + unique int exceptions: @ruby_exceptions ref +); + +ruby_rescue_variable( + unique int ruby_rescue: @ruby_rescue ref, + unique int variable: @ruby_exception_variable ref +); + +ruby_rescue_def( + unique int id: @ruby_rescue +); + +@ruby_rescue_modifier_body_type = @ruby_underscore_arg | @ruby_underscore_statement + +ruby_rescue_modifier_def( + unique int id: @ruby_rescue_modifier, + int body: @ruby_rescue_modifier_body_type ref, + int handler: @ruby_underscore_expression ref +); + +ruby_rest_assignment_child( + unique int ruby_rest_assignment: @ruby_rest_assignment ref, + unique int child: @ruby_underscore_lhs ref +); + +ruby_rest_assignment_def( + unique int id: @ruby_rest_assignment +); + +ruby_retry_child( + unique int ruby_retry: @ruby_retry ref, + unique int child: @ruby_argument_list ref +); + +ruby_retry_def( + unique int id: @ruby_retry +); + +ruby_return_child( + unique int ruby_return: @ruby_return ref, + unique int child: @ruby_argument_list ref +); + +ruby_return_def( + unique int id: @ruby_return +); + +@ruby_right_assignment_list_child_type = @ruby_splat_argument | @ruby_underscore_arg + +#keyset[ruby_right_assignment_list, index] +ruby_right_assignment_list_child( + int ruby_right_assignment_list: @ruby_right_assignment_list ref, + int index: int ref, + unique int child: @ruby_right_assignment_list_child_type ref +); + +ruby_right_assignment_list_def( + unique int id: @ruby_right_assignment_list +); + +@ruby_scope_resolution_scope_type = @ruby_underscore_pattern_constant | @ruby_underscore_primary + +ruby_scope_resolution_scope( + unique int ruby_scope_resolution: @ruby_scope_resolution ref, + unique int scope: @ruby_scope_resolution_scope_type ref +); + +ruby_scope_resolution_def( + unique int id: @ruby_scope_resolution, + int name: @ruby_token_constant ref +); + +ruby_setter_def( + unique int id: @ruby_setter, + int name: @ruby_token_identifier ref +); + +ruby_singleton_class_body( + unique int ruby_singleton_class: @ruby_singleton_class ref, + unique int body: @ruby_body_statement ref +); + +ruby_singleton_class_def( + unique int id: @ruby_singleton_class, + int value: @ruby_underscore_arg ref +); + +@ruby_singleton_method_body_type = @ruby_body_statement | @ruby_rescue_modifier | @ruby_underscore_arg + +ruby_singleton_method_body( + unique int ruby_singleton_method: @ruby_singleton_method ref, + unique int body: @ruby_singleton_method_body_type ref +); + +@ruby_singleton_method_object_type = @ruby_underscore_arg | @ruby_underscore_variable + +ruby_singleton_method_parameters( + unique int ruby_singleton_method: @ruby_singleton_method ref, + unique int parameters: @ruby_method_parameters ref +); + +ruby_singleton_method_def( + unique int id: @ruby_singleton_method, + int name: @ruby_underscore_method_name ref, + int object: @ruby_singleton_method_object_type ref +); + +ruby_splat_argument_child( + unique int ruby_splat_argument: @ruby_splat_argument ref, + unique int child: @ruby_underscore_arg ref +); + +ruby_splat_argument_def( + unique int id: @ruby_splat_argument +); + +ruby_splat_parameter_name( + unique int ruby_splat_parameter: @ruby_splat_parameter ref, + unique int name: @ruby_token_identifier ref +); + +ruby_splat_parameter_def( + unique int id: @ruby_splat_parameter +); + +@ruby_string_child_type = @ruby_interpolation | @ruby_token_escape_sequence | @ruby_token_string_content + +#keyset[ruby_string__, index] +ruby_string_child( + int ruby_string__: @ruby_string__ ref, + int index: int ref, + unique int child: @ruby_string_child_type ref +); + +ruby_string_def( + unique int id: @ruby_string__ +); + +#keyset[ruby_string_array, index] +ruby_string_array_child( + int ruby_string_array: @ruby_string_array ref, + int index: int ref, + unique int child: @ruby_bare_string ref +); + +ruby_string_array_def( + unique int id: @ruby_string_array +); + +@ruby_subshell_child_type = @ruby_interpolation | @ruby_token_escape_sequence | @ruby_token_string_content + +#keyset[ruby_subshell, index] +ruby_subshell_child( + int ruby_subshell: @ruby_subshell ref, + int index: int ref, + unique int child: @ruby_subshell_child_type ref +); + +ruby_subshell_def( + unique int id: @ruby_subshell +); + +ruby_superclass_def( + unique int id: @ruby_superclass, + int child: @ruby_underscore_expression ref +); + +#keyset[ruby_symbol_array, index] +ruby_symbol_array_child( + int ruby_symbol_array: @ruby_symbol_array ref, + int index: int ref, + unique int child: @ruby_bare_symbol ref +); + +ruby_symbol_array_def( + unique int id: @ruby_symbol_array +); + +ruby_test_pattern_def( + unique int id: @ruby_test_pattern, + int pattern: @ruby_underscore_pattern_top_expr_body ref, + int value: @ruby_underscore_arg ref +); + +@ruby_then_child_type = @ruby_token_empty_statement | @ruby_underscore_statement + +#keyset[ruby_then, index] +ruby_then_child( + int ruby_then: @ruby_then ref, + int index: int ref, + unique int child: @ruby_then_child_type ref +); + +ruby_then_def( + unique int id: @ruby_then +); + +@ruby_unary_operand_type = @ruby_parenthesized_statements | @ruby_underscore_expression | @ruby_underscore_simple_numeric + +case @ruby_unary.operator of + 0 = @ruby_unary_bang +| 1 = @ruby_unary_plus +| 2 = @ruby_unary_minus +| 3 = @ruby_unary_definedquestion +| 4 = @ruby_unary_not +| 5 = @ruby_unary_tilde +; + + +ruby_unary_def( + unique int id: @ruby_unary, + int operand: @ruby_unary_operand_type ref, + int operator: int ref +); + +#keyset[ruby_undef, index] +ruby_undef_child( + int ruby_undef: @ruby_undef ref, + int index: int ref, + unique int child: @ruby_underscore_method_name ref +); + +ruby_undef_def( + unique int id: @ruby_undef +); + +@ruby_unless_alternative_type = @ruby_else | @ruby_elsif + +ruby_unless_alternative( + unique int ruby_unless: @ruby_unless ref, + unique int alternative: @ruby_unless_alternative_type ref +); + +ruby_unless_consequence( + unique int ruby_unless: @ruby_unless ref, + unique int consequence: @ruby_then ref +); + +ruby_unless_def( + unique int id: @ruby_unless, + int condition: @ruby_underscore_statement ref +); + +ruby_unless_guard_def( + unique int id: @ruby_unless_guard, + int condition: @ruby_underscore_expression ref +); + +ruby_unless_modifier_def( + unique int id: @ruby_unless_modifier, + int body: @ruby_underscore_statement ref, + int condition: @ruby_underscore_expression ref +); + +ruby_until_def( + unique int id: @ruby_until, + int body: @ruby_do ref, + int condition: @ruby_underscore_statement ref +); + +ruby_until_modifier_def( + unique int id: @ruby_until_modifier, + int body: @ruby_underscore_statement ref, + int condition: @ruby_underscore_expression ref +); + +@ruby_variable_reference_pattern_name_type = @ruby_token_identifier | @ruby_underscore_nonlocal_variable + +ruby_variable_reference_pattern_def( + unique int id: @ruby_variable_reference_pattern, + int name: @ruby_variable_reference_pattern_name_type ref +); + +ruby_when_body( + unique int ruby_when: @ruby_when ref, + unique int body: @ruby_then ref +); + +#keyset[ruby_when, index] +ruby_when_pattern( + int ruby_when: @ruby_when ref, + int index: int ref, + unique int pattern: @ruby_pattern ref +); + +ruby_when_def( + unique int id: @ruby_when +); + +ruby_while_def( + unique int id: @ruby_while, + int body: @ruby_do ref, + int condition: @ruby_underscore_statement ref +); + +ruby_while_modifier_def( + unique int id: @ruby_while_modifier, + int body: @ruby_underscore_statement ref, + int condition: @ruby_underscore_expression ref +); + +ruby_yield_child( + unique int ruby_yield: @ruby_yield ref, + unique int child: @ruby_argument_list ref +); + +ruby_yield_def( + unique int id: @ruby_yield +); + +ruby_tokeninfo( + unique int id: @ruby_token, + int kind: int ref, + string value: string ref +); + +case @ruby_token.kind of + 0 = @ruby_reserved_word +| 1 = @ruby_token_character +| 2 = @ruby_token_class_variable +| 3 = @ruby_token_comment +| 4 = @ruby_token_constant +| 5 = @ruby_token_empty_statement +| 6 = @ruby_token_encoding +| 7 = @ruby_token_escape_sequence +| 8 = @ruby_token_false +| 9 = @ruby_token_file +| 10 = @ruby_token_float +| 11 = @ruby_token_forward_argument +| 12 = @ruby_token_forward_parameter +| 13 = @ruby_token_global_variable +| 14 = @ruby_token_hash_key_symbol +| 15 = @ruby_token_hash_splat_nil +| 16 = @ruby_token_heredoc_beginning +| 17 = @ruby_token_heredoc_content +| 18 = @ruby_token_heredoc_end +| 19 = @ruby_token_identifier +| 20 = @ruby_token_instance_variable +| 21 = @ruby_token_integer +| 22 = @ruby_token_line +| 23 = @ruby_token_nil +| 24 = @ruby_token_operator +| 25 = @ruby_token_self +| 26 = @ruby_token_simple_symbol +| 27 = @ruby_token_string_content +| 28 = @ruby_token_super +| 29 = @ruby_token_true +| 30 = @ruby_token_uninterpreted +; + + +@ruby_ast_node = @ruby_alias | @ruby_alternative_pattern | @ruby_argument_list | @ruby_array | @ruby_array_pattern | @ruby_as_pattern | @ruby_assignment | @ruby_bare_string | @ruby_bare_symbol | @ruby_begin | @ruby_begin_block | @ruby_binary | @ruby_block | @ruby_block_argument | @ruby_block_body | @ruby_block_parameter | @ruby_block_parameters | @ruby_body_statement | @ruby_break | @ruby_call | @ruby_case__ | @ruby_case_match | @ruby_chained_string | @ruby_class | @ruby_complex | @ruby_conditional | @ruby_delimited_symbol | @ruby_destructured_left_assignment | @ruby_destructured_parameter | @ruby_do | @ruby_do_block | @ruby_element_reference | @ruby_else | @ruby_elsif | @ruby_end_block | @ruby_ensure | @ruby_exception_variable | @ruby_exceptions | @ruby_expression_reference_pattern | @ruby_find_pattern | @ruby_for | @ruby_hash | @ruby_hash_pattern | @ruby_hash_splat_argument | @ruby_hash_splat_parameter | @ruby_heredoc_body | @ruby_if | @ruby_if_guard | @ruby_if_modifier | @ruby_in | @ruby_in_clause | @ruby_interpolation | @ruby_keyword_parameter | @ruby_keyword_pattern | @ruby_lambda | @ruby_lambda_parameters | @ruby_left_assignment_list | @ruby_match_pattern | @ruby_method | @ruby_method_parameters | @ruby_module | @ruby_next | @ruby_operator_assignment | @ruby_optional_parameter | @ruby_pair | @ruby_parenthesized_pattern | @ruby_parenthesized_statements | @ruby_pattern | @ruby_program | @ruby_range | @ruby_rational | @ruby_redo | @ruby_regex | @ruby_rescue | @ruby_rescue_modifier | @ruby_rest_assignment | @ruby_retry | @ruby_return | @ruby_right_assignment_list | @ruby_scope_resolution | @ruby_setter | @ruby_singleton_class | @ruby_singleton_method | @ruby_splat_argument | @ruby_splat_parameter | @ruby_string__ | @ruby_string_array | @ruby_subshell | @ruby_superclass | @ruby_symbol_array | @ruby_test_pattern | @ruby_then | @ruby_token | @ruby_unary | @ruby_undef | @ruby_unless | @ruby_unless_guard | @ruby_unless_modifier | @ruby_until | @ruby_until_modifier | @ruby_variable_reference_pattern | @ruby_when | @ruby_while | @ruby_while_modifier | @ruby_yield + +ruby_ast_node_location( + unique int node: @ruby_ast_node ref, + int loc: @location_default ref +); + +#keyset[parent, parent_index] +ruby_ast_node_parent( + unique int node: @ruby_ast_node ref, + int parent: @ruby_ast_node ref, + int parent_index: int ref +); + +/*- Erb dbscheme -*/ +erb_comment_directive_child( + unique int erb_comment_directive: @erb_comment_directive ref, + unique int child: @erb_token_comment ref +); + +erb_comment_directive_def( + unique int id: @erb_comment_directive +); + +erb_directive_child( + unique int erb_directive: @erb_directive ref, + unique int child: @erb_token_code ref +); + +erb_directive_def( + unique int id: @erb_directive +); + +erb_graphql_directive_child( + unique int erb_graphql_directive: @erb_graphql_directive ref, + unique int child: @erb_token_code ref +); + +erb_graphql_directive_def( + unique int id: @erb_graphql_directive +); + +erb_output_directive_child( + unique int erb_output_directive: @erb_output_directive ref, + unique int child: @erb_token_code ref +); + +erb_output_directive_def( + unique int id: @erb_output_directive +); + +@erb_template_child_type = @erb_comment_directive | @erb_directive | @erb_graphql_directive | @erb_output_directive | @erb_token_content + +#keyset[erb_template, index] +erb_template_child( + int erb_template: @erb_template ref, + int index: int ref, + unique int child: @erb_template_child_type ref +); + +erb_template_def( + unique int id: @erb_template +); + +erb_tokeninfo( + unique int id: @erb_token, + int kind: int ref, + string value: string ref +); + +case @erb_token.kind of + 0 = @erb_reserved_word +| 1 = @erb_token_code +| 2 = @erb_token_comment +| 3 = @erb_token_content +; + + +@erb_ast_node = @erb_comment_directive | @erb_directive | @erb_graphql_directive | @erb_output_directive | @erb_template | @erb_token + +erb_ast_node_location( + unique int node: @erb_ast_node ref, + int loc: @location_default ref +); + +#keyset[parent, parent_index] +erb_ast_node_parent( + unique int node: @erb_ast_node ref, + int parent: @erb_ast_node ref, + int parent_index: int ref +); + diff --git a/ruby/downgrades/440de75c71e9206ce16eed49a22c76e7889b5fc3/ruby.dbscheme b/ruby/downgrades/440de75c71e9206ce16eed49a22c76e7889b5fc3/ruby.dbscheme new file mode 100644 index 000000000000..f9f0f4023e43 --- /dev/null +++ b/ruby/downgrades/440de75c71e9206ce16eed49a22c76e7889b5fc3/ruby.dbscheme @@ -0,0 +1,1509 @@ +// CodeQL database schema for Ruby +// Automatically generated from the tree-sitter grammar; do not edit + +/*- Files and folders -*/ + +/** + * The location of an element. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_default( + unique int id: @location_default, + int file: @file ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @file | @folder + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +/*- Source location prefix -*/ + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/*- Diagnostic messages -*/ + +diagnostics( + unique int id: @diagnostic, + int severity: int ref, + string error_tag: string ref, + string error_message: string ref, + string full_error_message: string ref, + int location: @location_default ref +); + +/*- Diagnostic messages: severity -*/ + +case @diagnostic.severity of + 10 = @diagnostic_debug +| 20 = @diagnostic_info +| 30 = @diagnostic_warning +| 40 = @diagnostic_error +; + +/*- YAML -*/ + +#keyset[parent, idx] +yaml (unique int id: @yaml_node, + int kind: int ref, + int parent: @yaml_node_parent ref, + int idx: int ref, + string tag: string ref, + string tostring: string ref); + +case @yaml_node.kind of + 0 = @yaml_scalar_node +| 1 = @yaml_mapping_node +| 2 = @yaml_sequence_node +| 3 = @yaml_alias_node +; + +@yaml_collection_node = @yaml_mapping_node | @yaml_sequence_node; + +@yaml_node_parent = @yaml_collection_node | @file; + +yaml_anchors (unique int node: @yaml_node ref, + string anchor: string ref); + +yaml_aliases (unique int alias: @yaml_alias_node ref, + string target: string ref); + +yaml_scalars (unique int scalar: @yaml_scalar_node ref, + int style: int ref, + string value: string ref); + +yaml_errors (unique int id: @yaml_error, + string message: string ref); + +yaml_locations(unique int locatable: @yaml_locatable ref, + int location: @location_default ref); + +@yaml_locatable = @yaml_node | @yaml_error; + +/*- Ruby dbscheme -*/ +@ruby_underscore_arg = @ruby_assignment | @ruby_binary | @ruby_conditional | @ruby_operator_assignment | @ruby_range | @ruby_unary | @ruby_underscore_primary + +@ruby_underscore_call_operator = @ruby_reserved_word + +@ruby_underscore_expression = @ruby_assignment | @ruby_binary | @ruby_break | @ruby_call | @ruby_match_pattern | @ruby_next | @ruby_operator_assignment | @ruby_return | @ruby_test_pattern | @ruby_unary | @ruby_underscore_arg | @ruby_yield + +@ruby_underscore_lhs = @ruby_call | @ruby_element_reference | @ruby_scope_resolution | @ruby_token_false | @ruby_token_nil | @ruby_token_true | @ruby_underscore_variable + +@ruby_underscore_method_name = @ruby_delimited_symbol | @ruby_setter | @ruby_token_constant | @ruby_token_identifier | @ruby_token_operator | @ruby_token_simple_symbol | @ruby_underscore_nonlocal_variable + +@ruby_underscore_nonlocal_variable = @ruby_token_class_variable | @ruby_token_global_variable | @ruby_token_instance_variable + +@ruby_underscore_pattern_constant = @ruby_scope_resolution | @ruby_token_constant + +@ruby_underscore_pattern_expr = @ruby_alternative_pattern | @ruby_as_pattern | @ruby_underscore_pattern_expr_basic + +@ruby_underscore_pattern_expr_basic = @ruby_array_pattern | @ruby_expression_reference_pattern | @ruby_find_pattern | @ruby_hash_pattern | @ruby_parenthesized_pattern | @ruby_range | @ruby_token_identifier | @ruby_underscore_pattern_constant | @ruby_underscore_pattern_primitive | @ruby_variable_reference_pattern + +@ruby_underscore_pattern_primitive = @ruby_delimited_symbol | @ruby_lambda | @ruby_regex | @ruby_string__ | @ruby_string_array | @ruby_subshell | @ruby_symbol_array | @ruby_token_encoding | @ruby_token_false | @ruby_token_file | @ruby_token_heredoc_beginning | @ruby_token_line | @ruby_token_nil | @ruby_token_self | @ruby_token_simple_symbol | @ruby_token_true | @ruby_unary | @ruby_underscore_simple_numeric + +@ruby_underscore_pattern_top_expr_body = @ruby_array_pattern | @ruby_find_pattern | @ruby_hash_pattern | @ruby_underscore_pattern_expr + +@ruby_underscore_primary = @ruby_array | @ruby_begin | @ruby_break | @ruby_call | @ruby_case__ | @ruby_case_match | @ruby_chained_string | @ruby_class | @ruby_delimited_symbol | @ruby_for | @ruby_hash | @ruby_if | @ruby_lambda | @ruby_method | @ruby_module | @ruby_next | @ruby_parenthesized_statements | @ruby_redo | @ruby_regex | @ruby_retry | @ruby_return | @ruby_singleton_class | @ruby_singleton_method | @ruby_string__ | @ruby_string_array | @ruby_subshell | @ruby_symbol_array | @ruby_token_character | @ruby_token_heredoc_beginning | @ruby_token_simple_symbol | @ruby_unary | @ruby_underscore_lhs | @ruby_underscore_simple_numeric | @ruby_unless | @ruby_until | @ruby_while | @ruby_yield + +@ruby_underscore_simple_numeric = @ruby_complex | @ruby_rational | @ruby_token_float | @ruby_token_integer + +@ruby_underscore_statement = @ruby_alias | @ruby_begin_block | @ruby_end_block | @ruby_if_modifier | @ruby_rescue_modifier | @ruby_undef | @ruby_underscore_expression | @ruby_unless_modifier | @ruby_until_modifier | @ruby_while_modifier + +@ruby_underscore_variable = @ruby_token_constant | @ruby_token_identifier | @ruby_token_self | @ruby_token_super | @ruby_underscore_nonlocal_variable + +ruby_alias_def( + unique int id: @ruby_alias, + int alias: @ruby_underscore_method_name ref, + int name: @ruby_underscore_method_name ref +); + +#keyset[ruby_alternative_pattern, index] +ruby_alternative_pattern_alternatives( + int ruby_alternative_pattern: @ruby_alternative_pattern ref, + int index: int ref, + unique int alternatives: @ruby_underscore_pattern_expr_basic ref +); + +ruby_alternative_pattern_def( + unique int id: @ruby_alternative_pattern +); + +@ruby_argument_list_child_type = @ruby_block_argument | @ruby_hash_splat_argument | @ruby_pair | @ruby_splat_argument | @ruby_token_forward_argument | @ruby_underscore_expression + +#keyset[ruby_argument_list, index] +ruby_argument_list_child( + int ruby_argument_list: @ruby_argument_list ref, + int index: int ref, + unique int child: @ruby_argument_list_child_type ref +); + +ruby_argument_list_def( + unique int id: @ruby_argument_list +); + +@ruby_array_child_type = @ruby_block_argument | @ruby_hash_splat_argument | @ruby_pair | @ruby_splat_argument | @ruby_token_forward_argument | @ruby_underscore_expression + +#keyset[ruby_array, index] +ruby_array_child( + int ruby_array: @ruby_array ref, + int index: int ref, + unique int child: @ruby_array_child_type ref +); + +ruby_array_def( + unique int id: @ruby_array +); + +ruby_array_pattern_class( + unique int ruby_array_pattern: @ruby_array_pattern ref, + unique int class: @ruby_underscore_pattern_constant ref +); + +@ruby_array_pattern_child_type = @ruby_splat_parameter | @ruby_underscore_pattern_expr + +#keyset[ruby_array_pattern, index] +ruby_array_pattern_child( + int ruby_array_pattern: @ruby_array_pattern ref, + int index: int ref, + unique int child: @ruby_array_pattern_child_type ref +); + +ruby_array_pattern_def( + unique int id: @ruby_array_pattern +); + +ruby_as_pattern_def( + unique int id: @ruby_as_pattern, + int name: @ruby_token_identifier ref, + int value: @ruby_underscore_pattern_expr ref +); + +@ruby_assignment_left_type = @ruby_left_assignment_list | @ruby_underscore_lhs + +@ruby_assignment_right_type = @ruby_rescue_modifier | @ruby_right_assignment_list | @ruby_splat_argument | @ruby_underscore_expression + +ruby_assignment_def( + unique int id: @ruby_assignment, + int left: @ruby_assignment_left_type ref, + int right: @ruby_assignment_right_type ref +); + +@ruby_bare_string_child_type = @ruby_interpolation | @ruby_token_escape_sequence | @ruby_token_string_content + +#keyset[ruby_bare_string, index] +ruby_bare_string_child( + int ruby_bare_string: @ruby_bare_string ref, + int index: int ref, + unique int child: @ruby_bare_string_child_type ref +); + +ruby_bare_string_def( + unique int id: @ruby_bare_string +); + +@ruby_bare_symbol_child_type = @ruby_interpolation | @ruby_token_escape_sequence | @ruby_token_string_content + +#keyset[ruby_bare_symbol, index] +ruby_bare_symbol_child( + int ruby_bare_symbol: @ruby_bare_symbol ref, + int index: int ref, + unique int child: @ruby_bare_symbol_child_type ref +); + +ruby_bare_symbol_def( + unique int id: @ruby_bare_symbol +); + +@ruby_begin_child_type = @ruby_else | @ruby_ensure | @ruby_rescue | @ruby_token_empty_statement | @ruby_underscore_statement + +#keyset[ruby_begin, index] +ruby_begin_child( + int ruby_begin: @ruby_begin ref, + int index: int ref, + unique int child: @ruby_begin_child_type ref +); + +ruby_begin_def( + unique int id: @ruby_begin +); + +@ruby_begin_block_child_type = @ruby_token_empty_statement | @ruby_underscore_statement + +#keyset[ruby_begin_block, index] +ruby_begin_block_child( + int ruby_begin_block: @ruby_begin_block ref, + int index: int ref, + unique int child: @ruby_begin_block_child_type ref +); + +ruby_begin_block_def( + unique int id: @ruby_begin_block +); + +@ruby_binary_left_type = @ruby_underscore_expression | @ruby_underscore_simple_numeric + +case @ruby_binary.operator of + 0 = @ruby_binary_bangequal +| 1 = @ruby_binary_bangtilde +| 2 = @ruby_binary_percent +| 3 = @ruby_binary_ampersand +| 4 = @ruby_binary_ampersandampersand +| 5 = @ruby_binary_star +| 6 = @ruby_binary_starstar +| 7 = @ruby_binary_plus +| 8 = @ruby_binary_minus +| 9 = @ruby_binary_slash +| 10 = @ruby_binary_langle +| 11 = @ruby_binary_langlelangle +| 12 = @ruby_binary_langleequal +| 13 = @ruby_binary_langleequalrangle +| 14 = @ruby_binary_equalequal +| 15 = @ruby_binary_equalequalequal +| 16 = @ruby_binary_equaltilde +| 17 = @ruby_binary_rangle +| 18 = @ruby_binary_rangleequal +| 19 = @ruby_binary_ranglerangle +| 20 = @ruby_binary_caret +| 21 = @ruby_binary_and +| 22 = @ruby_binary_or +| 23 = @ruby_binary_pipe +| 24 = @ruby_binary_pipepipe +; + + +ruby_binary_def( + unique int id: @ruby_binary, + int left: @ruby_binary_left_type ref, + int operator: int ref, + int right: @ruby_underscore_expression ref +); + +ruby_block_body( + unique int ruby_block: @ruby_block ref, + unique int body: @ruby_block_body ref +); + +ruby_block_parameters( + unique int ruby_block: @ruby_block ref, + unique int parameters: @ruby_block_parameters ref +); + +ruby_block_def( + unique int id: @ruby_block +); + +ruby_block_argument_child( + unique int ruby_block_argument: @ruby_block_argument ref, + unique int child: @ruby_underscore_arg ref +); + +ruby_block_argument_def( + unique int id: @ruby_block_argument +); + +@ruby_block_body_child_type = @ruby_token_empty_statement | @ruby_underscore_statement + +#keyset[ruby_block_body, index] +ruby_block_body_child( + int ruby_block_body: @ruby_block_body ref, + int index: int ref, + unique int child: @ruby_block_body_child_type ref +); + +ruby_block_body_def( + unique int id: @ruby_block_body +); + +ruby_block_parameter_name( + unique int ruby_block_parameter: @ruby_block_parameter ref, + unique int name: @ruby_token_identifier ref +); + +ruby_block_parameter_def( + unique int id: @ruby_block_parameter +); + +#keyset[ruby_block_parameters, index] +ruby_block_parameters_locals( + int ruby_block_parameters: @ruby_block_parameters ref, + int index: int ref, + unique int locals: @ruby_token_identifier ref +); + +@ruby_block_parameters_child_type = @ruby_block_parameter | @ruby_destructured_parameter | @ruby_hash_splat_parameter | @ruby_keyword_parameter | @ruby_optional_parameter | @ruby_splat_parameter | @ruby_token_forward_parameter | @ruby_token_hash_splat_nil | @ruby_token_identifier + +#keyset[ruby_block_parameters, index] +ruby_block_parameters_child( + int ruby_block_parameters: @ruby_block_parameters ref, + int index: int ref, + unique int child: @ruby_block_parameters_child_type ref +); + +ruby_block_parameters_def( + unique int id: @ruby_block_parameters +); + +@ruby_body_statement_child_type = @ruby_else | @ruby_ensure | @ruby_rescue | @ruby_token_empty_statement | @ruby_underscore_statement + +#keyset[ruby_body_statement, index] +ruby_body_statement_child( + int ruby_body_statement: @ruby_body_statement ref, + int index: int ref, + unique int child: @ruby_body_statement_child_type ref +); + +ruby_body_statement_def( + unique int id: @ruby_body_statement +); + +ruby_break_child( + unique int ruby_break: @ruby_break ref, + unique int child: @ruby_argument_list ref +); + +ruby_break_def( + unique int id: @ruby_break +); + +ruby_call_arguments( + unique int ruby_call: @ruby_call ref, + unique int arguments: @ruby_argument_list ref +); + +@ruby_call_block_type = @ruby_block | @ruby_do_block + +ruby_call_block( + unique int ruby_call: @ruby_call ref, + unique int block: @ruby_call_block_type ref +); + +@ruby_call_method_type = @ruby_token_operator | @ruby_underscore_variable + +ruby_call_method( + unique int ruby_call: @ruby_call ref, + unique int method: @ruby_call_method_type ref +); + +ruby_call_operator( + unique int ruby_call: @ruby_call ref, + unique int operator: @ruby_underscore_call_operator ref +); + +ruby_call_receiver( + unique int ruby_call: @ruby_call ref, + unique int receiver: @ruby_underscore_primary ref +); + +ruby_call_def( + unique int id: @ruby_call +); + +ruby_case_value( + unique int ruby_case__: @ruby_case__ ref, + unique int value: @ruby_underscore_statement ref +); + +@ruby_case_child_type = @ruby_else | @ruby_when + +#keyset[ruby_case__, index] +ruby_case_child( + int ruby_case__: @ruby_case__ ref, + int index: int ref, + unique int child: @ruby_case_child_type ref +); + +ruby_case_def( + unique int id: @ruby_case__ +); + +#keyset[ruby_case_match, index] +ruby_case_match_clauses( + int ruby_case_match: @ruby_case_match ref, + int index: int ref, + unique int clauses: @ruby_in_clause ref +); + +ruby_case_match_else( + unique int ruby_case_match: @ruby_case_match ref, + unique int else: @ruby_else ref +); + +ruby_case_match_def( + unique int id: @ruby_case_match, + int value: @ruby_underscore_statement ref +); + +#keyset[ruby_chained_string, index] +ruby_chained_string_child( + int ruby_chained_string: @ruby_chained_string ref, + int index: int ref, + unique int child: @ruby_string__ ref +); + +ruby_chained_string_def( + unique int id: @ruby_chained_string +); + +ruby_class_body( + unique int ruby_class: @ruby_class ref, + unique int body: @ruby_body_statement ref +); + +@ruby_class_name_type = @ruby_scope_resolution | @ruby_token_constant + +ruby_class_superclass( + unique int ruby_class: @ruby_class ref, + unique int superclass: @ruby_superclass ref +); + +ruby_class_def( + unique int id: @ruby_class, + int name: @ruby_class_name_type ref +); + +@ruby_complex_child_type = @ruby_rational | @ruby_token_float | @ruby_token_integer + +ruby_complex_def( + unique int id: @ruby_complex, + int child: @ruby_complex_child_type ref +); + +ruby_conditional_def( + unique int id: @ruby_conditional, + int alternative: @ruby_underscore_arg ref, + int condition: @ruby_underscore_arg ref, + int consequence: @ruby_underscore_arg ref +); + +@ruby_delimited_symbol_child_type = @ruby_interpolation | @ruby_token_escape_sequence | @ruby_token_string_content + +#keyset[ruby_delimited_symbol, index] +ruby_delimited_symbol_child( + int ruby_delimited_symbol: @ruby_delimited_symbol ref, + int index: int ref, + unique int child: @ruby_delimited_symbol_child_type ref +); + +ruby_delimited_symbol_def( + unique int id: @ruby_delimited_symbol +); + +@ruby_destructured_left_assignment_child_type = @ruby_destructured_left_assignment | @ruby_rest_assignment | @ruby_underscore_lhs + +#keyset[ruby_destructured_left_assignment, index] +ruby_destructured_left_assignment_child( + int ruby_destructured_left_assignment: @ruby_destructured_left_assignment ref, + int index: int ref, + unique int child: @ruby_destructured_left_assignment_child_type ref +); + +ruby_destructured_left_assignment_def( + unique int id: @ruby_destructured_left_assignment +); + +@ruby_destructured_parameter_child_type = @ruby_block_parameter | @ruby_destructured_parameter | @ruby_hash_splat_parameter | @ruby_keyword_parameter | @ruby_optional_parameter | @ruby_splat_parameter | @ruby_token_forward_parameter | @ruby_token_hash_splat_nil | @ruby_token_identifier + +#keyset[ruby_destructured_parameter, index] +ruby_destructured_parameter_child( + int ruby_destructured_parameter: @ruby_destructured_parameter ref, + int index: int ref, + unique int child: @ruby_destructured_parameter_child_type ref +); + +ruby_destructured_parameter_def( + unique int id: @ruby_destructured_parameter +); + +@ruby_do_child_type = @ruby_token_empty_statement | @ruby_underscore_statement + +#keyset[ruby_do, index] +ruby_do_child( + int ruby_do: @ruby_do ref, + int index: int ref, + unique int child: @ruby_do_child_type ref +); + +ruby_do_def( + unique int id: @ruby_do +); + +ruby_do_block_body( + unique int ruby_do_block: @ruby_do_block ref, + unique int body: @ruby_body_statement ref +); + +ruby_do_block_parameters( + unique int ruby_do_block: @ruby_do_block ref, + unique int parameters: @ruby_block_parameters ref +); + +ruby_do_block_def( + unique int id: @ruby_do_block +); + +@ruby_element_reference_child_type = @ruby_block_argument | @ruby_hash_splat_argument | @ruby_pair | @ruby_splat_argument | @ruby_token_forward_argument | @ruby_underscore_expression + +#keyset[ruby_element_reference, index] +ruby_element_reference_child( + int ruby_element_reference: @ruby_element_reference ref, + int index: int ref, + unique int child: @ruby_element_reference_child_type ref +); + +ruby_element_reference_def( + unique int id: @ruby_element_reference, + int object: @ruby_underscore_primary ref +); + +@ruby_else_child_type = @ruby_token_empty_statement | @ruby_underscore_statement + +#keyset[ruby_else, index] +ruby_else_child( + int ruby_else: @ruby_else ref, + int index: int ref, + unique int child: @ruby_else_child_type ref +); + +ruby_else_def( + unique int id: @ruby_else +); + +@ruby_elsif_alternative_type = @ruby_else | @ruby_elsif + +ruby_elsif_alternative( + unique int ruby_elsif: @ruby_elsif ref, + unique int alternative: @ruby_elsif_alternative_type ref +); + +ruby_elsif_consequence( + unique int ruby_elsif: @ruby_elsif ref, + unique int consequence: @ruby_then ref +); + +ruby_elsif_def( + unique int id: @ruby_elsif, + int condition: @ruby_underscore_statement ref +); + +@ruby_end_block_child_type = @ruby_token_empty_statement | @ruby_underscore_statement + +#keyset[ruby_end_block, index] +ruby_end_block_child( + int ruby_end_block: @ruby_end_block ref, + int index: int ref, + unique int child: @ruby_end_block_child_type ref +); + +ruby_end_block_def( + unique int id: @ruby_end_block +); + +@ruby_ensure_child_type = @ruby_token_empty_statement | @ruby_underscore_statement + +#keyset[ruby_ensure, index] +ruby_ensure_child( + int ruby_ensure: @ruby_ensure ref, + int index: int ref, + unique int child: @ruby_ensure_child_type ref +); + +ruby_ensure_def( + unique int id: @ruby_ensure +); + +ruby_exception_variable_def( + unique int id: @ruby_exception_variable, + int child: @ruby_underscore_lhs ref +); + +@ruby_exceptions_child_type = @ruby_splat_argument | @ruby_underscore_arg + +#keyset[ruby_exceptions, index] +ruby_exceptions_child( + int ruby_exceptions: @ruby_exceptions ref, + int index: int ref, + unique int child: @ruby_exceptions_child_type ref +); + +ruby_exceptions_def( + unique int id: @ruby_exceptions +); + +ruby_expression_reference_pattern_def( + unique int id: @ruby_expression_reference_pattern, + int value: @ruby_underscore_expression ref +); + +ruby_find_pattern_class( + unique int ruby_find_pattern: @ruby_find_pattern ref, + unique int class: @ruby_underscore_pattern_constant ref +); + +@ruby_find_pattern_child_type = @ruby_splat_parameter | @ruby_underscore_pattern_expr + +#keyset[ruby_find_pattern, index] +ruby_find_pattern_child( + int ruby_find_pattern: @ruby_find_pattern ref, + int index: int ref, + unique int child: @ruby_find_pattern_child_type ref +); + +ruby_find_pattern_def( + unique int id: @ruby_find_pattern +); + +@ruby_for_pattern_type = @ruby_left_assignment_list | @ruby_underscore_lhs + +ruby_for_def( + unique int id: @ruby_for, + int body: @ruby_do ref, + int pattern: @ruby_for_pattern_type ref, + int value: @ruby_in ref +); + +@ruby_hash_child_type = @ruby_hash_splat_argument | @ruby_pair + +#keyset[ruby_hash, index] +ruby_hash_child( + int ruby_hash: @ruby_hash ref, + int index: int ref, + unique int child: @ruby_hash_child_type ref +); + +ruby_hash_def( + unique int id: @ruby_hash +); + +ruby_hash_pattern_class( + unique int ruby_hash_pattern: @ruby_hash_pattern ref, + unique int class: @ruby_underscore_pattern_constant ref +); + +@ruby_hash_pattern_child_type = @ruby_hash_splat_parameter | @ruby_keyword_pattern | @ruby_token_hash_splat_nil + +#keyset[ruby_hash_pattern, index] +ruby_hash_pattern_child( + int ruby_hash_pattern: @ruby_hash_pattern ref, + int index: int ref, + unique int child: @ruby_hash_pattern_child_type ref +); + +ruby_hash_pattern_def( + unique int id: @ruby_hash_pattern +); + +ruby_hash_splat_argument_child( + unique int ruby_hash_splat_argument: @ruby_hash_splat_argument ref, + unique int child: @ruby_underscore_arg ref +); + +ruby_hash_splat_argument_def( + unique int id: @ruby_hash_splat_argument +); + +ruby_hash_splat_parameter_name( + unique int ruby_hash_splat_parameter: @ruby_hash_splat_parameter ref, + unique int name: @ruby_token_identifier ref +); + +ruby_hash_splat_parameter_def( + unique int id: @ruby_hash_splat_parameter +); + +@ruby_heredoc_body_child_type = @ruby_interpolation | @ruby_token_escape_sequence | @ruby_token_heredoc_content | @ruby_token_heredoc_end + +#keyset[ruby_heredoc_body, index] +ruby_heredoc_body_child( + int ruby_heredoc_body: @ruby_heredoc_body ref, + int index: int ref, + unique int child: @ruby_heredoc_body_child_type ref +); + +ruby_heredoc_body_def( + unique int id: @ruby_heredoc_body +); + +@ruby_if_alternative_type = @ruby_else | @ruby_elsif + +ruby_if_alternative( + unique int ruby_if: @ruby_if ref, + unique int alternative: @ruby_if_alternative_type ref +); + +ruby_if_consequence( + unique int ruby_if: @ruby_if ref, + unique int consequence: @ruby_then ref +); + +ruby_if_def( + unique int id: @ruby_if, + int condition: @ruby_underscore_statement ref +); + +ruby_if_guard_def( + unique int id: @ruby_if_guard, + int condition: @ruby_underscore_expression ref +); + +ruby_if_modifier_def( + unique int id: @ruby_if_modifier, + int body: @ruby_underscore_statement ref, + int condition: @ruby_underscore_expression ref +); + +ruby_in_def( + unique int id: @ruby_in, + int child: @ruby_underscore_arg ref +); + +ruby_in_clause_body( + unique int ruby_in_clause: @ruby_in_clause ref, + unique int body: @ruby_then ref +); + +@ruby_in_clause_guard_type = @ruby_if_guard | @ruby_unless_guard + +ruby_in_clause_guard( + unique int ruby_in_clause: @ruby_in_clause ref, + unique int guard: @ruby_in_clause_guard_type ref +); + +ruby_in_clause_def( + unique int id: @ruby_in_clause, + int pattern: @ruby_underscore_pattern_top_expr_body ref +); + +@ruby_interpolation_child_type = @ruby_token_empty_statement | @ruby_underscore_nonlocal_variable | @ruby_underscore_statement + +#keyset[ruby_interpolation, index] +ruby_interpolation_child( + int ruby_interpolation: @ruby_interpolation ref, + int index: int ref, + unique int child: @ruby_interpolation_child_type ref +); + +ruby_interpolation_def( + unique int id: @ruby_interpolation +); + +ruby_keyword_parameter_value( + unique int ruby_keyword_parameter: @ruby_keyword_parameter ref, + unique int value: @ruby_underscore_arg ref +); + +ruby_keyword_parameter_def( + unique int id: @ruby_keyword_parameter, + int name: @ruby_token_identifier ref +); + +@ruby_keyword_pattern_key_type = @ruby_string__ | @ruby_token_hash_key_symbol + +ruby_keyword_pattern_value( + unique int ruby_keyword_pattern: @ruby_keyword_pattern ref, + unique int value: @ruby_underscore_pattern_expr ref +); + +ruby_keyword_pattern_def( + unique int id: @ruby_keyword_pattern, + int key__: @ruby_keyword_pattern_key_type ref +); + +@ruby_lambda_body_type = @ruby_block | @ruby_do_block + +ruby_lambda_parameters( + unique int ruby_lambda: @ruby_lambda ref, + unique int parameters: @ruby_lambda_parameters ref +); + +ruby_lambda_def( + unique int id: @ruby_lambda, + int body: @ruby_lambda_body_type ref +); + +@ruby_lambda_parameters_child_type = @ruby_block_parameter | @ruby_destructured_parameter | @ruby_hash_splat_parameter | @ruby_keyword_parameter | @ruby_optional_parameter | @ruby_splat_parameter | @ruby_token_forward_parameter | @ruby_token_hash_splat_nil | @ruby_token_identifier + +#keyset[ruby_lambda_parameters, index] +ruby_lambda_parameters_child( + int ruby_lambda_parameters: @ruby_lambda_parameters ref, + int index: int ref, + unique int child: @ruby_lambda_parameters_child_type ref +); + +ruby_lambda_parameters_def( + unique int id: @ruby_lambda_parameters +); + +@ruby_left_assignment_list_child_type = @ruby_destructured_left_assignment | @ruby_rest_assignment | @ruby_underscore_lhs + +#keyset[ruby_left_assignment_list, index] +ruby_left_assignment_list_child( + int ruby_left_assignment_list: @ruby_left_assignment_list ref, + int index: int ref, + unique int child: @ruby_left_assignment_list_child_type ref +); + +ruby_left_assignment_list_def( + unique int id: @ruby_left_assignment_list +); + +ruby_match_pattern_def( + unique int id: @ruby_match_pattern, + int pattern: @ruby_underscore_pattern_top_expr_body ref, + int value: @ruby_underscore_arg ref +); + +@ruby_method_body_type = @ruby_body_statement | @ruby_rescue_modifier | @ruby_underscore_arg + +ruby_method_body( + unique int ruby_method: @ruby_method ref, + unique int body: @ruby_method_body_type ref +); + +ruby_method_parameters( + unique int ruby_method: @ruby_method ref, + unique int parameters: @ruby_method_parameters ref +); + +ruby_method_def( + unique int id: @ruby_method, + int name: @ruby_underscore_method_name ref +); + +@ruby_method_parameters_child_type = @ruby_block_parameter | @ruby_destructured_parameter | @ruby_hash_splat_parameter | @ruby_keyword_parameter | @ruby_optional_parameter | @ruby_splat_parameter | @ruby_token_forward_parameter | @ruby_token_hash_splat_nil | @ruby_token_identifier + +#keyset[ruby_method_parameters, index] +ruby_method_parameters_child( + int ruby_method_parameters: @ruby_method_parameters ref, + int index: int ref, + unique int child: @ruby_method_parameters_child_type ref +); + +ruby_method_parameters_def( + unique int id: @ruby_method_parameters +); + +ruby_module_body( + unique int ruby_module: @ruby_module ref, + unique int body: @ruby_body_statement ref +); + +@ruby_module_name_type = @ruby_scope_resolution | @ruby_token_constant + +ruby_module_def( + unique int id: @ruby_module, + int name: @ruby_module_name_type ref +); + +ruby_next_child( + unique int ruby_next: @ruby_next ref, + unique int child: @ruby_argument_list ref +); + +ruby_next_def( + unique int id: @ruby_next +); + +case @ruby_operator_assignment.operator of + 0 = @ruby_operator_assignment_percentequal +| 1 = @ruby_operator_assignment_ampersandampersandequal +| 2 = @ruby_operator_assignment_ampersandequal +| 3 = @ruby_operator_assignment_starstarequal +| 4 = @ruby_operator_assignment_starequal +| 5 = @ruby_operator_assignment_plusequal +| 6 = @ruby_operator_assignment_minusequal +| 7 = @ruby_operator_assignment_slashequal +| 8 = @ruby_operator_assignment_langlelangleequal +| 9 = @ruby_operator_assignment_ranglerangleequal +| 10 = @ruby_operator_assignment_caretequal +| 11 = @ruby_operator_assignment_pipeequal +| 12 = @ruby_operator_assignment_pipepipeequal +; + + +@ruby_operator_assignment_right_type = @ruby_rescue_modifier | @ruby_underscore_expression + +ruby_operator_assignment_def( + unique int id: @ruby_operator_assignment, + int left: @ruby_underscore_lhs ref, + int operator: int ref, + int right: @ruby_operator_assignment_right_type ref +); + +ruby_optional_parameter_def( + unique int id: @ruby_optional_parameter, + int name: @ruby_token_identifier ref, + int value: @ruby_underscore_arg ref +); + +@ruby_pair_key_type = @ruby_string__ | @ruby_token_hash_key_symbol | @ruby_underscore_arg + +ruby_pair_value( + unique int ruby_pair: @ruby_pair ref, + unique int value: @ruby_underscore_arg ref +); + +ruby_pair_def( + unique int id: @ruby_pair, + int key__: @ruby_pair_key_type ref +); + +ruby_parenthesized_pattern_def( + unique int id: @ruby_parenthesized_pattern, + int child: @ruby_underscore_pattern_expr ref +); + +@ruby_parenthesized_statements_child_type = @ruby_token_empty_statement | @ruby_underscore_statement + +#keyset[ruby_parenthesized_statements, index] +ruby_parenthesized_statements_child( + int ruby_parenthesized_statements: @ruby_parenthesized_statements ref, + int index: int ref, + unique int child: @ruby_parenthesized_statements_child_type ref +); + +ruby_parenthesized_statements_def( + unique int id: @ruby_parenthesized_statements +); + +@ruby_pattern_child_type = @ruby_splat_argument | @ruby_underscore_arg + +ruby_pattern_def( + unique int id: @ruby_pattern, + int child: @ruby_pattern_child_type ref +); + +@ruby_program_child_type = @ruby_token_empty_statement | @ruby_token_uninterpreted | @ruby_underscore_statement + +#keyset[ruby_program, index] +ruby_program_child( + int ruby_program: @ruby_program ref, + int index: int ref, + unique int child: @ruby_program_child_type ref +); + +ruby_program_def( + unique int id: @ruby_program +); + +@ruby_range_begin_type = @ruby_underscore_arg | @ruby_underscore_pattern_primitive + +ruby_range_begin( + unique int ruby_range: @ruby_range ref, + unique int begin: @ruby_range_begin_type ref +); + +@ruby_range_end_type = @ruby_underscore_arg | @ruby_underscore_pattern_primitive + +ruby_range_end( + unique int ruby_range: @ruby_range ref, + unique int end: @ruby_range_end_type ref +); + +case @ruby_range.operator of + 0 = @ruby_range_dotdot +| 1 = @ruby_range_dotdotdot +; + + +ruby_range_def( + unique int id: @ruby_range, + int operator: int ref +); + +@ruby_rational_child_type = @ruby_token_float | @ruby_token_integer + +ruby_rational_def( + unique int id: @ruby_rational, + int child: @ruby_rational_child_type ref +); + +ruby_redo_child( + unique int ruby_redo: @ruby_redo ref, + unique int child: @ruby_argument_list ref +); + +ruby_redo_def( + unique int id: @ruby_redo +); + +@ruby_regex_child_type = @ruby_interpolation | @ruby_token_escape_sequence | @ruby_token_string_content + +#keyset[ruby_regex, index] +ruby_regex_child( + int ruby_regex: @ruby_regex ref, + int index: int ref, + unique int child: @ruby_regex_child_type ref +); + +ruby_regex_def( + unique int id: @ruby_regex +); + +ruby_rescue_body( + unique int ruby_rescue: @ruby_rescue ref, + unique int body: @ruby_then ref +); + +ruby_rescue_exceptions( + unique int ruby_rescue: @ruby_rescue ref, + unique int exceptions: @ruby_exceptions ref +); + +ruby_rescue_variable( + unique int ruby_rescue: @ruby_rescue ref, + unique int variable: @ruby_exception_variable ref +); + +ruby_rescue_def( + unique int id: @ruby_rescue +); + +@ruby_rescue_modifier_body_type = @ruby_underscore_arg | @ruby_underscore_statement + +ruby_rescue_modifier_def( + unique int id: @ruby_rescue_modifier, + int body: @ruby_rescue_modifier_body_type ref, + int handler: @ruby_underscore_expression ref +); + +ruby_rest_assignment_child( + unique int ruby_rest_assignment: @ruby_rest_assignment ref, + unique int child: @ruby_underscore_lhs ref +); + +ruby_rest_assignment_def( + unique int id: @ruby_rest_assignment +); + +ruby_retry_child( + unique int ruby_retry: @ruby_retry ref, + unique int child: @ruby_argument_list ref +); + +ruby_retry_def( + unique int id: @ruby_retry +); + +ruby_return_child( + unique int ruby_return: @ruby_return ref, + unique int child: @ruby_argument_list ref +); + +ruby_return_def( + unique int id: @ruby_return +); + +@ruby_right_assignment_list_child_type = @ruby_splat_argument | @ruby_underscore_arg + +#keyset[ruby_right_assignment_list, index] +ruby_right_assignment_list_child( + int ruby_right_assignment_list: @ruby_right_assignment_list ref, + int index: int ref, + unique int child: @ruby_right_assignment_list_child_type ref +); + +ruby_right_assignment_list_def( + unique int id: @ruby_right_assignment_list +); + +@ruby_scope_resolution_scope_type = @ruby_underscore_pattern_constant | @ruby_underscore_primary + +ruby_scope_resolution_scope( + unique int ruby_scope_resolution: @ruby_scope_resolution ref, + unique int scope: @ruby_scope_resolution_scope_type ref +); + +ruby_scope_resolution_def( + unique int id: @ruby_scope_resolution, + int name: @ruby_token_constant ref +); + +ruby_setter_def( + unique int id: @ruby_setter, + int name: @ruby_token_identifier ref +); + +ruby_singleton_class_body( + unique int ruby_singleton_class: @ruby_singleton_class ref, + unique int body: @ruby_body_statement ref +); + +ruby_singleton_class_def( + unique int id: @ruby_singleton_class, + int value: @ruby_underscore_arg ref +); + +@ruby_singleton_method_body_type = @ruby_body_statement | @ruby_rescue_modifier | @ruby_underscore_arg + +ruby_singleton_method_body( + unique int ruby_singleton_method: @ruby_singleton_method ref, + unique int body: @ruby_singleton_method_body_type ref +); + +@ruby_singleton_method_object_type = @ruby_underscore_arg | @ruby_underscore_variable + +ruby_singleton_method_parameters( + unique int ruby_singleton_method: @ruby_singleton_method ref, + unique int parameters: @ruby_method_parameters ref +); + +ruby_singleton_method_def( + unique int id: @ruby_singleton_method, + int name: @ruby_underscore_method_name ref, + int object: @ruby_singleton_method_object_type ref +); + +ruby_splat_argument_child( + unique int ruby_splat_argument: @ruby_splat_argument ref, + unique int child: @ruby_underscore_arg ref +); + +ruby_splat_argument_def( + unique int id: @ruby_splat_argument +); + +ruby_splat_parameter_name( + unique int ruby_splat_parameter: @ruby_splat_parameter ref, + unique int name: @ruby_token_identifier ref +); + +ruby_splat_parameter_def( + unique int id: @ruby_splat_parameter +); + +@ruby_string_child_type = @ruby_interpolation | @ruby_token_escape_sequence | @ruby_token_string_content + +#keyset[ruby_string__, index] +ruby_string_child( + int ruby_string__: @ruby_string__ ref, + int index: int ref, + unique int child: @ruby_string_child_type ref +); + +ruby_string_def( + unique int id: @ruby_string__ +); + +#keyset[ruby_string_array, index] +ruby_string_array_child( + int ruby_string_array: @ruby_string_array ref, + int index: int ref, + unique int child: @ruby_bare_string ref +); + +ruby_string_array_def( + unique int id: @ruby_string_array +); + +@ruby_subshell_child_type = @ruby_interpolation | @ruby_token_escape_sequence | @ruby_token_string_content + +#keyset[ruby_subshell, index] +ruby_subshell_child( + int ruby_subshell: @ruby_subshell ref, + int index: int ref, + unique int child: @ruby_subshell_child_type ref +); + +ruby_subshell_def( + unique int id: @ruby_subshell +); + +ruby_superclass_def( + unique int id: @ruby_superclass, + int child: @ruby_underscore_expression ref +); + +#keyset[ruby_symbol_array, index] +ruby_symbol_array_child( + int ruby_symbol_array: @ruby_symbol_array ref, + int index: int ref, + unique int child: @ruby_bare_symbol ref +); + +ruby_symbol_array_def( + unique int id: @ruby_symbol_array +); + +ruby_test_pattern_def( + unique int id: @ruby_test_pattern, + int pattern: @ruby_underscore_pattern_top_expr_body ref, + int value: @ruby_underscore_arg ref +); + +@ruby_then_child_type = @ruby_token_empty_statement | @ruby_underscore_statement + +#keyset[ruby_then, index] +ruby_then_child( + int ruby_then: @ruby_then ref, + int index: int ref, + unique int child: @ruby_then_child_type ref +); + +ruby_then_def( + unique int id: @ruby_then +); + +@ruby_unary_operand_type = @ruby_parenthesized_statements | @ruby_underscore_expression | @ruby_underscore_simple_numeric + +case @ruby_unary.operator of + 0 = @ruby_unary_bang +| 1 = @ruby_unary_plus +| 2 = @ruby_unary_minus +| 3 = @ruby_unary_definedquestion +| 4 = @ruby_unary_not +| 5 = @ruby_unary_tilde +; + + +ruby_unary_def( + unique int id: @ruby_unary, + int operand: @ruby_unary_operand_type ref, + int operator: int ref +); + +#keyset[ruby_undef, index] +ruby_undef_child( + int ruby_undef: @ruby_undef ref, + int index: int ref, + unique int child: @ruby_underscore_method_name ref +); + +ruby_undef_def( + unique int id: @ruby_undef +); + +@ruby_unless_alternative_type = @ruby_else | @ruby_elsif + +ruby_unless_alternative( + unique int ruby_unless: @ruby_unless ref, + unique int alternative: @ruby_unless_alternative_type ref +); + +ruby_unless_consequence( + unique int ruby_unless: @ruby_unless ref, + unique int consequence: @ruby_then ref +); + +ruby_unless_def( + unique int id: @ruby_unless, + int condition: @ruby_underscore_statement ref +); + +ruby_unless_guard_def( + unique int id: @ruby_unless_guard, + int condition: @ruby_underscore_expression ref +); + +ruby_unless_modifier_def( + unique int id: @ruby_unless_modifier, + int body: @ruby_underscore_statement ref, + int condition: @ruby_underscore_expression ref +); + +ruby_until_def( + unique int id: @ruby_until, + int body: @ruby_do ref, + int condition: @ruby_underscore_statement ref +); + +ruby_until_modifier_def( + unique int id: @ruby_until_modifier, + int body: @ruby_underscore_statement ref, + int condition: @ruby_underscore_expression ref +); + +@ruby_variable_reference_pattern_name_type = @ruby_token_identifier | @ruby_underscore_nonlocal_variable + +ruby_variable_reference_pattern_def( + unique int id: @ruby_variable_reference_pattern, + int name: @ruby_variable_reference_pattern_name_type ref +); + +ruby_when_body( + unique int ruby_when: @ruby_when ref, + unique int body: @ruby_then ref +); + +#keyset[ruby_when, index] +ruby_when_pattern( + int ruby_when: @ruby_when ref, + int index: int ref, + unique int pattern: @ruby_pattern ref +); + +ruby_when_def( + unique int id: @ruby_when +); + +ruby_while_def( + unique int id: @ruby_while, + int body: @ruby_do ref, + int condition: @ruby_underscore_statement ref +); + +ruby_while_modifier_def( + unique int id: @ruby_while_modifier, + int body: @ruby_underscore_statement ref, + int condition: @ruby_underscore_expression ref +); + +ruby_yield_child( + unique int ruby_yield: @ruby_yield ref, + unique int child: @ruby_argument_list ref +); + +ruby_yield_def( + unique int id: @ruby_yield +); + +ruby_tokeninfo( + unique int id: @ruby_token, + int kind: int ref, + string value: string ref +); + +case @ruby_token.kind of + 0 = @ruby_reserved_word +| 1 = @ruby_token_character +| 2 = @ruby_token_class_variable +| 3 = @ruby_token_comment +| 4 = @ruby_token_constant +| 5 = @ruby_token_empty_statement +| 6 = @ruby_token_encoding +| 7 = @ruby_token_escape_sequence +| 8 = @ruby_token_false +| 9 = @ruby_token_file +| 10 = @ruby_token_float +| 11 = @ruby_token_forward_argument +| 12 = @ruby_token_forward_parameter +| 13 = @ruby_token_global_variable +| 14 = @ruby_token_hash_key_symbol +| 15 = @ruby_token_hash_splat_nil +| 16 = @ruby_token_heredoc_beginning +| 17 = @ruby_token_heredoc_content +| 18 = @ruby_token_heredoc_end +| 19 = @ruby_token_identifier +| 20 = @ruby_token_instance_variable +| 21 = @ruby_token_integer +| 22 = @ruby_token_line +| 23 = @ruby_token_nil +| 24 = @ruby_token_operator +| 25 = @ruby_token_self +| 26 = @ruby_token_simple_symbol +| 27 = @ruby_token_string_content +| 28 = @ruby_token_super +| 29 = @ruby_token_true +| 30 = @ruby_token_uninterpreted +; + + +@ruby_ast_node = @ruby_alias | @ruby_alternative_pattern | @ruby_argument_list | @ruby_array | @ruby_array_pattern | @ruby_as_pattern | @ruby_assignment | @ruby_bare_string | @ruby_bare_symbol | @ruby_begin | @ruby_begin_block | @ruby_binary | @ruby_block | @ruby_block_argument | @ruby_block_body | @ruby_block_parameter | @ruby_block_parameters | @ruby_body_statement | @ruby_break | @ruby_call | @ruby_case__ | @ruby_case_match | @ruby_chained_string | @ruby_class | @ruby_complex | @ruby_conditional | @ruby_delimited_symbol | @ruby_destructured_left_assignment | @ruby_destructured_parameter | @ruby_do | @ruby_do_block | @ruby_element_reference | @ruby_else | @ruby_elsif | @ruby_end_block | @ruby_ensure | @ruby_exception_variable | @ruby_exceptions | @ruby_expression_reference_pattern | @ruby_find_pattern | @ruby_for | @ruby_hash | @ruby_hash_pattern | @ruby_hash_splat_argument | @ruby_hash_splat_parameter | @ruby_heredoc_body | @ruby_if | @ruby_if_guard | @ruby_if_modifier | @ruby_in | @ruby_in_clause | @ruby_interpolation | @ruby_keyword_parameter | @ruby_keyword_pattern | @ruby_lambda | @ruby_lambda_parameters | @ruby_left_assignment_list | @ruby_match_pattern | @ruby_method | @ruby_method_parameters | @ruby_module | @ruby_next | @ruby_operator_assignment | @ruby_optional_parameter | @ruby_pair | @ruby_parenthesized_pattern | @ruby_parenthesized_statements | @ruby_pattern | @ruby_program | @ruby_range | @ruby_rational | @ruby_redo | @ruby_regex | @ruby_rescue | @ruby_rescue_modifier | @ruby_rest_assignment | @ruby_retry | @ruby_return | @ruby_right_assignment_list | @ruby_scope_resolution | @ruby_setter | @ruby_singleton_class | @ruby_singleton_method | @ruby_splat_argument | @ruby_splat_parameter | @ruby_string__ | @ruby_string_array | @ruby_subshell | @ruby_superclass | @ruby_symbol_array | @ruby_test_pattern | @ruby_then | @ruby_token | @ruby_unary | @ruby_undef | @ruby_unless | @ruby_unless_guard | @ruby_unless_modifier | @ruby_until | @ruby_until_modifier | @ruby_variable_reference_pattern | @ruby_when | @ruby_while | @ruby_while_modifier | @ruby_yield + +@ruby_ast_node_parent = @file | @ruby_ast_node + +#keyset[parent, parent_index] +ruby_ast_node_info( + unique int node: @ruby_ast_node ref, + int parent: @ruby_ast_node_parent ref, + int parent_index: int ref, + int loc: @location_default ref +); + +/*- Erb dbscheme -*/ +erb_comment_directive_child( + unique int erb_comment_directive: @erb_comment_directive ref, + unique int child: @erb_token_comment ref +); + +erb_comment_directive_def( + unique int id: @erb_comment_directive +); + +erb_directive_child( + unique int erb_directive: @erb_directive ref, + unique int child: @erb_token_code ref +); + +erb_directive_def( + unique int id: @erb_directive +); + +erb_graphql_directive_child( + unique int erb_graphql_directive: @erb_graphql_directive ref, + unique int child: @erb_token_code ref +); + +erb_graphql_directive_def( + unique int id: @erb_graphql_directive +); + +erb_output_directive_child( + unique int erb_output_directive: @erb_output_directive ref, + unique int child: @erb_token_code ref +); + +erb_output_directive_def( + unique int id: @erb_output_directive +); + +@erb_template_child_type = @erb_comment_directive | @erb_directive | @erb_graphql_directive | @erb_output_directive | @erb_token_content + +#keyset[erb_template, index] +erb_template_child( + int erb_template: @erb_template ref, + int index: int ref, + unique int child: @erb_template_child_type ref +); + +erb_template_def( + unique int id: @erb_template +); + +erb_tokeninfo( + unique int id: @erb_token, + int kind: int ref, + string value: string ref +); + +case @erb_token.kind of + 0 = @erb_reserved_word +| 1 = @erb_token_code +| 2 = @erb_token_comment +| 3 = @erb_token_content +; + + +@erb_ast_node = @erb_comment_directive | @erb_directive | @erb_graphql_directive | @erb_output_directive | @erb_template | @erb_token + +@erb_ast_node_parent = @erb_ast_node | @file + +#keyset[parent, parent_index] +erb_ast_node_info( + unique int node: @erb_ast_node ref, + int parent: @erb_ast_node_parent ref, + int parent_index: int ref, + int loc: @location_default ref +); + diff --git a/ruby/downgrades/440de75c71e9206ce16eed49a22c76e7889b5fc3/ruby_ast_node_info.ql b/ruby/downgrades/440de75c71e9206ce16eed49a22c76e7889b5fc3/ruby_ast_node_info.ql new file mode 100644 index 000000000000..06551527942b --- /dev/null +++ b/ruby/downgrades/440de75c71e9206ce16eed49a22c76e7889b5fc3/ruby_ast_node_info.ql @@ -0,0 +1,44 @@ +class TAstNodeParent = @file or @ruby_ast_node; + +abstract class AstNodeParent extends TAstNodeParent { + string toString() { none() } +} + +class AstNode extends AstNodeParent, @ruby_ast_node { } + +class File extends AstNodeParent, @file { } + +class Location extends @location_default { + string toString() { none() } +} + +pragma[nomagic] +predicate hasFileParent( + AstNode n, File f, int startline, int startcolumn, int endline, int endcolumn +) { + exists(Location loc | + not ruby_ast_node_parent(n, _, _) and + ruby_ast_node_location(n, loc) and + locations_default(loc, f, startline, startcolumn, endline, endcolumn) + ) +} + +pragma[nomagic] +predicate hasFileParent(AstNode n, File f, int i) { + n = + rank[i + 1](AstNode n0, int startline, int startcolumn, int endline, int endcolumn | + hasFileParent(n0, f, startline, startcolumn, endline, endcolumn) + | + n0 order by startline, startcolumn, endline, endcolumn + ) +} + +from AstNode n, AstNodeParent parent, int i, Location location +where + ruby_ast_node_location(n, location) and + ( + ruby_ast_node_parent(n, parent, i) + or + hasFileParent(n, parent, i) + ) +select n, parent, i, location diff --git a/ruby/downgrades/440de75c71e9206ce16eed49a22c76e7889b5fc3/upgrade.properties b/ruby/downgrades/440de75c71e9206ce16eed49a22c76e7889b5fc3/upgrade.properties new file mode 100644 index 000000000000..b75ccdefc20f --- /dev/null +++ b/ruby/downgrades/440de75c71e9206ce16eed49a22c76e7889b5fc3/upgrade.properties @@ -0,0 +1,8 @@ +description: Merge `ruby_ast_node_location` and `ruby_ast_node_parent` into `ruby_ast_node_info` (and same for `erb`) +compatibility: backwards +erb_ast_node_info.rel: run erb_ast_node_info.qlo +erb_ast_node_location.rel: delete +erb_ast_node_parent.rel: delete +ruby_ast_node_info.rel: run ruby_ast_node_info.qlo +ruby_ast_node_location.rel: delete +ruby_ast_node_parent.rel: delete diff --git a/ruby/ql/lib/upgrades/f9f0f4023e433184fda76f595247bf448b782135/erb_ast_node_location.ql b/ruby/ql/lib/upgrades/f9f0f4023e433184fda76f595247bf448b782135/erb_ast_node_location.ql new file mode 100644 index 000000000000..add4e3d655cd --- /dev/null +++ b/ruby/ql/lib/upgrades/f9f0f4023e433184fda76f595247bf448b782135/erb_ast_node_location.ql @@ -0,0 +1,11 @@ +class AstNode extends @erb_ast_node { + string toString() { none() } +} + +class Location extends @location_default { + string toString() { none() } +} + +from AstNode n, Location location +where erb_ast_node_info(n, _, _, location) +select n, location diff --git a/ruby/ql/lib/upgrades/f9f0f4023e433184fda76f595247bf448b782135/erb_ast_node_parent.ql b/ruby/ql/lib/upgrades/f9f0f4023e433184fda76f595247bf448b782135/erb_ast_node_parent.ql new file mode 100644 index 000000000000..2a7b6b2ff784 --- /dev/null +++ b/ruby/ql/lib/upgrades/f9f0f4023e433184fda76f595247bf448b782135/erb_ast_node_parent.ql @@ -0,0 +1,7 @@ +class AstNode extends @erb_ast_node { + string toString() { none() } +} + +from AstNode n, int i, AstNode parent +where erb_ast_node_info(n, parent, i, _) +select n, parent, i diff --git a/ruby/ql/lib/upgrades/f9f0f4023e433184fda76f595247bf448b782135/old.dbscheme b/ruby/ql/lib/upgrades/f9f0f4023e433184fda76f595247bf448b782135/old.dbscheme new file mode 100644 index 000000000000..f9f0f4023e43 --- /dev/null +++ b/ruby/ql/lib/upgrades/f9f0f4023e433184fda76f595247bf448b782135/old.dbscheme @@ -0,0 +1,1509 @@ +// CodeQL database schema for Ruby +// Automatically generated from the tree-sitter grammar; do not edit + +/*- Files and folders -*/ + +/** + * The location of an element. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_default( + unique int id: @location_default, + int file: @file ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @file | @folder + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +/*- Source location prefix -*/ + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/*- Diagnostic messages -*/ + +diagnostics( + unique int id: @diagnostic, + int severity: int ref, + string error_tag: string ref, + string error_message: string ref, + string full_error_message: string ref, + int location: @location_default ref +); + +/*- Diagnostic messages: severity -*/ + +case @diagnostic.severity of + 10 = @diagnostic_debug +| 20 = @diagnostic_info +| 30 = @diagnostic_warning +| 40 = @diagnostic_error +; + +/*- YAML -*/ + +#keyset[parent, idx] +yaml (unique int id: @yaml_node, + int kind: int ref, + int parent: @yaml_node_parent ref, + int idx: int ref, + string tag: string ref, + string tostring: string ref); + +case @yaml_node.kind of + 0 = @yaml_scalar_node +| 1 = @yaml_mapping_node +| 2 = @yaml_sequence_node +| 3 = @yaml_alias_node +; + +@yaml_collection_node = @yaml_mapping_node | @yaml_sequence_node; + +@yaml_node_parent = @yaml_collection_node | @file; + +yaml_anchors (unique int node: @yaml_node ref, + string anchor: string ref); + +yaml_aliases (unique int alias: @yaml_alias_node ref, + string target: string ref); + +yaml_scalars (unique int scalar: @yaml_scalar_node ref, + int style: int ref, + string value: string ref); + +yaml_errors (unique int id: @yaml_error, + string message: string ref); + +yaml_locations(unique int locatable: @yaml_locatable ref, + int location: @location_default ref); + +@yaml_locatable = @yaml_node | @yaml_error; + +/*- Ruby dbscheme -*/ +@ruby_underscore_arg = @ruby_assignment | @ruby_binary | @ruby_conditional | @ruby_operator_assignment | @ruby_range | @ruby_unary | @ruby_underscore_primary + +@ruby_underscore_call_operator = @ruby_reserved_word + +@ruby_underscore_expression = @ruby_assignment | @ruby_binary | @ruby_break | @ruby_call | @ruby_match_pattern | @ruby_next | @ruby_operator_assignment | @ruby_return | @ruby_test_pattern | @ruby_unary | @ruby_underscore_arg | @ruby_yield + +@ruby_underscore_lhs = @ruby_call | @ruby_element_reference | @ruby_scope_resolution | @ruby_token_false | @ruby_token_nil | @ruby_token_true | @ruby_underscore_variable + +@ruby_underscore_method_name = @ruby_delimited_symbol | @ruby_setter | @ruby_token_constant | @ruby_token_identifier | @ruby_token_operator | @ruby_token_simple_symbol | @ruby_underscore_nonlocal_variable + +@ruby_underscore_nonlocal_variable = @ruby_token_class_variable | @ruby_token_global_variable | @ruby_token_instance_variable + +@ruby_underscore_pattern_constant = @ruby_scope_resolution | @ruby_token_constant + +@ruby_underscore_pattern_expr = @ruby_alternative_pattern | @ruby_as_pattern | @ruby_underscore_pattern_expr_basic + +@ruby_underscore_pattern_expr_basic = @ruby_array_pattern | @ruby_expression_reference_pattern | @ruby_find_pattern | @ruby_hash_pattern | @ruby_parenthesized_pattern | @ruby_range | @ruby_token_identifier | @ruby_underscore_pattern_constant | @ruby_underscore_pattern_primitive | @ruby_variable_reference_pattern + +@ruby_underscore_pattern_primitive = @ruby_delimited_symbol | @ruby_lambda | @ruby_regex | @ruby_string__ | @ruby_string_array | @ruby_subshell | @ruby_symbol_array | @ruby_token_encoding | @ruby_token_false | @ruby_token_file | @ruby_token_heredoc_beginning | @ruby_token_line | @ruby_token_nil | @ruby_token_self | @ruby_token_simple_symbol | @ruby_token_true | @ruby_unary | @ruby_underscore_simple_numeric + +@ruby_underscore_pattern_top_expr_body = @ruby_array_pattern | @ruby_find_pattern | @ruby_hash_pattern | @ruby_underscore_pattern_expr + +@ruby_underscore_primary = @ruby_array | @ruby_begin | @ruby_break | @ruby_call | @ruby_case__ | @ruby_case_match | @ruby_chained_string | @ruby_class | @ruby_delimited_symbol | @ruby_for | @ruby_hash | @ruby_if | @ruby_lambda | @ruby_method | @ruby_module | @ruby_next | @ruby_parenthesized_statements | @ruby_redo | @ruby_regex | @ruby_retry | @ruby_return | @ruby_singleton_class | @ruby_singleton_method | @ruby_string__ | @ruby_string_array | @ruby_subshell | @ruby_symbol_array | @ruby_token_character | @ruby_token_heredoc_beginning | @ruby_token_simple_symbol | @ruby_unary | @ruby_underscore_lhs | @ruby_underscore_simple_numeric | @ruby_unless | @ruby_until | @ruby_while | @ruby_yield + +@ruby_underscore_simple_numeric = @ruby_complex | @ruby_rational | @ruby_token_float | @ruby_token_integer + +@ruby_underscore_statement = @ruby_alias | @ruby_begin_block | @ruby_end_block | @ruby_if_modifier | @ruby_rescue_modifier | @ruby_undef | @ruby_underscore_expression | @ruby_unless_modifier | @ruby_until_modifier | @ruby_while_modifier + +@ruby_underscore_variable = @ruby_token_constant | @ruby_token_identifier | @ruby_token_self | @ruby_token_super | @ruby_underscore_nonlocal_variable + +ruby_alias_def( + unique int id: @ruby_alias, + int alias: @ruby_underscore_method_name ref, + int name: @ruby_underscore_method_name ref +); + +#keyset[ruby_alternative_pattern, index] +ruby_alternative_pattern_alternatives( + int ruby_alternative_pattern: @ruby_alternative_pattern ref, + int index: int ref, + unique int alternatives: @ruby_underscore_pattern_expr_basic ref +); + +ruby_alternative_pattern_def( + unique int id: @ruby_alternative_pattern +); + +@ruby_argument_list_child_type = @ruby_block_argument | @ruby_hash_splat_argument | @ruby_pair | @ruby_splat_argument | @ruby_token_forward_argument | @ruby_underscore_expression + +#keyset[ruby_argument_list, index] +ruby_argument_list_child( + int ruby_argument_list: @ruby_argument_list ref, + int index: int ref, + unique int child: @ruby_argument_list_child_type ref +); + +ruby_argument_list_def( + unique int id: @ruby_argument_list +); + +@ruby_array_child_type = @ruby_block_argument | @ruby_hash_splat_argument | @ruby_pair | @ruby_splat_argument | @ruby_token_forward_argument | @ruby_underscore_expression + +#keyset[ruby_array, index] +ruby_array_child( + int ruby_array: @ruby_array ref, + int index: int ref, + unique int child: @ruby_array_child_type ref +); + +ruby_array_def( + unique int id: @ruby_array +); + +ruby_array_pattern_class( + unique int ruby_array_pattern: @ruby_array_pattern ref, + unique int class: @ruby_underscore_pattern_constant ref +); + +@ruby_array_pattern_child_type = @ruby_splat_parameter | @ruby_underscore_pattern_expr + +#keyset[ruby_array_pattern, index] +ruby_array_pattern_child( + int ruby_array_pattern: @ruby_array_pattern ref, + int index: int ref, + unique int child: @ruby_array_pattern_child_type ref +); + +ruby_array_pattern_def( + unique int id: @ruby_array_pattern +); + +ruby_as_pattern_def( + unique int id: @ruby_as_pattern, + int name: @ruby_token_identifier ref, + int value: @ruby_underscore_pattern_expr ref +); + +@ruby_assignment_left_type = @ruby_left_assignment_list | @ruby_underscore_lhs + +@ruby_assignment_right_type = @ruby_rescue_modifier | @ruby_right_assignment_list | @ruby_splat_argument | @ruby_underscore_expression + +ruby_assignment_def( + unique int id: @ruby_assignment, + int left: @ruby_assignment_left_type ref, + int right: @ruby_assignment_right_type ref +); + +@ruby_bare_string_child_type = @ruby_interpolation | @ruby_token_escape_sequence | @ruby_token_string_content + +#keyset[ruby_bare_string, index] +ruby_bare_string_child( + int ruby_bare_string: @ruby_bare_string ref, + int index: int ref, + unique int child: @ruby_bare_string_child_type ref +); + +ruby_bare_string_def( + unique int id: @ruby_bare_string +); + +@ruby_bare_symbol_child_type = @ruby_interpolation | @ruby_token_escape_sequence | @ruby_token_string_content + +#keyset[ruby_bare_symbol, index] +ruby_bare_symbol_child( + int ruby_bare_symbol: @ruby_bare_symbol ref, + int index: int ref, + unique int child: @ruby_bare_symbol_child_type ref +); + +ruby_bare_symbol_def( + unique int id: @ruby_bare_symbol +); + +@ruby_begin_child_type = @ruby_else | @ruby_ensure | @ruby_rescue | @ruby_token_empty_statement | @ruby_underscore_statement + +#keyset[ruby_begin, index] +ruby_begin_child( + int ruby_begin: @ruby_begin ref, + int index: int ref, + unique int child: @ruby_begin_child_type ref +); + +ruby_begin_def( + unique int id: @ruby_begin +); + +@ruby_begin_block_child_type = @ruby_token_empty_statement | @ruby_underscore_statement + +#keyset[ruby_begin_block, index] +ruby_begin_block_child( + int ruby_begin_block: @ruby_begin_block ref, + int index: int ref, + unique int child: @ruby_begin_block_child_type ref +); + +ruby_begin_block_def( + unique int id: @ruby_begin_block +); + +@ruby_binary_left_type = @ruby_underscore_expression | @ruby_underscore_simple_numeric + +case @ruby_binary.operator of + 0 = @ruby_binary_bangequal +| 1 = @ruby_binary_bangtilde +| 2 = @ruby_binary_percent +| 3 = @ruby_binary_ampersand +| 4 = @ruby_binary_ampersandampersand +| 5 = @ruby_binary_star +| 6 = @ruby_binary_starstar +| 7 = @ruby_binary_plus +| 8 = @ruby_binary_minus +| 9 = @ruby_binary_slash +| 10 = @ruby_binary_langle +| 11 = @ruby_binary_langlelangle +| 12 = @ruby_binary_langleequal +| 13 = @ruby_binary_langleequalrangle +| 14 = @ruby_binary_equalequal +| 15 = @ruby_binary_equalequalequal +| 16 = @ruby_binary_equaltilde +| 17 = @ruby_binary_rangle +| 18 = @ruby_binary_rangleequal +| 19 = @ruby_binary_ranglerangle +| 20 = @ruby_binary_caret +| 21 = @ruby_binary_and +| 22 = @ruby_binary_or +| 23 = @ruby_binary_pipe +| 24 = @ruby_binary_pipepipe +; + + +ruby_binary_def( + unique int id: @ruby_binary, + int left: @ruby_binary_left_type ref, + int operator: int ref, + int right: @ruby_underscore_expression ref +); + +ruby_block_body( + unique int ruby_block: @ruby_block ref, + unique int body: @ruby_block_body ref +); + +ruby_block_parameters( + unique int ruby_block: @ruby_block ref, + unique int parameters: @ruby_block_parameters ref +); + +ruby_block_def( + unique int id: @ruby_block +); + +ruby_block_argument_child( + unique int ruby_block_argument: @ruby_block_argument ref, + unique int child: @ruby_underscore_arg ref +); + +ruby_block_argument_def( + unique int id: @ruby_block_argument +); + +@ruby_block_body_child_type = @ruby_token_empty_statement | @ruby_underscore_statement + +#keyset[ruby_block_body, index] +ruby_block_body_child( + int ruby_block_body: @ruby_block_body ref, + int index: int ref, + unique int child: @ruby_block_body_child_type ref +); + +ruby_block_body_def( + unique int id: @ruby_block_body +); + +ruby_block_parameter_name( + unique int ruby_block_parameter: @ruby_block_parameter ref, + unique int name: @ruby_token_identifier ref +); + +ruby_block_parameter_def( + unique int id: @ruby_block_parameter +); + +#keyset[ruby_block_parameters, index] +ruby_block_parameters_locals( + int ruby_block_parameters: @ruby_block_parameters ref, + int index: int ref, + unique int locals: @ruby_token_identifier ref +); + +@ruby_block_parameters_child_type = @ruby_block_parameter | @ruby_destructured_parameter | @ruby_hash_splat_parameter | @ruby_keyword_parameter | @ruby_optional_parameter | @ruby_splat_parameter | @ruby_token_forward_parameter | @ruby_token_hash_splat_nil | @ruby_token_identifier + +#keyset[ruby_block_parameters, index] +ruby_block_parameters_child( + int ruby_block_parameters: @ruby_block_parameters ref, + int index: int ref, + unique int child: @ruby_block_parameters_child_type ref +); + +ruby_block_parameters_def( + unique int id: @ruby_block_parameters +); + +@ruby_body_statement_child_type = @ruby_else | @ruby_ensure | @ruby_rescue | @ruby_token_empty_statement | @ruby_underscore_statement + +#keyset[ruby_body_statement, index] +ruby_body_statement_child( + int ruby_body_statement: @ruby_body_statement ref, + int index: int ref, + unique int child: @ruby_body_statement_child_type ref +); + +ruby_body_statement_def( + unique int id: @ruby_body_statement +); + +ruby_break_child( + unique int ruby_break: @ruby_break ref, + unique int child: @ruby_argument_list ref +); + +ruby_break_def( + unique int id: @ruby_break +); + +ruby_call_arguments( + unique int ruby_call: @ruby_call ref, + unique int arguments: @ruby_argument_list ref +); + +@ruby_call_block_type = @ruby_block | @ruby_do_block + +ruby_call_block( + unique int ruby_call: @ruby_call ref, + unique int block: @ruby_call_block_type ref +); + +@ruby_call_method_type = @ruby_token_operator | @ruby_underscore_variable + +ruby_call_method( + unique int ruby_call: @ruby_call ref, + unique int method: @ruby_call_method_type ref +); + +ruby_call_operator( + unique int ruby_call: @ruby_call ref, + unique int operator: @ruby_underscore_call_operator ref +); + +ruby_call_receiver( + unique int ruby_call: @ruby_call ref, + unique int receiver: @ruby_underscore_primary ref +); + +ruby_call_def( + unique int id: @ruby_call +); + +ruby_case_value( + unique int ruby_case__: @ruby_case__ ref, + unique int value: @ruby_underscore_statement ref +); + +@ruby_case_child_type = @ruby_else | @ruby_when + +#keyset[ruby_case__, index] +ruby_case_child( + int ruby_case__: @ruby_case__ ref, + int index: int ref, + unique int child: @ruby_case_child_type ref +); + +ruby_case_def( + unique int id: @ruby_case__ +); + +#keyset[ruby_case_match, index] +ruby_case_match_clauses( + int ruby_case_match: @ruby_case_match ref, + int index: int ref, + unique int clauses: @ruby_in_clause ref +); + +ruby_case_match_else( + unique int ruby_case_match: @ruby_case_match ref, + unique int else: @ruby_else ref +); + +ruby_case_match_def( + unique int id: @ruby_case_match, + int value: @ruby_underscore_statement ref +); + +#keyset[ruby_chained_string, index] +ruby_chained_string_child( + int ruby_chained_string: @ruby_chained_string ref, + int index: int ref, + unique int child: @ruby_string__ ref +); + +ruby_chained_string_def( + unique int id: @ruby_chained_string +); + +ruby_class_body( + unique int ruby_class: @ruby_class ref, + unique int body: @ruby_body_statement ref +); + +@ruby_class_name_type = @ruby_scope_resolution | @ruby_token_constant + +ruby_class_superclass( + unique int ruby_class: @ruby_class ref, + unique int superclass: @ruby_superclass ref +); + +ruby_class_def( + unique int id: @ruby_class, + int name: @ruby_class_name_type ref +); + +@ruby_complex_child_type = @ruby_rational | @ruby_token_float | @ruby_token_integer + +ruby_complex_def( + unique int id: @ruby_complex, + int child: @ruby_complex_child_type ref +); + +ruby_conditional_def( + unique int id: @ruby_conditional, + int alternative: @ruby_underscore_arg ref, + int condition: @ruby_underscore_arg ref, + int consequence: @ruby_underscore_arg ref +); + +@ruby_delimited_symbol_child_type = @ruby_interpolation | @ruby_token_escape_sequence | @ruby_token_string_content + +#keyset[ruby_delimited_symbol, index] +ruby_delimited_symbol_child( + int ruby_delimited_symbol: @ruby_delimited_symbol ref, + int index: int ref, + unique int child: @ruby_delimited_symbol_child_type ref +); + +ruby_delimited_symbol_def( + unique int id: @ruby_delimited_symbol +); + +@ruby_destructured_left_assignment_child_type = @ruby_destructured_left_assignment | @ruby_rest_assignment | @ruby_underscore_lhs + +#keyset[ruby_destructured_left_assignment, index] +ruby_destructured_left_assignment_child( + int ruby_destructured_left_assignment: @ruby_destructured_left_assignment ref, + int index: int ref, + unique int child: @ruby_destructured_left_assignment_child_type ref +); + +ruby_destructured_left_assignment_def( + unique int id: @ruby_destructured_left_assignment +); + +@ruby_destructured_parameter_child_type = @ruby_block_parameter | @ruby_destructured_parameter | @ruby_hash_splat_parameter | @ruby_keyword_parameter | @ruby_optional_parameter | @ruby_splat_parameter | @ruby_token_forward_parameter | @ruby_token_hash_splat_nil | @ruby_token_identifier + +#keyset[ruby_destructured_parameter, index] +ruby_destructured_parameter_child( + int ruby_destructured_parameter: @ruby_destructured_parameter ref, + int index: int ref, + unique int child: @ruby_destructured_parameter_child_type ref +); + +ruby_destructured_parameter_def( + unique int id: @ruby_destructured_parameter +); + +@ruby_do_child_type = @ruby_token_empty_statement | @ruby_underscore_statement + +#keyset[ruby_do, index] +ruby_do_child( + int ruby_do: @ruby_do ref, + int index: int ref, + unique int child: @ruby_do_child_type ref +); + +ruby_do_def( + unique int id: @ruby_do +); + +ruby_do_block_body( + unique int ruby_do_block: @ruby_do_block ref, + unique int body: @ruby_body_statement ref +); + +ruby_do_block_parameters( + unique int ruby_do_block: @ruby_do_block ref, + unique int parameters: @ruby_block_parameters ref +); + +ruby_do_block_def( + unique int id: @ruby_do_block +); + +@ruby_element_reference_child_type = @ruby_block_argument | @ruby_hash_splat_argument | @ruby_pair | @ruby_splat_argument | @ruby_token_forward_argument | @ruby_underscore_expression + +#keyset[ruby_element_reference, index] +ruby_element_reference_child( + int ruby_element_reference: @ruby_element_reference ref, + int index: int ref, + unique int child: @ruby_element_reference_child_type ref +); + +ruby_element_reference_def( + unique int id: @ruby_element_reference, + int object: @ruby_underscore_primary ref +); + +@ruby_else_child_type = @ruby_token_empty_statement | @ruby_underscore_statement + +#keyset[ruby_else, index] +ruby_else_child( + int ruby_else: @ruby_else ref, + int index: int ref, + unique int child: @ruby_else_child_type ref +); + +ruby_else_def( + unique int id: @ruby_else +); + +@ruby_elsif_alternative_type = @ruby_else | @ruby_elsif + +ruby_elsif_alternative( + unique int ruby_elsif: @ruby_elsif ref, + unique int alternative: @ruby_elsif_alternative_type ref +); + +ruby_elsif_consequence( + unique int ruby_elsif: @ruby_elsif ref, + unique int consequence: @ruby_then ref +); + +ruby_elsif_def( + unique int id: @ruby_elsif, + int condition: @ruby_underscore_statement ref +); + +@ruby_end_block_child_type = @ruby_token_empty_statement | @ruby_underscore_statement + +#keyset[ruby_end_block, index] +ruby_end_block_child( + int ruby_end_block: @ruby_end_block ref, + int index: int ref, + unique int child: @ruby_end_block_child_type ref +); + +ruby_end_block_def( + unique int id: @ruby_end_block +); + +@ruby_ensure_child_type = @ruby_token_empty_statement | @ruby_underscore_statement + +#keyset[ruby_ensure, index] +ruby_ensure_child( + int ruby_ensure: @ruby_ensure ref, + int index: int ref, + unique int child: @ruby_ensure_child_type ref +); + +ruby_ensure_def( + unique int id: @ruby_ensure +); + +ruby_exception_variable_def( + unique int id: @ruby_exception_variable, + int child: @ruby_underscore_lhs ref +); + +@ruby_exceptions_child_type = @ruby_splat_argument | @ruby_underscore_arg + +#keyset[ruby_exceptions, index] +ruby_exceptions_child( + int ruby_exceptions: @ruby_exceptions ref, + int index: int ref, + unique int child: @ruby_exceptions_child_type ref +); + +ruby_exceptions_def( + unique int id: @ruby_exceptions +); + +ruby_expression_reference_pattern_def( + unique int id: @ruby_expression_reference_pattern, + int value: @ruby_underscore_expression ref +); + +ruby_find_pattern_class( + unique int ruby_find_pattern: @ruby_find_pattern ref, + unique int class: @ruby_underscore_pattern_constant ref +); + +@ruby_find_pattern_child_type = @ruby_splat_parameter | @ruby_underscore_pattern_expr + +#keyset[ruby_find_pattern, index] +ruby_find_pattern_child( + int ruby_find_pattern: @ruby_find_pattern ref, + int index: int ref, + unique int child: @ruby_find_pattern_child_type ref +); + +ruby_find_pattern_def( + unique int id: @ruby_find_pattern +); + +@ruby_for_pattern_type = @ruby_left_assignment_list | @ruby_underscore_lhs + +ruby_for_def( + unique int id: @ruby_for, + int body: @ruby_do ref, + int pattern: @ruby_for_pattern_type ref, + int value: @ruby_in ref +); + +@ruby_hash_child_type = @ruby_hash_splat_argument | @ruby_pair + +#keyset[ruby_hash, index] +ruby_hash_child( + int ruby_hash: @ruby_hash ref, + int index: int ref, + unique int child: @ruby_hash_child_type ref +); + +ruby_hash_def( + unique int id: @ruby_hash +); + +ruby_hash_pattern_class( + unique int ruby_hash_pattern: @ruby_hash_pattern ref, + unique int class: @ruby_underscore_pattern_constant ref +); + +@ruby_hash_pattern_child_type = @ruby_hash_splat_parameter | @ruby_keyword_pattern | @ruby_token_hash_splat_nil + +#keyset[ruby_hash_pattern, index] +ruby_hash_pattern_child( + int ruby_hash_pattern: @ruby_hash_pattern ref, + int index: int ref, + unique int child: @ruby_hash_pattern_child_type ref +); + +ruby_hash_pattern_def( + unique int id: @ruby_hash_pattern +); + +ruby_hash_splat_argument_child( + unique int ruby_hash_splat_argument: @ruby_hash_splat_argument ref, + unique int child: @ruby_underscore_arg ref +); + +ruby_hash_splat_argument_def( + unique int id: @ruby_hash_splat_argument +); + +ruby_hash_splat_parameter_name( + unique int ruby_hash_splat_parameter: @ruby_hash_splat_parameter ref, + unique int name: @ruby_token_identifier ref +); + +ruby_hash_splat_parameter_def( + unique int id: @ruby_hash_splat_parameter +); + +@ruby_heredoc_body_child_type = @ruby_interpolation | @ruby_token_escape_sequence | @ruby_token_heredoc_content | @ruby_token_heredoc_end + +#keyset[ruby_heredoc_body, index] +ruby_heredoc_body_child( + int ruby_heredoc_body: @ruby_heredoc_body ref, + int index: int ref, + unique int child: @ruby_heredoc_body_child_type ref +); + +ruby_heredoc_body_def( + unique int id: @ruby_heredoc_body +); + +@ruby_if_alternative_type = @ruby_else | @ruby_elsif + +ruby_if_alternative( + unique int ruby_if: @ruby_if ref, + unique int alternative: @ruby_if_alternative_type ref +); + +ruby_if_consequence( + unique int ruby_if: @ruby_if ref, + unique int consequence: @ruby_then ref +); + +ruby_if_def( + unique int id: @ruby_if, + int condition: @ruby_underscore_statement ref +); + +ruby_if_guard_def( + unique int id: @ruby_if_guard, + int condition: @ruby_underscore_expression ref +); + +ruby_if_modifier_def( + unique int id: @ruby_if_modifier, + int body: @ruby_underscore_statement ref, + int condition: @ruby_underscore_expression ref +); + +ruby_in_def( + unique int id: @ruby_in, + int child: @ruby_underscore_arg ref +); + +ruby_in_clause_body( + unique int ruby_in_clause: @ruby_in_clause ref, + unique int body: @ruby_then ref +); + +@ruby_in_clause_guard_type = @ruby_if_guard | @ruby_unless_guard + +ruby_in_clause_guard( + unique int ruby_in_clause: @ruby_in_clause ref, + unique int guard: @ruby_in_clause_guard_type ref +); + +ruby_in_clause_def( + unique int id: @ruby_in_clause, + int pattern: @ruby_underscore_pattern_top_expr_body ref +); + +@ruby_interpolation_child_type = @ruby_token_empty_statement | @ruby_underscore_nonlocal_variable | @ruby_underscore_statement + +#keyset[ruby_interpolation, index] +ruby_interpolation_child( + int ruby_interpolation: @ruby_interpolation ref, + int index: int ref, + unique int child: @ruby_interpolation_child_type ref +); + +ruby_interpolation_def( + unique int id: @ruby_interpolation +); + +ruby_keyword_parameter_value( + unique int ruby_keyword_parameter: @ruby_keyword_parameter ref, + unique int value: @ruby_underscore_arg ref +); + +ruby_keyword_parameter_def( + unique int id: @ruby_keyword_parameter, + int name: @ruby_token_identifier ref +); + +@ruby_keyword_pattern_key_type = @ruby_string__ | @ruby_token_hash_key_symbol + +ruby_keyword_pattern_value( + unique int ruby_keyword_pattern: @ruby_keyword_pattern ref, + unique int value: @ruby_underscore_pattern_expr ref +); + +ruby_keyword_pattern_def( + unique int id: @ruby_keyword_pattern, + int key__: @ruby_keyword_pattern_key_type ref +); + +@ruby_lambda_body_type = @ruby_block | @ruby_do_block + +ruby_lambda_parameters( + unique int ruby_lambda: @ruby_lambda ref, + unique int parameters: @ruby_lambda_parameters ref +); + +ruby_lambda_def( + unique int id: @ruby_lambda, + int body: @ruby_lambda_body_type ref +); + +@ruby_lambda_parameters_child_type = @ruby_block_parameter | @ruby_destructured_parameter | @ruby_hash_splat_parameter | @ruby_keyword_parameter | @ruby_optional_parameter | @ruby_splat_parameter | @ruby_token_forward_parameter | @ruby_token_hash_splat_nil | @ruby_token_identifier + +#keyset[ruby_lambda_parameters, index] +ruby_lambda_parameters_child( + int ruby_lambda_parameters: @ruby_lambda_parameters ref, + int index: int ref, + unique int child: @ruby_lambda_parameters_child_type ref +); + +ruby_lambda_parameters_def( + unique int id: @ruby_lambda_parameters +); + +@ruby_left_assignment_list_child_type = @ruby_destructured_left_assignment | @ruby_rest_assignment | @ruby_underscore_lhs + +#keyset[ruby_left_assignment_list, index] +ruby_left_assignment_list_child( + int ruby_left_assignment_list: @ruby_left_assignment_list ref, + int index: int ref, + unique int child: @ruby_left_assignment_list_child_type ref +); + +ruby_left_assignment_list_def( + unique int id: @ruby_left_assignment_list +); + +ruby_match_pattern_def( + unique int id: @ruby_match_pattern, + int pattern: @ruby_underscore_pattern_top_expr_body ref, + int value: @ruby_underscore_arg ref +); + +@ruby_method_body_type = @ruby_body_statement | @ruby_rescue_modifier | @ruby_underscore_arg + +ruby_method_body( + unique int ruby_method: @ruby_method ref, + unique int body: @ruby_method_body_type ref +); + +ruby_method_parameters( + unique int ruby_method: @ruby_method ref, + unique int parameters: @ruby_method_parameters ref +); + +ruby_method_def( + unique int id: @ruby_method, + int name: @ruby_underscore_method_name ref +); + +@ruby_method_parameters_child_type = @ruby_block_parameter | @ruby_destructured_parameter | @ruby_hash_splat_parameter | @ruby_keyword_parameter | @ruby_optional_parameter | @ruby_splat_parameter | @ruby_token_forward_parameter | @ruby_token_hash_splat_nil | @ruby_token_identifier + +#keyset[ruby_method_parameters, index] +ruby_method_parameters_child( + int ruby_method_parameters: @ruby_method_parameters ref, + int index: int ref, + unique int child: @ruby_method_parameters_child_type ref +); + +ruby_method_parameters_def( + unique int id: @ruby_method_parameters +); + +ruby_module_body( + unique int ruby_module: @ruby_module ref, + unique int body: @ruby_body_statement ref +); + +@ruby_module_name_type = @ruby_scope_resolution | @ruby_token_constant + +ruby_module_def( + unique int id: @ruby_module, + int name: @ruby_module_name_type ref +); + +ruby_next_child( + unique int ruby_next: @ruby_next ref, + unique int child: @ruby_argument_list ref +); + +ruby_next_def( + unique int id: @ruby_next +); + +case @ruby_operator_assignment.operator of + 0 = @ruby_operator_assignment_percentequal +| 1 = @ruby_operator_assignment_ampersandampersandequal +| 2 = @ruby_operator_assignment_ampersandequal +| 3 = @ruby_operator_assignment_starstarequal +| 4 = @ruby_operator_assignment_starequal +| 5 = @ruby_operator_assignment_plusequal +| 6 = @ruby_operator_assignment_minusequal +| 7 = @ruby_operator_assignment_slashequal +| 8 = @ruby_operator_assignment_langlelangleequal +| 9 = @ruby_operator_assignment_ranglerangleequal +| 10 = @ruby_operator_assignment_caretequal +| 11 = @ruby_operator_assignment_pipeequal +| 12 = @ruby_operator_assignment_pipepipeequal +; + + +@ruby_operator_assignment_right_type = @ruby_rescue_modifier | @ruby_underscore_expression + +ruby_operator_assignment_def( + unique int id: @ruby_operator_assignment, + int left: @ruby_underscore_lhs ref, + int operator: int ref, + int right: @ruby_operator_assignment_right_type ref +); + +ruby_optional_parameter_def( + unique int id: @ruby_optional_parameter, + int name: @ruby_token_identifier ref, + int value: @ruby_underscore_arg ref +); + +@ruby_pair_key_type = @ruby_string__ | @ruby_token_hash_key_symbol | @ruby_underscore_arg + +ruby_pair_value( + unique int ruby_pair: @ruby_pair ref, + unique int value: @ruby_underscore_arg ref +); + +ruby_pair_def( + unique int id: @ruby_pair, + int key__: @ruby_pair_key_type ref +); + +ruby_parenthesized_pattern_def( + unique int id: @ruby_parenthesized_pattern, + int child: @ruby_underscore_pattern_expr ref +); + +@ruby_parenthesized_statements_child_type = @ruby_token_empty_statement | @ruby_underscore_statement + +#keyset[ruby_parenthesized_statements, index] +ruby_parenthesized_statements_child( + int ruby_parenthesized_statements: @ruby_parenthesized_statements ref, + int index: int ref, + unique int child: @ruby_parenthesized_statements_child_type ref +); + +ruby_parenthesized_statements_def( + unique int id: @ruby_parenthesized_statements +); + +@ruby_pattern_child_type = @ruby_splat_argument | @ruby_underscore_arg + +ruby_pattern_def( + unique int id: @ruby_pattern, + int child: @ruby_pattern_child_type ref +); + +@ruby_program_child_type = @ruby_token_empty_statement | @ruby_token_uninterpreted | @ruby_underscore_statement + +#keyset[ruby_program, index] +ruby_program_child( + int ruby_program: @ruby_program ref, + int index: int ref, + unique int child: @ruby_program_child_type ref +); + +ruby_program_def( + unique int id: @ruby_program +); + +@ruby_range_begin_type = @ruby_underscore_arg | @ruby_underscore_pattern_primitive + +ruby_range_begin( + unique int ruby_range: @ruby_range ref, + unique int begin: @ruby_range_begin_type ref +); + +@ruby_range_end_type = @ruby_underscore_arg | @ruby_underscore_pattern_primitive + +ruby_range_end( + unique int ruby_range: @ruby_range ref, + unique int end: @ruby_range_end_type ref +); + +case @ruby_range.operator of + 0 = @ruby_range_dotdot +| 1 = @ruby_range_dotdotdot +; + + +ruby_range_def( + unique int id: @ruby_range, + int operator: int ref +); + +@ruby_rational_child_type = @ruby_token_float | @ruby_token_integer + +ruby_rational_def( + unique int id: @ruby_rational, + int child: @ruby_rational_child_type ref +); + +ruby_redo_child( + unique int ruby_redo: @ruby_redo ref, + unique int child: @ruby_argument_list ref +); + +ruby_redo_def( + unique int id: @ruby_redo +); + +@ruby_regex_child_type = @ruby_interpolation | @ruby_token_escape_sequence | @ruby_token_string_content + +#keyset[ruby_regex, index] +ruby_regex_child( + int ruby_regex: @ruby_regex ref, + int index: int ref, + unique int child: @ruby_regex_child_type ref +); + +ruby_regex_def( + unique int id: @ruby_regex +); + +ruby_rescue_body( + unique int ruby_rescue: @ruby_rescue ref, + unique int body: @ruby_then ref +); + +ruby_rescue_exceptions( + unique int ruby_rescue: @ruby_rescue ref, + unique int exceptions: @ruby_exceptions ref +); + +ruby_rescue_variable( + unique int ruby_rescue: @ruby_rescue ref, + unique int variable: @ruby_exception_variable ref +); + +ruby_rescue_def( + unique int id: @ruby_rescue +); + +@ruby_rescue_modifier_body_type = @ruby_underscore_arg | @ruby_underscore_statement + +ruby_rescue_modifier_def( + unique int id: @ruby_rescue_modifier, + int body: @ruby_rescue_modifier_body_type ref, + int handler: @ruby_underscore_expression ref +); + +ruby_rest_assignment_child( + unique int ruby_rest_assignment: @ruby_rest_assignment ref, + unique int child: @ruby_underscore_lhs ref +); + +ruby_rest_assignment_def( + unique int id: @ruby_rest_assignment +); + +ruby_retry_child( + unique int ruby_retry: @ruby_retry ref, + unique int child: @ruby_argument_list ref +); + +ruby_retry_def( + unique int id: @ruby_retry +); + +ruby_return_child( + unique int ruby_return: @ruby_return ref, + unique int child: @ruby_argument_list ref +); + +ruby_return_def( + unique int id: @ruby_return +); + +@ruby_right_assignment_list_child_type = @ruby_splat_argument | @ruby_underscore_arg + +#keyset[ruby_right_assignment_list, index] +ruby_right_assignment_list_child( + int ruby_right_assignment_list: @ruby_right_assignment_list ref, + int index: int ref, + unique int child: @ruby_right_assignment_list_child_type ref +); + +ruby_right_assignment_list_def( + unique int id: @ruby_right_assignment_list +); + +@ruby_scope_resolution_scope_type = @ruby_underscore_pattern_constant | @ruby_underscore_primary + +ruby_scope_resolution_scope( + unique int ruby_scope_resolution: @ruby_scope_resolution ref, + unique int scope: @ruby_scope_resolution_scope_type ref +); + +ruby_scope_resolution_def( + unique int id: @ruby_scope_resolution, + int name: @ruby_token_constant ref +); + +ruby_setter_def( + unique int id: @ruby_setter, + int name: @ruby_token_identifier ref +); + +ruby_singleton_class_body( + unique int ruby_singleton_class: @ruby_singleton_class ref, + unique int body: @ruby_body_statement ref +); + +ruby_singleton_class_def( + unique int id: @ruby_singleton_class, + int value: @ruby_underscore_arg ref +); + +@ruby_singleton_method_body_type = @ruby_body_statement | @ruby_rescue_modifier | @ruby_underscore_arg + +ruby_singleton_method_body( + unique int ruby_singleton_method: @ruby_singleton_method ref, + unique int body: @ruby_singleton_method_body_type ref +); + +@ruby_singleton_method_object_type = @ruby_underscore_arg | @ruby_underscore_variable + +ruby_singleton_method_parameters( + unique int ruby_singleton_method: @ruby_singleton_method ref, + unique int parameters: @ruby_method_parameters ref +); + +ruby_singleton_method_def( + unique int id: @ruby_singleton_method, + int name: @ruby_underscore_method_name ref, + int object: @ruby_singleton_method_object_type ref +); + +ruby_splat_argument_child( + unique int ruby_splat_argument: @ruby_splat_argument ref, + unique int child: @ruby_underscore_arg ref +); + +ruby_splat_argument_def( + unique int id: @ruby_splat_argument +); + +ruby_splat_parameter_name( + unique int ruby_splat_parameter: @ruby_splat_parameter ref, + unique int name: @ruby_token_identifier ref +); + +ruby_splat_parameter_def( + unique int id: @ruby_splat_parameter +); + +@ruby_string_child_type = @ruby_interpolation | @ruby_token_escape_sequence | @ruby_token_string_content + +#keyset[ruby_string__, index] +ruby_string_child( + int ruby_string__: @ruby_string__ ref, + int index: int ref, + unique int child: @ruby_string_child_type ref +); + +ruby_string_def( + unique int id: @ruby_string__ +); + +#keyset[ruby_string_array, index] +ruby_string_array_child( + int ruby_string_array: @ruby_string_array ref, + int index: int ref, + unique int child: @ruby_bare_string ref +); + +ruby_string_array_def( + unique int id: @ruby_string_array +); + +@ruby_subshell_child_type = @ruby_interpolation | @ruby_token_escape_sequence | @ruby_token_string_content + +#keyset[ruby_subshell, index] +ruby_subshell_child( + int ruby_subshell: @ruby_subshell ref, + int index: int ref, + unique int child: @ruby_subshell_child_type ref +); + +ruby_subshell_def( + unique int id: @ruby_subshell +); + +ruby_superclass_def( + unique int id: @ruby_superclass, + int child: @ruby_underscore_expression ref +); + +#keyset[ruby_symbol_array, index] +ruby_symbol_array_child( + int ruby_symbol_array: @ruby_symbol_array ref, + int index: int ref, + unique int child: @ruby_bare_symbol ref +); + +ruby_symbol_array_def( + unique int id: @ruby_symbol_array +); + +ruby_test_pattern_def( + unique int id: @ruby_test_pattern, + int pattern: @ruby_underscore_pattern_top_expr_body ref, + int value: @ruby_underscore_arg ref +); + +@ruby_then_child_type = @ruby_token_empty_statement | @ruby_underscore_statement + +#keyset[ruby_then, index] +ruby_then_child( + int ruby_then: @ruby_then ref, + int index: int ref, + unique int child: @ruby_then_child_type ref +); + +ruby_then_def( + unique int id: @ruby_then +); + +@ruby_unary_operand_type = @ruby_parenthesized_statements | @ruby_underscore_expression | @ruby_underscore_simple_numeric + +case @ruby_unary.operator of + 0 = @ruby_unary_bang +| 1 = @ruby_unary_plus +| 2 = @ruby_unary_minus +| 3 = @ruby_unary_definedquestion +| 4 = @ruby_unary_not +| 5 = @ruby_unary_tilde +; + + +ruby_unary_def( + unique int id: @ruby_unary, + int operand: @ruby_unary_operand_type ref, + int operator: int ref +); + +#keyset[ruby_undef, index] +ruby_undef_child( + int ruby_undef: @ruby_undef ref, + int index: int ref, + unique int child: @ruby_underscore_method_name ref +); + +ruby_undef_def( + unique int id: @ruby_undef +); + +@ruby_unless_alternative_type = @ruby_else | @ruby_elsif + +ruby_unless_alternative( + unique int ruby_unless: @ruby_unless ref, + unique int alternative: @ruby_unless_alternative_type ref +); + +ruby_unless_consequence( + unique int ruby_unless: @ruby_unless ref, + unique int consequence: @ruby_then ref +); + +ruby_unless_def( + unique int id: @ruby_unless, + int condition: @ruby_underscore_statement ref +); + +ruby_unless_guard_def( + unique int id: @ruby_unless_guard, + int condition: @ruby_underscore_expression ref +); + +ruby_unless_modifier_def( + unique int id: @ruby_unless_modifier, + int body: @ruby_underscore_statement ref, + int condition: @ruby_underscore_expression ref +); + +ruby_until_def( + unique int id: @ruby_until, + int body: @ruby_do ref, + int condition: @ruby_underscore_statement ref +); + +ruby_until_modifier_def( + unique int id: @ruby_until_modifier, + int body: @ruby_underscore_statement ref, + int condition: @ruby_underscore_expression ref +); + +@ruby_variable_reference_pattern_name_type = @ruby_token_identifier | @ruby_underscore_nonlocal_variable + +ruby_variable_reference_pattern_def( + unique int id: @ruby_variable_reference_pattern, + int name: @ruby_variable_reference_pattern_name_type ref +); + +ruby_when_body( + unique int ruby_when: @ruby_when ref, + unique int body: @ruby_then ref +); + +#keyset[ruby_when, index] +ruby_when_pattern( + int ruby_when: @ruby_when ref, + int index: int ref, + unique int pattern: @ruby_pattern ref +); + +ruby_when_def( + unique int id: @ruby_when +); + +ruby_while_def( + unique int id: @ruby_while, + int body: @ruby_do ref, + int condition: @ruby_underscore_statement ref +); + +ruby_while_modifier_def( + unique int id: @ruby_while_modifier, + int body: @ruby_underscore_statement ref, + int condition: @ruby_underscore_expression ref +); + +ruby_yield_child( + unique int ruby_yield: @ruby_yield ref, + unique int child: @ruby_argument_list ref +); + +ruby_yield_def( + unique int id: @ruby_yield +); + +ruby_tokeninfo( + unique int id: @ruby_token, + int kind: int ref, + string value: string ref +); + +case @ruby_token.kind of + 0 = @ruby_reserved_word +| 1 = @ruby_token_character +| 2 = @ruby_token_class_variable +| 3 = @ruby_token_comment +| 4 = @ruby_token_constant +| 5 = @ruby_token_empty_statement +| 6 = @ruby_token_encoding +| 7 = @ruby_token_escape_sequence +| 8 = @ruby_token_false +| 9 = @ruby_token_file +| 10 = @ruby_token_float +| 11 = @ruby_token_forward_argument +| 12 = @ruby_token_forward_parameter +| 13 = @ruby_token_global_variable +| 14 = @ruby_token_hash_key_symbol +| 15 = @ruby_token_hash_splat_nil +| 16 = @ruby_token_heredoc_beginning +| 17 = @ruby_token_heredoc_content +| 18 = @ruby_token_heredoc_end +| 19 = @ruby_token_identifier +| 20 = @ruby_token_instance_variable +| 21 = @ruby_token_integer +| 22 = @ruby_token_line +| 23 = @ruby_token_nil +| 24 = @ruby_token_operator +| 25 = @ruby_token_self +| 26 = @ruby_token_simple_symbol +| 27 = @ruby_token_string_content +| 28 = @ruby_token_super +| 29 = @ruby_token_true +| 30 = @ruby_token_uninterpreted +; + + +@ruby_ast_node = @ruby_alias | @ruby_alternative_pattern | @ruby_argument_list | @ruby_array | @ruby_array_pattern | @ruby_as_pattern | @ruby_assignment | @ruby_bare_string | @ruby_bare_symbol | @ruby_begin | @ruby_begin_block | @ruby_binary | @ruby_block | @ruby_block_argument | @ruby_block_body | @ruby_block_parameter | @ruby_block_parameters | @ruby_body_statement | @ruby_break | @ruby_call | @ruby_case__ | @ruby_case_match | @ruby_chained_string | @ruby_class | @ruby_complex | @ruby_conditional | @ruby_delimited_symbol | @ruby_destructured_left_assignment | @ruby_destructured_parameter | @ruby_do | @ruby_do_block | @ruby_element_reference | @ruby_else | @ruby_elsif | @ruby_end_block | @ruby_ensure | @ruby_exception_variable | @ruby_exceptions | @ruby_expression_reference_pattern | @ruby_find_pattern | @ruby_for | @ruby_hash | @ruby_hash_pattern | @ruby_hash_splat_argument | @ruby_hash_splat_parameter | @ruby_heredoc_body | @ruby_if | @ruby_if_guard | @ruby_if_modifier | @ruby_in | @ruby_in_clause | @ruby_interpolation | @ruby_keyword_parameter | @ruby_keyword_pattern | @ruby_lambda | @ruby_lambda_parameters | @ruby_left_assignment_list | @ruby_match_pattern | @ruby_method | @ruby_method_parameters | @ruby_module | @ruby_next | @ruby_operator_assignment | @ruby_optional_parameter | @ruby_pair | @ruby_parenthesized_pattern | @ruby_parenthesized_statements | @ruby_pattern | @ruby_program | @ruby_range | @ruby_rational | @ruby_redo | @ruby_regex | @ruby_rescue | @ruby_rescue_modifier | @ruby_rest_assignment | @ruby_retry | @ruby_return | @ruby_right_assignment_list | @ruby_scope_resolution | @ruby_setter | @ruby_singleton_class | @ruby_singleton_method | @ruby_splat_argument | @ruby_splat_parameter | @ruby_string__ | @ruby_string_array | @ruby_subshell | @ruby_superclass | @ruby_symbol_array | @ruby_test_pattern | @ruby_then | @ruby_token | @ruby_unary | @ruby_undef | @ruby_unless | @ruby_unless_guard | @ruby_unless_modifier | @ruby_until | @ruby_until_modifier | @ruby_variable_reference_pattern | @ruby_when | @ruby_while | @ruby_while_modifier | @ruby_yield + +@ruby_ast_node_parent = @file | @ruby_ast_node + +#keyset[parent, parent_index] +ruby_ast_node_info( + unique int node: @ruby_ast_node ref, + int parent: @ruby_ast_node_parent ref, + int parent_index: int ref, + int loc: @location_default ref +); + +/*- Erb dbscheme -*/ +erb_comment_directive_child( + unique int erb_comment_directive: @erb_comment_directive ref, + unique int child: @erb_token_comment ref +); + +erb_comment_directive_def( + unique int id: @erb_comment_directive +); + +erb_directive_child( + unique int erb_directive: @erb_directive ref, + unique int child: @erb_token_code ref +); + +erb_directive_def( + unique int id: @erb_directive +); + +erb_graphql_directive_child( + unique int erb_graphql_directive: @erb_graphql_directive ref, + unique int child: @erb_token_code ref +); + +erb_graphql_directive_def( + unique int id: @erb_graphql_directive +); + +erb_output_directive_child( + unique int erb_output_directive: @erb_output_directive ref, + unique int child: @erb_token_code ref +); + +erb_output_directive_def( + unique int id: @erb_output_directive +); + +@erb_template_child_type = @erb_comment_directive | @erb_directive | @erb_graphql_directive | @erb_output_directive | @erb_token_content + +#keyset[erb_template, index] +erb_template_child( + int erb_template: @erb_template ref, + int index: int ref, + unique int child: @erb_template_child_type ref +); + +erb_template_def( + unique int id: @erb_template +); + +erb_tokeninfo( + unique int id: @erb_token, + int kind: int ref, + string value: string ref +); + +case @erb_token.kind of + 0 = @erb_reserved_word +| 1 = @erb_token_code +| 2 = @erb_token_comment +| 3 = @erb_token_content +; + + +@erb_ast_node = @erb_comment_directive | @erb_directive | @erb_graphql_directive | @erb_output_directive | @erb_template | @erb_token + +@erb_ast_node_parent = @erb_ast_node | @file + +#keyset[parent, parent_index] +erb_ast_node_info( + unique int node: @erb_ast_node ref, + int parent: @erb_ast_node_parent ref, + int parent_index: int ref, + int loc: @location_default ref +); + diff --git a/ruby/ql/lib/upgrades/f9f0f4023e433184fda76f595247bf448b782135/ruby.dbscheme b/ruby/ql/lib/upgrades/f9f0f4023e433184fda76f595247bf448b782135/ruby.dbscheme new file mode 100644 index 000000000000..440de75c71e9 --- /dev/null +++ b/ruby/ql/lib/upgrades/f9f0f4023e433184fda76f595247bf448b782135/ruby.dbscheme @@ -0,0 +1,1513 @@ +// CodeQL database schema for Ruby +// Automatically generated from the tree-sitter grammar; do not edit + +/*- Files and folders -*/ + +/** + * The location of an element. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_default( + unique int id: @location_default, + int file: @file ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @file | @folder + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +/*- Source location prefix -*/ + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/*- Diagnostic messages -*/ + +diagnostics( + unique int id: @diagnostic, + int severity: int ref, + string error_tag: string ref, + string error_message: string ref, + string full_error_message: string ref, + int location: @location_default ref +); + +/*- Diagnostic messages: severity -*/ + +case @diagnostic.severity of + 10 = @diagnostic_debug +| 20 = @diagnostic_info +| 30 = @diagnostic_warning +| 40 = @diagnostic_error +; + +/*- YAML -*/ + +#keyset[parent, idx] +yaml (unique int id: @yaml_node, + int kind: int ref, + int parent: @yaml_node_parent ref, + int idx: int ref, + string tag: string ref, + string tostring: string ref); + +case @yaml_node.kind of + 0 = @yaml_scalar_node +| 1 = @yaml_mapping_node +| 2 = @yaml_sequence_node +| 3 = @yaml_alias_node +; + +@yaml_collection_node = @yaml_mapping_node | @yaml_sequence_node; + +@yaml_node_parent = @yaml_collection_node | @file; + +yaml_anchors (unique int node: @yaml_node ref, + string anchor: string ref); + +yaml_aliases (unique int alias: @yaml_alias_node ref, + string target: string ref); + +yaml_scalars (unique int scalar: @yaml_scalar_node ref, + int style: int ref, + string value: string ref); + +yaml_errors (unique int id: @yaml_error, + string message: string ref); + +yaml_locations(unique int locatable: @yaml_locatable ref, + int location: @location_default ref); + +@yaml_locatable = @yaml_node | @yaml_error; + +/*- Ruby dbscheme -*/ +@ruby_underscore_arg = @ruby_assignment | @ruby_binary | @ruby_conditional | @ruby_operator_assignment | @ruby_range | @ruby_unary | @ruby_underscore_primary + +@ruby_underscore_call_operator = @ruby_reserved_word + +@ruby_underscore_expression = @ruby_assignment | @ruby_binary | @ruby_break | @ruby_call | @ruby_match_pattern | @ruby_next | @ruby_operator_assignment | @ruby_return | @ruby_test_pattern | @ruby_unary | @ruby_underscore_arg | @ruby_yield + +@ruby_underscore_lhs = @ruby_call | @ruby_element_reference | @ruby_scope_resolution | @ruby_token_false | @ruby_token_nil | @ruby_token_true | @ruby_underscore_variable + +@ruby_underscore_method_name = @ruby_delimited_symbol | @ruby_setter | @ruby_token_constant | @ruby_token_identifier | @ruby_token_operator | @ruby_token_simple_symbol | @ruby_underscore_nonlocal_variable + +@ruby_underscore_nonlocal_variable = @ruby_token_class_variable | @ruby_token_global_variable | @ruby_token_instance_variable + +@ruby_underscore_pattern_constant = @ruby_scope_resolution | @ruby_token_constant + +@ruby_underscore_pattern_expr = @ruby_alternative_pattern | @ruby_as_pattern | @ruby_underscore_pattern_expr_basic + +@ruby_underscore_pattern_expr_basic = @ruby_array_pattern | @ruby_expression_reference_pattern | @ruby_find_pattern | @ruby_hash_pattern | @ruby_parenthesized_pattern | @ruby_range | @ruby_token_identifier | @ruby_underscore_pattern_constant | @ruby_underscore_pattern_primitive | @ruby_variable_reference_pattern + +@ruby_underscore_pattern_primitive = @ruby_delimited_symbol | @ruby_lambda | @ruby_regex | @ruby_string__ | @ruby_string_array | @ruby_subshell | @ruby_symbol_array | @ruby_token_encoding | @ruby_token_false | @ruby_token_file | @ruby_token_heredoc_beginning | @ruby_token_line | @ruby_token_nil | @ruby_token_self | @ruby_token_simple_symbol | @ruby_token_true | @ruby_unary | @ruby_underscore_simple_numeric + +@ruby_underscore_pattern_top_expr_body = @ruby_array_pattern | @ruby_find_pattern | @ruby_hash_pattern | @ruby_underscore_pattern_expr + +@ruby_underscore_primary = @ruby_array | @ruby_begin | @ruby_break | @ruby_call | @ruby_case__ | @ruby_case_match | @ruby_chained_string | @ruby_class | @ruby_delimited_symbol | @ruby_for | @ruby_hash | @ruby_if | @ruby_lambda | @ruby_method | @ruby_module | @ruby_next | @ruby_parenthesized_statements | @ruby_redo | @ruby_regex | @ruby_retry | @ruby_return | @ruby_singleton_class | @ruby_singleton_method | @ruby_string__ | @ruby_string_array | @ruby_subshell | @ruby_symbol_array | @ruby_token_character | @ruby_token_heredoc_beginning | @ruby_token_simple_symbol | @ruby_unary | @ruby_underscore_lhs | @ruby_underscore_simple_numeric | @ruby_unless | @ruby_until | @ruby_while | @ruby_yield + +@ruby_underscore_simple_numeric = @ruby_complex | @ruby_rational | @ruby_token_float | @ruby_token_integer + +@ruby_underscore_statement = @ruby_alias | @ruby_begin_block | @ruby_end_block | @ruby_if_modifier | @ruby_rescue_modifier | @ruby_undef | @ruby_underscore_expression | @ruby_unless_modifier | @ruby_until_modifier | @ruby_while_modifier + +@ruby_underscore_variable = @ruby_token_constant | @ruby_token_identifier | @ruby_token_self | @ruby_token_super | @ruby_underscore_nonlocal_variable + +ruby_alias_def( + unique int id: @ruby_alias, + int alias: @ruby_underscore_method_name ref, + int name: @ruby_underscore_method_name ref +); + +#keyset[ruby_alternative_pattern, index] +ruby_alternative_pattern_alternatives( + int ruby_alternative_pattern: @ruby_alternative_pattern ref, + int index: int ref, + unique int alternatives: @ruby_underscore_pattern_expr_basic ref +); + +ruby_alternative_pattern_def( + unique int id: @ruby_alternative_pattern +); + +@ruby_argument_list_child_type = @ruby_block_argument | @ruby_hash_splat_argument | @ruby_pair | @ruby_splat_argument | @ruby_token_forward_argument | @ruby_underscore_expression + +#keyset[ruby_argument_list, index] +ruby_argument_list_child( + int ruby_argument_list: @ruby_argument_list ref, + int index: int ref, + unique int child: @ruby_argument_list_child_type ref +); + +ruby_argument_list_def( + unique int id: @ruby_argument_list +); + +@ruby_array_child_type = @ruby_block_argument | @ruby_hash_splat_argument | @ruby_pair | @ruby_splat_argument | @ruby_token_forward_argument | @ruby_underscore_expression + +#keyset[ruby_array, index] +ruby_array_child( + int ruby_array: @ruby_array ref, + int index: int ref, + unique int child: @ruby_array_child_type ref +); + +ruby_array_def( + unique int id: @ruby_array +); + +ruby_array_pattern_class( + unique int ruby_array_pattern: @ruby_array_pattern ref, + unique int class: @ruby_underscore_pattern_constant ref +); + +@ruby_array_pattern_child_type = @ruby_splat_parameter | @ruby_underscore_pattern_expr + +#keyset[ruby_array_pattern, index] +ruby_array_pattern_child( + int ruby_array_pattern: @ruby_array_pattern ref, + int index: int ref, + unique int child: @ruby_array_pattern_child_type ref +); + +ruby_array_pattern_def( + unique int id: @ruby_array_pattern +); + +ruby_as_pattern_def( + unique int id: @ruby_as_pattern, + int name: @ruby_token_identifier ref, + int value: @ruby_underscore_pattern_expr ref +); + +@ruby_assignment_left_type = @ruby_left_assignment_list | @ruby_underscore_lhs + +@ruby_assignment_right_type = @ruby_rescue_modifier | @ruby_right_assignment_list | @ruby_splat_argument | @ruby_underscore_expression + +ruby_assignment_def( + unique int id: @ruby_assignment, + int left: @ruby_assignment_left_type ref, + int right: @ruby_assignment_right_type ref +); + +@ruby_bare_string_child_type = @ruby_interpolation | @ruby_token_escape_sequence | @ruby_token_string_content + +#keyset[ruby_bare_string, index] +ruby_bare_string_child( + int ruby_bare_string: @ruby_bare_string ref, + int index: int ref, + unique int child: @ruby_bare_string_child_type ref +); + +ruby_bare_string_def( + unique int id: @ruby_bare_string +); + +@ruby_bare_symbol_child_type = @ruby_interpolation | @ruby_token_escape_sequence | @ruby_token_string_content + +#keyset[ruby_bare_symbol, index] +ruby_bare_symbol_child( + int ruby_bare_symbol: @ruby_bare_symbol ref, + int index: int ref, + unique int child: @ruby_bare_symbol_child_type ref +); + +ruby_bare_symbol_def( + unique int id: @ruby_bare_symbol +); + +@ruby_begin_child_type = @ruby_else | @ruby_ensure | @ruby_rescue | @ruby_token_empty_statement | @ruby_underscore_statement + +#keyset[ruby_begin, index] +ruby_begin_child( + int ruby_begin: @ruby_begin ref, + int index: int ref, + unique int child: @ruby_begin_child_type ref +); + +ruby_begin_def( + unique int id: @ruby_begin +); + +@ruby_begin_block_child_type = @ruby_token_empty_statement | @ruby_underscore_statement + +#keyset[ruby_begin_block, index] +ruby_begin_block_child( + int ruby_begin_block: @ruby_begin_block ref, + int index: int ref, + unique int child: @ruby_begin_block_child_type ref +); + +ruby_begin_block_def( + unique int id: @ruby_begin_block +); + +@ruby_binary_left_type = @ruby_underscore_expression | @ruby_underscore_simple_numeric + +case @ruby_binary.operator of + 0 = @ruby_binary_bangequal +| 1 = @ruby_binary_bangtilde +| 2 = @ruby_binary_percent +| 3 = @ruby_binary_ampersand +| 4 = @ruby_binary_ampersandampersand +| 5 = @ruby_binary_star +| 6 = @ruby_binary_starstar +| 7 = @ruby_binary_plus +| 8 = @ruby_binary_minus +| 9 = @ruby_binary_slash +| 10 = @ruby_binary_langle +| 11 = @ruby_binary_langlelangle +| 12 = @ruby_binary_langleequal +| 13 = @ruby_binary_langleequalrangle +| 14 = @ruby_binary_equalequal +| 15 = @ruby_binary_equalequalequal +| 16 = @ruby_binary_equaltilde +| 17 = @ruby_binary_rangle +| 18 = @ruby_binary_rangleequal +| 19 = @ruby_binary_ranglerangle +| 20 = @ruby_binary_caret +| 21 = @ruby_binary_and +| 22 = @ruby_binary_or +| 23 = @ruby_binary_pipe +| 24 = @ruby_binary_pipepipe +; + + +ruby_binary_def( + unique int id: @ruby_binary, + int left: @ruby_binary_left_type ref, + int operator: int ref, + int right: @ruby_underscore_expression ref +); + +ruby_block_body( + unique int ruby_block: @ruby_block ref, + unique int body: @ruby_block_body ref +); + +ruby_block_parameters( + unique int ruby_block: @ruby_block ref, + unique int parameters: @ruby_block_parameters ref +); + +ruby_block_def( + unique int id: @ruby_block +); + +ruby_block_argument_child( + unique int ruby_block_argument: @ruby_block_argument ref, + unique int child: @ruby_underscore_arg ref +); + +ruby_block_argument_def( + unique int id: @ruby_block_argument +); + +@ruby_block_body_child_type = @ruby_token_empty_statement | @ruby_underscore_statement + +#keyset[ruby_block_body, index] +ruby_block_body_child( + int ruby_block_body: @ruby_block_body ref, + int index: int ref, + unique int child: @ruby_block_body_child_type ref +); + +ruby_block_body_def( + unique int id: @ruby_block_body +); + +ruby_block_parameter_name( + unique int ruby_block_parameter: @ruby_block_parameter ref, + unique int name: @ruby_token_identifier ref +); + +ruby_block_parameter_def( + unique int id: @ruby_block_parameter +); + +#keyset[ruby_block_parameters, index] +ruby_block_parameters_locals( + int ruby_block_parameters: @ruby_block_parameters ref, + int index: int ref, + unique int locals: @ruby_token_identifier ref +); + +@ruby_block_parameters_child_type = @ruby_block_parameter | @ruby_destructured_parameter | @ruby_hash_splat_parameter | @ruby_keyword_parameter | @ruby_optional_parameter | @ruby_splat_parameter | @ruby_token_forward_parameter | @ruby_token_hash_splat_nil | @ruby_token_identifier + +#keyset[ruby_block_parameters, index] +ruby_block_parameters_child( + int ruby_block_parameters: @ruby_block_parameters ref, + int index: int ref, + unique int child: @ruby_block_parameters_child_type ref +); + +ruby_block_parameters_def( + unique int id: @ruby_block_parameters +); + +@ruby_body_statement_child_type = @ruby_else | @ruby_ensure | @ruby_rescue | @ruby_token_empty_statement | @ruby_underscore_statement + +#keyset[ruby_body_statement, index] +ruby_body_statement_child( + int ruby_body_statement: @ruby_body_statement ref, + int index: int ref, + unique int child: @ruby_body_statement_child_type ref +); + +ruby_body_statement_def( + unique int id: @ruby_body_statement +); + +ruby_break_child( + unique int ruby_break: @ruby_break ref, + unique int child: @ruby_argument_list ref +); + +ruby_break_def( + unique int id: @ruby_break +); + +ruby_call_arguments( + unique int ruby_call: @ruby_call ref, + unique int arguments: @ruby_argument_list ref +); + +@ruby_call_block_type = @ruby_block | @ruby_do_block + +ruby_call_block( + unique int ruby_call: @ruby_call ref, + unique int block: @ruby_call_block_type ref +); + +@ruby_call_method_type = @ruby_token_operator | @ruby_underscore_variable + +ruby_call_method( + unique int ruby_call: @ruby_call ref, + unique int method: @ruby_call_method_type ref +); + +ruby_call_operator( + unique int ruby_call: @ruby_call ref, + unique int operator: @ruby_underscore_call_operator ref +); + +ruby_call_receiver( + unique int ruby_call: @ruby_call ref, + unique int receiver: @ruby_underscore_primary ref +); + +ruby_call_def( + unique int id: @ruby_call +); + +ruby_case_value( + unique int ruby_case__: @ruby_case__ ref, + unique int value: @ruby_underscore_statement ref +); + +@ruby_case_child_type = @ruby_else | @ruby_when + +#keyset[ruby_case__, index] +ruby_case_child( + int ruby_case__: @ruby_case__ ref, + int index: int ref, + unique int child: @ruby_case_child_type ref +); + +ruby_case_def( + unique int id: @ruby_case__ +); + +#keyset[ruby_case_match, index] +ruby_case_match_clauses( + int ruby_case_match: @ruby_case_match ref, + int index: int ref, + unique int clauses: @ruby_in_clause ref +); + +ruby_case_match_else( + unique int ruby_case_match: @ruby_case_match ref, + unique int else: @ruby_else ref +); + +ruby_case_match_def( + unique int id: @ruby_case_match, + int value: @ruby_underscore_statement ref +); + +#keyset[ruby_chained_string, index] +ruby_chained_string_child( + int ruby_chained_string: @ruby_chained_string ref, + int index: int ref, + unique int child: @ruby_string__ ref +); + +ruby_chained_string_def( + unique int id: @ruby_chained_string +); + +ruby_class_body( + unique int ruby_class: @ruby_class ref, + unique int body: @ruby_body_statement ref +); + +@ruby_class_name_type = @ruby_scope_resolution | @ruby_token_constant + +ruby_class_superclass( + unique int ruby_class: @ruby_class ref, + unique int superclass: @ruby_superclass ref +); + +ruby_class_def( + unique int id: @ruby_class, + int name: @ruby_class_name_type ref +); + +@ruby_complex_child_type = @ruby_rational | @ruby_token_float | @ruby_token_integer + +ruby_complex_def( + unique int id: @ruby_complex, + int child: @ruby_complex_child_type ref +); + +ruby_conditional_def( + unique int id: @ruby_conditional, + int alternative: @ruby_underscore_arg ref, + int condition: @ruby_underscore_arg ref, + int consequence: @ruby_underscore_arg ref +); + +@ruby_delimited_symbol_child_type = @ruby_interpolation | @ruby_token_escape_sequence | @ruby_token_string_content + +#keyset[ruby_delimited_symbol, index] +ruby_delimited_symbol_child( + int ruby_delimited_symbol: @ruby_delimited_symbol ref, + int index: int ref, + unique int child: @ruby_delimited_symbol_child_type ref +); + +ruby_delimited_symbol_def( + unique int id: @ruby_delimited_symbol +); + +@ruby_destructured_left_assignment_child_type = @ruby_destructured_left_assignment | @ruby_rest_assignment | @ruby_underscore_lhs + +#keyset[ruby_destructured_left_assignment, index] +ruby_destructured_left_assignment_child( + int ruby_destructured_left_assignment: @ruby_destructured_left_assignment ref, + int index: int ref, + unique int child: @ruby_destructured_left_assignment_child_type ref +); + +ruby_destructured_left_assignment_def( + unique int id: @ruby_destructured_left_assignment +); + +@ruby_destructured_parameter_child_type = @ruby_block_parameter | @ruby_destructured_parameter | @ruby_hash_splat_parameter | @ruby_keyword_parameter | @ruby_optional_parameter | @ruby_splat_parameter | @ruby_token_forward_parameter | @ruby_token_hash_splat_nil | @ruby_token_identifier + +#keyset[ruby_destructured_parameter, index] +ruby_destructured_parameter_child( + int ruby_destructured_parameter: @ruby_destructured_parameter ref, + int index: int ref, + unique int child: @ruby_destructured_parameter_child_type ref +); + +ruby_destructured_parameter_def( + unique int id: @ruby_destructured_parameter +); + +@ruby_do_child_type = @ruby_token_empty_statement | @ruby_underscore_statement + +#keyset[ruby_do, index] +ruby_do_child( + int ruby_do: @ruby_do ref, + int index: int ref, + unique int child: @ruby_do_child_type ref +); + +ruby_do_def( + unique int id: @ruby_do +); + +ruby_do_block_body( + unique int ruby_do_block: @ruby_do_block ref, + unique int body: @ruby_body_statement ref +); + +ruby_do_block_parameters( + unique int ruby_do_block: @ruby_do_block ref, + unique int parameters: @ruby_block_parameters ref +); + +ruby_do_block_def( + unique int id: @ruby_do_block +); + +@ruby_element_reference_child_type = @ruby_block_argument | @ruby_hash_splat_argument | @ruby_pair | @ruby_splat_argument | @ruby_token_forward_argument | @ruby_underscore_expression + +#keyset[ruby_element_reference, index] +ruby_element_reference_child( + int ruby_element_reference: @ruby_element_reference ref, + int index: int ref, + unique int child: @ruby_element_reference_child_type ref +); + +ruby_element_reference_def( + unique int id: @ruby_element_reference, + int object: @ruby_underscore_primary ref +); + +@ruby_else_child_type = @ruby_token_empty_statement | @ruby_underscore_statement + +#keyset[ruby_else, index] +ruby_else_child( + int ruby_else: @ruby_else ref, + int index: int ref, + unique int child: @ruby_else_child_type ref +); + +ruby_else_def( + unique int id: @ruby_else +); + +@ruby_elsif_alternative_type = @ruby_else | @ruby_elsif + +ruby_elsif_alternative( + unique int ruby_elsif: @ruby_elsif ref, + unique int alternative: @ruby_elsif_alternative_type ref +); + +ruby_elsif_consequence( + unique int ruby_elsif: @ruby_elsif ref, + unique int consequence: @ruby_then ref +); + +ruby_elsif_def( + unique int id: @ruby_elsif, + int condition: @ruby_underscore_statement ref +); + +@ruby_end_block_child_type = @ruby_token_empty_statement | @ruby_underscore_statement + +#keyset[ruby_end_block, index] +ruby_end_block_child( + int ruby_end_block: @ruby_end_block ref, + int index: int ref, + unique int child: @ruby_end_block_child_type ref +); + +ruby_end_block_def( + unique int id: @ruby_end_block +); + +@ruby_ensure_child_type = @ruby_token_empty_statement | @ruby_underscore_statement + +#keyset[ruby_ensure, index] +ruby_ensure_child( + int ruby_ensure: @ruby_ensure ref, + int index: int ref, + unique int child: @ruby_ensure_child_type ref +); + +ruby_ensure_def( + unique int id: @ruby_ensure +); + +ruby_exception_variable_def( + unique int id: @ruby_exception_variable, + int child: @ruby_underscore_lhs ref +); + +@ruby_exceptions_child_type = @ruby_splat_argument | @ruby_underscore_arg + +#keyset[ruby_exceptions, index] +ruby_exceptions_child( + int ruby_exceptions: @ruby_exceptions ref, + int index: int ref, + unique int child: @ruby_exceptions_child_type ref +); + +ruby_exceptions_def( + unique int id: @ruby_exceptions +); + +ruby_expression_reference_pattern_def( + unique int id: @ruby_expression_reference_pattern, + int value: @ruby_underscore_expression ref +); + +ruby_find_pattern_class( + unique int ruby_find_pattern: @ruby_find_pattern ref, + unique int class: @ruby_underscore_pattern_constant ref +); + +@ruby_find_pattern_child_type = @ruby_splat_parameter | @ruby_underscore_pattern_expr + +#keyset[ruby_find_pattern, index] +ruby_find_pattern_child( + int ruby_find_pattern: @ruby_find_pattern ref, + int index: int ref, + unique int child: @ruby_find_pattern_child_type ref +); + +ruby_find_pattern_def( + unique int id: @ruby_find_pattern +); + +@ruby_for_pattern_type = @ruby_left_assignment_list | @ruby_underscore_lhs + +ruby_for_def( + unique int id: @ruby_for, + int body: @ruby_do ref, + int pattern: @ruby_for_pattern_type ref, + int value: @ruby_in ref +); + +@ruby_hash_child_type = @ruby_hash_splat_argument | @ruby_pair + +#keyset[ruby_hash, index] +ruby_hash_child( + int ruby_hash: @ruby_hash ref, + int index: int ref, + unique int child: @ruby_hash_child_type ref +); + +ruby_hash_def( + unique int id: @ruby_hash +); + +ruby_hash_pattern_class( + unique int ruby_hash_pattern: @ruby_hash_pattern ref, + unique int class: @ruby_underscore_pattern_constant ref +); + +@ruby_hash_pattern_child_type = @ruby_hash_splat_parameter | @ruby_keyword_pattern | @ruby_token_hash_splat_nil + +#keyset[ruby_hash_pattern, index] +ruby_hash_pattern_child( + int ruby_hash_pattern: @ruby_hash_pattern ref, + int index: int ref, + unique int child: @ruby_hash_pattern_child_type ref +); + +ruby_hash_pattern_def( + unique int id: @ruby_hash_pattern +); + +ruby_hash_splat_argument_child( + unique int ruby_hash_splat_argument: @ruby_hash_splat_argument ref, + unique int child: @ruby_underscore_arg ref +); + +ruby_hash_splat_argument_def( + unique int id: @ruby_hash_splat_argument +); + +ruby_hash_splat_parameter_name( + unique int ruby_hash_splat_parameter: @ruby_hash_splat_parameter ref, + unique int name: @ruby_token_identifier ref +); + +ruby_hash_splat_parameter_def( + unique int id: @ruby_hash_splat_parameter +); + +@ruby_heredoc_body_child_type = @ruby_interpolation | @ruby_token_escape_sequence | @ruby_token_heredoc_content | @ruby_token_heredoc_end + +#keyset[ruby_heredoc_body, index] +ruby_heredoc_body_child( + int ruby_heredoc_body: @ruby_heredoc_body ref, + int index: int ref, + unique int child: @ruby_heredoc_body_child_type ref +); + +ruby_heredoc_body_def( + unique int id: @ruby_heredoc_body +); + +@ruby_if_alternative_type = @ruby_else | @ruby_elsif + +ruby_if_alternative( + unique int ruby_if: @ruby_if ref, + unique int alternative: @ruby_if_alternative_type ref +); + +ruby_if_consequence( + unique int ruby_if: @ruby_if ref, + unique int consequence: @ruby_then ref +); + +ruby_if_def( + unique int id: @ruby_if, + int condition: @ruby_underscore_statement ref +); + +ruby_if_guard_def( + unique int id: @ruby_if_guard, + int condition: @ruby_underscore_expression ref +); + +ruby_if_modifier_def( + unique int id: @ruby_if_modifier, + int body: @ruby_underscore_statement ref, + int condition: @ruby_underscore_expression ref +); + +ruby_in_def( + unique int id: @ruby_in, + int child: @ruby_underscore_arg ref +); + +ruby_in_clause_body( + unique int ruby_in_clause: @ruby_in_clause ref, + unique int body: @ruby_then ref +); + +@ruby_in_clause_guard_type = @ruby_if_guard | @ruby_unless_guard + +ruby_in_clause_guard( + unique int ruby_in_clause: @ruby_in_clause ref, + unique int guard: @ruby_in_clause_guard_type ref +); + +ruby_in_clause_def( + unique int id: @ruby_in_clause, + int pattern: @ruby_underscore_pattern_top_expr_body ref +); + +@ruby_interpolation_child_type = @ruby_token_empty_statement | @ruby_underscore_nonlocal_variable | @ruby_underscore_statement + +#keyset[ruby_interpolation, index] +ruby_interpolation_child( + int ruby_interpolation: @ruby_interpolation ref, + int index: int ref, + unique int child: @ruby_interpolation_child_type ref +); + +ruby_interpolation_def( + unique int id: @ruby_interpolation +); + +ruby_keyword_parameter_value( + unique int ruby_keyword_parameter: @ruby_keyword_parameter ref, + unique int value: @ruby_underscore_arg ref +); + +ruby_keyword_parameter_def( + unique int id: @ruby_keyword_parameter, + int name: @ruby_token_identifier ref +); + +@ruby_keyword_pattern_key_type = @ruby_string__ | @ruby_token_hash_key_symbol + +ruby_keyword_pattern_value( + unique int ruby_keyword_pattern: @ruby_keyword_pattern ref, + unique int value: @ruby_underscore_pattern_expr ref +); + +ruby_keyword_pattern_def( + unique int id: @ruby_keyword_pattern, + int key__: @ruby_keyword_pattern_key_type ref +); + +@ruby_lambda_body_type = @ruby_block | @ruby_do_block + +ruby_lambda_parameters( + unique int ruby_lambda: @ruby_lambda ref, + unique int parameters: @ruby_lambda_parameters ref +); + +ruby_lambda_def( + unique int id: @ruby_lambda, + int body: @ruby_lambda_body_type ref +); + +@ruby_lambda_parameters_child_type = @ruby_block_parameter | @ruby_destructured_parameter | @ruby_hash_splat_parameter | @ruby_keyword_parameter | @ruby_optional_parameter | @ruby_splat_parameter | @ruby_token_forward_parameter | @ruby_token_hash_splat_nil | @ruby_token_identifier + +#keyset[ruby_lambda_parameters, index] +ruby_lambda_parameters_child( + int ruby_lambda_parameters: @ruby_lambda_parameters ref, + int index: int ref, + unique int child: @ruby_lambda_parameters_child_type ref +); + +ruby_lambda_parameters_def( + unique int id: @ruby_lambda_parameters +); + +@ruby_left_assignment_list_child_type = @ruby_destructured_left_assignment | @ruby_rest_assignment | @ruby_underscore_lhs + +#keyset[ruby_left_assignment_list, index] +ruby_left_assignment_list_child( + int ruby_left_assignment_list: @ruby_left_assignment_list ref, + int index: int ref, + unique int child: @ruby_left_assignment_list_child_type ref +); + +ruby_left_assignment_list_def( + unique int id: @ruby_left_assignment_list +); + +ruby_match_pattern_def( + unique int id: @ruby_match_pattern, + int pattern: @ruby_underscore_pattern_top_expr_body ref, + int value: @ruby_underscore_arg ref +); + +@ruby_method_body_type = @ruby_body_statement | @ruby_rescue_modifier | @ruby_underscore_arg + +ruby_method_body( + unique int ruby_method: @ruby_method ref, + unique int body: @ruby_method_body_type ref +); + +ruby_method_parameters( + unique int ruby_method: @ruby_method ref, + unique int parameters: @ruby_method_parameters ref +); + +ruby_method_def( + unique int id: @ruby_method, + int name: @ruby_underscore_method_name ref +); + +@ruby_method_parameters_child_type = @ruby_block_parameter | @ruby_destructured_parameter | @ruby_hash_splat_parameter | @ruby_keyword_parameter | @ruby_optional_parameter | @ruby_splat_parameter | @ruby_token_forward_parameter | @ruby_token_hash_splat_nil | @ruby_token_identifier + +#keyset[ruby_method_parameters, index] +ruby_method_parameters_child( + int ruby_method_parameters: @ruby_method_parameters ref, + int index: int ref, + unique int child: @ruby_method_parameters_child_type ref +); + +ruby_method_parameters_def( + unique int id: @ruby_method_parameters +); + +ruby_module_body( + unique int ruby_module: @ruby_module ref, + unique int body: @ruby_body_statement ref +); + +@ruby_module_name_type = @ruby_scope_resolution | @ruby_token_constant + +ruby_module_def( + unique int id: @ruby_module, + int name: @ruby_module_name_type ref +); + +ruby_next_child( + unique int ruby_next: @ruby_next ref, + unique int child: @ruby_argument_list ref +); + +ruby_next_def( + unique int id: @ruby_next +); + +case @ruby_operator_assignment.operator of + 0 = @ruby_operator_assignment_percentequal +| 1 = @ruby_operator_assignment_ampersandampersandequal +| 2 = @ruby_operator_assignment_ampersandequal +| 3 = @ruby_operator_assignment_starstarequal +| 4 = @ruby_operator_assignment_starequal +| 5 = @ruby_operator_assignment_plusequal +| 6 = @ruby_operator_assignment_minusequal +| 7 = @ruby_operator_assignment_slashequal +| 8 = @ruby_operator_assignment_langlelangleequal +| 9 = @ruby_operator_assignment_ranglerangleequal +| 10 = @ruby_operator_assignment_caretequal +| 11 = @ruby_operator_assignment_pipeequal +| 12 = @ruby_operator_assignment_pipepipeequal +; + + +@ruby_operator_assignment_right_type = @ruby_rescue_modifier | @ruby_underscore_expression + +ruby_operator_assignment_def( + unique int id: @ruby_operator_assignment, + int left: @ruby_underscore_lhs ref, + int operator: int ref, + int right: @ruby_operator_assignment_right_type ref +); + +ruby_optional_parameter_def( + unique int id: @ruby_optional_parameter, + int name: @ruby_token_identifier ref, + int value: @ruby_underscore_arg ref +); + +@ruby_pair_key_type = @ruby_string__ | @ruby_token_hash_key_symbol | @ruby_underscore_arg + +ruby_pair_value( + unique int ruby_pair: @ruby_pair ref, + unique int value: @ruby_underscore_arg ref +); + +ruby_pair_def( + unique int id: @ruby_pair, + int key__: @ruby_pair_key_type ref +); + +ruby_parenthesized_pattern_def( + unique int id: @ruby_parenthesized_pattern, + int child: @ruby_underscore_pattern_expr ref +); + +@ruby_parenthesized_statements_child_type = @ruby_token_empty_statement | @ruby_underscore_statement + +#keyset[ruby_parenthesized_statements, index] +ruby_parenthesized_statements_child( + int ruby_parenthesized_statements: @ruby_parenthesized_statements ref, + int index: int ref, + unique int child: @ruby_parenthesized_statements_child_type ref +); + +ruby_parenthesized_statements_def( + unique int id: @ruby_parenthesized_statements +); + +@ruby_pattern_child_type = @ruby_splat_argument | @ruby_underscore_arg + +ruby_pattern_def( + unique int id: @ruby_pattern, + int child: @ruby_pattern_child_type ref +); + +@ruby_program_child_type = @ruby_token_empty_statement | @ruby_token_uninterpreted | @ruby_underscore_statement + +#keyset[ruby_program, index] +ruby_program_child( + int ruby_program: @ruby_program ref, + int index: int ref, + unique int child: @ruby_program_child_type ref +); + +ruby_program_def( + unique int id: @ruby_program +); + +@ruby_range_begin_type = @ruby_underscore_arg | @ruby_underscore_pattern_primitive + +ruby_range_begin( + unique int ruby_range: @ruby_range ref, + unique int begin: @ruby_range_begin_type ref +); + +@ruby_range_end_type = @ruby_underscore_arg | @ruby_underscore_pattern_primitive + +ruby_range_end( + unique int ruby_range: @ruby_range ref, + unique int end: @ruby_range_end_type ref +); + +case @ruby_range.operator of + 0 = @ruby_range_dotdot +| 1 = @ruby_range_dotdotdot +; + + +ruby_range_def( + unique int id: @ruby_range, + int operator: int ref +); + +@ruby_rational_child_type = @ruby_token_float | @ruby_token_integer + +ruby_rational_def( + unique int id: @ruby_rational, + int child: @ruby_rational_child_type ref +); + +ruby_redo_child( + unique int ruby_redo: @ruby_redo ref, + unique int child: @ruby_argument_list ref +); + +ruby_redo_def( + unique int id: @ruby_redo +); + +@ruby_regex_child_type = @ruby_interpolation | @ruby_token_escape_sequence | @ruby_token_string_content + +#keyset[ruby_regex, index] +ruby_regex_child( + int ruby_regex: @ruby_regex ref, + int index: int ref, + unique int child: @ruby_regex_child_type ref +); + +ruby_regex_def( + unique int id: @ruby_regex +); + +ruby_rescue_body( + unique int ruby_rescue: @ruby_rescue ref, + unique int body: @ruby_then ref +); + +ruby_rescue_exceptions( + unique int ruby_rescue: @ruby_rescue ref, + unique int exceptions: @ruby_exceptions ref +); + +ruby_rescue_variable( + unique int ruby_rescue: @ruby_rescue ref, + unique int variable: @ruby_exception_variable ref +); + +ruby_rescue_def( + unique int id: @ruby_rescue +); + +@ruby_rescue_modifier_body_type = @ruby_underscore_arg | @ruby_underscore_statement + +ruby_rescue_modifier_def( + unique int id: @ruby_rescue_modifier, + int body: @ruby_rescue_modifier_body_type ref, + int handler: @ruby_underscore_expression ref +); + +ruby_rest_assignment_child( + unique int ruby_rest_assignment: @ruby_rest_assignment ref, + unique int child: @ruby_underscore_lhs ref +); + +ruby_rest_assignment_def( + unique int id: @ruby_rest_assignment +); + +ruby_retry_child( + unique int ruby_retry: @ruby_retry ref, + unique int child: @ruby_argument_list ref +); + +ruby_retry_def( + unique int id: @ruby_retry +); + +ruby_return_child( + unique int ruby_return: @ruby_return ref, + unique int child: @ruby_argument_list ref +); + +ruby_return_def( + unique int id: @ruby_return +); + +@ruby_right_assignment_list_child_type = @ruby_splat_argument | @ruby_underscore_arg + +#keyset[ruby_right_assignment_list, index] +ruby_right_assignment_list_child( + int ruby_right_assignment_list: @ruby_right_assignment_list ref, + int index: int ref, + unique int child: @ruby_right_assignment_list_child_type ref +); + +ruby_right_assignment_list_def( + unique int id: @ruby_right_assignment_list +); + +@ruby_scope_resolution_scope_type = @ruby_underscore_pattern_constant | @ruby_underscore_primary + +ruby_scope_resolution_scope( + unique int ruby_scope_resolution: @ruby_scope_resolution ref, + unique int scope: @ruby_scope_resolution_scope_type ref +); + +ruby_scope_resolution_def( + unique int id: @ruby_scope_resolution, + int name: @ruby_token_constant ref +); + +ruby_setter_def( + unique int id: @ruby_setter, + int name: @ruby_token_identifier ref +); + +ruby_singleton_class_body( + unique int ruby_singleton_class: @ruby_singleton_class ref, + unique int body: @ruby_body_statement ref +); + +ruby_singleton_class_def( + unique int id: @ruby_singleton_class, + int value: @ruby_underscore_arg ref +); + +@ruby_singleton_method_body_type = @ruby_body_statement | @ruby_rescue_modifier | @ruby_underscore_arg + +ruby_singleton_method_body( + unique int ruby_singleton_method: @ruby_singleton_method ref, + unique int body: @ruby_singleton_method_body_type ref +); + +@ruby_singleton_method_object_type = @ruby_underscore_arg | @ruby_underscore_variable + +ruby_singleton_method_parameters( + unique int ruby_singleton_method: @ruby_singleton_method ref, + unique int parameters: @ruby_method_parameters ref +); + +ruby_singleton_method_def( + unique int id: @ruby_singleton_method, + int name: @ruby_underscore_method_name ref, + int object: @ruby_singleton_method_object_type ref +); + +ruby_splat_argument_child( + unique int ruby_splat_argument: @ruby_splat_argument ref, + unique int child: @ruby_underscore_arg ref +); + +ruby_splat_argument_def( + unique int id: @ruby_splat_argument +); + +ruby_splat_parameter_name( + unique int ruby_splat_parameter: @ruby_splat_parameter ref, + unique int name: @ruby_token_identifier ref +); + +ruby_splat_parameter_def( + unique int id: @ruby_splat_parameter +); + +@ruby_string_child_type = @ruby_interpolation | @ruby_token_escape_sequence | @ruby_token_string_content + +#keyset[ruby_string__, index] +ruby_string_child( + int ruby_string__: @ruby_string__ ref, + int index: int ref, + unique int child: @ruby_string_child_type ref +); + +ruby_string_def( + unique int id: @ruby_string__ +); + +#keyset[ruby_string_array, index] +ruby_string_array_child( + int ruby_string_array: @ruby_string_array ref, + int index: int ref, + unique int child: @ruby_bare_string ref +); + +ruby_string_array_def( + unique int id: @ruby_string_array +); + +@ruby_subshell_child_type = @ruby_interpolation | @ruby_token_escape_sequence | @ruby_token_string_content + +#keyset[ruby_subshell, index] +ruby_subshell_child( + int ruby_subshell: @ruby_subshell ref, + int index: int ref, + unique int child: @ruby_subshell_child_type ref +); + +ruby_subshell_def( + unique int id: @ruby_subshell +); + +ruby_superclass_def( + unique int id: @ruby_superclass, + int child: @ruby_underscore_expression ref +); + +#keyset[ruby_symbol_array, index] +ruby_symbol_array_child( + int ruby_symbol_array: @ruby_symbol_array ref, + int index: int ref, + unique int child: @ruby_bare_symbol ref +); + +ruby_symbol_array_def( + unique int id: @ruby_symbol_array +); + +ruby_test_pattern_def( + unique int id: @ruby_test_pattern, + int pattern: @ruby_underscore_pattern_top_expr_body ref, + int value: @ruby_underscore_arg ref +); + +@ruby_then_child_type = @ruby_token_empty_statement | @ruby_underscore_statement + +#keyset[ruby_then, index] +ruby_then_child( + int ruby_then: @ruby_then ref, + int index: int ref, + unique int child: @ruby_then_child_type ref +); + +ruby_then_def( + unique int id: @ruby_then +); + +@ruby_unary_operand_type = @ruby_parenthesized_statements | @ruby_underscore_expression | @ruby_underscore_simple_numeric + +case @ruby_unary.operator of + 0 = @ruby_unary_bang +| 1 = @ruby_unary_plus +| 2 = @ruby_unary_minus +| 3 = @ruby_unary_definedquestion +| 4 = @ruby_unary_not +| 5 = @ruby_unary_tilde +; + + +ruby_unary_def( + unique int id: @ruby_unary, + int operand: @ruby_unary_operand_type ref, + int operator: int ref +); + +#keyset[ruby_undef, index] +ruby_undef_child( + int ruby_undef: @ruby_undef ref, + int index: int ref, + unique int child: @ruby_underscore_method_name ref +); + +ruby_undef_def( + unique int id: @ruby_undef +); + +@ruby_unless_alternative_type = @ruby_else | @ruby_elsif + +ruby_unless_alternative( + unique int ruby_unless: @ruby_unless ref, + unique int alternative: @ruby_unless_alternative_type ref +); + +ruby_unless_consequence( + unique int ruby_unless: @ruby_unless ref, + unique int consequence: @ruby_then ref +); + +ruby_unless_def( + unique int id: @ruby_unless, + int condition: @ruby_underscore_statement ref +); + +ruby_unless_guard_def( + unique int id: @ruby_unless_guard, + int condition: @ruby_underscore_expression ref +); + +ruby_unless_modifier_def( + unique int id: @ruby_unless_modifier, + int body: @ruby_underscore_statement ref, + int condition: @ruby_underscore_expression ref +); + +ruby_until_def( + unique int id: @ruby_until, + int body: @ruby_do ref, + int condition: @ruby_underscore_statement ref +); + +ruby_until_modifier_def( + unique int id: @ruby_until_modifier, + int body: @ruby_underscore_statement ref, + int condition: @ruby_underscore_expression ref +); + +@ruby_variable_reference_pattern_name_type = @ruby_token_identifier | @ruby_underscore_nonlocal_variable + +ruby_variable_reference_pattern_def( + unique int id: @ruby_variable_reference_pattern, + int name: @ruby_variable_reference_pattern_name_type ref +); + +ruby_when_body( + unique int ruby_when: @ruby_when ref, + unique int body: @ruby_then ref +); + +#keyset[ruby_when, index] +ruby_when_pattern( + int ruby_when: @ruby_when ref, + int index: int ref, + unique int pattern: @ruby_pattern ref +); + +ruby_when_def( + unique int id: @ruby_when +); + +ruby_while_def( + unique int id: @ruby_while, + int body: @ruby_do ref, + int condition: @ruby_underscore_statement ref +); + +ruby_while_modifier_def( + unique int id: @ruby_while_modifier, + int body: @ruby_underscore_statement ref, + int condition: @ruby_underscore_expression ref +); + +ruby_yield_child( + unique int ruby_yield: @ruby_yield ref, + unique int child: @ruby_argument_list ref +); + +ruby_yield_def( + unique int id: @ruby_yield +); + +ruby_tokeninfo( + unique int id: @ruby_token, + int kind: int ref, + string value: string ref +); + +case @ruby_token.kind of + 0 = @ruby_reserved_word +| 1 = @ruby_token_character +| 2 = @ruby_token_class_variable +| 3 = @ruby_token_comment +| 4 = @ruby_token_constant +| 5 = @ruby_token_empty_statement +| 6 = @ruby_token_encoding +| 7 = @ruby_token_escape_sequence +| 8 = @ruby_token_false +| 9 = @ruby_token_file +| 10 = @ruby_token_float +| 11 = @ruby_token_forward_argument +| 12 = @ruby_token_forward_parameter +| 13 = @ruby_token_global_variable +| 14 = @ruby_token_hash_key_symbol +| 15 = @ruby_token_hash_splat_nil +| 16 = @ruby_token_heredoc_beginning +| 17 = @ruby_token_heredoc_content +| 18 = @ruby_token_heredoc_end +| 19 = @ruby_token_identifier +| 20 = @ruby_token_instance_variable +| 21 = @ruby_token_integer +| 22 = @ruby_token_line +| 23 = @ruby_token_nil +| 24 = @ruby_token_operator +| 25 = @ruby_token_self +| 26 = @ruby_token_simple_symbol +| 27 = @ruby_token_string_content +| 28 = @ruby_token_super +| 29 = @ruby_token_true +| 30 = @ruby_token_uninterpreted +; + + +@ruby_ast_node = @ruby_alias | @ruby_alternative_pattern | @ruby_argument_list | @ruby_array | @ruby_array_pattern | @ruby_as_pattern | @ruby_assignment | @ruby_bare_string | @ruby_bare_symbol | @ruby_begin | @ruby_begin_block | @ruby_binary | @ruby_block | @ruby_block_argument | @ruby_block_body | @ruby_block_parameter | @ruby_block_parameters | @ruby_body_statement | @ruby_break | @ruby_call | @ruby_case__ | @ruby_case_match | @ruby_chained_string | @ruby_class | @ruby_complex | @ruby_conditional | @ruby_delimited_symbol | @ruby_destructured_left_assignment | @ruby_destructured_parameter | @ruby_do | @ruby_do_block | @ruby_element_reference | @ruby_else | @ruby_elsif | @ruby_end_block | @ruby_ensure | @ruby_exception_variable | @ruby_exceptions | @ruby_expression_reference_pattern | @ruby_find_pattern | @ruby_for | @ruby_hash | @ruby_hash_pattern | @ruby_hash_splat_argument | @ruby_hash_splat_parameter | @ruby_heredoc_body | @ruby_if | @ruby_if_guard | @ruby_if_modifier | @ruby_in | @ruby_in_clause | @ruby_interpolation | @ruby_keyword_parameter | @ruby_keyword_pattern | @ruby_lambda | @ruby_lambda_parameters | @ruby_left_assignment_list | @ruby_match_pattern | @ruby_method | @ruby_method_parameters | @ruby_module | @ruby_next | @ruby_operator_assignment | @ruby_optional_parameter | @ruby_pair | @ruby_parenthesized_pattern | @ruby_parenthesized_statements | @ruby_pattern | @ruby_program | @ruby_range | @ruby_rational | @ruby_redo | @ruby_regex | @ruby_rescue | @ruby_rescue_modifier | @ruby_rest_assignment | @ruby_retry | @ruby_return | @ruby_right_assignment_list | @ruby_scope_resolution | @ruby_setter | @ruby_singleton_class | @ruby_singleton_method | @ruby_splat_argument | @ruby_splat_parameter | @ruby_string__ | @ruby_string_array | @ruby_subshell | @ruby_superclass | @ruby_symbol_array | @ruby_test_pattern | @ruby_then | @ruby_token | @ruby_unary | @ruby_undef | @ruby_unless | @ruby_unless_guard | @ruby_unless_modifier | @ruby_until | @ruby_until_modifier | @ruby_variable_reference_pattern | @ruby_when | @ruby_while | @ruby_while_modifier | @ruby_yield + +ruby_ast_node_location( + unique int node: @ruby_ast_node ref, + int loc: @location_default ref +); + +#keyset[parent, parent_index] +ruby_ast_node_parent( + unique int node: @ruby_ast_node ref, + int parent: @ruby_ast_node ref, + int parent_index: int ref +); + +/*- Erb dbscheme -*/ +erb_comment_directive_child( + unique int erb_comment_directive: @erb_comment_directive ref, + unique int child: @erb_token_comment ref +); + +erb_comment_directive_def( + unique int id: @erb_comment_directive +); + +erb_directive_child( + unique int erb_directive: @erb_directive ref, + unique int child: @erb_token_code ref +); + +erb_directive_def( + unique int id: @erb_directive +); + +erb_graphql_directive_child( + unique int erb_graphql_directive: @erb_graphql_directive ref, + unique int child: @erb_token_code ref +); + +erb_graphql_directive_def( + unique int id: @erb_graphql_directive +); + +erb_output_directive_child( + unique int erb_output_directive: @erb_output_directive ref, + unique int child: @erb_token_code ref +); + +erb_output_directive_def( + unique int id: @erb_output_directive +); + +@erb_template_child_type = @erb_comment_directive | @erb_directive | @erb_graphql_directive | @erb_output_directive | @erb_token_content + +#keyset[erb_template, index] +erb_template_child( + int erb_template: @erb_template ref, + int index: int ref, + unique int child: @erb_template_child_type ref +); + +erb_template_def( + unique int id: @erb_template +); + +erb_tokeninfo( + unique int id: @erb_token, + int kind: int ref, + string value: string ref +); + +case @erb_token.kind of + 0 = @erb_reserved_word +| 1 = @erb_token_code +| 2 = @erb_token_comment +| 3 = @erb_token_content +; + + +@erb_ast_node = @erb_comment_directive | @erb_directive | @erb_graphql_directive | @erb_output_directive | @erb_template | @erb_token + +erb_ast_node_location( + unique int node: @erb_ast_node ref, + int loc: @location_default ref +); + +#keyset[parent, parent_index] +erb_ast_node_parent( + unique int node: @erb_ast_node ref, + int parent: @erb_ast_node ref, + int parent_index: int ref +); + diff --git a/ruby/ql/lib/upgrades/f9f0f4023e433184fda76f595247bf448b782135/ruby_ast_node_location.ql b/ruby/ql/lib/upgrades/f9f0f4023e433184fda76f595247bf448b782135/ruby_ast_node_location.ql new file mode 100644 index 000000000000..09f30acf9731 --- /dev/null +++ b/ruby/ql/lib/upgrades/f9f0f4023e433184fda76f595247bf448b782135/ruby_ast_node_location.ql @@ -0,0 +1,11 @@ +class AstNode extends @ruby_ast_node { + string toString() { none() } +} + +class Location extends @location_default { + string toString() { none() } +} + +from AstNode n, Location location +where ruby_ast_node_info(n, _, _, location) +select n, location diff --git a/ruby/ql/lib/upgrades/f9f0f4023e433184fda76f595247bf448b782135/ruby_ast_node_parent.ql b/ruby/ql/lib/upgrades/f9f0f4023e433184fda76f595247bf448b782135/ruby_ast_node_parent.ql new file mode 100644 index 000000000000..024ed9ee6b77 --- /dev/null +++ b/ruby/ql/lib/upgrades/f9f0f4023e433184fda76f595247bf448b782135/ruby_ast_node_parent.ql @@ -0,0 +1,7 @@ +class AstNode extends @ruby_ast_node { + string toString() { none() } +} + +from AstNode n, int i, AstNode parent +where ruby_ast_node_info(n, parent, i, _) +select n, parent, i diff --git a/ruby/ql/lib/upgrades/f9f0f4023e433184fda76f595247bf448b782135/upgrade.properties b/ruby/ql/lib/upgrades/f9f0f4023e433184fda76f595247bf448b782135/upgrade.properties new file mode 100644 index 000000000000..ddac0258abe2 --- /dev/null +++ b/ruby/ql/lib/upgrades/f9f0f4023e433184fda76f595247bf448b782135/upgrade.properties @@ -0,0 +1,8 @@ +description: Split up `ruby_ast_node_info` into `ruby_ast_node_location` and `ruby_ast_node_parent` (and same for `erb`) +compatibility: backwards +erb_ast_node_location.rel: run erb_ast_node_location.qlo +erb_ast_node_parent.rel: run erb_ast_node_parent.qlo +erb_ast_node_info.rel: delete +ruby_ast_node_location.rel: run ruby_ast_node_location.qlo +ruby_ast_node_parent.rel: run ruby_ast_node_parent.qlo +ruby_ast_node_info.rel: delete From 31e04631d1dfe4d0c9b3e627a136c3c6ed854120 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Tue, 19 Mar 2024 11:25:00 +0100 Subject: [PATCH 4/4] QL4QL: Regenerate DB scheme and stats --- .../src/codeql_ql/ast/internal/TreeSitter.qll | 24 +- ql/ql/src/ql.dbscheme | 48 +- ql/ql/src/ql.dbscheme.stats | 8738 ++++++++--------- 3 files changed, 4352 insertions(+), 4458 deletions(-) diff --git a/ql/ql/src/codeql_ql/ast/internal/TreeSitter.qll b/ql/ql/src/codeql_ql/ast/internal/TreeSitter.qll index 76e96979cfda..877f676e3964 100644 --- a/ql/ql/src/codeql_ql/ast/internal/TreeSitter.qll +++ b/ql/ql/src/codeql_ql/ast/internal/TreeSitter.qll @@ -12,13 +12,13 @@ module QL { string toString() { result = this.getAPrimaryQlClass() } /** Gets the location of this element. */ - final L::Location getLocation() { ql_ast_node_info(this, _, _, result) } + final L::Location getLocation() { ql_ast_node_location(this, result) } /** Gets the parent of this element. */ - final AstNode getParent() { ql_ast_node_info(this, result, _, _) } + final AstNode getParent() { ql_ast_node_parent(this, result, _) } /** Gets the index of this node among the children of its parent. */ - final int getParentIndex() { ql_ast_node_info(this, _, result, _) } + final int getParentIndex() { ql_ast_node_parent(this, _, result) } /** Gets a field or child node of this node. */ AstNode getAFieldOrChild() { none() } @@ -1282,13 +1282,13 @@ module Dbscheme { string toString() { result = this.getAPrimaryQlClass() } /** Gets the location of this element. */ - final L::Location getLocation() { dbscheme_ast_node_info(this, _, _, result) } + final L::Location getLocation() { dbscheme_ast_node_location(this, result) } /** Gets the parent of this element. */ - final AstNode getParent() { dbscheme_ast_node_info(this, result, _, _) } + final AstNode getParent() { dbscheme_ast_node_parent(this, result, _) } /** Gets the index of this node among the children of its parent. */ - final int getParentIndex() { dbscheme_ast_node_info(this, _, result, _) } + final int getParentIndex() { dbscheme_ast_node_parent(this, _, result) } /** Gets a field or child node of this node. */ AstNode getAFieldOrChild() { none() } @@ -1618,13 +1618,13 @@ module Blame { string toString() { result = this.getAPrimaryQlClass() } /** Gets the location of this element. */ - final L::Location getLocation() { blame_ast_node_info(this, _, _, result) } + final L::Location getLocation() { blame_ast_node_location(this, result) } /** Gets the parent of this element. */ - final AstNode getParent() { blame_ast_node_info(this, result, _, _) } + final AstNode getParent() { blame_ast_node_parent(this, result, _) } /** Gets the index of this node among the children of its parent. */ - final int getParentIndex() { blame_ast_node_info(this, _, result, _) } + final int getParentIndex() { blame_ast_node_parent(this, _, result) } /** Gets a field or child node of this node. */ AstNode getAFieldOrChild() { none() } @@ -1731,13 +1731,13 @@ module JSON { string toString() { result = this.getAPrimaryQlClass() } /** Gets the location of this element. */ - final L::Location getLocation() { json_ast_node_info(this, _, _, result) } + final L::Location getLocation() { json_ast_node_location(this, result) } /** Gets the parent of this element. */ - final AstNode getParent() { json_ast_node_info(this, result, _, _) } + final AstNode getParent() { json_ast_node_parent(this, result, _) } /** Gets the index of this node among the children of its parent. */ - final int getParentIndex() { json_ast_node_info(this, _, result, _) } + final int getParentIndex() { json_ast_node_parent(this, _, result) } /** Gets a field or child node of this node. */ AstNode getAFieldOrChild() { none() } diff --git a/ql/ql/src/ql.dbscheme b/ql/ql/src/ql.dbscheme index 97aa35b9ef51..21aebc3b4313 100644 --- a/ql/ql/src/ql.dbscheme +++ b/ql/ql/src/ql.dbscheme @@ -972,14 +972,16 @@ case @ql_token.kind of @ql_ast_node = @ql_add_expr | @ql_aggregate | @ql_annot_arg | @ql_annotation | @ql_arityless_predicate_expr | @ql_as_expr | @ql_as_exprs | @ql_body | @ql_bool | @ql_call_body | @ql_call_or_unqual_agg_expr | @ql_charpred | @ql_class_member | @ql_classless_predicate | @ql_comp_term | @ql_conjunction | @ql_dataclass | @ql_datatype | @ql_datatype_branch | @ql_datatype_branches | @ql_disjunction | @ql_expr_aggregate_body | @ql_expr_annotation | @ql_field | @ql_full_aggregate_body | @ql_higher_order_term | @ql_if_term | @ql_implication | @ql_import_directive | @ql_import_module_expr | @ql_in_expr | @ql_instance_of | @ql_literal | @ql_member_predicate | @ql_module | @ql_module_alias_body | @ql_module_expr | @ql_module_instantiation | @ql_module_member | @ql_module_name | @ql_module_param | @ql_mul_expr | @ql_negation | @ql_order_by | @ql_order_bys | @ql_par_expr | @ql_predicate_alias_body | @ql_predicate_expr | @ql_prefix_cast | @ql_ql | @ql_qualified_expr | @ql_qualified_rhs | @ql_quantified | @ql_range | @ql_select | @ql_set_literal | @ql_signature_expr | @ql_special_call | @ql_super_ref | @ql_token | @ql_type_alias_body | @ql_type_expr | @ql_type_union_body | @ql_unary_expr | @ql_unqual_agg_body | @ql_var_decl | @ql_var_name | @ql_variable -@ql_ast_node_parent = @file | @ql_ast_node +ql_ast_node_location( + unique int node: @ql_ast_node ref, + int loc: @location_default ref +); #keyset[parent, parent_index] -ql_ast_node_info( +ql_ast_node_parent( unique int node: @ql_ast_node ref, - int parent: @ql_ast_node_parent ref, - int parent_index: int ref, - int loc: @location_default ref + int parent: @ql_ast_node ref, + int parent_index: int ref ); /*- Dbscheme dbscheme -*/ @@ -1159,14 +1161,16 @@ case @dbscheme_token.kind of @dbscheme_ast_node = @dbscheme_annotation | @dbscheme_args_annotation | @dbscheme_branch | @dbscheme_case_decl | @dbscheme_col_type | @dbscheme_column | @dbscheme_dbscheme | @dbscheme_entry | @dbscheme_repr_type | @dbscheme_table | @dbscheme_table_name | @dbscheme_token | @dbscheme_union_decl -@dbscheme_ast_node_parent = @dbscheme_ast_node | @file +dbscheme_ast_node_location( + unique int node: @dbscheme_ast_node ref, + int loc: @location_default ref +); #keyset[parent, parent_index] -dbscheme_ast_node_info( +dbscheme_ast_node_parent( unique int node: @dbscheme_ast_node ref, - int parent: @dbscheme_ast_node_parent ref, - int parent_index: int ref, - int loc: @location_default ref + int parent: @dbscheme_ast_node ref, + int parent_index: int ref ); /*- Blame dbscheme -*/ @@ -1222,14 +1226,16 @@ case @blame_token.kind of @blame_ast_node = @blame_blame_entry | @blame_blame_info | @blame_file_entry | @blame_token -@blame_ast_node_parent = @blame_ast_node | @file +blame_ast_node_location( + unique int node: @blame_ast_node ref, + int loc: @location_default ref +); #keyset[parent, parent_index] -blame_ast_node_info( +blame_ast_node_parent( unique int node: @blame_ast_node ref, - int parent: @blame_ast_node_parent ref, - int parent_index: int ref, - int loc: @location_default ref + int parent: @blame_ast_node ref, + int parent_index: int ref ); /*- JSON dbscheme -*/ @@ -1304,13 +1310,15 @@ case @json_token.kind of @json_ast_node = @json_array | @json_document | @json_object | @json_pair | @json_string__ | @json_token -@json_ast_node_parent = @file | @json_ast_node +json_ast_node_location( + unique int node: @json_ast_node ref, + int loc: @location_default ref +); #keyset[parent, parent_index] -json_ast_node_info( +json_ast_node_parent( unique int node: @json_ast_node ref, - int parent: @json_ast_node_parent ref, - int parent_index: int ref, - int loc: @location_default ref + int parent: @json_ast_node ref, + int parent_index: int ref ); diff --git a/ql/ql/src/ql.dbscheme.stats b/ql/ql/src/ql.dbscheme.stats index 61923351ee97..1e992f7d7a40 100644 --- a/ql/ql/src/ql.dbscheme.stats +++ b/ql/ql/src/ql.dbscheme.stats @@ -29,115 +29,115 @@ @dbscheme_annotation - 20670 + 30564 @dbscheme_args_annotation - 20661 + 30555 @dbscheme_branch - 116911 + 151025 @dbscheme_case_decl - 4372 + 5423 @dbscheme_col_type - 252564 + 341399 @dbscheme_column - 252564 + 341399 @dbscheme_dbscheme - 532 + 686 @dbscheme_entry - 169630 + 230044 @dbscheme_repr_type - 252564 + 341399 @dbscheme_reserved_word - 1309648 + 1756569 @dbscheme_table - 105934 + 146537 @dbscheme_table_name - 105934 + 146537 @dbscheme_token_annot_name - 20670 + 30564 @dbscheme_token_block_comment - 17513 + 22060 @dbscheme_token_boolean - 1440 + 2146 @dbscheme_token_date - 1042 + 1170 @dbscheme_token_dbtype - 565153 + 750840 @dbscheme_token_float - 2354 + 2962 @dbscheme_token_int - 258872 + 350777 @dbscheme_token_integer - 124608 + 158986 @dbscheme_token_line_comment - 37863 + 62355 @dbscheme_token_qldoc - 8004 + 10956 @dbscheme_token_ref - 210468 + 281648 @dbscheme_token_simple_id - 397838 + 543204 @dbscheme_token_string - 51435 + 67865 @dbscheme_token_unique - 75701 + 102289 @dbscheme_token_varchar - 7697 + 7961 @dbscheme_union_decl - 51790 + 67798 @diagnostic_debug @@ -157,255 +157,255 @@ @file - 11682 + 12283 @folder - 3982 + 4402 @json_array - 481 + 2026 @json_document - 272 + 324 @json_object - 787 + 5034 @json_pair - 2223 + 12461 @json_reserved_word - 19369 + 82515 @json_string__ - 5469 + 22176 @json_token_comment - 18 + 19 @json_token_false - 259 + 607 @json_token_null - 106 + 248 @json_token_number - 27 + 71 @json_token_string_content - 5465 + 22171 @json_token_true - 246 + 978 @location_default - 8479546 + 9617371 @ql_add_expr - 14857 + 13786 @ql_aggregate - 9694 + 9053 @ql_annot_arg - 6094 + 4043 @ql_annotation - 72771 + 65278 @ql_arityless_predicate_expr - 67354 + 58107 @ql_as_expr - 19448 + 20508 @ql_as_exprs - 8242 + 8493 @ql_body - 70726 + 65826 @ql_bool - 5039 + 4274 @ql_call_body - 66692 + 57368 @ql_call_or_unqual_agg_expr - 66692 + 57368 @ql_charpred - 12588 + 12088 @ql_class_member - 84646 + 79133 @ql_classless_predicate - 24640 + 23253 @ql_comp_term - 138784 + 140334 @ql_conjunction - 80925 + 76308 @ql_dataclass - 23834 + 22563 @ql_datatype - 809 + 548 @ql_datatype_branch - 3437 + 2719 @ql_datatype_branches - 809 + 548 @ql_disjunction - 40259 + 44890 @ql_expr_aggregate_body - 1293 + 1216 @ql_expr_annotation - 1328 + 601 @ql_field - 4149 + 3721 @ql_full_aggregate_body - 6714 + 6356 @ql_higher_order_term - 105 + 77 @ql_if_term - 3226 + 2953 @ql_implication - 87 + 101 @ql_import_directive - 24818 + 25764 @ql_import_module_expr - 24818 + 25764 @ql_in_expr - 1003 + 1037 @ql_instance_of - 17128 + 15913 @ql_literal - 98847 + 109390 @ql_member_predicate - 47549 + 43952 @ql_module - 3916 + 4567 @ql_module_alias_body - 725 + 917 @ql_module_expr - 72503 + 76399 @ql_module_instantiation - 1043 + 1740 @ql_module_member - 119591 + 118178 @ql_module_name - 6324 + 7606 @ql_module_param - 299 + 266 @ql_mul_expr - 631 + 585 @ql_negation - 12010 + 11727 @ql_order_by - 1098 + 1067 @ql_order_bys - 674 + 661 @ql_par_expr - 6038 + 5799 @ql_predicate_alias_body - 329 + 372 @ql_predicate_expr - 662 + 739 @ql_prefix_cast @@ -413,183 +413,183 @@ @ql_ql - 10785 + 11167 @ql_qualified_expr - 168511 + 165157 @ql_qualified_rhs - 168511 + 165157 @ql_quantified - 26111 + 24227 @ql_range - 417 + 365 @ql_reserved_word - 1966059 + 1875319 @ql_select - 5640 + 5989 @ql_set_literal - 3557 + 4014 @ql_signature_expr - 2248 + 3709 @ql_special_call - 4863 + 4424 @ql_super_ref - 2444 + 2901 @ql_token_addop - 14857 + 13786 @ql_token_agg_id - 9694 + 9053 @ql_token_annot_name - 75427 + 66480 @ql_token_block_comment - 1061 + 992 @ql_token_class_name - 224655 + 204253 @ql_token_closure - 2123 + 2234 @ql_token_compop - 138784 + 140334 @ql_token_dbtype - 3604 + 3766 @ql_token_direction - 200 + 205 @ql_token_empty - 2683 + 2344 @ql_token_false - 2391 + 1973 @ql_token_float - 296 + 305 @ql_token_integer - 20738 + 21612 @ql_token_line_comment - 20706 + 20888 @ql_token_literal_id - 67459 + 58184 @ql_token_mulop - 631 + 585 @ql_token_predicate - 28901 + 26200 @ql_token_predicate_name - 229368 + 221079 @ql_token_primitive_type - 49384 + 47956 @ql_token_qldoc - 56786 + 55406 @ql_token_quantifier - 26111 + 24227 @ql_token_result - 55181 + 52493 @ql_token_simple_id - 542286 + 512064 @ql_token_special_id - 4863 + 4424 @ql_token_string - 73436 + 83938 @ql_token_super - 2444 + 2901 @ql_token_this - 53091 + 50826 @ql_token_true - 2648 + 2301 @ql_token_underscore - 20351 + 17184 @ql_token_unop - 1171 + 1158 @ql_type_alias_body - 1245 + 817 @ql_type_expr - 236975 + 218057 @ql_type_union_body - 249 + 253 @ql_unary_expr - 1171 + 1158 @ql_unqual_agg_body @@ -597,15 +597,15 @@ @ql_var_decl - 129441 + 114137 @ql_var_name - 415356 + 380908 @ql_variable - 393587 + 369462 @yaml_alias_node @@ -617,33 +617,25 @@ @yaml_mapping_node - 160 + 186 @yaml_scalar_node - 1136 + 1481 @yaml_sequence_node - 52 + 59 - blame_ast_node_info + blame_ast_node_location 0 node 0 - - parent - 0 - - - parent_index - 0 - loc 0 @@ -652,7 +644,7 @@ node - parent + loc 12 @@ -666,9 +658,39 @@ + + loc + node + + + 12 + + + + + + + + blame_ast_node_parent + 0 + + + node + 0 + + + parent + 0 + + + parent_index + 0 + + + node - parent_index + parent 12 @@ -684,7 +706,7 @@ node - loc + parent_index 12 @@ -718,16 +740,6 @@ - - parent - loc - - - 12 - - - - parent_index node @@ -748,46 +760,6 @@ - - parent_index - loc - - - 12 - - - - - - loc - node - - - 12 - - - - - - loc - parent - - - 12 - - - - - - loc - parent_index - - - 12 - - - - @@ -1286,15 +1258,15 @@ containerparent - 15662 + 16683 parent - 3982 + 4402 child - 15662 + 16683 @@ -1308,32 +1280,32 @@ 1 2 - 1880 + 2157 2 3 - 882 + 978 3 4 - 354 + 375 4 6 - 334 + 348 6 - 14 - 312 + 15 + 339 - 14 - 240 - 220 + 15 + 255 + 205 @@ -1349,7 +1321,7 @@ 1 2 - 15662 + 16683 @@ -1359,15 +1331,15 @@ dbscheme_annotation_args_annotation - 20661 + 30555 dbscheme_annotation - 20661 + 30555 args_annotation - 20661 + 30555 @@ -1381,7 +1353,7 @@ 1 2 - 20661 + 30555 @@ -1397,7 +1369,7 @@ 1 2 - 20661 + 30555 @@ -1407,11 +1379,11 @@ dbscheme_annotation_def - 20670 + 30564 id - 20670 + 30564 @@ -1466,11 +1438,11 @@ dbscheme_args_annotation_child - 34968 + 49845 dbscheme_args_annotation - 20661 + 30555 index @@ -1478,7 +1450,7 @@ child - 34968 + 49845 @@ -1492,17 +1464,17 @@ 1 2 - 7137 + 12292 2 3 - 12741 + 17236 3 4 - 783 + 1027 @@ -1518,17 +1490,17 @@ 1 2 - 7137 + 12292 2 3 - 12741 + 17236 3 4 - 783 + 1027 @@ -1542,18 +1514,18 @@ 12 - 783 - 784 + 1027 + 1028 1 - 13524 - 13525 + 18263 + 18264 1 - 20661 - 20662 + 30555 + 30556 1 @@ -1568,18 +1540,18 @@ 12 - 783 - 784 + 1027 + 1028 1 - 13524 - 13525 + 18263 + 18264 1 - 20661 - 20662 + 30555 + 30556 1 @@ -1596,7 +1568,7 @@ 1 2 - 34968 + 49845 @@ -1612,7 +1584,7 @@ 1 2 - 34968 + 49845 @@ -1622,15 +1594,15 @@ dbscheme_args_annotation_def - 20661 + 30555 id - 20661 + 30555 name - 20661 + 30555 @@ -1644,7 +1616,7 @@ 1 2 - 20661 + 30555 @@ -1660,7 +1632,7 @@ 1 2 - 20661 + 30555 @@ -1669,30 +1641,22 @@ - dbscheme_ast_node_info - 4444432 + dbscheme_ast_node_location + 5985718 node - 4444432 - - - parent - 1354658 - - - parent_index - 476 + 5985718 loc - 3650776 + 4903745 node - parent + loc 12 @@ -1700,15 +1664,15 @@ 1 2 - 4444432 + 5985718 - node - parent_index + loc + node 12 @@ -1716,15 +1680,40 @@ 1 2 - 4444432 + 3821772 + + + 2 + 3 + 1081973 + + + + dbscheme_ast_node_parent + 5900617 + + + node + 5900617 + + + parent + 1833365 + + + parent_index + 501 + + + node - loc + parent 12 @@ -1732,15 +1721,15 @@ 1 2 - 4444432 + 5900617 - parent - node + node + parent_index 12 @@ -1748,32 +1737,7 @@ 1 2 - 793673 - - - 2 - 4 - 117079 - - - 4 - 5 - 11481 - - - 5 - 6 - 247420 - - - 6 - 8 - 112901 - - - 8 - 477 - 72104 + 5900617 @@ -1781,7 +1745,7 @@ parent - parent_index + node 12 @@ -1789,32 +1753,32 @@ 1 2 - 793673 + 1081973 2 4 - 117079 + 151168 4 5 - 11481 + 13080 5 6 - 247420 + 341594 6 8 - 112901 + 149771 8 - 477 - 72104 + 502 + 95779 @@ -1822,7 +1786,7 @@ parent - loc + parent_index 12 @@ -1830,32 +1794,32 @@ 1 2 - 793673 + 1081973 2 4 - 117079 + 151168 4 5 - 11481 + 13080 5 6 - 247420 + 341594 6 8 - 112901 + 149771 8 - 477 - 72104 + 502 + 95779 @@ -1869,69 +1833,69 @@ 12 - 7 - 257 - 39 + 3 + 140 + 38 - 258 - 307 + 147 + 386 38 - 321 - 338 - 42 + 387 + 491 + 31 - 345 - 508 - 37 + 491 + 492 + 49 - 508 - 652 - 37 + 499 + 712 + 38 - 661 - 763 - 36 + 717 + 841 + 42 - 769 - 930 - 36 + 842 + 1054 + 38 - 936 - 1034 - 36 + 1055 + 1190 + 44 - 1047 - 1122 - 36 + 1192 + 1357 + 41 - 1122 - 1375 - 36 + 1362 + 1575 + 39 - 1381 - 1960 - 36 + 1582 + 2577 + 38 - 2174 - 3839 - 36 + 2626 + 5260 + 38 - 3932 - 1354659 - 31 + 5283 + 1833366 + 27 @@ -1945,260 +1909,121 @@ 12 - 7 - 257 - 39 + 3 + 140 + 38 - 258 - 307 + 147 + 386 38 - 321 - 338 - 42 + 387 + 491 + 31 - 345 - 508 - 37 + 491 + 492 + 49 - 508 - 652 - 37 + 499 + 712 + 38 - 661 - 763 - 36 + 717 + 841 + 42 - 769 - 930 - 36 + 842 + 1054 + 38 - 936 - 1034 - 36 + 1055 + 1190 + 44 - 1047 - 1122 - 36 + 1192 + 1357 + 41 - 1122 - 1375 - 36 + 1362 + 1575 + 39 - 1381 - 1960 - 36 + 1582 + 2577 + 38 - 2174 - 3839 - 36 + 2626 + 5260 + 38 - 3932 - 1354659 - 31 + 5283 + 1833366 + 27 + + + + dbscheme_branch_child + 302050 + + + dbscheme_branch + 151025 + + + index + 2 + + + child + 302050 + + + - parent_index - loc + dbscheme_branch + index 12 - 7 - 257 - 39 - - - 258 - 307 - 38 + 2 + 3 + 151025 + + + + + + dbscheme_branch + child + + + 12 + - 321 - 338 - 42 - - - 345 - 508 - 37 - - - 508 - 652 - 37 - - - 661 - 763 - 36 - - - 769 - 930 - 36 - - - 936 - 1034 - 36 - - - 1047 - 1122 - 36 - - - 1122 - 1375 - 36 - - - 1381 - 1960 - 36 - - - 2174 - 3839 - 36 - - - 3932 - 1079008 - 31 - - - - - - - loc - node - - - 12 - - - 1 - 2 - 2857120 - - - 2 - 3 - 793656 - - - - - - - loc - parent - - - 12 - - - 1 - 2 - 2857120 - - - 2 - 3 - 793656 - - - - - - - loc - parent_index - - - 12 - - - 1 - 2 - 3132771 - - - 2 - 3 - 518005 - - - - - - - - - dbscheme_branch_child - 233822 - - - dbscheme_branch - 116911 - - - index - 2 - - - child - 233822 - - - - - dbscheme_branch - index - - - 12 - - - 2 - 3 - 116911 - - - - - - - dbscheme_branch - child - - - 12 - - - 2 - 3 - 116911 + 2 + 3 + 151025 @@ -2212,8 +2037,8 @@ 12 - 116911 - 116912 + 151025 + 151026 2 @@ -2228,8 +2053,8 @@ 12 - 116911 - 116912 + 151025 + 151026 2 @@ -2246,7 +2071,7 @@ 1 2 - 233822 + 302050 @@ -2262,7 +2087,7 @@ 1 2 - 233822 + 302050 @@ -2272,11 +2097,11 @@ dbscheme_branch_def - 116911 + 151025 id - 116911 + 151025 @@ -2331,11 +2156,11 @@ dbscheme_case_decl_child - 116911 + 151025 dbscheme_case_decl - 4372 + 5423 index @@ -2343,7 +2168,7 @@ child - 116911 + 151025 @@ -2362,57 +2187,57 @@ 2 3 - 661 + 841 3 4 - 486 + 605 4 5 - 595 + 691 5 6 - 335 + 456 6 8 - 187 + 218 9 - 12 - 335 + 11 + 408 - 12 + 11 18 - 347 + 438 21 29 - 395 + 467 29 38 - 360 + 436 38 - 116 - 335 + 117 + 407 - 116 + 118 219 - 335 + 455 @@ -2433,57 +2258,57 @@ 2 3 - 661 + 841 3 4 - 486 + 605 4 5 - 595 + 691 5 6 - 335 + 456 6 8 - 187 + 218 9 - 12 - 335 + 11 + 408 - 12 + 11 18 - 347 + 438 21 29 - 395 + 467 29 38 - 360 + 436 38 - 116 - 335 + 117 + 407 - 116 + 118 219 - 335 + 455 @@ -2497,63 +2322,73 @@ 12 - 120 - 121 - 21 + 156 + 157 + 20 + + + 159 + 160 + 1 - 135 - 136 + 219 + 220 27 - 143 - 210 + 227 + 294 11 - 227 - 228 - 34 + 311 + 312 + 32 - 238 - 404 + 330 + 494 17 - 405 - 421 - 20 + 521 + 544 + 13 - 449 - 452 + 544 + 548 + 9 + + + 581 + 584 15 - 466 - 469 + 598 + 601 17 - 472 - 607 + 643 + 795 17 - 614 - 1424 + 802 + 1764 17 - 1424 - 2295 + 1764 + 2830 17 - 2629 - 4373 + 3285 + 5424 5 @@ -2568,63 +2403,73 @@ 12 - 120 - 121 - 21 + 156 + 157 + 20 + + + 159 + 160 + 1 - 135 - 136 + 219 + 220 27 - 143 - 210 + 227 + 294 11 - 227 - 228 - 34 + 311 + 312 + 32 - 238 - 404 + 330 + 494 17 - 405 - 421 - 20 + 521 + 544 + 13 + + + 544 + 548 + 9 - 449 - 452 + 581 + 584 15 - 466 - 469 + 598 + 601 17 - 472 - 607 + 643 + 795 17 - 614 - 1424 + 802 + 1764 17 - 1424 - 2295 + 1764 + 2830 17 - 2629 - 4373 + 3285 + 5424 5 @@ -2641,7 +2486,7 @@ 1 2 - 116911 + 151025 @@ -2657,7 +2502,7 @@ 1 2 - 116911 + 151025 @@ -2667,19 +2512,19 @@ dbscheme_case_decl_def - 4372 + 5423 id - 4372 + 5423 base - 4372 + 5423 discriminator - 4372 + 5423 @@ -2693,7 +2538,7 @@ 1 2 - 4372 + 5423 @@ -2709,7 +2554,7 @@ 1 2 - 4372 + 5423 @@ -2725,7 +2570,7 @@ 1 2 - 4372 + 5423 @@ -2741,7 +2586,7 @@ 1 2 - 4372 + 5423 @@ -2757,7 +2602,7 @@ 1 2 - 4372 + 5423 @@ -2773,7 +2618,7 @@ 1 2 - 4372 + 5423 @@ -2783,15 +2628,15 @@ dbscheme_col_type_def - 252564 + 341399 id - 252564 + 341399 child - 252564 + 341399 @@ -2805,7 +2650,7 @@ 1 2 - 252564 + 341399 @@ -2821,7 +2666,7 @@ 1 2 - 252564 + 341399 @@ -2831,23 +2676,23 @@ dbscheme_column_def - 252564 + 341399 id - 252564 + 341399 col_name - 252564 + 341399 col_type - 252564 + 341399 repr_type - 252564 + 341399 @@ -2861,7 +2706,7 @@ 1 2 - 252564 + 341399 @@ -2877,7 +2722,7 @@ 1 2 - 252564 + 341399 @@ -2893,7 +2738,7 @@ 1 2 - 252564 + 341399 @@ -2909,7 +2754,7 @@ 1 2 - 252564 + 341399 @@ -2925,7 +2770,7 @@ 1 2 - 252564 + 341399 @@ -2941,7 +2786,7 @@ 1 2 - 252564 + 341399 @@ -2957,7 +2802,7 @@ 1 2 - 252564 + 341399 @@ -2973,7 +2818,7 @@ 1 2 - 252564 + 341399 @@ -2989,7 +2834,7 @@ 1 2 - 252564 + 341399 @@ -3005,7 +2850,7 @@ 1 2 - 252564 + 341399 @@ -3021,7 +2866,7 @@ 1 2 - 252564 + 341399 @@ -3037,7 +2882,7 @@ 1 2 - 252564 + 341399 @@ -3047,15 +2892,15 @@ dbscheme_column_is_ref - 210468 + 281648 dbscheme_column - 210468 + 281648 is_ref - 210468 + 281648 @@ -3069,7 +2914,7 @@ 1 2 - 210468 + 281648 @@ -3085,7 +2930,7 @@ 1 2 - 210468 + 281648 @@ -3095,15 +2940,15 @@ dbscheme_column_is_unique - 75701 + 102289 dbscheme_column - 75701 + 102289 is_unique - 75701 + 102289 @@ -3117,7 +2962,7 @@ 1 2 - 75701 + 102289 @@ -3133,7 +2978,7 @@ 1 2 - 75701 + 102289 @@ -3143,15 +2988,15 @@ dbscheme_column_qldoc - 470 + 670 dbscheme_column - 470 + 670 qldoc - 470 + 670 @@ -3165,7 +3010,7 @@ 1 2 - 470 + 670 @@ -3181,7 +3026,7 @@ 1 2 - 470 + 670 @@ -3191,19 +3036,19 @@ dbscheme_dbscheme_child - 169630 + 230044 dbscheme_dbscheme - 532 + 685 index - 476 + 501 child - 169630 + 230044 @@ -3216,68 +3061,68 @@ 2 - 142 - 43 - - - 142 - 200 - 40 + 147 + 56 - 200 - 259 - 41 + 148 + 205 + 55 - 260 - 278 - 41 + 205 + 275 + 54 - 278 - 288 - 38 + 275 + 287 + 52 - 290 - 305 - 46 + 287 + 306 + 62 - 305 - 310 - 42 + 307 + 312 + 52 - 310 - 315 - 40 + 313 + 320 + 56 - 316 + 320 418 - 43 + 55 418 - 457 + 460 + 58 + + + 460 + 464 46 - 457 - 462 - 28 + 465 + 469 + 59 - 462 - 466 - 45 + 470 + 478 + 57 - 466 - 477 - 39 + 478 + 502 + 23 @@ -3292,68 +3137,68 @@ 2 - 142 - 43 - - - 142 - 200 - 40 + 147 + 56 - 200 - 259 - 41 + 148 + 205 + 55 - 260 - 278 - 41 + 205 + 275 + 54 - 278 - 288 - 38 + 275 + 287 + 52 - 290 - 305 - 46 + 287 + 306 + 62 - 305 - 310 - 42 + 307 + 312 + 52 - 310 - 315 - 40 + 313 + 320 + 56 - 316 + 320 418 - 43 + 55 418 - 457 + 460 + 58 + + + 460 + 464 46 - 457 - 462 - 28 + 465 + 469 + 59 - 462 - 466 - 45 + 470 + 478 + 57 - 466 - 477 - 39 + 478 + 502 + 23 @@ -3367,58 +3212,63 @@ 12 - 7 - 137 - 39 + 3 + 140 + 38 - 138 - 187 - 43 + 147 + 230 + 38 + + + 231 + 272 + 31 - 187 - 188 + 272 + 273 70 - 190 - 330 - 37 + 279 + 469 + 38 - 331 - 418 - 36 + 470 + 561 + 37 - 419 - 422 - 42 + 562 + 563 + 40 - 422 - 452 + 563 + 601 40 - 452 - 502 - 36 + 601 + 664 + 41 - 510 - 529 - 32 + 664 + 682 + 27 - 529 - 530 + 682 + 683 76 - 530 - 533 + 683 + 686 25 @@ -3433,58 +3283,63 @@ 12 - 7 - 137 - 39 + 3 + 140 + 38 - 138 - 187 - 43 + 147 + 230 + 38 - 187 - 188 + 231 + 272 + 31 + + + 272 + 273 70 - 190 - 330 - 37 + 279 + 469 + 38 - 331 - 418 - 36 + 470 + 561 + 37 - 419 - 422 - 42 + 562 + 563 + 40 - 422 - 452 + 563 + 601 40 - 452 - 502 - 36 + 601 + 664 + 41 - 510 - 529 - 32 + 664 + 682 + 27 - 529 - 530 + 682 + 683 76 - 530 - 533 + 683 + 686 25 @@ -3501,7 +3356,7 @@ 1 2 - 169630 + 230044 @@ -3517,7 +3372,7 @@ 1 2 - 169630 + 230044 @@ -3527,26 +3382,26 @@ dbscheme_dbscheme_def - 532 + 686 id - 532 + 686 dbscheme_entry_def - 169630 + 230044 id - 169630 + 230044 child - 169630 + 230044 @@ -3560,7 +3415,7 @@ 1 2 - 169630 + 230044 @@ -3576,7 +3431,7 @@ 1 2 - 169630 + 230044 @@ -3586,11 +3441,11 @@ dbscheme_repr_type_child - 260261 + 349360 dbscheme_repr_type - 252564 + 341399 index @@ -3598,7 +3453,7 @@ child - 260261 + 349360 @@ -3612,12 +3467,12 @@ 1 2 - 244867 + 333438 2 3 - 7697 + 7961 @@ -3633,12 +3488,12 @@ 1 2 - 244867 + 333438 2 3 - 7697 + 7961 @@ -3652,13 +3507,13 @@ 12 - 7697 - 7698 + 7961 + 7962 1 - 252564 - 252565 + 341399 + 341400 1 @@ -3673,13 +3528,13 @@ 12 - 7697 - 7698 + 7961 + 7962 1 - 252564 - 252565 + 341399 + 341400 1 @@ -3696,7 +3551,7 @@ 1 2 - 260261 + 349360 @@ -3712,7 +3567,7 @@ 1 2 - 260261 + 349360 @@ -3722,22 +3577,22 @@ dbscheme_repr_type_def - 252564 + 341399 id - 252564 + 341399 dbscheme_table_child - 273234 + 371963 dbscheme_table - 105934 + 146537 index @@ -3745,7 +3600,7 @@ child - 273234 + 371963 @@ -3759,32 +3614,32 @@ 1 2 - 22414 + 32738 2 3 - 41141 + 55828 3 4 - 16585 + 24047 4 5 - 16007 + 21522 5 7 - 9023 + 11405 7 11 - 764 + 997 @@ -3800,32 +3655,32 @@ 1 2 - 22414 + 32738 2 3 - 41141 + 55828 3 4 - 16585 + 24047 4 5 - 16007 + 21522 5 7 - 9023 + 11405 7 11 - 764 + 997 @@ -3844,48 +3699,48 @@ 1 - 145 - 146 + 181 + 182 1 - 265 - 266 + 337 + 338 1 - 764 - 765 + 997 + 998 1 - 4621 - 4622 + 5790 + 5791 1 - 9787 - 9788 + 12402 + 12403 1 - 25794 - 25795 + 33924 + 33925 1 - 42379 - 42380 + 57971 + 57972 1 - 83520 - 83521 + 113799 + 113800 1 - 105934 - 105935 + 146537 + 146538 1 @@ -3905,48 +3760,48 @@ 1 - 145 - 146 + 181 + 182 1 - 265 - 266 + 337 + 338 1 - 764 - 765 + 997 + 998 1 - 4621 - 4622 + 5790 + 5791 1 - 9787 - 9788 + 12402 + 12403 1 - 25794 - 25795 + 33924 + 33925 1 - 42379 - 42380 + 57971 + 57972 1 - 83520 - 83521 + 113799 + 113800 1 - 105934 - 105935 + 146537 + 146538 1 @@ -3963,7 +3818,7 @@ 1 2 - 273234 + 371963 @@ -3979,7 +3834,7 @@ 1 2 - 273234 + 371963 @@ -3989,15 +3844,15 @@ dbscheme_table_def - 105934 + 146537 id - 105934 + 146537 table_name - 105934 + 146537 @@ -4011,7 +3866,7 @@ 1 2 - 105934 + 146537 @@ -4027,7 +3882,7 @@ 1 2 - 105934 + 146537 @@ -4037,15 +3892,15 @@ dbscheme_table_name_def - 105934 + 146537 id - 105934 + 146537 child - 105934 + 146537 @@ -4059,7 +3914,7 @@ 1 2 - 105934 + 146537 @@ -4075,7 +3930,7 @@ 1 2 - 105934 + 146537 @@ -4085,11 +3940,11 @@ dbscheme_tokeninfo - 3090306 + 4152352 id - 3090306 + 4152352 kind @@ -4097,7 +3952,7 @@ value - 7109 + 7232 @@ -4111,7 +3966,7 @@ 1 2 - 3090306 + 4152352 @@ -4127,7 +3982,7 @@ 1 2 - 3090306 + 4152352 @@ -4141,83 +3996,83 @@ 12 - 1042 - 1043 + 1170 + 1171 1 - 1440 - 1441 + 2146 + 2147 1 - 2354 - 2355 + 2962 + 2963 1 - 7697 - 7698 + 7961 + 7962 1 - 8004 - 8005 + 10956 + 10957 1 - 17513 - 17514 + 22060 + 22061 1 - 20670 - 20671 + 30564 + 30565 1 - 37863 - 37864 + 62355 + 62356 1 - 51435 - 51436 + 67865 + 67866 1 - 75701 - 75702 + 102289 + 102290 1 - 124608 - 124609 + 158986 + 158987 1 - 210468 - 210469 + 281648 + 281649 1 - 258872 - 258873 + 350777 + 350778 1 - 397838 - 397839 + 543204 + 543205 1 - 565153 - 565154 + 750840 + 750841 1 - 1309648 - 1309649 + 1756569 + 1756570 1 @@ -4247,33 +4102,33 @@ 1 - 99 - 100 + 100 + 101 1 - 197 - 198 + 207 + 208 1 - 302 - 303 + 303 + 304 1 - 595 - 596 + 616 + 617 1 - 2601 - 2602 + 2655 + 2656 1 - 3292 - 3293 + 3328 + 3329 1 @@ -4294,68 +4149,68 @@ 3 - 9 - 534 + 13 + 575 - 9 - 25 - 543 + 13 + 29 + 422 - 25 - 32 - 544 + 29 + 38 + 546 - 32 - 51 - 471 + 38 + 56 + 638 - 51 - 67 - 534 + 56 + 77 + 597 - 67 - 73 - 567 + 77 + 116 + 541 - 73 - 107 - 611 + 116 + 149 + 543 - 107 - 121 - 590 + 149 + 156 + 481 - 121 - 157 - 534 + 156 + 199 + 544 - 158 - 235 - 412 + 202 + 312 + 540 - 240 - 322 - 544 + 312 + 416 + 543 - 324 - 1897 - 534 + 416 + 1685 + 543 - 2000 - 270542 - 72 + 1697 + 354482 + 100 @@ -4371,7 +4226,7 @@ 1 2 - 7109 + 7232 @@ -4381,11 +4236,11 @@ dbscheme_union_decl_child - 209792 + 276677 dbscheme_union_decl - 51790 + 67798 index @@ -4393,7 +4248,7 @@ child - 209792 + 276677 @@ -4407,37 +4262,42 @@ 1 2 - 2156 + 2870 2 3 - 25065 + 33104 3 4 - 7795 + 10107 4 5 - 4896 + 6309 5 6 - 3506 + 4592 6 9 - 4492 + 5609 9 + 69 + 5085 + + + 85 106 - 3880 + 122 @@ -4453,37 +4313,42 @@ 1 2 - 2156 + 2870 2 3 - 25065 + 33104 3 4 - 7795 + 10107 4 5 - 4896 + 6309 5 6 - 3506 + 4592 6 9 - 4492 + 5609 9 + 69 + 5085 + + + 85 106 - 3880 + 122 @@ -4497,63 +4362,68 @@ 12 - 7 - 40 + 11 + 44 7 - 41 - 42 + 45 + 46 11 - 55 - 56 + 59 + 103 2 - 70 - 71 + 122 + 123 17 - 71 - 72 - 10 + 123 + 124 + 6 - 98 - 147 - 9 + 126 + 166 + 8 - 213 - 223 - 9 + 173 + 319 + 6 + + + 327 + 328 + 8 - 223 - 399 + 328 + 544 8 - 453 - 477 + 647 + 671 8 - 505 - 1059 + 699 + 1414 8 - 1142 - 3881 + 1501 + 5208 8 - 4790 - 51791 + 6334 + 67799 8 @@ -4568,63 +4438,68 @@ 12 - 7 - 40 + 11 + 44 7 - 41 - 42 + 45 + 46 11 - 55 - 56 + 59 + 103 2 - 70 - 71 + 122 + 123 17 - 71 - 72 - 10 + 123 + 124 + 6 - 98 - 147 - 9 + 126 + 166 + 8 - 213 - 223 - 9 + 173 + 319 + 6 + + + 327 + 328 + 8 - 223 - 399 + 328 + 544 8 - 453 - 477 + 647 + 671 8 - 505 - 1059 + 699 + 1414 8 - 1142 - 3881 + 1501 + 5208 8 - 4790 - 51791 + 6334 + 67799 8 @@ -4641,7 +4516,7 @@ 1 2 - 209792 + 276677 @@ -4657,7 +4532,7 @@ 1 2 - 209792 + 276677 @@ -4667,15 +4542,15 @@ dbscheme_union_decl_def - 51790 + 67798 id - 51790 + 67798 base - 51790 + 67798 @@ -4689,7 +4564,7 @@ 1 2 - 51790 + 67798 @@ -4705,7 +4580,7 @@ 1 2 - 51790 + 67798 @@ -5242,15 +5117,15 @@ files - 11682 + 12283 id - 11682 + 12283 name - 11682 + 12283 @@ -5264,7 +5139,7 @@ 1 2 - 11682 + 12283 @@ -5280,7 +5155,7 @@ 1 2 - 11682 + 12283 @@ -5290,15 +5165,15 @@ folders - 3982 + 4402 id - 3982 + 4402 name - 3982 + 4402 @@ -5312,7 +5187,7 @@ 1 2 - 3982 + 4402 @@ -5328,7 +5203,7 @@ 1 2 - 3982 + 4402 @@ -5338,11 +5213,11 @@ json_array_child - 2660 + 5897 json_array - 450 + 1962 index @@ -5350,7 +5225,7 @@ child - 2660 + 5897 @@ -5364,32 +5239,27 @@ 1 2 - 129 + 935 2 3 - 136 + 623 3 4 - 78 + 179 4 - 5 - 37 - - - 5 7 - 41 + 149 7 612 - 29 + 76 @@ -5405,32 +5275,27 @@ 1 2 - 129 + 935 2 3 - 136 + 623 3 4 - 78 + 179 4 - 5 - 37 - - - 5 7 - 41 + 149 7 612 - 29 + 76 @@ -5451,26 +5316,31 @@ 2 3 - 84 + 26 3 4 - 61 + 58 4 - 7 + 5 + 61 + + + 5 + 8 48 - 7 - 22 + 8 + 61 46 - 26 - 451 + 69 + 1963 8 @@ -5492,26 +5362,31 @@ 2 3 - 84 + 26 3 4 - 61 + 58 4 - 7 + 5 + 61 + + + 5 + 8 48 - 7 - 22 + 8 + 61 46 - 26 - 451 + 69 + 1963 8 @@ -5528,7 +5403,7 @@ 1 2 - 2660 + 5897 @@ -5544,7 +5419,7 @@ 1 2 - 2660 + 5897 @@ -5554,40 +5429,32 @@ json_array_def - 481 + 2026 id - 481 + 2026 - json_ast_node_info - 34722 + json_ast_node_location + 148630 node - 34722 - - - parent - 9501 - - - parent_index - 1223 + 148630 loc - 34603 + 148504 node - parent + loc 12 @@ -5595,15 +5462,15 @@ 1 2 - 34722 + 148630 - node - parent_index + loc + node 12 @@ -5611,15 +5478,40 @@ 1 2 - 34722 + 148378 + + + 2 + 3 + 126 + + + + json_ast_node_parent + 148287 + + + node + 148287 + + + parent + 42018 + + + parent_index + 1223 + + + node - loc + parent 12 @@ -5627,38 +5519,23 @@ 1 2 - 34722 + 148287 - parent - node + node + parent_index 12 1 - 3 - 597 - - - 3 - 4 - 8027 - - - 4 - 12 - 718 - - - 13 - 1224 - 159 + 2 + 148287 @@ -5666,7 +5543,7 @@ parent - parent_index + node 12 @@ -5674,22 +5551,22 @@ 1 3 - 597 + 608 3 4 - 8027 + 36317 4 - 12 - 718 + 6 + 3406 - 13 + 7 1224 - 159 + 1687 @@ -5697,7 +5574,7 @@ parent - loc + parent_index 12 @@ -5705,22 +5582,22 @@ 1 3 - 597 + 608 3 4 - 8027 + 36317 4 - 12 - 718 + 6 + 3406 - 13 + 7 1224 - 159 + 1687 @@ -5741,68 +5618,37 @@ 2 3 - 168 + 52 3 4 - 106 + 116 4 - 7 - 96 - - - 7 - 22 - 94 - - - 22 - 9502 - 31 - - - - - - - parent_index - parent - - - 12 - - - 1 - 2 - 728 - - - 2 - 3 - 168 + 6 + 54 - 3 - 4 - 106 + 6 + 7 + 68 - 4 - 7 + 7 + 12 96 - 7 - 22 - 94 + 12 + 213 + 92 - 22 - 9502 - 31 + 226 + 42019 + 17 @@ -5810,7 +5656,7 @@ parent_index - loc + parent 12 @@ -5823,90 +5669,37 @@ 2 3 - 168 + 52 3 4 - 106 + 116 4 - 7 - 96 - - - 7 - 22 - 94 - - - 22 - 9385 - 31 - - - - - - - loc - node - - - 12 - - - 1 - 2 - 34484 - - - 2 - 3 - 119 + 6 + 54 - - - - - - loc - parent - - - 12 - - 1 - 2 - 34484 + 6 + 7 + 68 - 2 - 3 - 119 + 7 + 12 + 96 - - - - - - loc - parent_index - - - 12 - - 1 - 2 - 34601 + 12 + 213 + 92 - 2 - 3 - 2 + 226 + 42019 + 17 @@ -5916,11 +5709,11 @@ json_document_child - 269 + 321 json_document - 269 + 321 index @@ -5928,7 +5721,7 @@ child - 269 + 321 @@ -5942,7 +5735,7 @@ 1 2 - 269 + 321 @@ -5958,7 +5751,7 @@ 1 2 - 269 + 321 @@ -5972,8 +5765,8 @@ 12 - 269 - 270 + 321 + 322 1 @@ -5988,8 +5781,8 @@ 12 - 269 - 270 + 321 + 322 1 @@ -6006,7 +5799,7 @@ 1 2 - 269 + 321 @@ -6022,7 +5815,7 @@ 1 2 - 269 + 321 @@ -6032,30 +5825,30 @@ json_document_def - 272 + 324 id - 272 + 324 json_object_child - 2223 + 12461 json_object - 763 + 4817 index - 110 + 159 child - 2223 + 12461 @@ -6069,32 +5862,27 @@ 1 2 - 211 + 754 2 3 - 322 + 2780 3 4 - 65 + 781 4 - 6 - 44 - - - 6 - 7 - 102 + 11 + 445 - 7 - 111 - 19 + 11 + 160 + 57 @@ -6110,32 +5898,27 @@ 1 2 - 211 + 754 2 3 - 322 + 2780 3 4 - 65 + 781 4 - 6 - 44 - - - 6 - 7 - 102 + 11 + 445 - 7 - 111 - 19 + 11 + 160 + 57 @@ -6151,37 +5934,42 @@ 1 2 - 61 + 23 2 3 - 11 + 65 3 4 - 10 + 2 4 5 - 2 + 20 5 6 - 14 + 11 - 7 - 166 - 9 + 6 + 9 + 12 - 230 - 764 - 3 + 9 + 10 + 14 + + + 13 + 4818 + 12 @@ -6197,37 +5985,42 @@ 1 2 - 61 + 23 2 3 - 11 + 65 3 4 - 10 + 2 4 5 - 2 + 20 5 6 - 14 + 11 - 7 - 166 - 9 + 6 + 9 + 12 - 230 - 764 - 3 + 9 + 10 + 14 + + + 13 + 4818 + 12 @@ -6243,7 +6036,7 @@ 1 2 - 2223 + 12461 @@ -6259,7 +6052,7 @@ 1 2 - 2223 + 12461 @@ -6269,30 +6062,30 @@ json_object_def - 787 + 5034 id - 787 + 5034 json_pair_def - 2223 + 12461 id - 2223 + 12461 key__ - 2223 + 12461 value - 2223 + 12461 @@ -6306,7 +6099,7 @@ 1 2 - 2223 + 12461 @@ -6322,7 +6115,7 @@ 1 2 - 2223 + 12461 @@ -6338,7 +6131,7 @@ 1 2 - 2223 + 12461 @@ -6354,7 +6147,7 @@ 1 2 - 2223 + 12461 @@ -6370,7 +6163,7 @@ 1 2 - 2223 + 12461 @@ -6386,7 +6179,7 @@ 1 2 - 2223 + 12461 @@ -6396,15 +6189,15 @@ json_string_child - 5465 + 22171 json_string__ - 5465 + 22171 child - 5465 + 22171 @@ -6418,7 +6211,7 @@ 1 2 - 5465 + 22171 @@ -6434,7 +6227,7 @@ 1 2 - 5465 + 22171 @@ -6444,22 +6237,22 @@ json_string_def - 5469 + 22176 id - 5469 + 22176 json_tokeninfo - 25490 + 106609 id - 25490 + 106609 kind @@ -6467,7 +6260,7 @@ value - 3153 + 4324 @@ -6481,7 +6274,7 @@ 1 2 - 25490 + 106609 @@ -6497,7 +6290,7 @@ 1 2 - 25490 + 106609 @@ -6511,38 +6304,38 @@ 12 - 18 - 19 + 19 + 20 1 - 27 - 28 + 71 + 72 1 - 106 - 107 + 248 + 249 1 - 246 - 247 + 607 + 608 1 - 259 - 260 + 978 + 979 1 - 5465 - 5466 + 22171 + 22172 1 - 19369 - 19370 + 82515 + 82516 1 @@ -6567,18 +6360,18 @@ 1 - 14 - 15 + 16 + 17 1 - 18 - 19 + 29 + 30 1 - 3111 - 3112 + 4277 + 4278 1 @@ -6595,17 +6388,27 @@ 1 2 - 2832 + 3160 2 - 7 - 246 + 3 + 406 - 7 - 10939 - 75 + 3 + 5 + 365 + + + 5 + 62 + 326 + + + 71 + 44353 + 67 @@ -6621,7 +6424,12 @@ 1 2 - 3153 + 4316 + + + 2 + 3 + 8 @@ -6631,31 +6439,31 @@ locations_default - 8479546 + 9617371 id - 8479546 + 9617371 file - 11682 + 12283 beginLine - 9036 + 11293 beginColumn - 1371 + 1385 endLine - 9036 + 11293 endColumn - 1376 + 1389 @@ -6669,7 +6477,7 @@ 1 2 - 8479546 + 9617371 @@ -6685,7 +6493,7 @@ 1 2 - 8479546 + 9617371 @@ -6701,7 +6509,7 @@ 1 2 - 8479546 + 9617371 @@ -6717,7 +6525,7 @@ 1 2 - 8479546 + 9617371 @@ -6733,7 +6541,7 @@ 1 2 - 8479546 + 9617371 @@ -6749,72 +6557,72 @@ 1 21 - 906 + 930 21 32 - 909 + 950 32 40 - 959 + 1024 40 54 - 882 + 930 54 - 70 - 903 + 72 + 952 - 70 - 88 - 878 + 72 + 89 + 965 - 88 - 117 - 880 - + 89 + 119 + 929 + - 117 - 160 - 879 + 119 + 164 + 934 - 160 - 236 - 880 + 164 + 243 + 923 - 236 - 377 - 877 + 243 + 392 + 923 - 377 - 709 - 878 + 392 + 748 + 923 - 709 - 2101 - 877 + 748 + 2678 + 922 - 2102 - 9785 - 880 + 2683 + 9950 + 923 - 9805 + 9962 54160 - 94 + 55 @@ -6830,72 +6638,72 @@ 1 3 - 511 + 434 3 4 - 1068 + 775 4 5 - 961 + 1146 5 6 - 680 + 995 6 7 - 632 + 691 7 9 - 946 + 988 9 11 - 969 + 919 11 - 16 - 1044 + 15 + 992 - 16 - 23 - 907 + 15 + 22 + 1018 - 23 - 36 - 906 + 22 + 34 + 975 - 36 - 65 - 885 + 34 + 61 + 935 - 65 - 158 - 879 + 61 + 143 + 922 - 158 - 1002 - 877 + 143 + 975 + 923 - 1002 - 9027 - 417 + 977 + 11284 + 570 @@ -6911,67 +6719,67 @@ 1 11 - 997 + 1028 11 17 - 858 + 920 17 21 - 876 + 913 21 26 - 967 + 1027 26 32 - 939 + 987 32 39 - 976 + 994 39 47 - 938 + 1014 47 - 56 - 928 + 57 + 1003 - 56 + 57 66 - 908 + 957 66 77 - 925 + 1001 77 87 - 897 + 934 87 - 98 - 929 + 99 + 1024 - 98 + 99 512 - 544 + 481 @@ -6987,72 +6795,72 @@ 1 3 - 510 + 434 3 4 - 1068 + 774 4 5 - 962 + 1147 5 6 - 680 + 995 6 7 - 632 + 690 7 9 - 946 + 989 9 11 - 969 + 919 11 - 16 - 1044 + 15 + 992 - 16 - 23 - 907 + 15 + 22 + 1018 - 23 - 36 - 906 + 22 + 34 + 975 - 36 - 65 - 885 + 34 + 61 + 935 - 65 - 158 - 879 + 61 + 143 + 922 - 158 - 1002 - 877 + 143 + 975 + 923 - 1002 - 9027 - 417 + 977 + 11284 + 570 @@ -7068,67 +6876,67 @@ 1 14 - 962 + 1008 14 - 20 - 888 + 21 + 1081 - 20 - 24 - 908 + 21 + 25 + 958 - 24 - 29 - 942 + 25 + 30 + 950 - 29 - 36 - 942 + 30 + 37 + 999 - 36 - 43 - 953 + 37 + 44 + 1031 - 43 - 51 - 914 + 44 + 52 + 923 - 51 - 61 - 930 + 52 + 62 + 946 - 61 - 72 - 954 + 62 + 73 + 1042 - 72 - 82 - 911 + 73 + 83 + 1006 - 82 - 92 - 914 + 83 + 93 + 934 - 92 - 102 - 933 + 93 + 104 + 945 - 102 + 104 523 - 531 + 460 @@ -7144,62 +6952,67 @@ 1 2 - 1328 + 1130 - 2 - 10 - 621 + 4 + 5 + 1128 - 10 + 5 11 - 1424 + 801 11 - 20 - 819 + 16 + 994 - 20 - 38 - 679 + 16 + 22 + 854 - 38 - 92 - 685 + 22 + 30 + 890 - 92 - 170 - 680 + 30 + 41 + 877 - 170 - 595 - 678 + 41 + 56 + 860 - 596 - 1692 - 679 + 56 + 92 + 854 + + + 92 + 1472 + 847 - 1692 - 3137 - 679 + 1499 + 2520 + 847 - 3137 - 12009 - 678 + 2527 + 5340 + 847 - 12114 - 51821 - 86 + 5348 + 46386 + 364 @@ -7215,52 +7028,62 @@ 1 2 - 2644 + 2258 2 3 - 1456 + 654 3 - 10 - 685 + 4 + 1191 - 10 - 11 - 354 + 4 + 5 + 1015 - 11 - 12 - 565 + 5 + 6 + 658 - 12 - 18 - 691 + 6 + 7 + 532 - 18 - 206 - 680 + 7 + 8 + 712 - 206 - 332 - 684 + 8 + 10 + 1014 + + + 10 + 109 + 852 + + + 109 + 400 + 847 - 332 - 542 - 679 + 400 + 626 + 849 - 542 - 11511 - 598 + 626 + 12065 + 711 @@ -7276,57 +7099,62 @@ 1 2 - 1516 + 1130 - 2 - 7 - 524 + 3 + 4 + 1454 - 7 + 4 8 - 1697 + 977 8 - 13 - 674 + 11 + 746 - 13 - 18 - 834 + 11 + 15 + 1029 - 18 - 28 - 695 + 15 + 20 + 966 - 28 - 46 - 696 + 20 + 27 + 942 - 46 - 76 - 685 + 27 + 37 + 854 - 76 - 92 - 692 + 37 + 57 + 853 - 92 - 105 - 687 + 57 + 84 + 882 - 105 - 387 - 336 + 84 + 101 + 895 + + + 101 + 397 + 565 @@ -7342,42 +7170,42 @@ 1 2 - 4164 + 4809 2 3 - 1304 + 1797 3 4 - 500 + 961 4 6 - 624 + 940 6 - 9 - 648 + 10 + 986 - 9 - 14 - 756 + 10 + 16 + 862 - 14 - 26 - 678 + 16 + 45 + 848 - 26 - 4558 - 362 + 45 + 5676 + 90 @@ -7393,57 +7221,67 @@ 1 2 - 1328 + 1130 - 2 - 7 - 666 + 3 + 4 + 1128 - 7 + 4 8 - 1472 + 710 8 - 13 - 824 + 10 + 808 - 13 - 18 - 712 + 10 + 14 + 1024 - 18 + 14 + 19 + 1007 + + + 19 26 - 679 + 963 26 - 42 - 690 + 34 + 848 - 42 - 73 - 701 + 34 + 49 + 857 - 73 - 91 - 697 + 49 + 77 + 860 - 91 - 105 - 721 + 77 + 97 + 895 - 105 - 391 - 546 + 97 + 118 + 857 + + + 118 + 400 + 206 @@ -7459,7 +7297,7 @@ 1 4 - 92 + 102 4 @@ -7469,62 +7307,62 @@ 5 8 - 122 + 65 8 9 - 123 + 122 9 11 - 117 + 110 11 12 - 40 + 73 12 13 - 109 + 114 13 - 17 - 118 + 18 + 106 - 17 - 22 - 108 + 18 + 21 + 115 - 22 - 33 - 106 + 21 + 32 + 118 - 33 - 75 - 103 + 32 + 61 + 104 - 75 - 739 - 103 + 61 + 255 + 104 - 740 - 195640 - 103 + 261 + 113805 + 104 - 213807 - 865889 - 6 + 114086 + 1069778 + 27 @@ -7540,22 +7378,22 @@ 1 3 - 120 + 118 + + + 3 + 4 + 13 4 5 - 120 + 119 5 - 7 - 71 - - - 7 8 - 62 + 75 8 @@ -7565,47 +7403,47 @@ 9 11 - 109 + 105 11 12 - 40 + 73 12 13 - 112 + 111 13 - 17 - 125 + 19 + 122 - 17 - 23 - 105 + 19 + 22 + 111 - 23 - 34 - 106 + 22 + 33 + 108 - 34 - 79 - 103 + 33 + 66 + 107 - 80 - 3436 - 103 + 68 + 683 + 104 - 3468 - 11682 - 76 + 732 + 12283 + 100 @@ -7621,37 +7459,37 @@ 1 2 - 215 + 223 2 3 - 318 + 307 3 4 - 126 + 135 4 5 - 141 + 140 5 6 - 75 + 78 6 8 - 103 + 101 8 13 - 117 + 120 13 @@ -7660,13 +7498,13 @@ 32 - 2080 - 103 + 2144 + 104 - 2093 - 9035 - 69 + 2186 + 11292 + 73 @@ -7682,37 +7520,37 @@ 1 2 - 215 + 223 2 3 - 318 + 307 3 4 - 126 + 135 4 5 - 141 + 140 5 6 - 75 + 78 6 8 - 103 + 100 8 13 - 117 + 121 13 @@ -7721,13 +7559,13 @@ 32 - 2112 - 103 + 2158 + 104 - 2123 - 9035 - 69 + 2226 + 11292 + 73 @@ -7743,32 +7581,32 @@ 1 2 - 693 + 689 2 3 - 314 + 323 3 4 - 112 + 118 4 7 - 114 + 117 7 - 84 - 103 + 88 + 104 - 84 - 263 - 35 + 88 + 266 + 34 @@ -7784,62 +7622,72 @@ 1 2 - 1323 + 1129 - 2 - 11 - 675 + 4 + 5 + 1 - 11 + 5 + 6 + 1128 + + + 6 12 - 1420 + 762 12 - 22 - 806 + 17 + 961 - 22 - 44 - 680 + 17 + 23 + 922 - 44 - 95 - 683 + 23 + 31 + 919 - 95 - 173 - 685 + 31 + 43 + 899 - 173 - 808 - 678 + 43 + 58 + 879 - 823 - 1711 - 678 + 58 + 100 + 855 - 1711 - 3189 - 678 + 100 + 1721 + 847 - 3189 - 16909 - 678 + 1722 + 2799 + 847 - 17178 - 52390 - 52 + 2805 + 6136 + 847 + + + 6136 + 46393 + 297 @@ -7855,52 +7703,62 @@ 1 2 - 2641 + 2258 2 3 - 1465 + 654 3 - 10 - 673 + 4 + 1191 - 10 - 11 - 361 + 4 + 5 + 1017 - 11 - 12 - 555 + 5 + 6 + 652 - 12 - 18 - 699 + 6 + 7 + 522 - 18 - 206 - 680 + 7 + 8 + 735 - 206 - 330 - 682 + 8 + 10 + 1005 - 330 - 541 - 680 + 10 + 109 + 850 - 541 - 6341 - 600 + 109 + 400 + 850 + + + 400 + 626 + 849 + + + 626 + 6687 + 710 @@ -7916,47 +7774,47 @@ 1 2 - 2018 + 1130 2 3 - 2354 + 3437 3 4 - 1144 + 1709 4 5 - 627 + 1095 5 - 8 - 797 + 6 + 700 - 8 - 12 - 693 + 6 + 9 + 918 - 12 - 20 - 679 + 9 + 14 + 918 - 20 - 50 - 682 + 14 + 25 + 868 - 50 - 64 - 42 + 25 + 60 + 518 @@ -7972,57 +7830,67 @@ 1 2 - 1468 + 1129 2 - 7 - 555 + 3 + 1 - 7 + 3 + 4 + 1454 + + + 4 8 - 1644 + 926 8 - 13 - 721 + 11 + 708 - 13 - 18 - 825 + 11 + 15 + 1045 - 18 - 28 - 709 + 15 + 20 + 968 - 28 - 45 - 682 + 20 + 27 + 954 - 45 - 76 - 699 + 27 + 37 + 880 - 76 - 92 - 694 + 37 + 57 + 867 - 92 - 105 - 695 + 57 + 84 + 872 - 105 - 388 - 344 + 84 + 100 + 847 + + + 100 + 397 + 642 @@ -8038,57 +7906,72 @@ 1 2 - 1323 + 1129 2 - 7 - 691 + 3 + 1 - 7 + 3 + 4 + 1128 + + + 4 8 - 1491 + 718 8 - 12 - 718 + 10 + 801 - 12 + 10 + 13 + 814 + + + 13 17 - 669 + 919 17 - 24 - 732 + 23 + 965 - 24 - 40 - 707 + 23 + 31 + 959 - 40 + 31 + 44 + 879 + + + 44 70 - 691 + 851 70 - 90 - 732 + 93 + 878 - 90 - 104 - 704 + 93 + 109 + 849 - 104 - 391 - 578 + 109 + 400 + 402 @@ -8104,7 +7987,7 @@ 1 4 - 87 + 95 4 @@ -8114,62 +7997,62 @@ 5 8 - 120 + 64 8 9 - 123 + 120 9 11 - 110 + 105 11 12 - 41 + 76 12 13 - 108 + 113 13 - 17 - 121 + 18 + 109 - 17 - 22 - 105 + 18 + 21 + 111 - 22 - 33 - 107 + 21 + 31 + 106 - 33 - 73 - 104 + 31 + 55 + 106 - 73 - 547 - 104 + 55 + 191 + 105 - 571 - 148376 - 104 + 192 + 56899 + 105 - 149850 - 309769 - 22 + 58047 + 407640 + 54 @@ -8185,72 +8068,72 @@ 1 3 - 113 + 110 3 - 5 - 122 + 4 + 15 - 5 - 7 - 70 + 4 + 5 + 119 - 7 + 5 8 - 63 + 74 8 9 - 117 + 116 9 11 - 108 + 104 11 12 - 38 + 73 12 13 - 112 + 114 13 - 17 - 124 + 19 + 126 - 17 + 19 23 - 105 + 115 23 - 33 - 106 + 34 + 114 - 33 - 71 - 104 + 34 + 72 + 105 - 71 - 2586 - 104 + 72 + 1551 + 105 - 2841 - 10750 - 90 + 1727 + 11266 + 99 @@ -8266,52 +8149,52 @@ 1 2 - 213 + 219 2 3 - 316 + 306 3 4 - 126 + 134 4 5 - 141 + 142 5 6 - 71 + 74 6 8 - 102 + 103 8 - 12 - 106 + 13 + 120 - 12 - 28 - 106 + 13 + 33 + 108 - 28 - 1632 - 104 + 33 + 2296 + 105 - 1663 - 6417 - 91 + 2325 + 10163 + 78 @@ -8327,31 +8210,31 @@ 1 2 - 683 + 676 2 3 - 268 + 276 3 4 - 116 + 124 4 7 - 109 + 112 7 - 34 - 104 + 36 + 105 - 34 - 102 + 36 + 105 96 @@ -8368,52 +8251,52 @@ 1 2 - 213 + 219 2 3 - 316 + 306 3 4 - 126 + 134 4 5 - 141 + 142 5 6 - 71 + 74 6 8 - 102 + 103 8 - 12 - 107 + 13 + 121 - 12 - 28 + 13 + 33 107 - 28 - 1640 - 104 + 33 + 2249 + 105 - 1670 - 6384 - 89 + 2292 + 10163 + 78 @@ -8423,23 +8306,23 @@ ql_add_expr_def - 14857 + 13786 id - 14857 + 13786 left - 14857 + 13786 right - 14857 + 13786 child - 14857 + 13786 @@ -8453,7 +8336,7 @@ 1 2 - 14857 + 13786 @@ -8469,7 +8352,7 @@ 1 2 - 14857 + 13786 @@ -8485,7 +8368,7 @@ 1 2 - 14857 + 13786 @@ -8501,7 +8384,7 @@ 1 2 - 14857 + 13786 @@ -8517,7 +8400,7 @@ 1 2 - 14857 + 13786 @@ -8533,7 +8416,7 @@ 1 2 - 14857 + 13786 @@ -8549,7 +8432,7 @@ 1 2 - 14857 + 13786 @@ -8565,7 +8448,7 @@ 1 2 - 14857 + 13786 @@ -8581,7 +8464,7 @@ 1 2 - 14857 + 13786 @@ -8597,7 +8480,7 @@ 1 2 - 14857 + 13786 @@ -8613,7 +8496,7 @@ 1 2 - 14857 + 13786 @@ -8629,7 +8512,7 @@ 1 2 - 14857 + 13786 @@ -8639,11 +8522,11 @@ ql_aggregate_child - 17934 + 16852 ql_aggregate - 9694 + 9053 index @@ -8651,7 +8534,7 @@ child - 17934 + 16852 @@ -8665,17 +8548,17 @@ 1 2 - 1687 + 1481 2 3 - 7774 + 7345 3 4 - 233 + 227 @@ -8691,17 +8574,17 @@ 1 2 - 1687 + 1481 2 3 - 7774 + 7345 3 4 - 233 + 227 @@ -8715,18 +8598,18 @@ 12 - 233 - 234 + 227 + 228 1 - 8007 - 8008 + 7572 + 7573 1 - 9694 - 9695 + 9053 + 9054 1 @@ -8741,18 +8624,18 @@ 12 - 233 - 234 + 227 + 228 1 - 8007 - 8008 + 7572 + 7573 1 - 9694 - 9695 + 9053 + 9054 1 @@ -8769,7 +8652,7 @@ 1 2 - 17934 + 16852 @@ -8785,7 +8668,7 @@ 1 2 - 17934 + 16852 @@ -8795,26 +8678,26 @@ ql_aggregate_def - 9694 + 9053 id - 9694 + 9053 ql_annot_arg_def - 6094 + 4043 id - 6094 + 4043 child - 6094 + 4043 @@ -8828,7 +8711,7 @@ 1 2 - 6094 + 4043 @@ -8844,7 +8727,7 @@ 1 2 - 6094 + 4043 @@ -8854,11 +8737,11 @@ ql_annotation_args - 6862 + 4365 ql_annotation - 5326 + 3721 index @@ -8866,7 +8749,7 @@ args - 6862 + 4365 @@ -8880,17 +8763,12 @@ 1 2 - 4776 + 3448 3 - 4 - 382 - - - 5 10 - 168 + 273 @@ -8906,17 +8784,12 @@ 1 2 - 4776 + 3448 3 - 4 - 382 - - - 5 10 - 168 + 273 @@ -8930,28 +8803,28 @@ 12 - 2 - 3 + 1 + 2 2 - 48 - 49 + 15 + 16 2 - 168 - 169 + 33 + 34 2 - 550 - 551 + 273 + 274 2 - 5326 - 5327 + 3721 + 3722 1 @@ -8966,28 +8839,28 @@ 12 - 2 - 3 + 1 + 2 2 - 48 - 49 + 15 + 16 2 - 168 - 169 + 33 + 34 2 - 550 - 551 + 273 + 274 2 - 5326 - 5327 + 3721 + 3722 1 @@ -9004,7 +8877,7 @@ 1 2 - 6862 + 4365 @@ -9020,7 +8893,7 @@ 1 2 - 6862 + 4365 @@ -9030,15 +8903,15 @@ ql_annotation_def - 72771 + 65278 id - 72771 + 65278 name - 72771 + 65278 @@ -9052,7 +8925,7 @@ 1 2 - 72771 + 65278 @@ -9068,7 +8941,7 @@ 1 2 - 72771 + 65278 @@ -9078,15 +8951,15 @@ ql_arityless_predicate_expr_def - 67354 + 58107 id - 67354 + 58107 name - 67354 + 58107 @@ -9100,7 +8973,7 @@ 1 2 - 67354 + 58107 @@ -9116,7 +8989,7 @@ 1 2 - 67354 + 58107 @@ -9126,15 +8999,15 @@ ql_arityless_predicate_expr_qualifier - 10179 + 10163 ql_arityless_predicate_expr - 10179 + 10163 qualifier - 10179 + 10163 @@ -9148,7 +9021,7 @@ 1 2 - 10179 + 10163 @@ -9164,7 +9037,7 @@ 1 2 - 10179 + 10163 @@ -9174,11 +9047,11 @@ ql_as_expr_child - 19682 + 20772 ql_as_expr - 19448 + 20508 index @@ -9186,7 +9059,7 @@ child - 19682 + 20772 @@ -9200,12 +9073,12 @@ 1 2 - 19214 + 20244 2 3 - 234 + 264 @@ -9221,12 +9094,12 @@ 1 2 - 19214 + 20244 2 3 - 234 + 264 @@ -9240,13 +9113,13 @@ 12 - 234 - 235 + 264 + 265 1 - 19448 - 19449 + 20508 + 20509 1 @@ -9261,13 +9134,13 @@ 12 - 234 - 235 + 264 + 265 1 - 19448 - 19449 + 20508 + 20509 1 @@ -9284,7 +9157,7 @@ 1 2 - 19682 + 20772 @@ -9300,7 +9173,7 @@ 1 2 - 19682 + 20772 @@ -9310,22 +9183,22 @@ ql_as_expr_def - 19448 + 20508 id - 19448 + 20508 ql_as_exprs_child - 19448 + 20508 ql_as_exprs - 8242 + 8493 index @@ -9333,7 +9206,7 @@ child - 19448 + 20508 @@ -9347,32 +9220,32 @@ 1 2 - 3031 + 2998 2 3 - 2962 + 3100 3 4 - 672 + 714 4 5 - 702 + 739 5 7 - 678 + 714 7 36 - 197 + 228 @@ -9388,32 +9261,32 @@ 1 2 - 3031 + 2998 2 3 - 2962 + 3100 3 4 - 672 + 714 4 5 - 702 + 739 5 7 - 678 + 714 7 36 - 197 + 228 @@ -9438,47 +9311,52 @@ 3 - 4 - 4 - - - 4 5 - 6 + 3 - 6 - 10 + 7 + 9 2 10 + 11 + 5 + + + 12 13 - 3 + 2 13 - 19 + 17 3 - 26 - 55 + 17 + 23 3 - 123 - 720 + 35 + 67 + 3 + + + 145 + 770 3 - 875 - 2250 + 942 + 2396 3 - 5211 - 8243 + 5495 + 8494 2 @@ -9504,47 +9382,52 @@ 3 - 4 - 4 - - - 4 5 - 6 + 3 - 6 - 10 + 7 + 9 2 10 + 11 + 5 + + + 12 13 - 3 + 2 13 - 19 + 17 3 - 26 - 55 + 17 + 23 3 - 123 - 720 + 35 + 67 + 3 + + + 145 + 770 3 - 875 - 2250 + 942 + 2396 3 - 5211 - 8243 + 5495 + 8494 2 @@ -9561,7 +9444,7 @@ 1 2 - 19448 + 20508 @@ -9577,7 +9460,7 @@ 1 2 - 19448 + 20508 @@ -9587,40 +9470,48 @@ ql_as_exprs_def - 8242 + 8493 id - 8242 + 8493 - ql_ast_node_info - 6543748 + ql_ast_node_location + 6230328 node - 6543748 - - - parent - 3102776 - - - parent_index - 2057 + 6230328 loc - 4792814 + 4563391 node - parent + loc + + + 12 + + + 1 + 2 + 6230328 + + + + + + + loc + node 12 @@ -9628,15 +9519,45 @@ 1 2 - 6543748 + 3246688 + + + 2 + 3 + 979956 + + + 3 + 6 + 336747 + + + + ql_ast_node_parent + 6197281 + + + node + 6197281 + + + parent + 2947735 + + + parent_index + 2057 + + + node - parent_index + parent 12 @@ -9644,7 +9565,7 @@ 1 2 - 6543748 + 6197281 @@ -9652,7 +9573,7 @@ node - loc + parent_index 12 @@ -9660,7 +9581,7 @@ 1 2 - 6543748 + 6197281 @@ -9676,27 +9597,27 @@ 1 2 - 1758472 + 1667033 2 3 - 308336 + 276121 3 4 - 770593 + 754976 4 11 - 240390 + 228408 11 2058 - 24985 + 21197 @@ -9712,63 +9633,27 @@ 1 2 - 1758472 - - - 2 - 3 - 308336 - - - 3 - 4 - 770593 - - - 4 - 11 - 240390 - - - 11 - 2058 - 24985 - - - - - - - parent - loc - - - 12 - - - 1 - 2 - 1758472 + 1667033 2 3 - 308336 + 276121 3 4 - 770593 + 754976 4 11 - 240390 + 228408 11 2058 - 24985 + 21197 @@ -9784,12 +9669,12 @@ 1 2 - 805 + 739 2 3 - 251 + 317 3 @@ -9798,69 +9683,28 @@ 4 - 9 - 188 - - - 9 - 24 - 161 - - - 24 - 119 - 155 - - - 120 - 3102777 - 109 - - - - - - - parent_index - parent - - - 12 - - - 1 - 2 - 805 - - - 2 - 3 - 251 - - - 3 - 4 - 388 + 8 + 126 - 4 - 9 - 188 + 8 + 15 + 162 - 9 - 24 - 161 + 15 + 47 + 158 - 24 - 119 + 48 + 11121 155 - 120 - 3102777 - 109 + 16033 + 2947736 + 12 @@ -9868,7 +9712,7 @@ parent_index - loc + parent 12 @@ -9876,12 +9720,12 @@ 1 2 - 805 + 739 2 3 - 251 + 317 3 @@ -9890,96 +9734,28 @@ 4 - 9 - 188 - - - 9 - 24 - 161 - - - 24 - 119 - 155 - - - 120 - 2116191 - 109 - - - - - - - loc - node - - - 12 - - - 1 - 2 - 3411160 - - - 2 - 3 - 1025095 - - - 3 - 6 - 356559 - - - - - - - loc - parent - - - 12 - - - 1 - 2 - 3411160 + 8 + 126 - 2 - 3 - 1025095 + 8 + 15 + 162 - 3 - 6 - 356559 + 15 + 47 + 158 - - - - - - loc - parent_index - - - 12 - - 1 - 2 - 4028466 + 48 + 11121 + 155 - 2 - 3 - 764348 + 16033 + 2947736 + 12 @@ -9989,15 +9765,15 @@ ql_body_def - 70726 + 65826 id - 70726 + 65826 child - 70726 + 65826 @@ -10011,7 +9787,7 @@ 1 2 - 70726 + 65826 @@ -10027,7 +9803,7 @@ 1 2 - 70726 + 65826 @@ -10037,15 +9813,15 @@ ql_bool_def - 5039 + 4274 id - 5039 + 4274 child - 5039 + 4274 @@ -10059,7 +9835,7 @@ 1 2 - 5039 + 4274 @@ -10075,7 +9851,7 @@ 1 2 - 5039 + 4274 @@ -10085,11 +9861,11 @@ ql_call_body_child - 122556 + 99620 ql_call_body - 57429 + 49469 index @@ -10097,7 +9873,7 @@ child - 122556 + 99620 @@ -10111,27 +9887,27 @@ 1 2 - 25731 + 23173 2 3 - 15265 + 13151 3 4 - 8568 + 7473 4 - 5 - 3857 + 6 + 4432 - 5 + 6 16 - 4008 + 1240 @@ -10147,27 +9923,27 @@ 1 2 - 25731 + 23173 2 3 - 15265 + 13151 3 4 - 8568 + 7473 4 - 5 - 3857 + 6 + 4432 - 5 + 6 16 - 4008 + 1240 @@ -10181,73 +9957,78 @@ 12 - 16 - 17 - 2 + 2 + 3 + 1 - 18 - 19 + 4 + 5 1 - 42 - 43 + 10 + 11 1 - 91 - 92 + 17 + 18 1 - 184 - 185 + 46 + 47 + 1 + + + 103 + 104 1 - 450 - 451 + 237 + 238 1 - 760 - 761 + 342 + 343 1 - 1254 - 1255 + 559 + 560 1 - 2292 - 2293 + 1240 + 1241 1 - 4008 - 4009 + 2478 + 2479 1 - 7865 - 7866 + 5672 + 5673 1 - 16433 - 16434 + 13145 + 13146 1 - 31698 - 31699 + 26296 + 26297 1 - 57429 - 57430 + 49469 + 49470 1 @@ -10262,73 +10043,78 @@ 12 - 16 - 17 - 2 + 2 + 3 + 1 - 18 - 19 + 4 + 5 1 - 42 - 43 + 10 + 11 1 - 91 - 92 + 17 + 18 1 - 184 - 185 + 46 + 47 1 - 450 - 451 + 103 + 104 1 - 760 - 761 + 237 + 238 1 - 1254 - 1255 + 342 + 343 1 - 2292 - 2293 + 559 + 560 + 1 + + + 1240 + 1241 1 - 4008 - 4009 + 2478 + 2479 1 - 7865 - 7866 + 5672 + 5673 1 - 16433 - 16434 + 13145 + 13146 1 - 31698 - 31699 + 26296 + 26297 1 - 57429 - 57430 + 49469 + 49470 1 @@ -10345,7 +10131,7 @@ 1 2 - 122556 + 99620 @@ -10361,7 +10147,7 @@ 1 2 - 122556 + 99620 @@ -10371,22 +10157,22 @@ ql_call_body_def - 66692 + 57368 id - 66692 + 57368 ql_call_or_unqual_agg_expr_child - 133679 + 115036 ql_call_or_unqual_agg_expr - 66692 + 57368 index @@ -10394,7 +10180,7 @@ child - 133679 + 115036 @@ -10408,12 +10194,12 @@ 2 3 - 66397 + 57068 3 4 - 295 + 300 @@ -10429,12 +10215,12 @@ 2 3 - 66397 + 57068 3 4 - 295 + 300 @@ -10448,13 +10234,13 @@ 12 - 295 - 296 + 300 + 301 1 - 66692 - 66693 + 57368 + 57369 2 @@ -10469,13 +10255,13 @@ 12 - 295 - 296 + 300 + 301 1 - 66692 - 66693 + 57368 + 57369 2 @@ -10492,7 +10278,7 @@ 1 2 - 133679 + 115036 @@ -10508,7 +10294,7 @@ 1 2 - 133679 + 115036 @@ -10518,30 +10304,30 @@ ql_call_or_unqual_agg_expr_def - 66692 + 57368 id - 66692 + 57368 ql_charpred_def - 12588 + 12088 id - 12588 + 12088 body - 12588 + 12088 child - 12588 + 12088 @@ -10555,7 +10341,7 @@ 1 2 - 12588 + 12088 @@ -10571,7 +10357,7 @@ 1 2 - 12588 + 12088 @@ -10587,7 +10373,7 @@ 1 2 - 12588 + 12088 @@ -10603,7 +10389,7 @@ 1 2 - 12588 + 12088 @@ -10619,7 +10405,7 @@ 1 2 - 12588 + 12088 @@ -10635,7 +10421,7 @@ 1 2 - 12588 + 12088 @@ -10645,19 +10431,19 @@ ql_class_member_child - 121852 + 112375 ql_class_member - 84646 + 79133 index - 4 + 5 child - 121852 + 112375 @@ -10671,17 +10457,17 @@ 1 2 - 51616 + 49462 2 3 - 28924 + 26160 3 - 5 - 4106 + 6 + 3511 @@ -10697,17 +10483,17 @@ 1 2 - 51616 + 49462 2 3 - 28924 + 26160 3 - 5 - 4106 + 6 + 3511 @@ -10721,23 +10507,28 @@ 12 - 70 - 71 + 8 + 9 + 1 + + + 52 + 53 1 - 4106 - 4107 + 3511 + 3512 1 - 33030 - 33031 + 29671 + 29672 1 - 84646 - 84647 + 79133 + 79134 1 @@ -10752,23 +10543,28 @@ 12 - 70 - 71 + 8 + 9 + 1 + + + 52 + 53 1 - 4106 - 4107 + 3511 + 3512 1 - 33030 - 33031 + 29671 + 29672 1 - 84646 - 84647 + 79133 + 79134 1 @@ -10785,7 +10581,7 @@ 1 2 - 121852 + 112375 @@ -10801,7 +10597,7 @@ 1 2 - 121852 + 112375 @@ -10811,22 +10607,22 @@ ql_class_member_def - 84646 + 79133 id - 84646 + 79133 ql_classless_predicate_child - 72035 + 63161 ql_classless_predicate - 24640 + 23253 index @@ -10834,7 +10630,7 @@ child - 72035 + 63161 @@ -10848,32 +10644,32 @@ 1 2 - 2612 + 2872 2 3 - 9441 + 9678 3 4 - 6254 + 5651 4 5 - 3291 + 2828 5 7 - 2183 + 1868 7 17 - 859 + 356 @@ -10889,32 +10685,32 @@ 1 2 - 2612 + 2872 2 3 - 9441 + 9678 3 4 - 6254 + 5651 4 5 - 3291 + 2828 5 7 - 2183 + 1868 7 17 - 859 + 356 @@ -10928,78 +10724,83 @@ 12 - 8 - 9 - 2 + 1 + 2 + 1 + + + 2 + 3 + 1 - 9 - 10 + 5 + 6 1 - 25 - 26 + 9 + 10 1 - 43 - 44 + 22 + 23 1 - 83 - 84 + 37 + 38 1 - 164 - 165 + 63 + 64 1 - 269 - 270 + 103 + 104 1 - 491 - 492 + 177 + 178 1 - 859 - 860 + 356 + 357 1 - 1446 - 1447 + 773 + 774 1 - 3042 - 3043 + 2224 + 2225 1 - 6333 - 6334 + 5052 + 5053 1 - 12587 - 12588 + 10703 + 10704 1 - 22028 - 22029 + 20381 + 20382 1 - 24640 - 24641 + 23253 + 23254 1 @@ -11014,78 +10815,83 @@ 12 - 8 - 9 - 2 + 1 + 2 + 1 - 9 - 10 + 2 + 3 1 - 25 - 26 + 5 + 6 1 - 43 - 44 + 9 + 10 1 - 83 - 84 + 22 + 23 1 - 164 - 165 + 37 + 38 1 - 269 - 270 + 63 + 64 1 - 491 - 492 + 103 + 104 + 1 + + + 177 + 178 1 - 859 - 860 + 356 + 357 1 - 1446 - 1447 + 773 + 774 1 - 3042 - 3043 + 2224 + 2225 1 - 6333 - 6334 + 5052 + 5053 1 - 12587 - 12588 + 10703 + 10704 1 - 22028 - 22029 + 20381 + 20382 1 - 24640 - 24641 + 23253 + 23254 1 @@ -11102,7 +10908,7 @@ 1 2 - 72035 + 63161 @@ -11118,7 +10924,7 @@ 1 2 - 72035 + 63161 @@ -11128,19 +10934,19 @@ ql_classless_predicate_def - 24640 + 23253 id - 24640 + 23253 name - 24640 + 23253 return_type - 24640 + 23253 @@ -11154,7 +10960,7 @@ 1 2 - 24640 + 23253 @@ -11170,7 +10976,7 @@ 1 2 - 24640 + 23253 @@ -11186,7 +10992,7 @@ 1 2 - 24640 + 23253 @@ -11202,7 +11008,7 @@ 1 2 - 24640 + 23253 @@ -11218,7 +11024,7 @@ 1 2 - 24640 + 23253 @@ -11234,7 +11040,7 @@ 1 2 - 24640 + 23253 @@ -11244,23 +11050,23 @@ ql_comp_term_def - 138784 + 140334 id - 138784 + 140334 left - 138784 + 140334 right - 138784 + 140334 child - 138784 + 140334 @@ -11274,7 +11080,7 @@ 1 2 - 138784 + 140334 @@ -11290,7 +11096,7 @@ 1 2 - 138784 + 140334 @@ -11306,7 +11112,7 @@ 1 2 - 138784 + 140334 @@ -11322,7 +11128,7 @@ 1 2 - 138784 + 140334 @@ -11338,7 +11144,7 @@ 1 2 - 138784 + 140334 @@ -11354,7 +11160,7 @@ 1 2 - 138784 + 140334 @@ -11370,7 +11176,7 @@ 1 2 - 138784 + 140334 @@ -11386,7 +11192,7 @@ 1 2 - 138784 + 140334 @@ -11402,7 +11208,7 @@ 1 2 - 138784 + 140334 @@ -11418,7 +11224,7 @@ 1 2 - 138784 + 140334 @@ -11434,7 +11240,7 @@ 1 2 - 138784 + 140334 @@ -11450,7 +11256,7 @@ 1 2 - 138784 + 140334 @@ -11460,19 +11266,19 @@ ql_conjunction_def - 80925 + 76308 id - 80925 + 76308 left - 80925 + 76308 right - 80925 + 76308 @@ -11486,7 +11292,7 @@ 1 2 - 80925 + 76308 @@ -11502,7 +11308,7 @@ 1 2 - 80925 + 76308 @@ -11518,7 +11324,7 @@ 1 2 - 80925 + 76308 @@ -11534,7 +11340,7 @@ 1 2 - 80925 + 76308 @@ -11550,7 +11356,7 @@ 1 2 - 80925 + 76308 @@ -11566,7 +11372,7 @@ 1 2 - 80925 + 76308 @@ -11576,19 +11382,19 @@ ql_dataclass_child - 86140 + 80203 ql_dataclass - 21914 + 20603 index - 148 + 160 child - 86140 + 80203 @@ -11602,42 +11408,42 @@ 1 2 - 8719 + 8138 2 3 - 3611 + 3631 3 4 - 2551 + 2206 4 5 - 1653 + 1665 5 6 - 1289 + 1187 6 9 - 1952 + 1851 9 - 20 - 1644 + 22 + 1562 - 20 - 149 - 495 + 22 + 161 + 363 @@ -11653,42 +11459,42 @@ 1 2 - 8719 + 8138 2 3 - 3611 + 3631 3 4 - 2551 + 2206 4 5 - 1653 + 1665 5 6 - 1289 + 1187 6 9 - 1952 + 1851 9 - 20 - 1644 + 22 + 1562 - 20 - 149 - 495 + 22 + 161 + 363 @@ -11703,68 +11509,73 @@ 1 - 4 - 8 + 3 + 12 4 5 - 14 + 8 5 - 7 - 8 + 6 + 17 - 7 + 6 8 - 21 + 2 8 - 12 - 7 + 9 + 20 - 12 - 18 + 9 + 13 12 - 19 - 25 + 13 + 20 12 - 25 + 20 + 27 + 12 + + + 28 36 12 - 37 - 96 + 38 + 98 12 - 101 - 188 + 102 + 193 12 - 198 - 538 + 203 + 541 12 - 592 - 3240 + 596 + 3777 12 - 4091 - 21915 - 6 + 4963 + 20604 + 5 @@ -11779,68 +11590,73 @@ 1 - 4 - 8 + 3 + 12 4 5 - 14 + 8 5 - 7 - 8 + 6 + 17 - 7 + 6 8 - 21 + 2 8 - 12 - 7 + 9 + 20 - 12 - 18 + 9 + 13 12 - 19 - 25 + 13 + 20 12 - 25 + 20 + 27 + 12 + + + 28 36 12 - 37 - 96 + 38 + 98 12 - 101 - 188 + 102 + 193 12 - 198 - 538 + 203 + 541 12 - 592 - 3240 + 596 + 3777 12 - 4091 - 21915 - 6 + 4963 + 20604 + 5 @@ -11856,7 +11672,7 @@ 1 2 - 86140 + 80203 @@ -11872,7 +11688,7 @@ 1 2 - 86140 + 80203 @@ -11882,15 +11698,15 @@ ql_dataclass_def - 23834 + 22563 id - 23834 + 22563 name - 23834 + 22563 @@ -11904,7 +11720,7 @@ 1 2 - 23834 + 22563 @@ -11920,7 +11736,7 @@ 1 2 - 23834 + 22563 @@ -11930,11 +11746,11 @@ ql_dataclass_extends - 59928 + 57708 ql_dataclass - 22062 + 21309 index @@ -11942,7 +11758,7 @@ extends - 59928 + 57708 @@ -11956,17 +11772,17 @@ 2 3 - 14722 + 14280 4 5 - 6891 + 6614 6 17 - 449 + 415 @@ -11982,17 +11798,17 @@ 2 3 - 14722 + 14280 4 5 - 6891 + 6614 6 17 - 449 + 415 @@ -12011,38 +11827,38 @@ 2 - 4 - 5 + 3 + 4 2 - 9 - 10 + 6 + 7 2 - 19 - 20 + 15 + 16 2 - 80 - 81 + 76 + 77 2 - 449 - 450 + 415 + 416 2 - 7340 - 7341 + 7029 + 7030 2 - 22062 - 22063 + 21309 + 21310 2 @@ -12062,38 +11878,38 @@ 2 - 4 - 5 + 3 + 4 2 - 9 - 10 + 6 + 7 2 - 19 - 20 + 15 + 16 2 - 80 - 81 + 76 + 77 2 - 449 - 450 + 415 + 416 2 - 7340 - 7341 + 7029 + 7030 2 - 22062 - 22063 + 21309 + 21310 2 @@ -12110,7 +11926,7 @@ 1 2 - 59928 + 57708 @@ -12126,7 +11942,7 @@ 1 2 - 59928 + 57708 @@ -12136,11 +11952,11 @@ ql_dataclass_instanceof - 1584 + 1896 ql_dataclass - 791 + 942 index @@ -12148,7 +11964,7 @@ instanceof - 1584 + 1896 @@ -12162,12 +11978,12 @@ 2 3 - 790 + 936 4 5 - 1 + 6 @@ -12183,12 +11999,12 @@ 2 3 - 790 + 936 4 5 - 1 + 6 @@ -12202,13 +12018,13 @@ 12 - 1 - 2 + 6 + 7 2 - 791 - 792 + 942 + 943 2 @@ -12223,13 +12039,13 @@ 12 - 1 - 2 + 6 + 7 2 - 791 - 792 + 942 + 943 2 @@ -12246,7 +12062,7 @@ 1 2 - 1584 + 1896 @@ -12262,7 +12078,7 @@ 1 2 - 1584 + 1896 @@ -12272,11 +12088,11 @@ ql_datatype_branch_child - 5604 + 4787 ql_datatype_branch - 2323 + 1984 index @@ -12284,7 +12100,7 @@ child - 5604 + 4787 @@ -12298,27 +12114,27 @@ 1 2 - 629 + 517 2 3 - 706 + 600 3 4 - 664 + 563 4 5 - 161 + 180 5 11 - 163 + 124 @@ -12334,27 +12150,27 @@ 1 2 - 629 + 517 2 3 - 706 + 600 3 4 - 664 + 563 4 5 - 161 + 180 5 11 - 163 + 124 @@ -12368,48 +12184,43 @@ 12 - 8 - 9 - 2 - - - 16 - 17 - 1 + 2 + 3 + 3 - 30 - 31 + 8 + 9 1 - 50 - 51 + 27 + 28 1 - 163 - 164 + 124 + 125 1 - 324 - 325 + 304 + 305 1 - 988 - 989 + 867 + 868 1 - 1694 - 1695 + 1467 + 1468 1 - 2323 - 2324 + 1984 + 1985 1 @@ -12424,48 +12235,43 @@ 12 - 8 - 9 - 2 - - - 16 - 17 - 1 + 2 + 3 + 3 - 30 - 31 + 8 + 9 1 - 50 - 51 + 27 + 28 1 - 163 - 164 + 124 + 125 1 - 324 - 325 + 304 + 305 1 - 988 - 989 + 867 + 868 1 - 1694 - 1695 + 1467 + 1468 1 - 2323 - 2324 + 1984 + 1985 1 @@ -12482,7 +12288,7 @@ 1 2 - 5604 + 4787 @@ -12498,7 +12304,7 @@ 1 2 - 5604 + 4787 @@ -12508,15 +12314,15 @@ ql_datatype_branch_def - 3437 + 2719 id - 3437 + 2719 name - 3437 + 2719 @@ -12530,7 +12336,7 @@ 1 2 - 3437 + 2719 @@ -12546,7 +12352,7 @@ 1 2 - 3437 + 2719 @@ -12556,19 +12362,19 @@ ql_datatype_branches_child - 3437 + 2719 ql_datatype_branches - 809 + 548 index - 231 + 246 child - 3437 + 2719 @@ -12582,37 +12388,37 @@ 1 2 - 163 + 132 2 3 - 348 + 182 3 4 - 104 + 81 4 - 5 - 63 + 6 + 49 - 5 + 6 9 - 65 + 43 9 - 61 - 61 + 15 + 42 - 82 - 232 - 5 + 15 + 247 + 19 @@ -12628,37 +12434,37 @@ 1 2 - 163 + 132 2 3 - 348 + 182 3 4 - 104 + 81 4 - 5 - 63 + 6 + 49 - 5 + 6 9 - 65 + 43 9 - 61 - 61 + 15 + 42 - 82 - 232 - 5 + 15 + 247 + 19 @@ -12674,42 +12480,37 @@ 1 2 - 38 + 51 2 3 - 110 + 111 - 4 - 5 + 3 + 4 1 - 5 - 6 - 22 - - - 6 - 8 - 21 + 4 + 5 + 32 - 8 - 14 - 15 + 5 + 11 + 18 - 14 - 91 - 18 + 11 + 20 + 19 - 109 - 810 - 6 + 21 + 549 + 14 @@ -12725,42 +12526,37 @@ 1 2 - 38 + 51 2 3 - 110 + 111 - 4 - 5 + 3 + 4 1 - 5 - 6 - 22 - - - 6 - 8 - 21 + 4 + 5 + 32 - 8 - 14 - 15 + 5 + 11 + 18 - 14 - 91 - 18 + 11 + 20 + 19 - 109 - 810 - 6 + 21 + 549 + 14 @@ -12776,7 +12572,7 @@ 1 2 - 3437 + 2719 @@ -12792,7 +12588,7 @@ 1 2 - 3437 + 2719 @@ -12802,30 +12598,30 @@ ql_datatype_branches_def - 809 + 548 id - 809 + 548 ql_datatype_def - 809 + 548 id - 809 + 548 name - 809 + 548 child - 809 + 548 @@ -12839,7 +12635,7 @@ 1 2 - 809 + 548 @@ -12855,7 +12651,7 @@ 1 2 - 809 + 548 @@ -12871,7 +12667,7 @@ 1 2 - 809 + 548 @@ -12887,7 +12683,7 @@ 1 2 - 809 + 548 @@ -12903,7 +12699,7 @@ 1 2 - 809 + 548 @@ -12919,7 +12715,7 @@ 1 2 - 809 + 548 @@ -12929,19 +12725,19 @@ ql_disjunction_def - 40259 + 44890 id - 40259 + 44890 left - 40259 + 44890 right - 40259 + 44890 @@ -12955,7 +12751,7 @@ 1 2 - 40259 + 44890 @@ -12971,7 +12767,7 @@ 1 2 - 40259 + 44890 @@ -12987,7 +12783,7 @@ 1 2 - 40259 + 44890 @@ -13003,7 +12799,7 @@ 1 2 - 40259 + 44890 @@ -13019,7 +12815,7 @@ 1 2 - 40259 + 44890 @@ -13035,7 +12831,7 @@ 1 2 - 40259 + 44890 @@ -13045,15 +12841,15 @@ ql_expr_aggregate_body_def - 1293 + 1216 id - 1293 + 1216 as_exprs - 1293 + 1216 @@ -13067,7 +12863,7 @@ 1 2 - 1293 + 1216 @@ -13083,7 +12879,7 @@ 1 2 - 1293 + 1216 @@ -13141,23 +12937,23 @@ ql_expr_annotation_def - 1328 + 601 id - 1328 + 601 annot_arg - 1328 + 601 name - 1328 + 601 child - 1328 + 601 @@ -13171,7 +12967,7 @@ 1 2 - 1328 + 601 @@ -13187,7 +12983,7 @@ 1 2 - 1328 + 601 @@ -13203,7 +12999,7 @@ 1 2 - 1328 + 601 @@ -13219,7 +13015,7 @@ 1 2 - 1328 + 601 @@ -13235,7 +13031,7 @@ 1 2 - 1328 + 601 @@ -13251,7 +13047,7 @@ 1 2 - 1328 + 601 @@ -13267,7 +13063,7 @@ 1 2 - 1328 + 601 @@ -13283,7 +13079,7 @@ 1 2 - 1328 + 601 @@ -13299,7 +13095,7 @@ 1 2 - 1328 + 601 @@ -13315,7 +13111,7 @@ 1 2 - 1328 + 601 @@ -13331,7 +13127,7 @@ 1 2 - 1328 + 601 @@ -13347,7 +13143,7 @@ 1 2 - 1328 + 601 @@ -13357,15 +13153,15 @@ ql_field_def - 4149 + 3721 id - 4149 + 3721 child - 4149 + 3721 @@ -13379,7 +13175,7 @@ 1 2 - 4149 + 3721 @@ -13395,7 +13191,7 @@ 1 2 - 4149 + 3721 @@ -13405,15 +13201,15 @@ ql_full_aggregate_body_as_exprs - 1309 + 1288 ql_full_aggregate_body - 1309 + 1288 as_exprs - 1309 + 1288 @@ -13427,7 +13223,7 @@ 1 2 - 1309 + 1288 @@ -13443,7 +13239,7 @@ 1 2 - 1309 + 1288 @@ -13453,11 +13249,11 @@ ql_full_aggregate_body_child - 7577 + 7058 ql_full_aggregate_body - 6655 + 6301 index @@ -13465,7 +13261,7 @@ child - 7577 + 7058 @@ -13479,17 +13275,17 @@ 1 2 - 6061 + 5788 2 - 4 - 527 + 5 + 480 - 4 + 5 10 - 67 + 33 @@ -13505,17 +13301,17 @@ 1 2 - 6061 + 5788 2 - 4 - 527 + 5 + 480 - 4 + 5 10 - 67 + 33 @@ -13534,38 +13330,43 @@ 1 - 20 - 21 - 2 + 13 + 14 + 1 - 22 - 23 + 14 + 15 1 - 48 - 49 + 18 + 19 1 - 67 - 68 + 33 + 34 1 - 147 - 148 + 51 + 52 1 - 594 - 595 + 111 + 112 1 - 6655 - 6656 + 513 + 514 + 1 + + + 6301 + 6302 1 @@ -13585,38 +13386,43 @@ 1 - 20 - 21 - 2 + 13 + 14 + 1 - 22 - 23 + 14 + 15 1 - 48 - 49 + 18 + 19 1 - 67 - 68 + 33 + 34 1 - 147 - 148 + 51 + 52 + 1 + + + 111 + 112 1 - 594 - 595 + 513 + 514 1 - 6655 - 6656 + 6301 + 6302 1 @@ -13633,7 +13439,7 @@ 1 2 - 7577 + 7058 @@ -13649,7 +13455,7 @@ 1 2 - 7577 + 7058 @@ -13659,26 +13465,26 @@ ql_full_aggregate_body_def - 6714 + 6356 id - 6714 + 6356 ql_full_aggregate_body_guard - 3739 + 3549 ql_full_aggregate_body - 3739 + 3549 guard - 3739 + 3549 @@ -13692,7 +13498,7 @@ 1 2 - 3739 + 3549 @@ -13708,7 +13514,7 @@ 1 2 - 3739 + 3549 @@ -13718,15 +13524,15 @@ ql_full_aggregate_body_order_bys - 449 + 429 ql_full_aggregate_body - 449 + 429 order_bys - 449 + 429 @@ -13740,7 +13546,7 @@ 1 2 - 449 + 429 @@ -13756,7 +13562,7 @@ 1 2 - 449 + 429 @@ -13766,11 +13572,11 @@ ql_higher_order_term_child - 469 + 343 ql_higher_order_term - 105 + 77 index @@ -13778,7 +13584,7 @@ child - 469 + 343 @@ -13792,12 +13598,12 @@ 3 4 - 31 + 24 5 6 - 72 + 51 8 @@ -13818,12 +13624,12 @@ 3 4 - 31 + 24 5 6 - 72 + 51 8 @@ -13847,13 +13653,13 @@ 3 - 74 - 75 + 53 + 54 2 - 105 - 106 + 77 + 78 3 @@ -13873,13 +13679,13 @@ 3 - 74 - 75 + 53 + 54 2 - 105 - 106 + 77 + 78 3 @@ -13896,7 +13702,7 @@ 1 2 - 469 + 343 @@ -13912,7 +13718,7 @@ 1 2 - 469 + 343 @@ -13922,15 +13728,15 @@ ql_higher_order_term_def - 105 + 77 id - 105 + 77 name - 105 + 77 @@ -13944,7 +13750,7 @@ 1 2 - 105 + 77 @@ -13960,7 +13766,7 @@ 1 2 - 105 + 77 @@ -13970,23 +13776,23 @@ ql_if_term_def - 3226 + 2953 id - 3226 + 2953 cond - 3226 + 2953 first - 3226 + 2953 second - 3226 + 2953 @@ -14000,7 +13806,7 @@ 1 2 - 3226 + 2953 @@ -14016,7 +13822,7 @@ 1 2 - 3226 + 2953 @@ -14032,7 +13838,7 @@ 1 2 - 3226 + 2953 @@ -14048,7 +13854,7 @@ 1 2 - 3226 + 2953 @@ -14064,7 +13870,7 @@ 1 2 - 3226 + 2953 @@ -14080,7 +13886,7 @@ 1 2 - 3226 + 2953 @@ -14096,7 +13902,7 @@ 1 2 - 3226 + 2953 @@ -14112,7 +13918,7 @@ 1 2 - 3226 + 2953 @@ -14128,7 +13934,7 @@ 1 2 - 3226 + 2953 @@ -14144,7 +13950,7 @@ 1 2 - 3226 + 2953 @@ -14160,7 +13966,7 @@ 1 2 - 3226 + 2953 @@ -14176,7 +13982,7 @@ 1 2 - 3226 + 2953 @@ -14186,19 +13992,19 @@ ql_implication_def - 87 + 101 id - 87 + 101 left - 87 + 101 right - 87 + 101 @@ -14212,7 +14018,7 @@ 1 2 - 87 + 101 @@ -14228,7 +14034,7 @@ 1 2 - 87 + 101 @@ -14244,7 +14050,7 @@ 1 2 - 87 + 101 @@ -14260,7 +14066,7 @@ 1 2 - 87 + 101 @@ -14276,7 +14082,7 @@ 1 2 - 87 + 101 @@ -14292,7 +14098,7 @@ 1 2 - 87 + 101 @@ -14302,11 +14108,11 @@ ql_import_directive_child - 26183 + 27063 ql_import_directive - 24818 + 25764 index @@ -14314,7 +14120,7 @@ child - 26183 + 27063 @@ -14328,12 +14134,12 @@ 1 2 - 23453 + 24465 2 3 - 1365 + 1299 @@ -14349,12 +14155,12 @@ 1 2 - 23453 + 24465 2 3 - 1365 + 1299 @@ -14368,13 +14174,13 @@ 12 - 1365 - 1366 + 1299 + 1300 1 - 24818 - 24819 + 25764 + 25765 1 @@ -14389,13 +14195,13 @@ 12 - 1365 - 1366 + 1299 + 1300 1 - 24818 - 24819 + 25764 + 25765 1 @@ -14412,7 +14218,7 @@ 1 2 - 26183 + 27063 @@ -14428,7 +14234,7 @@ 1 2 - 26183 + 27063 @@ -14438,26 +14244,26 @@ ql_import_directive_def - 24818 + 25764 id - 24818 + 25764 ql_import_module_expr_def - 24818 + 25764 id - 24818 + 25764 child - 24818 + 25764 @@ -14471,7 +14277,7 @@ 1 2 - 24818 + 25764 @@ -14487,7 +14293,7 @@ 1 2 - 24818 + 25764 @@ -14497,11 +14303,11 @@ ql_import_module_expr_qual_name - 43119 + 44946 ql_import_module_expr - 12715 + 13345 index @@ -14509,7 +14315,7 @@ qual_name - 43119 + 44946 @@ -14523,32 +14329,32 @@ 1 2 - 969 + 972 2 3 - 1837 + 2220 3 4 - 3420 + 3431 4 5 - 4818 + 4933 5 6 - 1222 + 1355 6 9 - 449 + 434 @@ -14564,32 +14370,32 @@ 1 2 - 969 + 972 2 3 - 1837 + 2220 3 4 - 3420 + 3431 4 5 - 4818 + 4933 5 6 - 1222 + 1355 6 9 - 449 + 434 @@ -14603,43 +14409,43 @@ 12 - 30 - 31 + 25 + 26 1 - 110 - 111 + 105 + 106 1 - 449 - 450 + 434 + 435 1 - 1671 - 1672 + 1789 + 1790 1 - 6489 - 6490 + 6722 + 6723 1 - 9909 - 9910 + 10153 + 10154 1 - 11746 - 11747 + 12373 + 12374 1 - 12715 - 12716 + 13345 + 13346 1 @@ -14654,43 +14460,43 @@ 12 - 30 - 31 + 25 + 26 1 - 110 - 111 + 105 + 106 1 - 449 - 450 + 434 + 435 1 - 1671 - 1672 + 1789 + 1790 1 - 6489 - 6490 + 6722 + 6723 1 - 9909 - 9910 + 10153 + 10154 1 - 11746 - 11747 + 12373 + 12374 1 - 12715 - 12716 + 13345 + 13346 1 @@ -14707,7 +14513,7 @@ 1 2 - 43119 + 44946 @@ -14723,7 +14529,7 @@ 1 2 - 43119 + 44946 @@ -14733,19 +14539,19 @@ ql_in_expr_def - 1003 + 1037 id - 1003 + 1037 left - 1003 + 1037 right - 1003 + 1037 @@ -14759,7 +14565,7 @@ 1 2 - 1003 + 1037 @@ -14775,7 +14581,7 @@ 1 2 - 1003 + 1037 @@ -14791,7 +14597,7 @@ 1 2 - 1003 + 1037 @@ -14807,7 +14613,7 @@ 1 2 - 1003 + 1037 @@ -14823,7 +14629,7 @@ 1 2 - 1003 + 1037 @@ -14839,7 +14645,7 @@ 1 2 - 1003 + 1037 @@ -14849,11 +14655,11 @@ ql_instance_of_child - 34256 + 31826 ql_instance_of - 17128 + 15913 index @@ -14861,7 +14667,7 @@ child - 34256 + 31826 @@ -14875,7 +14681,7 @@ 2 3 - 17128 + 15913 @@ -14891,7 +14697,7 @@ 2 3 - 17128 + 15913 @@ -14905,8 +14711,8 @@ 12 - 17128 - 17129 + 15913 + 15914 2 @@ -14921,8 +14727,8 @@ 12 - 17128 - 17129 + 15913 + 15914 2 @@ -14939,7 +14745,7 @@ 1 2 - 34256 + 31826 @@ -14955,7 +14761,7 @@ 1 2 - 34256 + 31826 @@ -14965,26 +14771,26 @@ ql_instance_of_def - 17128 + 15913 id - 17128 + 15913 ql_literal_def - 98847 + 109390 id - 98847 + 109390 child - 98847 + 109390 @@ -14998,7 +14804,7 @@ 1 2 - 98847 + 109390 @@ -15014,7 +14820,7 @@ 1 2 - 98847 + 109390 @@ -15024,19 +14830,19 @@ ql_member_predicate_child - 70661 + 63378 ql_member_predicate - 47549 + 43952 index - 11 + 12 child - 70661 + 63378 @@ -15050,22 +14856,22 @@ 1 2 - 34294 + 32505 2 3 - 7406 + 6417 3 4 - 3503 + 3219 4 - 12 - 2346 + 13 + 1811 @@ -15081,22 +14887,22 @@ 1 2 - 34294 + 32505 2 3 - 7406 + 6417 3 4 - 3503 + 3219 4 - 12 - 2346 + 13 + 1811 @@ -15110,8 +14916,8 @@ 12 - 1 - 2 + 2 + 3 1 @@ -15120,8 +14926,13 @@ 1 - 4 - 5 + 5 + 6 + 1 + + + 6 + 7 1 @@ -15130,38 +14941,38 @@ 1 - 40 - 41 + 39 + 40 1 - 588 - 589 + 420 + 421 1 - 1017 - 1018 + 654 + 655 1 - 2346 - 2347 + 1811 + 1812 1 - 5849 - 5850 + 5030 + 5031 1 - 13255 - 13256 + 11447 + 11448 1 - 47549 - 47550 + 43952 + 43953 1 @@ -15176,8 +14987,8 @@ 12 - 1 - 2 + 2 + 3 1 @@ -15186,8 +14997,13 @@ 1 - 4 - 5 + 5 + 6 + 1 + + + 6 + 7 1 @@ -15196,38 +15012,38 @@ 1 - 40 - 41 + 39 + 40 1 - 588 - 589 + 420 + 421 1 - 1017 - 1018 + 654 + 655 1 - 2346 - 2347 + 1811 + 1812 1 - 5849 - 5850 + 5030 + 5031 1 - 13255 - 13256 + 11447 + 11448 1 - 47549 - 47550 + 43952 + 43953 1 @@ -15244,7 +15060,7 @@ 1 2 - 70661 + 63378 @@ -15260,7 +15076,7 @@ 1 2 - 70661 + 63378 @@ -15270,19 +15086,19 @@ ql_member_predicate_def - 47549 + 43952 id - 47549 + 43952 name - 47549 + 43952 return_type - 47549 + 43952 @@ -15296,7 +15112,7 @@ 1 2 - 47549 + 43952 @@ -15312,7 +15128,7 @@ 1 2 - 47549 + 43952 @@ -15328,7 +15144,7 @@ 1 2 - 47549 + 43952 @@ -15344,7 +15160,7 @@ 1 2 - 47549 + 43952 @@ -15360,7 +15176,7 @@ 1 2 - 47549 + 43952 @@ -15376,7 +15192,7 @@ 1 2 - 47549 + 43952 @@ -15386,15 +15202,15 @@ ql_module_alias_body_def - 725 + 917 id - 725 + 917 child - 725 + 917 @@ -15408,7 +15224,7 @@ 1 2 - 725 + 917 @@ -15424,7 +15240,7 @@ 1 2 - 725 + 917 @@ -15434,19 +15250,19 @@ ql_module_child - 35070 + 33181 ql_module - 3910 + 4556 index - 1248 + 1314 child - 35070 + 33181 @@ -15460,47 +15276,42 @@ 1 2 - 1257 + 1138 2 3 - 624 + 1239 3 4 - 294 + 385 4 5 - 294 + 392 5 8 - 324 + 383 8 - 12 - 311 - - - 12 - 17 - 322 + 13 + 407 - 17 - 34 - 295 + 13 + 23 + 351 - 34 - 1249 - 189 + 23 + 1315 + 261 @@ -15516,47 +15327,42 @@ 1 2 - 1257 + 1138 2 3 - 624 + 1239 3 4 - 294 + 385 4 5 - 294 + 392 5 8 - 324 + 383 8 - 12 - 311 - - - 12 - 17 - 322 + 13 + 407 - 17 - 34 - 295 + 13 + 23 + 351 - 34 - 1249 - 189 + 23 + 1315 + 261 @@ -15572,32 +15378,32 @@ 1 2 - 684 + 718 2 3 - 144 + 180 3 - 4 - 131 + 5 + 114 - 4 - 8 - 109 + 5 + 7 + 102 - 15 - 30 - 94 + 7 + 17 + 106 - 31 - 3911 - 86 + 17 + 4557 + 94 @@ -15613,32 +15419,32 @@ 1 2 - 684 + 718 2 3 - 144 + 180 3 - 4 - 131 + 5 + 114 - 4 - 8 - 109 + 5 + 7 + 102 - 15 - 30 - 94 + 7 + 17 + 106 - 31 - 3911 - 86 + 17 + 4557 + 94 @@ -15654,7 +15460,7 @@ 1 2 - 35070 + 33181 @@ -15670,7 +15476,7 @@ 1 2 - 35070 + 33181 @@ -15680,15 +15486,15 @@ ql_module_def - 3916 + 4567 id - 3916 + 4567 name - 3916 + 4567 @@ -15702,7 +15508,7 @@ 1 2 - 3916 + 4567 @@ -15718,7 +15524,7 @@ 1 2 - 3916 + 4567 @@ -15728,15 +15534,15 @@ ql_module_expr_def - 72503 + 76399 id - 72503 + 76399 child - 72503 + 76399 @@ -15750,7 +15556,7 @@ 1 2 - 72503 + 76399 @@ -15766,7 +15572,7 @@ 1 2 - 72503 + 76399 @@ -15776,15 +15582,15 @@ ql_module_expr_name - 4091 + 4773 ql_module_expr - 4091 + 4773 name - 4091 + 4773 @@ -15798,7 +15604,7 @@ 1 2 - 4091 + 4773 @@ -15814,7 +15620,7 @@ 1 2 - 4091 + 4773 @@ -15824,11 +15630,11 @@ ql_module_implements - 759 + 1251 ql_module - 759 + 1251 index @@ -15836,7 +15642,7 @@ implements - 759 + 1251 @@ -15850,7 +15656,7 @@ 1 2 - 759 + 1251 @@ -15866,7 +15672,7 @@ 1 2 - 759 + 1251 @@ -15880,8 +15686,8 @@ 12 - 759 - 760 + 1251 + 1252 1 @@ -15896,8 +15702,8 @@ 12 - 759 - 760 + 1251 + 1252 1 @@ -15914,7 +15720,7 @@ 1 2 - 759 + 1251 @@ -15930,7 +15736,7 @@ 1 2 - 759 + 1251 @@ -15940,19 +15746,19 @@ ql_module_instantiation_child - 1190 + 2192 ql_module_instantiation - 1043 + 1740 index - 6 + 8 child - 1190 + 2192 @@ -15966,12 +15772,17 @@ 1 2 - 966 + 1473 2 - 7 - 77 + 3 + 172 + + + 3 + 9 + 95 @@ -15987,12 +15798,17 @@ 1 2 - 966 + 1473 2 - 7 - 77 + 3 + 172 + + + 3 + 9 + 95 @@ -16008,31 +15824,36 @@ 3 4 + 2 + + + 8 + 9 1 - 5 - 6 + 20 + 21 1 - 26 - 27 + 56 + 57 1 - 36 - 37 + 95 + 96 1 - 77 - 78 + 267 + 268 1 - 1043 - 1044 + 1740 + 1741 1 @@ -16049,31 +15870,36 @@ 3 4 + 2 + + + 8 + 9 1 - 5 - 6 + 20 + 21 1 - 26 - 27 + 56 + 57 1 - 36 - 37 + 95 + 96 1 - 77 - 78 + 267 + 268 1 - 1043 - 1044 + 1740 + 1741 1 @@ -16090,7 +15916,7 @@ 1 2 - 1190 + 2192 @@ -16106,7 +15932,7 @@ 1 2 - 1190 + 2192 @@ -16116,15 +15942,15 @@ ql_module_instantiation_def - 1043 + 1740 id - 1043 + 1740 name - 1043 + 1740 @@ -16138,7 +15964,7 @@ 1 2 - 1043 + 1740 @@ -16154,7 +15980,7 @@ 1 2 - 1043 + 1740 @@ -16164,19 +15990,19 @@ ql_module_member_child - 155140 + 150156 ql_module_member - 119591 + 118178 index - 5 + 6 child - 155140 + 150156 @@ -16190,17 +16016,17 @@ 1 2 - 87424 + 88793 2 3 - 28864 + 26917 3 - 6 - 3303 + 7 + 2468 @@ -16216,17 +16042,17 @@ 1 2 - 87424 + 88793 2 3 - 28864 + 26917 3 - 6 - 3303 + 7 + 2468 @@ -16240,28 +16066,33 @@ 12 - 4 - 5 + 2 + 3 + 1 + + + 10 + 11 1 - 75 - 76 + 113 + 114 1 - 3303 - 3304 + 2468 + 2469 1 - 32167 - 32168 + 29385 + 29386 1 - 119591 - 119592 + 118178 + 118179 1 @@ -16276,28 +16107,33 @@ 12 - 4 - 5 + 2 + 3 + 1 + + + 10 + 11 1 - 75 - 76 + 113 + 114 1 - 3303 - 3304 + 2468 + 2469 1 - 32167 - 32168 + 29385 + 29386 1 - 119591 - 119592 + 118178 + 118179 1 @@ -16314,7 +16150,7 @@ 1 2 - 155140 + 150156 @@ -16330,7 +16166,7 @@ 1 2 - 155140 + 150156 @@ -16340,26 +16176,26 @@ ql_module_member_def - 119591 + 118178 id - 119591 + 118178 ql_module_name_def - 6324 + 7606 id - 6324 + 7606 child - 6324 + 7606 @@ -16373,7 +16209,7 @@ 1 2 - 6324 + 7606 @@ -16389,7 +16225,7 @@ 1 2 - 6324 + 7606 @@ -16399,19 +16235,19 @@ ql_module_param_def - 299 + 266 id - 299 + 266 parameter - 299 + 266 signature - 299 + 266 @@ -16425,7 +16261,7 @@ 1 2 - 299 + 266 @@ -16441,7 +16277,7 @@ 1 2 - 299 + 266 @@ -16457,7 +16293,7 @@ 1 2 - 299 + 266 @@ -16473,7 +16309,7 @@ 1 2 - 299 + 266 @@ -16489,7 +16325,7 @@ 1 2 - 299 + 266 @@ -16505,7 +16341,7 @@ 1 2 - 299 + 266 @@ -16515,19 +16351,19 @@ ql_module_parameter - 299 + 266 ql_module - 214 + 185 index - 6 + 8 parameter - 299 + 266 @@ -16541,17 +16377,22 @@ 1 2 - 183 + 138 2 - 4 - 14 + 3 + 30 - 4 - 7 - 17 + 3 + 6 + 15 + + + 6 + 9 + 2 @@ -16567,17 +16408,22 @@ 1 2 - 183 + 138 2 - 4 - 14 + 3 + 30 - 4 - 7 - 17 + 3 + 6 + 15 + + + 6 + 9 + 2 @@ -16591,8 +16437,18 @@ 12 - 8 - 9 + 1 + 2 + 2 + + + 2 + 3 + 1 + + + 4 + 5 1 @@ -16606,18 +16462,13 @@ 1 - 20 - 21 - 1 - - - 31 - 32 + 47 + 48 1 - 214 - 215 + 185 + 186 1 @@ -16632,8 +16483,18 @@ 12 - 8 - 9 + 1 + 2 + 2 + + + 2 + 3 + 1 + + + 4 + 5 1 @@ -16647,18 +16508,13 @@ 1 - 20 - 21 - 1 - - - 31 - 32 + 47 + 48 1 - 214 - 215 + 185 + 186 1 @@ -16675,7 +16531,7 @@ 1 2 - 299 + 266 @@ -16691,7 +16547,7 @@ 1 2 - 299 + 266 @@ -16701,23 +16557,23 @@ ql_mul_expr_def - 631 + 585 id - 631 + 585 left - 631 + 585 right - 631 + 585 child - 631 + 585 @@ -16731,7 +16587,7 @@ 1 2 - 631 + 585 @@ -16747,7 +16603,7 @@ 1 2 - 631 + 585 @@ -16763,7 +16619,7 @@ 1 2 - 631 + 585 @@ -16779,7 +16635,7 @@ 1 2 - 631 + 585 @@ -16795,7 +16651,7 @@ 1 2 - 631 + 585 @@ -16811,7 +16667,7 @@ 1 2 - 631 + 585 @@ -16827,7 +16683,7 @@ 1 2 - 631 + 585 @@ -16843,7 +16699,7 @@ 1 2 - 631 + 585 @@ -16859,7 +16715,7 @@ 1 2 - 631 + 585 @@ -16875,7 +16731,7 @@ 1 2 - 631 + 585 @@ -16891,7 +16747,7 @@ 1 2 - 631 + 585 @@ -16907,7 +16763,7 @@ 1 2 - 631 + 585 @@ -16917,15 +16773,15 @@ ql_negation_def - 12010 + 11727 id - 12010 + 11727 child - 12010 + 11727 @@ -16939,7 +16795,7 @@ 1 2 - 12010 + 11727 @@ -16955,7 +16811,7 @@ 1 2 - 12010 + 11727 @@ -16965,11 +16821,11 @@ ql_order_by_child - 1298 + 1272 ql_order_by - 1098 + 1067 index @@ -16977,7 +16833,7 @@ child - 1298 + 1272 @@ -16991,12 +16847,12 @@ 1 2 - 898 + 862 2 3 - 200 + 205 @@ -17012,12 +16868,12 @@ 1 2 - 898 + 862 2 3 - 200 + 205 @@ -17031,13 +16887,13 @@ 12 - 200 - 201 + 205 + 206 1 - 1098 - 1099 + 1067 + 1068 1 @@ -17052,13 +16908,13 @@ 12 - 200 - 201 + 205 + 206 1 - 1098 - 1099 + 1067 + 1068 1 @@ -17075,7 +16931,7 @@ 1 2 - 1298 + 1272 @@ -17091,7 +16947,7 @@ 1 2 - 1298 + 1272 @@ -17101,30 +16957,30 @@ ql_order_by_def - 1098 + 1067 id - 1098 + 1067 ql_order_bys_child - 1098 + 1067 ql_order_bys - 674 + 661 index - 9 + 8 child - 1098 + 1067 @@ -17138,22 +16994,22 @@ 1 2 - 488 + 477 2 3 - 100 + 101 3 5 - 43 + 41 5 - 10 - 43 + 9 + 42 @@ -17169,22 +17025,22 @@ 1 2 - 488 + 477 2 3 - 100 + 101 3 5 - 43 + 41 5 - 10 - 43 + 9 + 42 @@ -17198,28 +17054,23 @@ 12 - 3 - 4 - 1 - - - 6 - 7 + 1 + 2 1 - 15 - 16 + 12 + 13 1 - 22 - 23 + 21 + 22 1 - 43 - 44 + 42 + 43 1 @@ -17228,18 +17079,18 @@ 1 - 86 - 87 + 83 + 84 1 - 186 - 187 + 184 + 185 1 - 674 - 675 + 661 + 662 1 @@ -17254,28 +17105,23 @@ 12 - 3 - 4 - 1 - - - 6 - 7 + 1 + 2 1 - 15 - 16 + 12 + 13 1 - 22 - 23 + 21 + 22 1 - 43 - 44 + 42 + 43 1 @@ -17284,18 +17130,18 @@ 1 - 86 - 87 + 83 + 84 1 - 186 - 187 + 184 + 185 1 - 674 - 675 + 661 + 662 1 @@ -17312,7 +17158,7 @@ 1 2 - 1098 + 1067 @@ -17328,7 +17174,7 @@ 1 2 - 1098 + 1067 @@ -17338,26 +17184,26 @@ ql_order_bys_def - 674 + 661 id - 674 + 661 ql_par_expr_def - 6038 + 5799 id - 6038 + 5799 child - 6038 + 5799 @@ -17371,7 +17217,7 @@ 1 2 - 6038 + 5799 @@ -17387,7 +17233,7 @@ 1 2 - 6038 + 5799 @@ -17397,15 +17243,15 @@ ql_predicate_alias_body_def - 329 + 372 id - 329 + 372 child - 329 + 372 @@ -17419,7 +17265,7 @@ 1 2 - 329 + 372 @@ -17435,7 +17281,7 @@ 1 2 - 329 + 372 @@ -17445,11 +17291,11 @@ ql_predicate_expr_child - 1324 + 1478 ql_predicate_expr - 662 + 739 index @@ -17457,7 +17303,7 @@ child - 1324 + 1478 @@ -17471,7 +17317,7 @@ 2 3 - 662 + 739 @@ -17487,7 +17333,7 @@ 2 3 - 662 + 739 @@ -17501,8 +17347,8 @@ 12 - 662 - 663 + 739 + 740 2 @@ -17517,8 +17363,8 @@ 12 - 662 - 663 + 739 + 740 2 @@ -17535,7 +17381,7 @@ 1 2 - 1324 + 1478 @@ -17551,7 +17397,7 @@ 1 2 - 1324 + 1478 @@ -17561,11 +17407,11 @@ ql_predicate_expr_def - 662 + 739 id - 662 + 739 @@ -17675,19 +17521,19 @@ ql_ql_child - 85246 + 85914 ql_ql - 10779 + 11162 index - 326 + 340 child - 85246 + 85914 @@ -17701,47 +17547,52 @@ 1 2 - 134 + 96 2 3 - 2560 + 2238 3 4 - 2291 + 2551 4 5 - 1380 + 1524 5 6 - 1013 + 1041 6 - 8 - 949 + 7 + 730 - 8 - 12 - 954 + 7 + 9 + 829 - 12 - 24 - 827 + 9 + 14 + 913 - 24 - 327 - 671 + 14 + 31 + 844 + + + 31 + 341 + 396 @@ -17757,47 +17608,52 @@ 1 2 - 134 + 96 2 3 - 2560 + 2238 3 4 - 2291 + 2551 4 5 - 1380 + 1524 5 6 - 1013 + 1041 6 - 8 - 949 + 7 + 730 - 8 - 12 - 954 + 7 + 9 + 829 - 12 - 24 - 827 + 9 + 14 + 913 - 24 - 327 - 671 + 14 + 31 + 844 + + + 31 + 341 + 396 @@ -17813,68 +17669,63 @@ 1 2 - 45 + 42 2 - 5 - 17 + 4 + 25 - 5 - 11 - 26 + 4 + 6 + 28 - 11 + 6 + 10 + 31 + + + 10 13 - 24 + 28 13 - 15 + 22 30 - 15 - 23 + 22 + 29 26 - 23 - 30 + 29 + 46 27 - - 30 - 47 - 28 - 48 - 94 - 25 + 83 + 26 - 96 - 185 - 25 + 84 + 176 + 26 - 187 - 519 - 25 + 179 + 553 + 26 - 548 - 5795 + 584 + 11163 25 - - 8085 - 10780 - 3 - @@ -17889,68 +17740,63 @@ 1 2 - 45 + 42 2 - 5 - 17 + 4 + 25 - 5 - 11 - 26 + 4 + 6 + 28 - 11 + 6 + 10 + 31 + + + 10 13 - 24 + 28 13 - 15 + 22 30 - 15 - 23 + 22 + 29 26 - 23 - 30 + 29 + 46 27 - - 30 - 47 - 28 - 48 - 94 - 25 + 83 + 26 - 96 - 185 - 25 + 84 + 176 + 26 - 187 - 519 - 25 + 179 + 553 + 26 - 548 - 5795 + 584 + 11163 25 - - 8085 - 10780 - 3 - @@ -17965,7 +17811,7 @@ 1 2 - 85246 + 85914 @@ -17981,7 +17827,7 @@ 1 2 - 85246 + 85914 @@ -17991,22 +17837,22 @@ ql_ql_def - 10785 + 11167 id - 10785 + 11167 ql_qualified_expr_child - 337022 + 330314 ql_qualified_expr - 168511 + 165157 index @@ -18014,7 +17860,7 @@ child - 337022 + 330314 @@ -18028,7 +17874,7 @@ 2 3 - 168511 + 165157 @@ -18044,7 +17890,7 @@ 2 3 - 168511 + 165157 @@ -18058,8 +17904,8 @@ 12 - 168511 - 168512 + 165157 + 165158 2 @@ -18074,8 +17920,8 @@ 12 - 168511 - 168512 + 165157 + 165158 2 @@ -18092,7 +17938,7 @@ 1 2 - 337022 + 330314 @@ -18108,7 +17954,7 @@ 1 2 - 337022 + 330314 @@ -18118,30 +17964,30 @@ ql_qualified_expr_def - 168511 + 165157 id - 168511 + 165157 ql_qualified_rhs_child - 68675 + 68095 ql_qualified_rhs - 52287 + 52354 index - 10 + 11 child - 68675 + 68095 @@ -18155,17 +18001,17 @@ 1 2 - 41503 + 41965 2 3 - 7598 + 7314 3 - 11 - 3186 + 12 + 3075 @@ -18181,17 +18027,17 @@ 1 2 - 41503 + 41965 2 3 - 7598 + 7314 3 - 11 - 3186 + 12 + 3075 @@ -18205,18 +18051,18 @@ 12 - 1 - 2 + 8 + 9 1 - 3 - 4 + 9 + 10 1 - 12 - 13 + 11 + 12 1 @@ -18225,33 +18071,38 @@ 1 - 60 - 61 + 25 + 26 + 1 + + + 66 + 67 1 - 905 - 906 + 802 + 803 1 - 1417 - 1418 + 1336 + 1337 1 - 3186 - 3187 + 3075 + 3076 1 - 10784 - 10785 + 10389 + 10390 1 - 52287 - 52288 + 52354 + 52355 1 @@ -18266,18 +18117,18 @@ 12 - 1 - 2 + 8 + 9 1 - 3 - 4 + 9 + 10 1 - 12 - 13 + 11 + 12 1 @@ -18286,33 +18137,38 @@ 1 - 60 - 61 + 25 + 26 + 1 + + + 66 + 67 1 - 905 - 906 + 802 + 803 1 - 1417 - 1418 + 1336 + 1337 1 - 3186 - 3187 + 3075 + 3076 1 - 10784 - 10785 + 10389 + 10390 1 - 52287 - 52288 + 52354 + 52355 1 @@ -18329,7 +18185,7 @@ 1 2 - 68675 + 68095 @@ -18345,7 +18201,7 @@ 1 2 - 68675 + 68095 @@ -18355,26 +18211,26 @@ ql_qualified_rhs_def - 168511 + 165157 id - 168511 + 165157 ql_qualified_rhs_name - 157179 + 153874 ql_qualified_rhs - 157179 + 153874 name - 157179 + 153874 @@ -18388,7 +18244,7 @@ 1 2 - 157179 + 153874 @@ -18404,7 +18260,7 @@ 1 2 - 157179 + 153874 @@ -18414,11 +18270,11 @@ ql_quantified_child - 57793 + 52811 ql_quantified - 26111 + 24227 index @@ -18426,7 +18282,7 @@ child - 57793 + 52811 @@ -18440,27 +18296,27 @@ 1 2 - 4431 + 4452 2 3 - 15291 + 14178 3 4 - 4044 + 3526 4 6 - 2065 + 1823 6 23 - 280 + 248 @@ -18476,27 +18332,27 @@ 1 2 - 4431 + 4452 2 3 - 15291 + 14178 3 4 - 4044 + 3526 4 6 - 2065 + 1823 6 23 - 280 + 248 @@ -18515,33 +18371,33 @@ 11 - 4 - 12 + 3 + 9 2 - 22 - 47 + 19 + 45 2 - 110 - 281 + 102 + 249 2 - 784 - 2346 + 706 + 2072 2 - 6389 - 21681 + 5597 + 19776 2 - 26111 - 26112 + 24227 + 24228 1 @@ -18561,33 +18417,33 @@ 11 - 4 - 12 + 3 + 9 2 - 22 - 47 + 19 + 45 2 - 110 - 281 + 102 + 249 2 - 784 - 2346 + 706 + 2072 2 - 6389 - 21681 + 5597 + 19776 2 - 26111 - 26112 + 24227 + 24228 1 @@ -18604,7 +18460,7 @@ 1 2 - 57793 + 52811 @@ -18620,7 +18476,7 @@ 1 2 - 57793 + 52811 @@ -18630,26 +18486,26 @@ ql_quantified_def - 26111 + 24227 id - 26111 + 24227 ql_quantified_expr - 4431 + 4452 ql_quantified - 4431 + 4452 expr - 4431 + 4452 @@ -18663,7 +18519,7 @@ 1 2 - 4431 + 4452 @@ -18679,7 +18535,7 @@ 1 2 - 4431 + 4452 @@ -18689,15 +18545,15 @@ ql_quantified_formula - 7682 + 7476 ql_quantified - 7682 + 7476 formula - 7682 + 7476 @@ -18711,7 +18567,7 @@ 1 2 - 7682 + 7476 @@ -18727,7 +18583,7 @@ 1 2 - 7682 + 7476 @@ -18737,15 +18593,15 @@ ql_quantified_range - 21641 + 19737 ql_quantified - 21641 + 19737 range - 21641 + 19737 @@ -18759,7 +18615,7 @@ 1 2 - 21641 + 19737 @@ -18775,7 +18631,7 @@ 1 2 - 21641 + 19737 @@ -18785,19 +18641,19 @@ ql_range_def - 417 + 365 id - 417 + 365 lower - 417 + 365 upper - 417 + 365 @@ -18811,7 +18667,7 @@ 1 2 - 417 + 365 @@ -18827,7 +18683,7 @@ 1 2 - 417 + 365 @@ -18843,7 +18699,7 @@ 1 2 - 417 + 365 @@ -18859,7 +18715,7 @@ 1 2 - 417 + 365 @@ -18875,7 +18731,7 @@ 1 2 - 417 + 365 @@ -18891,7 +18747,7 @@ 1 2 - 417 + 365 @@ -18901,11 +18757,11 @@ ql_select_child - 22594 + 23801 ql_select - 5640 + 5989 index @@ -18913,7 +18769,7 @@ child - 22594 + 23801 @@ -18927,37 +18783,37 @@ 1 2 - 137 + 149 2 3 - 787 + 854 3 4 - 1249 + 1341 4 5 - 1613 + 1821 5 6 - 1087 + 1028 6 7 - 453 + 465 7 21 - 314 + 331 @@ -18973,37 +18829,37 @@ 1 2 - 137 + 149 2 3 - 787 + 854 3 4 - 1249 + 1341 4 5 - 1613 + 1821 5 6 - 1087 + 1028 6 7 - 453 + 465 7 21 - 314 + 331 @@ -19027,18 +18883,23 @@ 2 - 3 - 4 - 2 + 4 + 5 + 1 - 7 - 8 - 2 + 6 + 7 + 1 - 12 - 13 + 11 + 12 + 1 + + + 13 + 14 1 @@ -19047,58 +18908,63 @@ 1 - 25 - 26 + 27 + 28 1 - 37 - 38 + 29 + 30 + 1 + + + 44 + 45 1 - 64 - 65 + 71 + 72 1 - 150 - 151 + 160 + 161 1 - 314 - 315 + 331 + 332 1 - 767 - 768 + 796 + 797 1 - 1854 - 1855 + 1824 + 1825 1 - 3467 - 3468 + 3645 + 3646 1 - 4716 - 4717 + 4986 + 4987 1 - 5503 - 5504 + 5840 + 5841 1 - 5640 - 5641 + 5989 + 5990 1 @@ -19123,18 +18989,23 @@ 2 - 3 - 4 - 2 + 4 + 5 + 1 + + + 6 + 7 + 1 - 7 - 8 - 2 + 11 + 12 + 1 - 12 - 13 + 13 + 14 1 @@ -19143,58 +19014,63 @@ 1 - 25 - 26 + 27 + 28 1 - 37 - 38 + 29 + 30 + 1 + + + 44 + 45 1 - 64 - 65 + 71 + 72 1 - 150 - 151 + 160 + 161 1 - 314 - 315 + 331 + 332 1 - 767 - 768 + 796 + 797 1 - 1854 - 1855 + 1824 + 1825 1 - 3467 - 3468 + 3645 + 3646 1 - 4716 - 4717 + 4986 + 4987 1 - 5503 - 5504 + 5840 + 5841 1 - 5640 - 5641 + 5989 + 5990 1 @@ -19211,7 +19087,7 @@ 1 2 - 22594 + 23801 @@ -19227,7 +19103,7 @@ 1 2 - 22594 + 23801 @@ -19237,22 +19113,22 @@ ql_select_def - 5640 + 5989 id - 5640 + 5989 ql_set_literal_child - 18133 + 20149 ql_set_literal - 3557 + 4014 index @@ -19260,7 +19136,7 @@ child - 18133 + 20149 @@ -19274,37 +19150,37 @@ 1 2 - 5 + 9 2 3 - 2131 + 2354 3 4 - 426 + 506 4 5 - 309 + 351 5 7 - 258 + 291 7 - 14 - 276 + 13 + 315 - 14 + 13 1029 - 152 + 188 @@ -19320,37 +19196,37 @@ 1 2 - 5 + 9 2 3 - 2131 + 2354 3 4 - 426 + 506 4 5 - 309 + 351 5 7 - 258 + 291 7 - 14 - 276 + 13 + 315 - 14 + 13 1029 - 152 + 188 @@ -19375,23 +19251,23 @@ 3 - 6 - 94 + 5 + 63 - 6 - 11 - 84 + 5 + 9 + 90 - 11 - 31 - 79 + 9 + 19 + 83 - 31 - 3558 - 49 + 19 + 4015 + 70 @@ -19416,23 +19292,23 @@ 3 - 6 - 94 + 5 + 63 - 6 - 11 - 84 + 5 + 9 + 90 - 11 - 31 - 79 + 9 + 19 + 83 - 31 - 3558 - 49 + 19 + 4015 + 70 @@ -19448,7 +19324,7 @@ 1 2 - 18133 + 20149 @@ -19464,7 +19340,7 @@ 1 2 - 18133 + 20149 @@ -19474,37 +19350,37 @@ ql_set_literal_def - 3557 + 4014 id - 3557 + 4014 ql_signature_expr_def - 2248 + 3709 id - 2248 + 3709 ql_signature_expr_mod_expr - 92 + 180 ql_signature_expr - 92 + 180 mod_expr - 92 + 180 @@ -19518,7 +19394,7 @@ 1 2 - 92 + 180 @@ -19534,7 +19410,7 @@ 1 2 - 92 + 180 @@ -19544,15 +19420,15 @@ ql_signature_expr_predicate - 149 + 232 ql_signature_expr - 149 + 232 predicate - 149 + 232 @@ -19566,7 +19442,7 @@ 1 2 - 149 + 232 @@ -19582,7 +19458,7 @@ 1 2 - 149 + 232 @@ -19592,15 +19468,15 @@ ql_signature_expr_type_expr - 2007 + 3297 ql_signature_expr - 2007 + 3297 type_expr - 2007 + 3297 @@ -19614,7 +19490,7 @@ 1 2 - 2007 + 3297 @@ -19630,7 +19506,7 @@ 1 2 - 2007 + 3297 @@ -19640,15 +19516,15 @@ ql_special_call_def - 4863 + 4424 id - 4863 + 4424 child - 4863 + 4424 @@ -19662,7 +19538,7 @@ 1 2 - 4863 + 4424 @@ -19678,7 +19554,7 @@ 1 2 - 4863 + 4424 @@ -19688,11 +19564,11 @@ ql_super_ref_child - 3070 + 3530 ql_super_ref - 2444 + 2901 index @@ -19700,7 +19576,7 @@ child - 3070 + 3530 @@ -19714,12 +19590,12 @@ 1 2 - 1818 + 2272 2 3 - 626 + 629 @@ -19735,12 +19611,12 @@ 1 2 - 1818 + 2272 2 3 - 626 + 629 @@ -19754,13 +19630,13 @@ 12 - 626 - 627 + 629 + 630 1 - 2444 - 2445 + 2901 + 2902 1 @@ -19775,13 +19651,13 @@ 12 - 626 - 627 + 629 + 630 1 - 2444 - 2445 + 2901 + 2902 1 @@ -19798,7 +19674,7 @@ 1 2 - 3070 + 3530 @@ -19814,7 +19690,7 @@ 1 2 - 3070 + 3530 @@ -19824,22 +19700,22 @@ ql_super_ref_def - 2444 + 2901 id - 2444 + 2901 ql_tokeninfo - 3697389 + 3524470 id - 3697389 + 3524470 kind @@ -19847,7 +19723,7 @@ value - 145712 + 159352 @@ -19861,7 +19737,7 @@ 1 2 - 3697389 + 3524470 @@ -19877,7 +19753,7 @@ 1 2 - 3697389 + 3524470 @@ -19891,83 +19767,83 @@ 12 - 200 - 297 + 205 + 306 2 - 631 - 1062 + 585 + 993 2 - 1171 - 2124 + 1158 + 1974 2 - 2391 - 2445 + 2234 + 2302 2 - 2648 - 2684 + 2344 + 2902 2 - 3604 - 4864 + 3766 + 4425 2 - 9694 - 14858 + 9053 + 13787 2 - 20351 - 20707 + 17184 + 20889 2 - 20738 - 26112 + 21612 + 24228 2 - 28901 - 49385 + 26200 + 47957 2 - 53091 - 55182 + 50826 + 52494 2 - 56786 - 67460 + 55406 + 58185 2 - 73436 - 75428 + 66480 + 83939 2 - 138784 - 224656 + 140334 + 204254 2 - 229368 - 542287 + 221079 + 512065 2 - 1966059 - 1966060 + 1875319 + 1875320 1 @@ -20003,7 +19879,7 @@ 12 - 19 + 18 2 @@ -20012,28 +19888,28 @@ 2 - 173 - 883 + 635 + 858 2 - 2434 - 11721 + 2472 + 12791 2 - 14851 - 14868 + 15738 + 15845 2 - 18243 - 20539 + 18782 + 21406 2 - 35688 - 41928 + 42941 + 44802 2 @@ -20050,32 +19926,32 @@ 1 2 - 85140 + 96196 2 3 - 21743 + 23735 3 4 - 10555 + 11475 4 7 - 13169 + 13411 7 - 27 - 11024 + 41 + 12004 - 27 - 371333 - 4081 + 41 + 348424 + 2531 @@ -20091,17 +19967,17 @@ 1 2 - 130386 + 142727 2 3 - 14775 + 16072 3 5 - 551 + 553 @@ -20111,15 +19987,15 @@ ql_type_alias_body_def - 1245 + 817 id - 1245 + 817 child - 1245 + 817 @@ -20133,7 +20009,7 @@ 1 2 - 1245 + 817 @@ -20149,7 +20025,7 @@ 1 2 - 1245 + 817 @@ -20159,15 +20035,15 @@ ql_type_expr_child - 52988 + 51722 ql_type_expr - 52988 + 51722 child - 52988 + 51722 @@ -20181,7 +20057,7 @@ 1 2 - 52988 + 51722 @@ -20197,7 +20073,7 @@ 1 2 - 52988 + 51722 @@ -20207,26 +20083,26 @@ ql_type_expr_def - 236975 + 218057 id - 236975 + 218057 ql_type_expr_name - 183987 + 166335 ql_type_expr - 183987 + 166335 name - 183987 + 166335 @@ -20240,7 +20116,7 @@ 1 2 - 183987 + 166335 @@ -20256,7 +20132,7 @@ 1 2 - 183987 + 166335 @@ -20266,15 +20142,15 @@ ql_type_expr_qualifier - 32598 + 34602 ql_type_expr - 32598 + 34602 qualifier - 32598 + 34602 @@ -20288,7 +20164,7 @@ 1 2 - 32598 + 34602 @@ -20304,7 +20180,7 @@ 1 2 - 32598 + 34602 @@ -20314,11 +20190,11 @@ ql_type_union_body_child - 1152 + 1174 ql_type_union_body - 249 + 253 index @@ -20326,7 +20202,7 @@ child - 1152 + 1174 @@ -20340,7 +20216,7 @@ 2 3 - 117 + 121 3 @@ -20350,12 +20226,12 @@ 4 5 - 35 + 32 5 6 - 14 + 17 6 @@ -20381,7 +20257,7 @@ 2 3 - 117 + 121 3 @@ -20391,12 +20267,12 @@ 4 5 - 35 + 32 5 6 - 14 + 17 6 @@ -20422,32 +20298,27 @@ 1 2 - 104 + 98 2 3 - 15 + 21 3 - 4 - 2 - - - 4 5 13 5 - 21 + 18 12 - 23 - 250 - 7 + 19 + 254 + 9 @@ -20463,32 +20334,27 @@ 1 2 - 104 + 98 2 3 - 15 + 21 3 - 4 - 2 - - - 4 5 13 5 - 21 + 18 12 - 23 - 250 - 7 + 19 + 254 + 9 @@ -20504,7 +20370,7 @@ 1 2 - 1152 + 1174 @@ -20520,7 +20386,7 @@ 1 2 - 1152 + 1174 @@ -20530,22 +20396,22 @@ ql_type_union_body_def - 249 + 253 id - 249 + 253 ql_unary_expr_child - 2342 + 2316 ql_unary_expr - 1171 + 1158 index @@ -20553,7 +20419,7 @@ child - 2342 + 2316 @@ -20567,7 +20433,7 @@ 2 3 - 1171 + 1158 @@ -20583,7 +20449,7 @@ 2 3 - 1171 + 1158 @@ -20597,8 +20463,8 @@ 12 - 1171 - 1172 + 1158 + 1159 2 @@ -20613,8 +20479,8 @@ 12 - 1171 - 1172 + 1158 + 1159 2 @@ -20631,7 +20497,7 @@ 1 2 - 2342 + 2316 @@ -20647,7 +20513,7 @@ 1 2 - 2342 + 2316 @@ -20657,11 +20523,11 @@ ql_unary_expr_def - 1171 + 1158 id - 1171 + 1158 @@ -20911,11 +20777,11 @@ ql_var_decl_child - 258882 + 228274 ql_var_decl - 129441 + 114137 index @@ -20923,7 +20789,7 @@ child - 258882 + 228274 @@ -20937,7 +20803,7 @@ 2 3 - 129441 + 114137 @@ -20953,7 +20819,7 @@ 2 3 - 129441 + 114137 @@ -20967,8 +20833,8 @@ 12 - 129441 - 129442 + 114137 + 114138 2 @@ -20983,8 +20849,8 @@ 12 - 129441 - 129442 + 114137 + 114138 2 @@ -21001,7 +20867,7 @@ 1 2 - 258882 + 228274 @@ -21017,7 +20883,7 @@ 1 2 - 258882 + 228274 @@ -21027,26 +20893,26 @@ ql_var_decl_def - 129441 + 114137 id - 129441 + 114137 ql_var_name_def - 415356 + 380908 id - 415356 + 380908 child - 415356 + 380908 @@ -21060,7 +20926,7 @@ 1 2 - 415356 + 380908 @@ -21076,7 +20942,7 @@ 1 2 - 415356 + 380908 @@ -21086,15 +20952,15 @@ ql_variable_def - 393587 + 369462 id - 393587 + 369462 child - 393587 + 369462 @@ -21108,7 +20974,7 @@ 1 2 - 393587 + 369462 @@ -21124,7 +20990,7 @@ 1 2 - 393587 + 369462 @@ -21145,11 +21011,11 @@ yaml - 1348 + 1726 id - 1348 + 1726 kind @@ -21157,7 +21023,7 @@ parent - 304 + 350 idx @@ -21169,7 +21035,7 @@ tostring - 236 + 263 @@ -21183,7 +21049,7 @@ 1 2 - 1348 + 1726 @@ -21199,7 +21065,7 @@ 1 2 - 1348 + 1726 @@ -21215,7 +21081,7 @@ 1 2 - 1348 + 1726 @@ -21231,7 +21097,7 @@ 1 2 - 1348 + 1726 @@ -21247,7 +21113,7 @@ 1 2 - 1348 + 1726 @@ -21261,18 +21127,18 @@ 12 - 52 - 53 + 59 + 60 1 - 160 - 161 + 186 + 187 1 - 1136 - 1137 + 1481 + 1482 1 @@ -21287,18 +21153,18 @@ 12 - 49 - 50 + 56 + 57 1 - 160 - 161 + 186 + 187 1 - 212 - 213 + 245 + 246 1 @@ -21360,18 +21226,18 @@ 12 - 32 - 33 + 33 + 34 1 - 59 - 60 + 68 + 69 1 - 145 - 146 + 162 + 163 1 @@ -21388,37 +21254,47 @@ 1 2 - 104 + 118 2 3 - 68 + 71 3 + 4 + 8 + + + 4 5 - 25 + 26 6 7 - 47 + 26 8 9 - 18 + 30 10 - 15 - 25 + 11 + 16 - 16 + 12 + 13 + 30 + + + 14 21 - 17 + 25 @@ -21434,17 +21310,17 @@ 1 2 - 230 + 262 2 3 - 31 + 39 3 4 - 43 + 49 @@ -21460,37 +21336,47 @@ 1 2 - 104 + 118 2 3 - 68 + 71 3 + 4 + 8 + + + 4 5 - 25 + 26 6 7 - 47 + 26 8 9 - 18 + 30 10 - 15 - 25 + 11 + 16 - 16 + 12 + 13 + 30 + + + 14 21 - 17 + 25 @@ -21506,22 +21392,22 @@ 1 2 - 215 + 245 2 3 - 40 + 15 3 4 - 24 + 41 4 5 - 25 + 49 @@ -21537,47 +21423,47 @@ 1 2 - 104 + 118 2 3 - 68 + 71 3 4 - 19 + 22 4 5 - 29 + 35 5 - 6 - 5 + 8 + 10 - 6 - 7 - 25 + 8 + 9 + 29 - 8 - 11 - 23 + 9 + 12 + 27 - 11 + 12 17 - 23 + 29 17 19 - 8 + 9 @@ -21595,64 +21481,64 @@ 7 2 - - 10 - 11 + + 11 + 12 2 - 17 - 18 + 19 + 20 2 - 20 - 21 + 25 + 26 2 - 31 - 32 + 55 + 56 2 - 42 - 43 + 71 + 72 2 - 60 - 61 + 101 + 102 2 - 107 - 108 + 127 + 128 2 - 126 - 127 + 153 + 154 1 - 132 - 133 + 161 + 162 1 - 144 - 145 + 164 + 165 1 - 160 - 161 + 186 + 187 1 - 200 - 201 + 232 + 233 1 @@ -21698,63 +21584,63 @@ 2 - 10 - 11 + 11 + 12 2 - 17 - 18 + 19 + 20 2 - 20 - 21 + 25 + 26 2 - 31 - 32 + 55 + 56 2 - 42 - 43 + 71 + 72 2 - 60 - 61 + 101 + 102 2 - 107 - 108 + 127 + 128 2 - 126 - 127 + 153 + 154 1 - 132 - 133 + 161 + 162 1 - 144 - 145 + 164 + 165 1 - 160 - 161 + 186 + 187 1 - 200 - 201 + 232 + 233 1 @@ -21778,15 +21664,10 @@ 3 3 - - 3 - 4 - 2 - 4 5 - 4 + 6 5 @@ -21814,20 +21695,10 @@ 3 1 - - 3 - 4 - 2 - 4 5 - 1 - - - 6 - 7 - 1 + 3 7 @@ -21835,8 +21706,8 @@ 1 - 8 - 9 + 9 + 10 2 @@ -21845,18 +21716,18 @@ 1 - 12 - 13 + 14 + 15 1 - 17 - 18 + 16 + 17 1 - 19 - 20 + 20 + 21 1 @@ -21865,8 +21736,13 @@ 2 - 28 - 29 + 27 + 28 + 1 + + + 29 + 30 1 @@ -21875,18 +21751,18 @@ 1 - 49 - 50 + 59 + 60 1 - 71 - 72 + 80 + 81 1 - 72 - 73 + 81 + 82 1 @@ -21906,23 +21782,23 @@ 1 - 52 - 53 + 59 + 60 1 - 59 - 60 + 137 + 138 1 - 160 - 161 + 186 + 187 1 - 1075 - 1076 + 1342 + 1343 1 @@ -21958,23 +21834,23 @@ 1 - 44 - 45 + 56 + 57 1 - 49 - 50 + 105 + 106 1 - 160 - 161 + 186 + 187 1 - 212 - 213 + 245 + 246 1 @@ -21996,16 +21872,16 @@ 8 9 - 2 + 1 9 10 - 1 + 2 - 18 - 19 + 19 + 20 1 @@ -22030,18 +21906,18 @@ 1 - 32 - 33 + 33 + 34 1 - 59 - 60 + 68 + 69 1 - 142 - 143 + 159 + 160 1 @@ -22058,37 +21934,37 @@ 1 2 - 123 + 141 2 3 - 29 + 28 3 - 5 - 21 + 4 + 16 - 5 - 8 - 15 + 4 + 7 + 22 - 8 + 7 10 - 15 + 18 10 17 - 20 + 21 18 - 104 - 13 + 145 + 17 @@ -22104,7 +21980,7 @@ 1 2 - 236 + 263 @@ -22120,37 +21996,37 @@ 1 2 - 123 + 142 2 3 - 29 + 27 3 - 5 - 21 + 4 + 16 - 5 - 8 - 19 + 4 + 7 + 22 - 8 - 11 + 7 + 10 21 - 11 - 45 - 18 + 10 + 19 + 21 - 49 - 84 - 5 + 19 + 106 + 14 @@ -22166,7 +22042,7 @@ 1 2 - 159 + 179 2 @@ -22176,7 +22052,7 @@ 3 4 - 20 + 24 4 @@ -22185,8 +22061,8 @@ 8 - 9 - 2 + 10 + 5 @@ -22202,7 +22078,7 @@ 1 2 - 236 + 263 @@ -22338,15 +22214,15 @@ yaml_locations - 1348 + 1726 locatable - 1348 + 1726 location - 1348 + 1726 @@ -22360,7 +22236,7 @@ 1 2 - 1348 + 1726 @@ -22376,7 +22252,7 @@ 1 2 - 1348 + 1726 @@ -22386,11 +22262,11 @@ yaml_scalars - 1136 + 1481 scalar - 1136 + 1481 style @@ -22398,7 +22274,7 @@ value - 176 + 195 @@ -22412,7 +22288,7 @@ 1 2 - 1136 + 1481 @@ -22428,7 +22304,7 @@ 1 2 - 1136 + 1481 @@ -22442,18 +22318,18 @@ 12 - 3 - 4 + 5 + 6 1 - 40 - 41 + 41 + 42 1 - 1093 - 1094 + 1435 + 1436 1 @@ -22473,13 +22349,13 @@ 1 - 2 - 3 + 3 + 4 1 - 173 - 174 + 192 + 193 1 @@ -22496,37 +22372,42 @@ 1 2 - 89 + 101 2 3 - 17 + 16 3 4 - 13 + 17 4 - 7 - 15 + 8 + 17 - 7 + 8 10 - 14 + 12 10 - 17 - 16 + 15 + 15 - 18 - 104 - 12 + 15 + 106 + 15 + + + 136 + 145 + 2 @@ -22542,7 +22423,12 @@ 1 2 - 176 + 194 + + + 2 + 3 + 1