From 261180ed0abdacef02257da0ba099a3d04455ba5 Mon Sep 17 00:00:00 2001 From: opaopa6969 Date: Sat, 17 Oct 2026 08:15:23 +0900 Subject: [PATCH 1/5] test: require real fraud production acceptance in both languages --- docs/quality/fraud-production-acceptance.md | 113 ++++++++++ .../tests/fixtures/fraud-acceptance.json | 37 ++++ .../tests/fraud_acceptance.rs | 113 ++++++++++ scripts/check-fraud-production.py | 196 ++++++++++++++++++ scripts/tests/test_fraud_production.py | 74 +++++++ .../p4/P4PackratFraudFormulaTest.java | 59 +----- .../p4/ubnfc/FraudAcceptance.java | 96 +++++++++ .../p4/ubnfc/FraudAcceptanceTest.java | 23 ++ 8 files changed, 659 insertions(+), 52 deletions(-) create mode 100644 docs/quality/fraud-production-acceptance.md create mode 100644 rust/tinyexpression-rs/tests/fixtures/fraud-acceptance.json create mode 100644 rust/tinyexpression-rs/tests/fraud_acceptance.rs create mode 100644 scripts/check-fraud-production.py create mode 100644 scripts/tests/test_fraud_production.py create mode 100644 src/test/java/org/unlaxer/tinyexpression/p4/ubnfc/FraudAcceptance.java create mode 100644 src/test/java/org/unlaxer/tinyexpression/p4/ubnfc/FraudAcceptanceTest.java diff --git a/docs/quality/fraud-production-acceptance.md b/docs/quality/fraud-production-acceptance.md new file mode 100644 index 00000000..d2665e95 --- /dev/null +++ b/docs/quality/fraud-production-acceptance.md @@ -0,0 +1,113 @@ +# Fraud production acceptance and timing (Tiny #257) + +The previous `P4PackratFraudFormulaTest` caught every `RuntimeException` and accepted elapsed +values below **two** seconds while promising one second. A fast failure therefore passed. It +now requires successful parse+map, a non-null `IfExpr`, complete source CP range, valid nested +node ranges and unchanged AST across first-call/warm-up/warm calls. Every sample must take +strictly less than **1,000,000,000 ns**. Exceptions and failed assertions propagate; the 90-second +JUnit timeout is a hang guard, not an alternative performance threshold. + +Both languages read the unchanged five inputs from +`rust/tinyexpression-rs/tests/fixtures/fraud-alert.tsv`; the adjacent `fraud-acceptance.json` +pins input SHA-256, CP length and manually expected conditional counts. The comparison checks +numeric then/else branch ASTs independently (fraud 1–4: 1/0; fraud 5: then 1,1,5,5,5), followed +by complete cross-language AST/CP equality. Null, partial input, invalid span, altered branch, +missing/duplicate observations, wrong entry, cross-language differences and the exact one-second +boundary are negative gates. + +## Production entries and representation + +Java calls `P4PreferredAstMapper.parseDetailed(source, ExpressionTypes._float)` with a scoped +`P4ParserEngine.UBNFC` override. Rust calls public `tinyexpression_rs::parse(source)` once. Tests +add no alternate-entry parse/retry. The facades' existing internal root-selection behavior +remains production behavior, including the retries tracked separately in Tiny #256. + +Java selects the numeric `IfExpr`; Rust can return the enclosing `FormulaExpr`. The Rust test +retains its **raw AST** and selects the conditional for observation only. It accepts only +whole-input Formula wrappers without imports/declarations/methods/code blocks, Expression +wrappers, and Binary wrappers with an AST operand and empty operators/right operands. Anything +else fails. This projection is outside timing and changes no production parse. + +The other existing public shape difference is explicit in Rust `generated/compat.rs`: ubnfc's +synthetic operand `BinaryExpr(left=null, op=[text], right=[])` is folded to `AstValue::Text`. +Java retains that node. The Python comparator folds only this exact shape (including the +existing single-quote lexical normalization). Raw Java AST and raw/selected Rust AST remain +in the reports. All actual node CP spans are independently bounds-checked; the comparator +compares the spans of common nodes and does **not** claim identical publication of text-value +spans absent from Rust canonical JSON. No arbitrary source reparse or text fallback is used. + +Successful public facade calls expose no failure diagnostic. Reports explicitly use +`diagnostic:null`; this does not claim absence/equality of private speculative failures. Java +production currently asks ubnfc for diagnostics and occurrences, while Rust defaults both off; +reports retain that difference. Invalid/trailing input must produce an explicit public failure. +Memo is ubnfc's production default packrat in both cases. The Classic-only +`tinyexpression.p4.memoize` property is neither set nor cited as enabling this production gate. + +## Reproduce semantic and loaded-host regression checks + +Use Java 21 and Rust 1.85. Build against the intended parser artifact in an isolated Maven +repository, explicitly overriding Tiny's default dependency; do not install over a published +artifact in the ordinary user Maven repository. + +```sh +RUSTUP_TOOLCHAIN=1.85.0 mvn -B -Dmaven.repo.local=/path/to/isolated-m2 \ + -Dunlaxer.version=3.3.0 -Dtinyexpression.skipRailroad=true \ + -Dtest=P4PackratFraudFormulaTest,FraudAcceptanceTest test +RUSTUP_TOOLCHAIN=1.85.0 cargo test --manifest-path rust/Cargo.toml --locked \ + -p tinyexpression-rs --test fraud_acceptance -- --nocapture +RUSTUP_TOOLCHAIN=1.85.0 python3 -m unittest discover -s scripts/tests -p test_fraud_production.py -v +RUSTUP_TOOLCHAIN=1.85.0 python3 scripts/check-fraud-production.py \ + --parser-m2 /path/to/isolated-m2 --parser-commit FULL_40_HEX_PARSER_SHA \ + --output /path/to/evidence +``` + +The two tests truncate stale reports before starting and persist successful samples before +checking the time limit, so an over-budget observation is retained. The final comparator +requires all five inputs × three phases × two languages; incomplete/error runs cannot pass. +The output contains raw reports, source commit/dirty state, input identities, grammar/pin +hashes, exact parser JAR hashes, toolchain versions, native platform and verdict. Archive the +Maven/Cargo logs and dependency resolution alongside these files. Use a new output directory +for each run and preserve failed-run evidence. A dirty-tree record is development evidence; +repeat on the final clean source revision before citing its acceptance. + +`cold` means the **first call for this input in this test process**. Other tests in the same JVM or Rust test binary can already have parsed inputs, and later +inputs can use warmed runtime/compiler state. `pid` and `first_observation_in_process` identify +observations, without claiming that the parser or process was otherwise cold. `warmup` is a separate second +call; `warm` is the third call. Do not aggregate these phases or relabel all first-input calls +as fresh-process latency. Parsing and AST conversion are timed; validation, canonical JSON, +input I/O, report I/O, JVM/process startup and build time are excluded. Public Rust `parse` +includes its owned AST conversion; Java includes its facade selection/conversion. + +## Final performance acceptance protocol (not attested by these checks) + +This correction establishes actual acceptance and a one-second regression guard. Its report +always says `measurement_eligible:false`. It does not close parser #197/#184, prove Classic SAFE +performance, or replace those issues' root-selection/retry requirements. + +For final dedicated-host measurement: + +1. Pin the clean Tiny/parser commits, grammar and toolchains; build before timing, hash binaries + and dependency JARs, verify semantic checks, save exact commands/options and native resource + limits. Preserve the parser #652/#653 finite-budget fixes for any separate Classic study. +2. Reserve an idle host: no CI/builds/JFR/sampling profiler or competing benchmark. Record CPU, + memory, OS, governor/container/cgroup limits, runtime heap/stack flags, load before/after and + an explicit truthful exclusivity attestation. Shared-host runs stay exploratory evidence. +3. Run at least five fresh processes per input/language. To select one case in a fresh JVM use + `-Dtinyexpression.fraud.id=fraud#1 -Dtinyexpression.fraud.output=/absolute/java-1.jsonl` + with only `-Dtest=P4PackratFraudFormulaTest`; invoke each case in its own Maven/Surefire process. + For Rust use `FRAUD_ID=fraud#1 FRAUD_OUTPUT=/absolute/rust-1.jsonl` and run + `cargo test --manifest-path rust/Cargo.toml --locked -p tinyexpression-rs --test fraud_acceptance + fraud_formulas_are_accepted_and_mapped_within_one_second -- --exact --nocapture` with + `RUSTUP_TOOLCHAIN=1.85.0` (omit other tests so they cannot pre-warm the process). Repeat for ids 1–5. Run language processes sequentially, not concurrently. Retain distinct + PIDs, all first-call/warm-up/warm samples and failed samples; never choose only a fast run. +4. Compare complete AST/source-position/public-diagnostic observations before evaluating + latency. Require every measured parse+map call < 1 second; do not average away a miss or + raise it to two seconds. Report first-call and warm distributions independently, including + maxima and process-startup exclusion. Keep a hard process hang deadline and count timeout, + exception, partial/null result or unexpected diagnostic as failure. +5. Archive commands, environment, input/source/build hashes, raw times and semantic verdicts. + Separate ubnfc production, Classic SAFE and legacy evidence by backend/API. The ordinary + semantic comparator cannot promote records into a dedicated-host attestation. + +The protocol is preparation only. No dedicated/exclusive-host final measurement was performed +by this change. Concurrent parser CI/build activity existed during development verification. diff --git a/rust/tinyexpression-rs/tests/fixtures/fraud-acceptance.json b/rust/tinyexpression-rs/tests/fixtures/fraud-acceptance.json new file mode 100644 index 00000000..55b1e02c --- /dev/null +++ b/rust/tinyexpression-rs/tests/fixtures/fraud-acceptance.json @@ -0,0 +1,37 @@ +[ + { + "id": "fraud#1", + "sha256": "3b69c9eb95cdea2ba20197530b042791b437d2c2fee05bc3b684308a5da7711c", + "cp": 404, + "if_count": 1, + "root": "IfExpr" + }, + { + "id": "fraud#2", + "sha256": "065b7e78a0cbc470f945da584b8a36a34c2ae1a4de4da399e6ac49e444de3163", + "cp": 209, + "if_count": 1, + "root": "IfExpr" + }, + { + "id": "fraud#3", + "sha256": "3917e9283333ef813cd17de5f9b6a26cac6cef97bda148d1b0928fce24556c47", + "cp": 68, + "if_count": 1, + "root": "IfExpr" + }, + { + "id": "fraud#4", + "sha256": "1167d25450f1b142b86e6891394419ed29c818fc39b397e8ab67cf03bf4e137d", + "cp": 707, + "if_count": 1, + "root": "IfExpr" + }, + { + "id": "fraud#5", + "sha256": "4bcdc00f795d398d678a7ba7f35e49ca53de7ae9702892f8b917711917a56c35", + "cp": 459, + "if_count": 5, + "root": "IfExpr" + } +] diff --git a/rust/tinyexpression-rs/tests/fraud_acceptance.rs b/rust/tinyexpression-rs/tests/fraud_acceptance.rs new file mode 100644 index 00000000..e7275a8c --- /dev/null +++ b/rust/tinyexpression-rs/tests/fraud_acceptance.rs @@ -0,0 +1,113 @@ +//! Production facade acceptance and strict sub-second regression guard (Tiny #257). +//! This is ubnfc production evidence, not unlaxer Classic SAFE calibration. +use std::fmt::Write; +use std::fs; +use std::time::Instant; +use tinyexpression_rs::generated::ast::AstValue; +use tinyexpression_rs::{parse, Ast, FrontendError, Span}; + +const INPUTS: &str = include_str!("fixtures/fraud-alert.tsv"); +const LENGTHS: [usize; 5] = [404, 209, 68, 707, 459]; + +fn conditional_view<'a>(source: &str, raw: &'a Ast) -> &'a Ast { + let full = Span { + start: 0, + end: source.chars().count(), + }; + let mut ast = raw; + loop { + assert_eq!( + ast.span(), + full, + "transparent wrapper must own the complete input" + ); + ast = match ast { + Ast::IfExpr { .. } => return ast, + Ast::FormulaExpr { imports, declarations, expression, methods, codeBlocks, .. } + if imports.is_empty() && declarations.is_empty() && methods.is_empty() && codeBlocks.is_empty() => expression, + Ast::ExpressionExpr { value, .. } => value, + Ast::BinaryExpr { left: AstValue::Node(node), op, right, .. } + if op.is_empty() && right.is_empty() => node, + _ => panic!("production result is not a complete conditional or its documented transparent wrappers"), + }; + } +} + +#[test] +fn fraud_formulas_are_accepted_and_mapped_within_one_second() { + let output = std::env::var_os("FRAUD_OUTPUT") + .map(std::path::PathBuf::from) + .unwrap_or_else(|| { + std::path::Path::new(env!("CARGO_MANIFEST_DIR")) + .join("../../target/fraud-acceptance/rust.jsonl") + }); + fs::create_dir_all(output.parent().unwrap()).unwrap(); + // Truncate first: stale green output must not survive a failed run. + fs::write(&output, "").unwrap(); + let inputs: Vec<_> = INPUTS + .lines() + .filter(|line| !line.is_empty() && !line.starts_with('#')) + .collect(); + assert_eq!(inputs.len(), 5); + let selected_id = std::env::var("FRAUD_ID").ok(); + if let Some(id) = &selected_id { + assert!( + inputs + .iter() + .any(|line| line.starts_with(&format!("{id}\t"))), + "unknown fraud id" + ); + } + let mut records = String::new(); + for (index, row) in inputs.into_iter().enumerate() { + let (id, source) = row.split_once('\t').expect("id/formula"); + if selected_id + .as_deref() + .is_some_and(|selected| selected != id) + { + continue; + } + assert_eq!(source.chars().count(), LENGTHS[index]); + let mut previous = None; + for phase in ["cold", "warmup", "warm"] { + // Serialization, validation and I/O do not enter parse+map timing. + let start = Instant::now(); + let ast = parse(source).expect("fraud production parse+map must succeed"); + let elapsed = start.elapsed().as_nanos(); + let selected = conditional_view(source, &ast); + let canonical = selected.canonical_json(); + if let Some(previous) = &previous { + assert_eq!(previous, &canonical, "phase changed AST/spans"); + } + previous = Some(canonical.clone()); + let first_observation_in_process = records.is_empty(); + let pid = std::process::id(); + let input_hex = source + .as_bytes() + .iter() + .fold(String::new(), |mut out, byte| { + write!(out, "{byte:02x}").unwrap(); + out + }); + records.push_str(&format!( + "{{\"id\":\"{id}\",\"phase\":\"{phase}\",\"backend\":\"rust-ubnfc\",\"pid\":{pid},\"first_observation_in_process\":{first_observation_in_process},\"entry\":\"tinyexpression_rs::parse\",\"memo\":\"ubnfc-default-packrat\",\"input_utf8_hex\":\"{input_hex}\",\"observations\":{{\"diagnostics\":false,\"occurrences\":false}},\"elapsed_ns\":{elapsed},\"cp\":{},\"accepted\":true,\"diagnostic\":null,\"ast\":{canonical},\"raw_ast\":{}}}\n", LENGTHS[index], ast.canonical_json())); + fs::write(&output, &records).unwrap(); + eprintln!("fraud production {id} {phase} {elapsed} ns"); + assert!( + elapsed < 1_000_000_000, + "{id} {phase}: expected < 1 second, got {elapsed} ns" + ); + } + } +} + +#[test] +fn rejected_and_partial_inputs_cannot_count_as_fast_success() { + let source = "if(true){1}else{0}"; + conditional_view(source, &parse(source).unwrap()); + assert!(matches!( + parse(&format!("{source}@")), + Err(FrontendError::Parse(_)) + )); + assert!(matches!(parse("@"), Err(FrontendError::Parse(_)))); +} diff --git a/scripts/check-fraud-production.py b/scripts/check-fraud-production.py new file mode 100644 index 00000000..925b6582 --- /dev/null +++ b/scripts/check-fraud-production.py @@ -0,0 +1,196 @@ +#!/usr/bin/env python3 +"""Compare actual production facade observations, never turn quick failure into success.""" +import argparse +import hashlib +import json +from pathlib import Path +import platform +import subprocess +import sys + +ROOT = Path(__file__).resolve().parents[1] +LENGTHS = [404, 209, 68, 707, 459] +PHASES = {"cold", "warmup", "warm"} +LIMIT_NS = 1_000_000_000 + + +def cases(): + expected = json.loads((ROOT / "rust/tinyexpression-rs/tests/fixtures/fraud-acceptance.json").read_text()) + rows = [] + for line in (ROOT / "rust/tinyexpression-rs/tests/fixtures/fraud-alert.tsv").read_text().splitlines(): + if line and not line.startswith("#"): + identifier, source = line.split("\t") + rows.append({"id": identifier, "source": source, "sha256": hashlib.sha256(source.encode()).hexdigest(), + "cp": len(source), "if_count": 5 if identifier == "fraud#5" else 1}) + if len(expected) != 5 or len(rows) != 5 or [r["cp"] for r in rows] != LENGTHS: + raise ValueError("original five fraud inputs changed") + for row, pinned in zip(rows, expected): + if any(row[key] != pinned[key] for key in ("id", "sha256", "cp", "if_count")): + raise ValueError("pinned fraud identity changed") + return {row["id"]: row for row in rows} + + +def nodes(value): + if isinstance(value, dict): + if isinstance(value.get("type"), str) and "fields" in value: + yield value + for child in value.values(): + yield from nodes(child) + elif isinstance(value, list): + for child in value: + yield from nodes(child) + + +def comparison_view(value): + """Only the pre-existing Rust compat.rs synthetic operand conversion; no source fallback.""" + if isinstance(value, list): + return [comparison_view(child) for child in value] + if not isinstance(value, dict): + return value + fields = value.get("fields") + if value.get("type") == "BinaryExpr" and isinstance(fields, dict): + if fields.get("left") is None and fields.get("right") == []: + text = fields.get("op") + if isinstance(text, list) and len(text) == 1 and isinstance(text[0], str): + return text[0][1:-1] if text[0].startswith("'") and text[0].endswith("'") else text[0] + return {key: comparison_view(child) for key, child in value.items()} + + +def branch_literal(node): + while isinstance(node, dict): + fields = node["fields"] + if node["type"] == "BranchExpressionExpr": + node = fields["value"] + elif node["type"] == "BinaryExpr" and fields["op"] == [] and fields["right"] == []: + node = fields["left"] + else: + break + return node + + +def selected_conditional(raw, cp): + node = raw + while isinstance(node, dict) and node.get("span") == [0, cp]: + kind, fields = node.get("type"), node.get("fields", {}) + if kind == "IfExpr": + return node + if kind == "FormulaExpr" and all(fields.get(key) == [] for key in ("imports", "declarations", "methods", "codeBlocks")): + node = fields.get("expression") + elif kind == "ExpressionExpr": + node = fields.get("value") + elif kind == "BinaryExpr" and fields.get("op") == [] and fields.get("right") == []: + node = fields.get("left") + else: + break + raise ValueError("invalid raw AST conditional projection") + + +def validate_row(row, case, backend): + if row.get("backend") != backend or row.get("memo") != "ubnfc-default-packrat": + raise ValueError("wrong production backend/memo policy") + entry = "P4PreferredAstMapper.parseDetailed(_float)" if backend == "java-ubnfc" else "tinyexpression_rs::parse" + if row.get("entry") != entry: + raise ValueError("wrong production entry") + if row.get("accepted") is not True or "diagnostic" not in row or row["diagnostic"] is not None: + raise ValueError("not an explicit diagnostic-free success") + actual_hash = row.get("sha256") + if "input_utf8_hex" in row: + actual_hash = hashlib.sha256(bytes.fromhex(row["input_utf8_hex"])).hexdigest() + if row.get("cp") != case["cp"] or actual_hash != case["sha256"]: + raise ValueError("input identity mismatch") + elapsed = row.get("elapsed_ns") + if type(elapsed) is not int or not 0 <= elapsed < LIMIT_NS: + raise ValueError("parse+map did not complete in strictly less than one second") + ast = row.get("ast") + if not isinstance(ast, dict) or ast.get("type") != "IfExpr" or ast.get("span") != [0, case["cp"]]: + raise ValueError("null, partial or wrong AST root") + if backend == "rust-ubnfc" and selected_conditional(row.get("raw_ast"), case["cp"]) != ast: + raise ValueError("selected conditional differs from raw production AST") + for tree in [ast, row.get("raw_ast", ast)]: + for node in nodes(tree): + span = node.get("span") + if (not isinstance(span, list) or len(span) != 2 or any(type(n) is not int for n in span) + or not 0 <= span[0] <= span[1] <= case["cp"]): + raise ValueError("invalid code-point node span") + view = comparison_view(ast) + conditionals = [node for node in nodes(view) if node["type"] == "IfExpr"] + if len(conditionals) != case["if_count"]: + raise ValueError("conditional structure changed") + expected_then = ["1", "1", "5", "5", "5"] if case["id"] == "fraud#5" else ["1"] + if [branch_literal(node["fields"]["thenExpr"]) for node in conditionals] != expected_then: + raise ValueError("numeric branch AST changed") + if case["id"] != "fraud#5" and branch_literal(view["fields"]["elseExpr"]) != "0": + raise ValueError("numeric else AST changed") + return view + + +def compare(java, rust, corpus): + observed = [] + for backend, rows in [("java-ubnfc", java), ("rust-ubnfc", rust)]: + keyed = {} + for row in rows: + key = row.get("id"), row.get("phase") + if key in keyed or key[0] not in corpus or key[1] not in PHASES: + raise ValueError("duplicate or unknown observation") + keyed[key] = validate_row(row, corpus[key[0]], backend) + expected = {(identifier, phase) for identifier in corpus for phase in PHASES} + if set(keyed) != expected: + raise ValueError("missing production observation") + for identifier in corpus: + if not all(keyed[identifier, phase] == keyed[identifier, "cold"] for phase in PHASES): + raise ValueError("AST/spans changed across phases") + observed.append(keyed) + if observed[0] != observed[1]: + raise ValueError("Java/Rust production AST or source spans differ") + return {"status": "passed", "observations": len(java) + len(rust), "measurement_eligible": False, + "timing_kind": "shared-host-regression", "limit_ns": LIMIT_NS} + + +def command(*args): + return subprocess.check_output(args, cwd=ROOT, text=True, stderr=subprocess.STDOUT).strip() + + +def main(): + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("--java-report", type=Path, default=ROOT / "target/fraud-acceptance/java.jsonl") + parser.add_argument("--rust-report", type=Path, default=ROOT / "target/fraud-acceptance/rust.jsonl") + parser.add_argument("--output", type=Path, required=True) + parser.add_argument("--parser-commit", required=True, help="reported full source SHA installed into the isolated Maven repository") + parser.add_argument("--parser-m2", type=Path, required=True, help="isolated Maven repo used for the Java build") + args = parser.parse_args() + args.output.mkdir(parents=True, exist_ok=True) + summary = {"status": "failed", "measurement_eligible": False} + try: + if len(args.parser_commit) != 40 or any(c not in "0123456789abcdef" for c in args.parser_commit): + raise ValueError("parser commit must be a full lowercase hexadecimal SHA") + corpus = cases() + reports = [] + for backend, path in [("java", args.java_report), ("rust", args.rust_report)]: + raw = path.read_text() + (args.output / f"{backend}.jsonl").write_text(raw) + reports.append([json.loads(line) for line in raw.splitlines()]) + metadata = {"commit": command("git", "rev-parse", "HEAD"), + "reported_parser_commit": args.parser_commit, + "dirty": bool(command("git", "status", "--porcelain")), + "platform": platform.platform(), "hostname": platform.node(), "java": command("java", "-version"), + "rustc": command("rustc", "--version"), "maven": command("mvn", "-version"), + "concurrent_load": "uncontrolled; not exclusive-host attestation", + "cold_definition": "first observed call for this input; normal test-suite execution does not guarantee process-cold state", + "cases": list(corpus.values()), "artifacts": {}} + for artifact in ("unlaxer-common", "unlaxer-dsl"): + path = args.parser_m2 / "org/unlaxer" / artifact / "3.3.0" / f"{artifact}-3.3.0.jar" + metadata["artifacts"][artifact] = hashlib.sha256(path.read_bytes()).hexdigest() + for path in ["src/main/java/org/unlaxer/tinyexpression/p4/ubnfc/UBNFC_PIN", "rust/ubnfc-pin.txt", + "tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf"]: + metadata.setdefault("source_identities", {})[path] = hashlib.sha256((ROOT / path).read_bytes()).hexdigest() + (args.output / "metadata.json").write_text(json.dumps(metadata, ensure_ascii=False, indent=2) + "\n") + summary = compare(*reports, corpus) + except (ValueError, KeyError, TypeError, OSError, subprocess.CalledProcessError) as failure: + summary["error"] = str(failure) + (args.output / "summary.json").write_text(json.dumps(summary, indent=2) + "\n") + print(json.dumps(summary)) + return 0 if summary["status"] == "passed" else 1 + + +if __name__ == "__main__": + sys.exit(main()) diff --git a/scripts/tests/test_fraud_production.py b/scripts/tests/test_fraud_production.py new file mode 100644 index 00000000..a3e4232c --- /dev/null +++ b/scripts/tests/test_fraud_production.py @@ -0,0 +1,74 @@ +import copy +import importlib.util +from pathlib import Path +import unittest + +spec = importlib.util.spec_from_file_location("fraud", Path(__file__).parents[1] / "check-fraud-production.py") +fraud = importlib.util.module_from_spec(spec) +spec.loader.exec_module(fraud) + + +def leaf(text): + return {"type": "BinaryExpr", "span": [1, 2], "fields": {"left": None, "op": [text], "right": []}} + + +def ast(): + return {"type": "IfExpr", "span": [0, 5], "fields": { + "condition": "true", "thenExpr": leaf("1"), "elseExpr": leaf("0")}} + + +class ProductionEvidenceTest(unittest.TestCase): + def setUp(self): + self.case = {"id": "fraud#1", "cp": 5, "sha256": "input-hash", "if_count": 1} + self.row = {"id": "fraud#1", "phase": "cold", "backend": "java-ubnfc", + "entry": "P4PreferredAstMapper.parseDetailed(_float)", "memo": "ubnfc-default-packrat", + "sha256": "input-hash", "elapsed_ns": 10, "cp": 5, "accepted": True, "diagnostic": None, "ast": ast()} + + def test_one_second_is_strict_and_no_negative_duration(self): + for elapsed in [-1, 1_000_000_000, 2_000_000_000, None, True]: + with self.subTest(elapsed=elapsed), self.assertRaises(ValueError): + fraud.validate_row(dict(self.row, elapsed_ns=elapsed), self.case, "java-ubnfc") + + def test_failure_null_partial_wrong_span_and_wrong_branch_fail(self): + for change in [{"accepted": False}, {"diagnostic": {}}, {"ast": None}, {"cp": 4}]: + with self.subTest(change=change), self.assertRaises(ValueError): + fraud.validate_row(dict(self.row, **change), self.case, "java-ubnfc") + for change in ["root", "nested", "branch"]: + row = copy.deepcopy(self.row) + if change == "root": row["ast"]["span"] = [0, 4] + if change == "nested": row["ast"]["fields"]["thenExpr"]["span"] = [1, 6] + if change == "branch": row["ast"]["fields"]["thenExpr"]["fields"]["op"] = ["9"] + with self.subTest(change=change), self.assertRaises(ValueError): + fraud.validate_row(row, self.case, "java-ubnfc") + + def test_compat_projection_only_folds_exact_synthetic_operand(self): + self.assertEqual("1", fraud.comparison_view(leaf("1"))) + wrong = leaf("1") + wrong["fields"]["op"] = ["1", "+"] + self.assertIsInstance(fraud.comparison_view(wrong), dict) + + def test_raw_projection_cannot_hide_declarations_or_a_different_ast(self): + valid = {"type": "FormulaExpr", "span": [0, 5], "fields": { + "imports": [], "declarations": [], "methods": [], "codeBlocks": [], "expression": ast()}} + self.assertEqual(ast(), fraud.selected_conditional(valid, 5)) + valid["fields"]["declarations"] = ["unexpected"] + with self.assertRaises(ValueError): fraud.selected_conditional(valid, 5) + row = dict(self.row, backend="rust-ubnfc", entry="tinyexpression_rs::parse", raw_ast=None) + with self.assertRaises(ValueError): fraud.validate_row(row, self.case, "rust-ubnfc") + + def test_missing_duplicate_and_cross_language_difference_fail(self): + java = [dict(self.row, phase=phase) for phase in sorted(fraud.PHASES)] + rust = [dict(row, backend="rust-ubnfc", entry="tinyexpression_rs::parse", raw_ast=row["ast"]) for row in java] + corpus = {"fraud#1": self.case} + self.assertEqual("passed", fraud.compare(java, rust, corpus)["status"]) + for rows in [rust[:2], rust + rust[:1]]: + with self.assertRaises(ValueError): fraud.compare(java, rows, corpus) + changed = copy.deepcopy(rust) + for row in changed: + row["ast"]["fields"]["condition"] = "false" + row["raw_ast"] = row["ast"] + with self.assertRaises(ValueError): fraud.compare(java, changed, corpus) + + +if __name__ == "__main__": + unittest.main() diff --git a/src/test/java/org/unlaxer/tinyexpression/evaluator/p4/P4PackratFraudFormulaTest.java b/src/test/java/org/unlaxer/tinyexpression/evaluator/p4/P4PackratFraudFormulaTest.java index be3d8762..579c0498 100644 --- a/src/test/java/org/unlaxer/tinyexpression/evaluator/p4/P4PackratFraudFormulaTest.java +++ b/src/test/java/org/unlaxer/tinyexpression/evaluator/p4/P4PackratFraudFormulaTest.java @@ -1,62 +1,17 @@ package org.unlaxer.tinyexpression.evaluator.p4; -import static org.junit.Assert.assertTrue; - import org.junit.Test; -import org.unlaxer.tinyexpression.p4.P4PreferredAstMapper; -import org.unlaxer.tinyexpression.parser.ExpressionTypes; +import org.unlaxer.tinyexpression.p4.ubnfc.FraudAcceptance; /** - * End-to-end check for unlaxer-parser #40 (packrat memoization) on the real fraud-detection - * formulas from issue #19 — the deeply nested boolean/if expressions that previously hung the - * generated P4 parser for 53+ minutes via exponential backtracking. - * - *

With {@code -Dtinyexpression.p4.memoize=true} (wired into {@link P4PreferredAstMapper}), each - * formula must parse in well under a second. The {@link Test#timeout()} is the hard guard: if - * memoization regressed, the exponential returns and the test times out rather than passing. + * Current production ubnfc facade: the original five fraud formulas must actually parse and map + * to complete conditional ASTs in strictly less than one second per call. Exceptions fail. + * Cold (first call for this input), warm-up and warm samples are reported separately. + * This is a loaded-host regression guard, not a dedicated-host Classic SAFE performance attestation. */ public class P4PackratFraudFormulaTest { - - private static final String[] FRAUD_FORMULAS = { - "if((isPresent($countryCode)&$countryCode!=\"JP\")&((isPresent($osGroup)&toLowerCase($osGroup).in(\"ios\"))&(isPresent($browserGroup)&toLowerCase($browserGroup).contains(\"safari\")))&(((isPresent($timezone)&$timezone=='+9')&(isPresent($priorityLanguage)¬($priorityLanguage.contains('ja'))))|((isPresent($timezone)&$timezone!='+9')&(isPresent($priorityLanguage)&$priorityLanguage.contains('ja'))))){1}else{0}", - "if((isPresent($calculated_BlackIPAddressInOtherSites)&$calculated_BlackIPAddressInOtherSites>0.0)|(isPresent($calculated_BlackCaulisCookieInOtherSites)&$calculated_BlackCaulisCookieInOtherSites>0.0)){1}else{0}", - "if(isPresent($calculated_TorNode)&$calculated_TorNode>0.0){1}else{0}", - "if((isPresent($userCountGroupedByCookieOnThisSite)&$userCountGroupedByCookieOnThisSite>=2)&((isPresent($os)&(not(toLowerCase($os).contains(\"linux\"))|not(toLowerCase($os).contains(\"Fire OS\"))))|(isPresent($number_accountCreationCountByIpAddress)&isPresent($userCountGroupedByCookieOnThisSite)¬($number_accountCreationCountByIpAddress - $userCountGroupedByCookieOnThisSite>=1))|(isPresent($userCountGroupedByCookieOnAllSite)&isPresent($userCountGroupedByCookieOnThisSite)&isPresent($userCountGroupedByCookieOnThisSiteOn12H)&(not($userCountGroupedByCookieOnAllSite - $userCountGroupedByCookieOnThisSite>=1)¬($userCountGroupedByCookieOnThisSite - $userCountGroupedByCookieOnThisSiteOn12H==0))))){1}else{0}", - "if(not(isPresent($calculated_FirstAccessUserHash))){1}else{if($ForcedRelativeSuspiciousValue1){1}else{if($ForcedRelativeSuspiciousValue5){5}else{if($default_RelativeSuspiciousValue==5){5}else{if(($POST_PROCESS_OriginalSpec_CountryIsNotJapan>0.0)|($POST_PROCESS_OriginalSpec_BlackListOnOtherSites>0.0)|($POST_PROCESS_OriginalSpec_SuspiciousProvider>0.0)|($POST_PROCESS_OriginalSpec_OneUserAccessToMultiAccount>0.0)){5}else{$default_RelativeSuspiciousValue}}}}}" - }; - - private long parseMillis(String formula) { - long start = System.nanoTime(); - try { - P4PreferredAstMapper.parse(formula, ExpressionTypes._float); - } catch (RuntimeException tolerated) { - // The point of this test is parse TIME, not the parse/typing verdict; a fast failure is fine. - } - return (System.nanoTime() - start) / 1_000_000; - } - - /** - * Formulas #1–4 are the boolean / parenthesis-ambiguity shape whose exponential backtracking - * packrat memoization collapses — they parse in well under a second (measured ~0.02–0.5s vs the - * 53-min hang in #19). Formula #5 is the deeply nested-{@code if} shape. Packrat (parse-phase) - * memoization alone left it at 12–30s; #49 found the real bottleneck was the mapping phase, not - * parsing: {@code findBestMappedToken} re-constructed the same subtrees ~10M times (each via - * per-token reflection + an unbounded {@code IdentityHashMap} of source spans). Memoizing - * {@code mapToken} by token identity and dropping the reflection (unlaxer-dsl MapperGenerator, - * 3.0.11) brings #5 to ~30ms — so it is now held to the same strict sub-second bound as the rest. - */ @Test(timeout = 90_000) - public void fraudFormulasParseFastWithMemoization() { - System.setProperty("tinyexpression.p4.memoize", "true"); - try { - for (int index = 0; index < FRAUD_FORMULAS.length; index++) { - long elapsed = parseMillis(FRAUD_FORMULAS[index]); - System.out.println("fraud formula #" + (index + 1) + " parsed in " + elapsed + "ms (memoize on)"); - assertTrue("formula #" + (index + 1) + " should parse in well under a second with " - + "memoization (was " + elapsed + "ms)", elapsed < 2_000); - } - } finally { - System.clearProperty("tinyexpression.p4.memoize"); - } + public void fraudFormulasParseFastWithMemoization() throws Exception { + FraudAcceptance.run(); } } diff --git a/src/test/java/org/unlaxer/tinyexpression/p4/ubnfc/FraudAcceptance.java b/src/test/java/org/unlaxer/tinyexpression/p4/ubnfc/FraudAcceptance.java new file mode 100644 index 00000000..c29d86e8 --- /dev/null +++ b/src/test/java/org/unlaxer/tinyexpression/p4/ubnfc/FraudAcceptance.java @@ -0,0 +1,96 @@ +package org.unlaxer.tinyexpression.p4.ubnfc; + +import static org.junit.Assert.*; + +import java.nio.charset.StandardCharsets; +import java.nio.file.Files; +import java.nio.file.Path; +import java.security.MessageDigest; +import java.util.ArrayList; +import java.util.HexFormat; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import org.unlaxer.tinyexpression.generated.p4.TinyExpressionP4AST; +import org.unlaxer.tinyexpression.p4.P4ParserEngine; +import org.unlaxer.tinyexpression.p4.P4PreferredAstMapper; +import org.unlaxer.tinyexpression.p4.ubnfc.generated.api.Json; +import org.unlaxer.tinyexpression.parser.ExpressionTypes; + +/** Test-only production facade observer; never retries or catches parser failures. */ +public final class FraudAcceptance { + private FraudAcceptance() {} + public static final long LIMIT_NS = 1_000_000_000L; + private static final int[] LENGTHS = {404, 209, 68, 707, 459}; + + public static String validated(P4PreferredAstMapper.ParsedAst parsed, String source) { + assertNotNull("null parse result", parsed); + assertNotNull("null mapped AST", parsed.ast()); + assertEquals("expected numeric conditional", TinyExpressionP4AST.IfExpr.class, parsed.ast().getClass()); + assertArrayEquals("partial source span", new int[] {0, source.codePointCount(0, source.length())}, + parsed.sourceText().spanOf(parsed.ast()).orElseThrow()); + assertEquals(source, parsed.sourceText().text(parsed.ast())); + String canonical = CanonicalAst.json(parsed); + validateSpans(Json.read(canonical), source.codePointCount(0, source.length())); + return canonical; + } + + private static void validateSpans(Object value, int length) { + if (value instanceof Map map) { + if (map.containsKey("fields") && map.get("type") instanceof String) { + assertTrue("missing/invalid node span: " + map.get("type"), map.get("span") instanceof List); + var span = (List) map.get("span"); + int start = ((Number) span.get(0)).intValue(); + int end = ((Number) span.get(1)).intValue(); + assertTrue("out of source CP span", start >= 0 && start <= end && end <= length); + } + map.values().forEach(child -> validateSpans(child, length)); + } else if (value instanceof List list) { + list.forEach(child -> validateSpans(child, length)); + } + } + + public static void run() throws Exception { + var records = new ArrayList(); + var formulas = Files.readAllLines(Path.of("rust/tinyexpression-rs/tests/fixtures/fraud-alert.tsv"), StandardCharsets.UTF_8) + .stream().filter(line -> !line.isBlank() && !line.startsWith("#")).toList(); + assertEquals("exact original five inputs", 5, formulas.size()); + String selectedId = System.getProperty("tinyexpression.fraud.id"); + if (selectedId != null) assertTrue("unknown fraud id", formulas.stream().anyMatch(line -> line.startsWith(selectedId + "\t"))); + Path output = Path.of(System.getProperty("tinyexpression.fraud.output", "target/fraud-acceptance/java.jsonl")); + Files.createDirectories(output.getParent()); + Files.deleteIfExists(output); // no stale success record after a failed run + for (int index = 0; index < formulas.size(); index++) { + String[] columns = formulas.get(index).split("\t", -1); + String id = columns[0], source = columns[1]; + if (selectedId != null && !selectedId.equals(id)) continue; + assertEquals("pinned fraud CP length", LENGTHS[index], source.codePointCount(0, source.length())); + String expected = null; + for (String phase : List.of("cold", "warmup", "warm")) { + // Only the production parse+map call is timed. Validation, serialization and I/O are outside. + long start = System.nanoTime(); + var parsed = P4ParserEngine.with(P4ParserEngine.UBNFC, + () -> P4PreferredAstMapper.parseDetailed(source, ExpressionTypes._float)); + long elapsed = System.nanoTime() - start; + String canonical = validated(parsed, source); + if (expected != null) assertEquals("phase changed AST/spans", expected, canonical); + expected = canonical; + var row = new LinkedHashMap(); + row.put("id", id); row.put("phase", phase); + row.put("pid", ProcessHandle.current().pid()); + row.put("first_observation_in_process", records.isEmpty()); row.put("backend", "java-ubnfc"); + row.put("entry", "P4PreferredAstMapper.parseDetailed(_float)"); + row.put("memo", "ubnfc-default-packrat"); row.put("elapsed_ns", elapsed); + row.put("observations", Map.of("diagnostics", true, "occurrences", true)); + row.put("sha256", HexFormat.of().formatHex(MessageDigest.getInstance("SHA-256").digest(source.getBytes(StandardCharsets.UTF_8)))); + row.put("cp", LENGTHS[index]); row.put("accepted", true); row.put("diagnostic", null); + row.put("selectionMode", parsed.selectionMode()); row.put("ast", Json.read(canonical)); + records.add(Json.write(row)); + // Persist even an over-budget sample; a slow/failed run is never a missing-data pass. + Files.write(output, records, StandardCharsets.UTF_8); + System.out.println("fraud production " + id + " " + phase + " " + elapsed + " ns"); + assertTrue(id + " " + phase + " must parse+map in < 1 second, was " + elapsed + " ns", elapsed < LIMIT_NS); + } + } + } +} diff --git a/src/test/java/org/unlaxer/tinyexpression/p4/ubnfc/FraudAcceptanceTest.java b/src/test/java/org/unlaxer/tinyexpression/p4/ubnfc/FraudAcceptanceTest.java new file mode 100644 index 00000000..564bd6b6 --- /dev/null +++ b/src/test/java/org/unlaxer/tinyexpression/p4/ubnfc/FraudAcceptanceTest.java @@ -0,0 +1,23 @@ +package org.unlaxer.tinyexpression.p4.ubnfc; + +import static org.junit.Assert.*; +import org.junit.Test; +import org.unlaxer.tinyexpression.p4.P4ParserEngine; +import org.unlaxer.tinyexpression.p4.P4PreferredAstMapper; +import org.unlaxer.tinyexpression.p4.P4SourceText; +import org.unlaxer.tinyexpression.parser.ExpressionTypes; + +public class FraudAcceptanceTest { + @Test public void nullPartialAndRejectedResultsCannotCountAsFastSuccess() { + assertThrows(AssertionError.class, () -> FraudAcceptance.validated(null, "x")); + assertThrows(AssertionError.class, () -> FraudAcceptance.validated( + new P4PreferredAstMapper.ParsedAst(null, "invalid", P4SourceText.lexicalOnly()), "x")); + var source = "if(true){1}else{0}"; + var parsed = P4ParserEngine.with(P4ParserEngine.UBNFC, + () -> P4PreferredAstMapper.parseDetailed(source, ExpressionTypes._float)); + FraudAcceptance.validated(parsed, source); + assertThrows(AssertionError.class, () -> FraudAcceptance.validated(parsed, source + "@")); + assertThrows(RuntimeException.class, () -> P4ParserEngine.with(P4ParserEngine.UBNFC, + () -> P4PreferredAstMapper.parseDetailed(source + "@", ExpressionTypes._float))); + } +} From 39ef9f9c8f440b3a473d79ec8e147179f2ae2b4a Mon Sep 17 00:00:00 2001 From: opaopa6969 Date: Sat, 17 Oct 2026 08:21:35 +0900 Subject: [PATCH 2/5] ci: require fraud production parity and exact dependency evidence --- .github/workflows/ci.yml | 27 ++++++- docs/quality/fraud-production-acceptance.md | 27 +++++++ scripts/check-fraud-production.py | 45 +++++++++--- scripts/ci/install-unlaxer-if-unpublished.sh | 23 ++++++ scripts/tests/test_fraud_production.py | 24 +++++++ scripts/tests/test_unlaxer_provenance.py | 75 ++++++++++++++++++++ 6 files changed, 209 insertions(+), 12 deletions(-) create mode 100644 scripts/tests/test_unlaxer_provenance.py diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f0ebd420..7a8e2a36 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -132,10 +132,14 @@ jobs: run: | task_maven_repo=$(mktemp -d "$RUNNER_TEMP/ubnfc-parser.XXXXXX") echo "MAVEN_REPO=$task_maven_repo" >> "$GITHUB_ENV" + - name: Set up Rust 1.85 for the production facade comparison + run: bash .github/scripts/setup-rust.sh 1.85.0 # Declarative lexical modules require the pinned 3.3.0-SNAPSHOT generator; # published 3.1.1 cannot read this grammar. Build into the job-local repository. - name: Install unlaxer from source if it is not on Maven Central yet run: bash scripts/ci/install-unlaxer-if-unpublished.sh + env: + UNLAXER_PROVENANCE_FILE: ${{ github.workspace }}/target/fraud-acceptance/parser-dependency.json # Grammar sha256 + every vendored file against UBNFC_PIN. ubnfc is private, so the full # grammar -> IR -> Java regeneration runs where it is readable (UBNFC_DIR); see the script. - name: Verify strict layout compatibility adapter @@ -149,7 +153,28 @@ jobs: - name: Parity, differential fuzz and engine mode matrix run: >- mvn -B test -Dgpg.skip=true -Dtinyexpression.skipRailroad=true -Dmaven.repo.local="$MAVEN_REPO" - -Dtest=DeclarativeLexicalConformanceTest,UbnfcParityTest,UbnfcDifferentialFuzzTest,P4EngineModeMatrixTest,P4ParserEngineTest,P4DslJavaCodeCalculatorTest,P4DslJavaCodeCalculatorClassicEngineTest,P4AstEvaluatorCalculatorTest,P4AstEvaluatorCalculatorClassicEngineTest,P4PreferredAstMapperDiagnosticsTest,P4SourceMappingTest + -Dtest=DeclarativeLexicalConformanceTest,UbnfcParityTest,UbnfcDifferentialFuzzTest,P4EngineModeMatrixTest,P4ParserEngineTest,P4DslJavaCodeCalculatorTest,P4DslJavaCodeCalculatorClassicEngineTest,P4AstEvaluatorCalculatorTest,P4AstEvaluatorCalculatorClassicEngineTest,P4PreferredAstMapperDiagnosticsTest,P4SourceMappingTest,P4PackratFraudFormulaTest,FraudAcceptanceTest + - name: Require Rust production fraud acceptance and collector negative gates + env: + PYTHONDONTWRITEBYTECODE: '1' + run: | + cargo test --locked --manifest-path rust/Cargo.toml -p tinyexpression-rs --test fraud_acceptance -- --nocapture + python3 -m unittest discover -s scripts/tests -p test_fraud_production.py -v + python3 -m unittest discover -s scripts/tests -p test_unlaxer_provenance.py -v + - name: Require all 30 Java/Rust production observations + if: always() + run: | + python3 scripts/check-fraud-production.py --parser-m2 "$MAVEN_REPO" \ + --parser-provenance target/fraud-acceptance/parser-dependency.json \ + --output target/fraud-production-evidence + - uses: actions/upload-artifact@v6 + if: always() + with: + name: fraud-production-acceptance + path: | + target/fraud-production-evidence/ + target/fraud-acceptance/ + if-no-files-found: error - uses: actions/upload-artifact@v6 if: always() with: diff --git a/docs/quality/fraud-production-acceptance.md b/docs/quality/fraud-production-acceptance.md index d2665e95..0b60f796 100644 --- a/docs/quality/fraud-production-acceptance.md +++ b/docs/quality/fraud-production-acceptance.md @@ -111,3 +111,30 @@ For final dedicated-host measurement: The protocol is preparation only. No dedicated/exclusive-host final measurement was performed by this change. Concurrent parser CI/build activity existed during development verification. + +## Mandatory ordinary CI gate and dependency identity + +The existing `ubnfc-parser` job runs Java acceptance alongside its parity suite, Rust's production +fraud integration and the collector/provenance negative tests, then explicitly requires all 30 +observations. These steps have no `continue-on-error`; an exception, missing observation, +comparison difference or negative-gate failure makes the job fail. An `always()` collector step +writes a failed summary even when an earlier test failed, and an `always()` artifact upload +preserves `fraud-production-acceptance` raw reports, input/source/JAR hashes, provenance, +metadata and verdict. The existing Java Surefire artifact remains separate. CI evidence remains +shared-host verification with `measurement_eligible:false`. + +This job's dependency route is **Tiny's declared Maven version**, currently `3.3.0-SNAPSHOT`, +not the locally tested candidate `3.3.0`. Its existing installer builds the fixed +`.github/unlaxer-source-pin` (`fc75fe1e25e538d47908f05ea2039f585aef696e`) into an empty job-local +Maven repository when that version is unavailable on Central. The installer's optional +`UNLAXER_PROVENANCE_FILE` records the actual checked-out commit after successful installation. +If the declared version becomes available on Central, it instead records `maven-central` with +no inferred source commit. Failed installation clears stale success provenance. The collector +uses the recorded version to hash the actual dependency JARs; it never substitutes the local +candidate SHA or assumes the source pin produced a published artifact. + +Local runs can keep `--parser-commit FULL_SHA --parser-version 3.3.0` (the latter defaults to +3.3.0); those records are explicitly labeled `reported-local-source`. CI instead passes +`--parser-provenance target/fraud-acceptance/parser-dependency.json`. The two representations +are mutually exclusive, so evidence cannot silently label a published GAV as a source build. +No parser version, source pin, ubnfc generation pin or production behavior changes in this wiring. diff --git a/scripts/check-fraud-production.py b/scripts/check-fraud-production.py index 925b6582..ede6f191 100644 --- a/scripts/check-fraud-production.py +++ b/scripts/check-fraud-production.py @@ -5,6 +5,7 @@ import json from pathlib import Path import platform +import re import subprocess import sys @@ -150,27 +151,43 @@ def command(*args): return subprocess.check_output(args, cwd=ROOT, text=True, stderr=subprocess.STDOUT).strip() +def dependency_provenance(version, commit, provenance_path): + if provenance_path is not None: + value = json.loads(provenance_path.read_text()) + if not isinstance(value, dict) or value.get("origin") not in {"pinned-source", "maven-central"}: + raise ValueError("unknown parser dependency origin") + else: + value = {"version": version, "origin": "reported-local-source", "source_commit": commit} + if not isinstance(value.get("version"), str) or not re.fullmatch(r"[A-Za-z0-9][A-Za-z0-9._+-]*", value["version"]): + raise ValueError("invalid parser Maven version") + actual_commit = value.get("source_commit") + if value["origin"] == "maven-central": + if actual_commit is not None: + raise ValueError("published Maven artifact must not claim an unverified source commit") + elif not isinstance(actual_commit, str) or not re.fullmatch(r"[0-9a-f]{40}", actual_commit): + raise ValueError("parser commit must be a full lowercase hexadecimal SHA") + return value + + def main(): parser = argparse.ArgumentParser(description=__doc__) parser.add_argument("--java-report", type=Path, default=ROOT / "target/fraud-acceptance/java.jsonl") parser.add_argument("--rust-report", type=Path, default=ROOT / "target/fraud-acceptance/rust.jsonl") parser.add_argument("--output", type=Path, required=True) - parser.add_argument("--parser-commit", required=True, help="reported full source SHA installed into the isolated Maven repository") + provenance = parser.add_mutually_exclusive_group(required=True) + provenance.add_argument("--parser-commit", help="reported local source SHA installed into the isolated Maven repository") + provenance.add_argument("--parser-provenance", type=Path, help="actual CI installer provenance (source pin or Maven Central)") + parser.add_argument("--parser-version", default="3.3.0", help="local candidate Maven version, used with --parser-commit") parser.add_argument("--parser-m2", type=Path, required=True, help="isolated Maven repo used for the Java build") args = parser.parse_args() args.output.mkdir(parents=True, exist_ok=True) summary = {"status": "failed", "measurement_eligible": False} + metadata = {} try: - if len(args.parser_commit) != 40 or any(c not in "0123456789abcdef" for c in args.parser_commit): - raise ValueError("parser commit must be a full lowercase hexadecimal SHA") + dependency = dependency_provenance(args.parser_version, args.parser_commit, args.parser_provenance) corpus = cases() - reports = [] - for backend, path in [("java", args.java_report), ("rust", args.rust_report)]: - raw = path.read_text() - (args.output / f"{backend}.jsonl").write_text(raw) - reports.append([json.loads(line) for line in raw.splitlines()]) metadata = {"commit": command("git", "rev-parse", "HEAD"), - "reported_parser_commit": args.parser_commit, + "parser_dependency": dependency, "dirty": bool(command("git", "status", "--porcelain")), "platform": platform.platform(), "hostname": platform.node(), "java": command("java", "-version"), "rustc": command("rustc", "--version"), "maven": command("mvn", "-version"), @@ -178,15 +195,21 @@ def main(): "cold_definition": "first observed call for this input; normal test-suite execution does not guarantee process-cold state", "cases": list(corpus.values()), "artifacts": {}} for artifact in ("unlaxer-common", "unlaxer-dsl"): - path = args.parser_m2 / "org/unlaxer" / artifact / "3.3.0" / f"{artifact}-3.3.0.jar" + version = dependency["version"] + path = args.parser_m2 / "org/unlaxer" / artifact / version / f"{artifact}-{version}.jar" metadata["artifacts"][artifact] = hashlib.sha256(path.read_bytes()).hexdigest() for path in ["src/main/java/org/unlaxer/tinyexpression/p4/ubnfc/UBNFC_PIN", "rust/ubnfc-pin.txt", "tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf"]: metadata.setdefault("source_identities", {})[path] = hashlib.sha256((ROOT / path).read_bytes()).hexdigest() - (args.output / "metadata.json").write_text(json.dumps(metadata, ensure_ascii=False, indent=2) + "\n") + reports = [] + for backend, path in [("java", args.java_report), ("rust", args.rust_report)]: + raw = path.read_text() + (args.output / f"{backend}.jsonl").write_text(raw) + reports.append([json.loads(line) for line in raw.splitlines()]) summary = compare(*reports, corpus) except (ValueError, KeyError, TypeError, OSError, subprocess.CalledProcessError) as failure: summary["error"] = str(failure) + (args.output / "metadata.json").write_text(json.dumps(metadata, ensure_ascii=False, indent=2) + "\n") (args.output / "summary.json").write_text(json.dumps(summary, indent=2) + "\n") print(json.dumps(summary)) return 0 if summary["status"] == "passed" else 1 diff --git a/scripts/ci/install-unlaxer-if-unpublished.sh b/scripts/ci/install-unlaxer-if-unpublished.sh index d6fecbd3..6f53fd67 100755 --- a/scripts/ci/install-unlaxer-if-unpublished.sh +++ b/scripts/ci/install-unlaxer-if-unpublished.sh @@ -12,6 +12,9 @@ set -euo pipefail repo=$(cd "$(dirname "$0")/../.." && pwd) : "${MAVEN_REPO:?set MAVEN_REPO to the job-local Maven repository}" +if [[ -n "${UNLAXER_PROVENANCE_FILE:-}" ]]; then + rm -f -- "$UNLAXER_PROVENANCE_FILE" # an unsuccessful rerun must not retain old success provenance +fi version=$(sed -n 's:.*\(.*\).*:\1:p' "$repo/pom.xml" | head -1) if [[ -z "$version" ]]; then @@ -19,6 +22,24 @@ if [[ -z "$version" ]]; then exit 1 fi +# Optional machine-readable provenance for consumers comparing the actual CI dependency. +# Other callers keep their existing behavior when this variable is unset. +record_provenance() { + if [[ -z "${UNLAXER_PROVENANCE_FILE:-}" ]]; then + return + fi + python3 - "$UNLAXER_PROVENANCE_FILE" "$version" "$1" "${2:-}" <<'PYPROVENANCE' +import json +from pathlib import Path +import sys +path, version, origin, commit = sys.argv[1:] +output = Path(path) +output.parent.mkdir(parents=True, exist_ok=True) +output.write_text(json.dumps({"version": version, "origin": origin, + "source_commit": commit or None}, indent=2) + "\n") +PYPROVENANCE +} + central=https://repo1.maven.org/maven2/org/unlaxer published=true for artifact in unlaxer-common unlaxer-dsl; do @@ -28,6 +49,7 @@ for artifact in unlaxer-common unlaxer-dsl; do done if $published; then echo "unlaxer $version is on Maven Central; nothing to install." + record_provenance maven-central exit 0 fi @@ -50,6 +72,7 @@ fi echo "unlaxer $version is not on Maven Central; installing it from unlaxer-parser $commit" mvn -B -q -f "$work/pom.xml" -pl .,unlaxer-common,unlaxer-dsl \ install -DskipTests -Dgpg.skip=true -Dmaven.repo.local="$MAVEN_REPO" +record_provenance pinned-source "$(git -C "$work" rev-parse HEAD)" if [[ -n "${GITHUB_STEP_SUMMARY:-}" ]]; then echo "unlaxer $version: not on Maven Central yet, built from unlaxer-parser \`$commit\`" >> "$GITHUB_STEP_SUMMARY" fi diff --git a/scripts/tests/test_fraud_production.py b/scripts/tests/test_fraud_production.py index a3e4232c..c71e0db3 100644 --- a/scripts/tests/test_fraud_production.py +++ b/scripts/tests/test_fraud_production.py @@ -2,6 +2,8 @@ import importlib.util from pathlib import Path import unittest +import json +import tempfile spec = importlib.util.spec_from_file_location("fraud", Path(__file__).parents[1] / "check-fraud-production.py") fraud = importlib.util.module_from_spec(spec) @@ -56,6 +58,28 @@ def test_raw_projection_cannot_hide_declarations_or_a_different_ast(self): row = dict(self.row, backend="rust-ubnfc", entry="tinyexpression_rs::parse", raw_ast=None) with self.assertRaises(ValueError): fraud.validate_row(row, self.case, "rust-ubnfc") + def test_ci_provenance_distinguishes_snapshot_pin_from_published_and_local(self): + commit = "a" * 40 + self.assertEqual("reported-local-source", fraud.dependency_provenance("3.3.0", commit, None)["origin"]) + with tempfile.TemporaryDirectory() as directory: + path = Path(directory) / "dependency.json" + for value in [ + {"version": "3.3.0-SNAPSHOT", "origin": "pinned-source", "source_commit": commit}, + {"version": "3.3.0", "origin": "maven-central", "source_commit": None}, + ]: + path.write_text(json.dumps(value)) + self.assertEqual(value, fraud.dependency_provenance("ignored", None, path)) + for value in [ + [], + {"version": "../3.3.0", "origin": "pinned-source", "source_commit": commit}, + {"version": "3.3.0", "origin": "maven-central", "source_commit": commit}, + {"version": "3.3.0", "origin": "pinned-source", "source_commit": "short"}, + {"version": "3.3.0", "origin": "unknown", "source_commit": None}, + ]: + path.write_text(json.dumps(value)) + with self.subTest(value=value), self.assertRaises(ValueError): + fraud.dependency_provenance("ignored", None, path) + def test_missing_duplicate_and_cross_language_difference_fail(self): java = [dict(self.row, phase=phase) for phase in sorted(fraud.PHASES)] rust = [dict(row, backend="rust-ubnfc", entry="tinyexpression_rs::parse", raw_ast=row["ast"]) for row in java] diff --git a/scripts/tests/test_unlaxer_provenance.py b/scripts/tests/test_unlaxer_provenance.py new file mode 100644 index 00000000..a50940ba --- /dev/null +++ b/scripts/tests/test_unlaxer_provenance.py @@ -0,0 +1,75 @@ +"""Exercise installer provenance branches without network/Maven or shared repository writes.""" +import json +import os +from pathlib import Path +import shutil +import subprocess +import sys +import tempfile +import unittest + +SCRIPT = Path(__file__).resolve().parents[1] / "ci/install-unlaxer-if-unpublished.sh" +PIN = "f" * 40 + + +class InstallerProvenanceTest(unittest.TestCase): + def run_installer(self, central, failed=False): + with tempfile.TemporaryDirectory() as directory: + root = Path(directory) + repo = root / "project" + script = repo / "scripts/ci" / SCRIPT.name + script.parent.mkdir(parents=True) + shutil.copy2(SCRIPT, script) + (repo / ".github").mkdir() + (repo / ".github/unlaxer-source-pin").write_text(f"commit={PIN}\n") + version = "3.3.0" if central else "3.3.0-SNAPSHOT" + (repo / "pom.xml").write_text(f"{version}\n") + stubs = root / "bin" + stubs.mkdir() + stub = f'''#!{sys.executable} +import os +from pathlib import Path +import sys +name=Path(sys.argv[0]).name +args=sys.argv[1:] +if name == 'curl': sys.exit(0 if os.environ['MOCK_CENTRAL'] == 'yes' else 22) +if name == 'mvn': sys.exit(int(os.environ['MOCK_MVN_EXIT'])) +if name == 'git': + if args[0] == 'init': Path(args[-1]).mkdir(parents=True,exist_ok=True) + elif args[2] == 'fetch': (Path(args[1])/'pom.xml').write_text('3.3.0-SNAPSHOT') + elif args[2] == 'rev-parse': print('{PIN}') +''' + for name in ("curl", "git", "mvn"): + path = stubs / name + path.write_text(stub) + path.chmod(0o755) + runner_temp = root / "runner" + runner_temp.mkdir() + provenance = root / "evidence/dependency.json" + provenance.parent.mkdir(parents=True) + provenance.write_text('{"origin":"stale-success"}\n') + environment = dict(os.environ, PATH=str(stubs) + os.pathsep + os.environ["PATH"], + MAVEN_REPO=str(root / "m2"), RUNNER_TEMP=str(runner_temp), + UNLAXER_PROVENANCE_FILE=str(provenance), MOCK_CENTRAL="yes" if central else "no", + MOCK_MVN_EXIT="1" if failed else "0", GITHUB_STEP_SUMMARY="") + result = subprocess.run(["bash", str(script)], env=environment, capture_output=True, text=True) + return result.returncode, json.loads(provenance.read_text()) if provenance.exists() else None + + def test_published_artifacts_do_not_claim_the_source_pin(self): + code, provenance = self.run_installer(True) + self.assertEqual(0, code) + self.assertEqual({"version": "3.3.0", "origin": "maven-central", "source_commit": None}, provenance) + + def test_unpublished_snapshot_records_actual_checked_out_commit(self): + code, provenance = self.run_installer(False) + self.assertEqual(0, code) + self.assertEqual({"version": "3.3.0-SNAPSHOT", "origin": "pinned-source", "source_commit": PIN}, provenance) + + def test_failed_install_cannot_publish_success_provenance(self): + code, provenance = self.run_installer(False, failed=True) + self.assertNotEqual(0, code) + self.assertIsNone(provenance) + + +if __name__ == "__main__": + unittest.main() From caec4615d233a79e78d3e67bfe0d28c0b0a1d19f Mon Sep 17 00:00:00 2001 From: opaopa6969 Date: Sat, 17 Oct 2026 08:53:35 +0900 Subject: [PATCH 3/5] fix(p4): select complete root families in one recognition --- .github/workflows/ci.yml | 4 +- docs/quality/p4-single-root-dispatch.md | 90 + pom.xml | 2 +- rust/tinyexpression-rs/src/api.rs | 2 +- .../src/family_projection.rs | 370 + .../src/generated/ubnfc/ast.rs | 2 +- .../src/generated/ubnfc/metadata.rs | 2 +- .../src/generated/ubnfc/parser.rs | 11223 +++++++++------- .../src/generated/ubnfc/runtime.rs | 590 +- rust/tinyexpression-rs/src/lib.rs | 103 +- rust/tinyexpression-rs/src/runtime/mod.rs | 2 +- rust/tinyexpression-rs/src/runtime/select.rs | 198 +- .../tests/fixtures/root-document-dispatch.tsv | 7 + .../tests/fixtures/root-expression.tsv | 11 + .../tests/fixtures/root-family-projection.tsv | 20 + rust/tinyexpression-rs/tests/parser_cli.rs | 4 +- .../tests/root_family_projection.rs | 195 + rust/ubnfc-pin.txt | 6 +- rust/ubnfc-vendored.sha256 | 8 +- .../p4/ClassicP4PreferredAstMapper.java | 144 +- .../p4/P4ResultFamilyProjection.java | 154 + .../tinyexpression/p4/P4RootProjection.java | 59 + .../tinyexpression/p4/P4SourceText.java | 27 + .../unlaxer/tinyexpression/p4/ubnfc/UBNFC_PIN | 10 +- .../tinyexpression/p4/ubnfc/UbnfcP4Parse.java | 145 +- .../generated/TinyExpressionP4Parser.java | 10803 ++++++++------- .../p4/ubnfc/generated/driver/Driver.java | 2 +- .../p4/P4ProjectionTextReaderTest.java | 26 + .../P4SingleRecognitionProjectionTest.java | 166 + .../grammar/tinyexpression-p4.ubnf | 35 +- 30 files changed, 13401 insertions(+), 11009 deletions(-) create mode 100644 docs/quality/p4-single-root-dispatch.md create mode 100644 rust/tinyexpression-rs/src/family_projection.rs create mode 100644 rust/tinyexpression-rs/tests/fixtures/root-document-dispatch.tsv create mode 100644 rust/tinyexpression-rs/tests/fixtures/root-family-projection.tsv create mode 100644 rust/tinyexpression-rs/tests/root_family_projection.rs create mode 100644 src/main/java/org/unlaxer/tinyexpression/p4/P4ResultFamilyProjection.java create mode 100644 src/main/java/org/unlaxer/tinyexpression/p4/P4RootProjection.java create mode 100644 src/test/java/org/unlaxer/tinyexpression/p4/P4ProjectionTextReaderTest.java create mode 100644 src/test/java/org/unlaxer/tinyexpression/p4/ubnfc/P4SingleRecognitionProjectionTest.java diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 7a8e2a36..793bc728 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -153,7 +153,7 @@ jobs: - name: Parity, differential fuzz and engine mode matrix run: >- mvn -B test -Dgpg.skip=true -Dtinyexpression.skipRailroad=true -Dmaven.repo.local="$MAVEN_REPO" - -Dtest=DeclarativeLexicalConformanceTest,UbnfcParityTest,UbnfcDifferentialFuzzTest,P4EngineModeMatrixTest,P4ParserEngineTest,P4DslJavaCodeCalculatorTest,P4DslJavaCodeCalculatorClassicEngineTest,P4AstEvaluatorCalculatorTest,P4AstEvaluatorCalculatorClassicEngineTest,P4PreferredAstMapperDiagnosticsTest,P4SourceMappingTest,P4PackratFraudFormulaTest,FraudAcceptanceTest + -Dtest=DeclarativeLexicalConformanceTest,UbnfcParityTest,UbnfcDifferentialFuzzTest,P4EngineModeMatrixTest,P4ParserEngineTest,P4DslJavaCodeCalculatorTest,P4DslJavaCodeCalculatorClassicEngineTest,P4AstEvaluatorCalculatorTest,P4AstEvaluatorCalculatorClassicEngineTest,P4PreferredAstMapperDiagnosticsTest,P4SourceMappingTest,P4SingleRecognitionProjectionTest,P4ProjectionTextReaderTest,P4PackratFraudFormulaTest,FraudAcceptanceTest - name: Require Rust production fraud acceptance and collector negative gates env: PYTHONDONTWRITEBYTECODE: '1' @@ -245,7 +245,7 @@ jobs: -Dtinyexpression.expected.mapper.snapshot=true -Dtinyexpression.expected.mapper.nodeAlias=true -Dtinyexpression.expected.mapper.optionalQualifier=true - -Dtest=P4LayoutMigrationTest,P4SourceMappingTest,P4OwnedSliceSourceTest,P4TypedAstEvaluatorTest,P4JavaCodeEmitterSourceTextTest,DslGeneratedAstJavaEmitterTest,P4PreferredAstMapperPrecedenceTest,P4OptionalExternalQualifierTest,P4RustRootExpressionAcceptanceTest,P4RustNumericEvaluatorOracleTest,P4RustScalarEvaluatorOracleTest,CodeBlockSourceTest,CodeBlockNoCompilerTest + -Dtest=P4LayoutMigrationTest,P4SourceMappingTest,P4OwnedSliceSourceTest,P4TypedAstEvaluatorTest,P4JavaCodeEmitterSourceTextTest,DslGeneratedAstJavaEmitterTest,P4PreferredAstMapperPrecedenceTest,P4OptionalExternalQualifierTest,P4RustRootExpressionAcceptanceTest,P4SingleRecognitionProjectionTest,P4ProjectionTextReaderTest,P4RustNumericEvaluatorOracleTest,P4RustScalarEvaluatorOracleTest,CodeBlockSourceTest,CodeBlockNoCompilerTest - name: Verify shared Java/Rust parser fixtures with the pinned source generator if: matrix.generator == 'source' working-directory: tinyexpression diff --git a/docs/quality/p4-single-root-dispatch.md b/docs/quality/p4-single-root-dispatch.md new file mode 100644 index 00000000..bfc80d83 --- /dev/null +++ b/docs/quality/p4-single-root-dispatch.md @@ -0,0 +1,90 @@ +# P4 single-root recognition (#256) + +Normal recognition in the Java Classic and ubnfc facades, Rust `parse`, and Rust contextual +evaluator now invokes `Formula` once. They do not retry Boolean/String/Object entries after root failure, or invoke +another entry after a successful parse to interpret explicit result hints. Caller-selected +subtree entries remain available. Classic's detailed-diagnostic retry uses the same root after +a failed parse, with its existing remaining-budget policy; it is not result-family dispatch. + +`Formula` recognizes code blocks, imports, declarations and annotations once. Its tail is an +ordinary ordered choice of `(family expression, method declarations, EOF)`. A short numeric +prefix fails the enclosing branch and rolls back before trying the boolean/string branch. +A complete numeric or common `if` expression commits the first branch. Nested `Expression` +and the combinators' normal first-success Choice semantics are unchanged. The family wrappers +all map to the existing `ExpressionExpr`, preserving the public AST schema. + +An initial experiment with `@longestChoice` on every Expression, and a second restricted to +root dispatch, were rejected after substantial parsing regressions. Repeating the prologue in +each complete branch also re-executed declarations, changing state epochs and losing failure +memo reuse for truncated inputs. The factored grammar avoids these repeated effects. No +handwritten edits to generated parsers substitute for the pinned regeneration. + +## AST and position compatibility + +The facades preserve the historical semantic subtree for bare expressions that previously +needed an alternate root: numeric comparisons, boolean operations starting with a variable, +and string concatenations starting with a variable. This is a structural AST projection, +without recognizing source text again. Documents retain Formula/Expression wrappers. + +Only existing direct result hints select a typed family. A number-shaped variable expression +can be projected into StringConcat/BooleanOr/Object wrappers, and compatible match cases into +the corresponding typed case records. An incompatible literal/operator or mixed hints still +fail. These projections retain identity-based owned code-point spans; new wrappers refer to +origin nodes from the committed parse. String `as` versus no-`as` spelling retains the existing +StringTypedVariableRef versus VariableRef shape. Layout between `$`, the identifier and the +hint is permitted. Identifiers remain the lexical grammar's ASCII alphabet; this work does +not add non-ASCII identifiers. + +The spelling check uses one operation-owned CP/UTF-16 (Java) or CP/UTF-8 (Rust) cursor. +String operands and match values are visited in source order, so a list of typed variables +no longer scans the source prefix from the beginning for each value. Reverse, repeated and +empty EOF spans remain valid; the reader moves backwards when necessary rather than assuming +all callers are monotonic. This does not change the general public random-access span API, +allocate a full source-index array, or change grapheme coordinates. + +Every accepted input in `root-family-projection.tsv` is compared with the explicit family +entry in tests only, including every record and every node span. That entry is an independent +structural oracle, not a production fallback. Java checks both engines and retained snapshots; +Rust checks its owned public tree. `root-expression.tsv` fixes the existing public root +contracts, including comments containing a family emoji. `root-document-dispatch.tsv` fixes +values, declarations, methods and expression CP boundaries. Capture ranges may include trailing +trivia before a method; these are not grapheme or UTF-16 indexes. + +Complete document tails also repair previously rejected inputs such as +`var $s as string set '𝄞😀' description='音符'; $s + '!'` and +`var $n as number set 1;$n<2`. Both Java engines and Rust now recognize and evaluate the entire +document. Losing branches must not duplicate declarations/references or leave method metadata +behind; the failure regression checks this before closing the context. + +## Verification and limits + +Use Java 21, Rust 1.85, the generator revision recorded in UBNFC_PIN/ubnfc-pin.txt, and an +isolated Maven repository containing the chosen unlaxer source build. For this change the +fixed parser dependency is source `faccb2c9`, version `3.3.0` (not a new Central publication). + +```sh +mvn -Dmaven.repo.local=/tmp/unlaxer-tiny-root-choice-m2 -Dunlaxer.version=3.3.0 \ + -Dtinyexpression.skipRailroad=true -Dgpg.skip=true -Dtinyexpression.rust.shared=true \ + -Dtest=P4SingleRecognitionProjectionTest,P4ProjectionTextReaderTest,P4RustRootExpressionAcceptanceTest test +RUSTUP_TOOLCHAIN=1.85.0 cargo test --manifest-path rust/Cargo.toml -p tinyexpression-rs \ + --test root_family_projection --test java_differential --test parser_cli +UBNFC_DIR=/path/to/pinned/ubnfc scripts/regenerate-ubnfc-parser.sh --check --require-full +UBNFC_DIR=/path/to/pinned/ubnfc rust/check-generated.sh +python3 scripts/generate-ubnfc-converter.py --check +``` + +The fixed 953-formula / 12,609-row Java golden is compared without rewriting expectations. +A golden result compares value/type/bits or failure stage/class; diagnostic prose is not its +cross-language contract. The new tests additionally check EOF rejection, Unicode CP failure +positions, scope rollback, retained sources and typed evaluator use without a fallback. + +On the shared development host, the same 350-case Java engine comparison completed in +11.166 s before this change and 8.627 s with the factored grammar. These are reference runs, +not eligible dedicated-host throughput measurements or a claim of general speed improvement. +The existing Classic mapper resource rejections for the x64 complex/comparison inputs are +tracked independently by [Tiny #259](https://github.com/opaopa6969/tinyexpression/issues/259) +and [unlaxer-parser #680](https://github.com/opaopa6969/unlaxer-parser/issues/680); +neither resource limits nor their test expectations are relaxed here. +Five fraud formulas and the complex fixture must be parsed and evaluated successfully when +recording timing. A fast caught exception does not count as acceptance. Parent production +latency and memory requirements remain subject to the dedicated evidence and open issues. diff --git a/pom.xml b/pom.xml index 15c5c722..107c3dbe 100644 --- a/pom.xml +++ b/pom.xml @@ -343,7 +343,7 @@ org.apache.maven.plugins maven-surefire-plugin - org.unlaxer.tinyexpression.evaluator.ast.P4TypedAstEvaluatorTest,org.unlaxer.tinyexpression.evaluator.ast.AstEvaluatorParityCorpusTest,org.unlaxer.tinyexpression.evaluator.ast.AstEvaluatorBackendParityTest,org.unlaxer.tinyexpression.evaluator.ast.ThreeExecutionBackendParityTest,org.unlaxer.tinyexpression.p4.P4BackendParityTest,org.unlaxer.tinyexpression.p4.P4PreferredAstMapperPrecedenceTest,org.unlaxer.tinyexpression.p4.ubnfc.UbnfcParityTest,org.unlaxer.tinyexpression.loader.P4EngineModeMatrixTest + org.unlaxer.tinyexpression.evaluator.ast.P4TypedAstEvaluatorTest,org.unlaxer.tinyexpression.evaluator.ast.AstEvaluatorParityCorpusTest,org.unlaxer.tinyexpression.evaluator.ast.AstEvaluatorBackendParityTest,org.unlaxer.tinyexpression.evaluator.ast.ThreeExecutionBackendParityTest,org.unlaxer.tinyexpression.p4.P4BackendParityTest,org.unlaxer.tinyexpression.p4.P4PreferredAstMapperPrecedenceTest,org.unlaxer.tinyexpression.p4.ubnfc.UbnfcParityTest,org.unlaxer.tinyexpression.p4.ubnfc.P4SingleRecognitionProjectionTest,org.unlaxer.tinyexpression.p4.P4ProjectionTextReaderTest,org.unlaxer.tinyexpression.loader.P4EngineModeMatrixTest true diff --git a/rust/tinyexpression-rs/src/api.rs b/rust/tinyexpression-rs/src/api.rs index 8ea11ea6..ff0d2e87 100644 --- a/rust/tinyexpression-rs/src/api.rs +++ b/rust/tinyexpression-rs/src/api.rs @@ -39,7 +39,7 @@ pub const VERSION: &str = env!("CARGO_PKG_VERSION"); /// fails when it differs from `ubnfc_commit` in `rust/ubnfc-pin.txt`. pub const UBNFC_COMMIT: &str = "f54d6b90466ffde14066d32f911ed642b1e49201"; /// Exact P4 grammar source identity; checked against `rust/ubnfc-pin.txt` in CI. -pub const GRAMMAR_SHA256: &str = "184cce54c70b0e3ebbdedaca5a0af0068ec56b2d7e33cda39d94f861c6433f46"; +pub const GRAMMAR_SHA256: &str = "a40d6f5f57c3b3a67e0c627bfc99c603304593087cf428b50bb85754e23f4daf"; /// One JSON response and the exit code that goes with it. #[derive(Clone, Debug, PartialEq, Eq)] diff --git a/rust/tinyexpression-rs/src/family_projection.rs b/rust/tinyexpression-rs/src/family_projection.rs new file mode 100644 index 00000000..d8beed55 --- /dev/null +++ b/rust/tinyexpression-rs/src/family_projection.rs @@ -0,0 +1,370 @@ +//! Explicit family projection of a single successful recognition. No parser entry calls. +use crate::generated::ast::{Ast, AstValue}; +use crate::Span; +use std::cell::Cell; + +pub(crate) fn project(ast: &Ast, family: &str, source: &str) -> Result { + match ast { + Ast::FormulaExpr { expression, .. } => return project(expression, family, source), + Ast::ExpressionExpr { value, .. } => return project(value, family, source), + _ => {} + } + if family == "OBJECT" { + return Ok(match ast { + Ast::ObjectExpr { .. } => ast.clone(), + _ => Ast::ObjectExpr { + span: ast.span(), + value: Box::new(ast.clone()), + }, + }); + } + if matches!(ast, Ast::StringMatchExpr { .. }) { + return if family == "STRING" { + Ok(ast.clone()) + } else { + Err(()) + }; + } + if matches!(ast, Ast::BooleanMatchExpr { .. }) { + return if family == "BOOLEAN" { + Ok(ast.clone()) + } else { + Err(()) + }; + } + if family == "NUMBER" { + return Ok(ast.clone()); + } + let layout: String = crate::runtime::select::strip_comments(source) + .into_iter() + .collect(); + let projection = Projection::new(&layout); + if let Ast::NumberMatchExpr { .. } = ast { + return projection.match_node(ast, family); + } + if family == "STRING" { + projection.string_expression(ast) + } else { + projection.boolean_expression(ast) + } +} + +pub(crate) fn with_root_span(mut ast: Ast, root_span: Span) -> Ast { + match &mut ast { + Ast::StringConcatExpr { span, .. } + | Ast::BooleanOrExpr { span, .. } + | Ast::ObjectExpr { span, .. } + | Ast::NumberMatchExpr { span, .. } + | Ast::StringMatchExpr { span, .. } + | Ast::BooleanMatchExpr { span, .. } => *span = root_span, + _ => {} + } + ast +} + +struct Projection<'a> { + source: &'a str, + cursor: Cell<(usize, usize)>, +} +impl<'a> Projection<'a> { + fn new(source: &'a str) -> Self { + Self { + source, + cursor: Cell::new((0, 0)), + } + } + + fn seek(&self, target: usize) -> Result { + let (mut cp, mut byte) = self.cursor.get(); + while cp < target { + byte += self + .source + .get(byte..) + .and_then(|s| s.chars().next()) + .ok_or(())? + .len_utf8(); + cp += 1; + } + while cp > target { + byte -= self + .source + .get(..byte) + .and_then(|s| s.chars().next_back()) + .ok_or(())? + .len_utf8(); + cp -= 1; + } + self.cursor.set((cp, byte)); + Ok(byte) + } + + fn text(&self, span: Span) -> Result<&'a str, ()> { + if span.end < span.start { + return Err(()); + } + let start = self.seek(span.start)?; + let end = self.seek(span.end)?; + self.source.get(start..end).ok_or(()) + } + + fn string_expression(&self, ast: &Ast) -> Result { + let span = ast.span(); + match ast { + Ast::StringConcatExpr { .. } => Ok(ast.clone()), + Ast::BinaryExpr { + left, op, right, .. + } => { + if op.iter().any(|op| op != "+") { + return Err(()); + } + Ok(Ast::StringConcatExpr { + span, + left: self.string_term(left)?, + op: op.clone(), + right: right + .iter() + .map(|value| self.string_term(value)) + .collect::>()?, + }) + } + _ => Ok(Ast::StringConcatExpr { + span, + left: self.string_atom(&AstValue::Node(Box::new(ast.clone())))?, + op: Vec::new(), + right: Vec::new(), + }), + } + } + + fn string_term(&self, value: &AstValue) -> Result { + if let AstValue::Node(ast) = value { + if let Ast::BinaryExpr { left, op, .. } = ast.as_ref() { + if !op.is_empty() { + return Err(()); + } + if let AstValue::Node(nested) = left { + if matches!(nested.as_ref(), Ast::BinaryExpr { .. }) { + return Ok(AstValue::Node(Box::new(self.string_expression(nested)?))); + } + } + return self.string_atom(left); + } + } + self.string_atom(value) + } + + fn string_atom(&self, value: &AstValue) -> Result { + let AstValue::Node(ast) = value else { + return Err(()); + }; + let result = match ast.as_ref() { + Ast::VariableRefExpr { span, name, r#type } => { + let text = self.text(*span)?; + let body = text.trim().strip_prefix('$').ok_or(())?.trim_start(); + // IDENTIFIER is ASCII in this grammar; byte and CP name lengths agree. + let tail = body.get(name.len()..).ok_or(())?; + if tail.trim().starts_with("as") + && r#type + .as_ref() + .is_some_and(|v| v.eq_ignore_ascii_case("string")) + { + Ast::StringTypedVariableRefExpr { + span: *span, + name: name.clone(), + } + } else { + *ast.clone() + } + } + Ast::StringTypedVariableRefExpr { .. } + | Ast::StringCastVariableRefExpr { .. } + | Ast::MethodInvocationExpr { .. } + | Ast::IfExpr { .. } => *ast.clone(), + Ast::NumberMatchExpr { .. } => self.match_node(ast, "STRING")?, + _ => return Err(()), + }; + Ok(AstValue::Node(Box::new(result))) + } + + fn boolean_expression(&self, ast: &Ast) -> Result { + if matches!(ast, Ast::BooleanOrExpr { .. }) { + return Ok(ast.clone()); + } + let span = ast.span(); + let mut atom = ast; + let mut nested_projection = None; + let mut factor_span = span; + if let Ast::BinaryExpr { left, op, .. } = ast { + if !op.is_empty() { + return Err(()); + } + let AstValue::Node(node) = left else { + return Err(()); + }; + atom = node; + if let Ast::BinaryExpr { + left, + op, + span: term_span, + .. + } = atom + { + if !op.is_empty() { + return Err(()); + } + factor_span = *term_span; + let AstValue::Node(node) = left else { + return Err(()); + }; + atom = node; + if matches!(atom, Ast::BinaryExpr { .. }) { + nested_projection = Some(self.boolean_expression(atom)?); + } + } + } + if let Some(ref nested) = nested_projection { + atom = nested; + } + let atom = match atom { + Ast::NumberMatchExpr { .. } => self.match_node(atom, "BOOLEAN")?, + Ast::VariableRefExpr { .. } + | Ast::MethodInvocationExpr { .. } + | Ast::IfExpr { .. } + | Ast::BooleanMatchExpr { .. } + | Ast::BooleanOrExpr { .. } => atom.clone(), + _ => return Err(()), + }; + Ok(Ast::BooleanOrExpr { + span, + op: Vec::new(), + right: Vec::new(), + left: Box::new(Ast::BooleanAndExpr { + span, + op: Vec::new(), + right: Vec::new(), + left: Box::new(Ast::BooleanXorExpr { + span, + op: Vec::new(), + right: Vec::new(), + left: Box::new(Ast::BooleanFactorExpr { + span: factor_span, + value: AstValue::Node(Box::new(atom)), + }), + }), + }), + }) + } + + fn case_value(&self, ast: &Ast, family: &str) -> Result { + let Ast::NumberCaseValueExpr { span, value } = ast else { + return Err(()); + }; + if family == "STRING" { + Ok(Ast::StringCaseValueExpr { + span: *span, + value: Box::new(self.string_expression(value)?), + }) + } else { + Ok(Ast::BooleanCaseValueExpr { + span: *span, + value: Box::new(self.boolean_expression(value)?), + }) + } + } + + fn case(&self, ast: &Ast, family: &str) -> Result { + let Ast::NumberCaseExpr { + span, + condition, + value, + } = ast + else { + return Err(()); + }; + let value = Box::new(self.case_value(value, family)?); + if family == "STRING" { + Ok(Ast::StringCaseExpr { + span: *span, + condition: condition.clone(), + value, + }) + } else { + Ok(Ast::BooleanCaseExpr { + span: *span, + condition: condition.clone(), + value, + }) + } + } + + fn match_node(&self, ast: &Ast, family: &str) -> Result { + let Ast::NumberMatchExpr { + span, + firstCase, + moreCases, + defaultCase, + } = ast + else { + return Err(()); + }; + let first = Box::new(self.case(firstCase, family)?); + let more = moreCases + .iter() + .map(|case| self.case(case, family)) + .collect::>()?; + let Ast::NumberDefaultCaseExpr { + span: default_span, + value, + } = defaultCase.as_ref() + else { + return Err(()); + }; + let default_value = Box::new(self.case_value(value, family)?); + if family == "STRING" { + Ok(Ast::StringMatchExpr { + span: *span, + firstCase: first, + moreCases: more, + defaultCase: Box::new(Ast::StringDefaultCaseExpr { + span: *default_span, + value: default_value, + }), + }) + } else { + Ok(Ast::BooleanMatchExpr { + span: *span, + firstCase: first, + moreCases: more, + defaultCase: Box::new(Ast::BooleanDefaultCaseExpr { + span: *default_span, + value: default_value, + }), + }) + } + } +} + +#[cfg(test)] +mod tests { + use super::Projection; + use crate::Span; + + #[test] + fn projection_reader_handles_reverse_repeated_and_unicode_spans() { + let reader = Projection::new("a😀e\u{301}👨‍👩‍👧‍👦z"); + for (start, end, expected) in [ + (1, 2, "😀"), + (4, 11, "👨‍👩‍👧‍👦"), + (0, 1, "a"), + (2, 4, "e\u{301}"), + (1, 2, "😀"), + (1, 2, "😀"), + (12, 12, ""), + ] { + assert_eq!(reader.text(Span { start, end }).unwrap(), expected); + } + assert!(reader.text(Span { start: 4, end: 3 }).is_err()); + assert!(reader.text(Span { start: 12, end: 13 }).is_err()); + assert_eq!(reader.text(Span { start: 0, end: 1 }).unwrap(), "a"); + } +} diff --git a/rust/tinyexpression-rs/src/generated/ubnfc/ast.rs b/rust/tinyexpression-rs/src/generated/ubnfc/ast.rs index 03a6b10a..22cf2410 100644 --- a/rust/tinyexpression-rs/src/generated/ubnfc/ast.rs +++ b/rust/tinyexpression-rs/src/generated/ubnfc/ast.rs @@ -1486,7 +1486,7 @@ pub const K_g_TinyExpressionP4AST_2e_VariableRefExpr: u16 = 86; pub const K_g_TinyExpressionP4AST_2e_ExpressionExpr: u16 = 87; pub(crate) const TYPE_IDS: &[&str] = &["text","null","TinyExpressionP4AST.FormulaExpr","TinyExpressionP4AST.CodeBlockExpr","TinyExpressionP4AST.ImportDeclarationExpr","TinyExpressionP4AST.QualifiedNameExpr","TinyExpressionP4AST.NumberVariableDeclarationExpr","TinyExpressionP4AST.StringVariableDeclarationExpr","TinyExpressionP4AST.BooleanVariableDeclarationExpr","TinyExpressionP4AST.ObjectVariableDeclarationExpr","TinyExpressionP4AST.OnlyIfAbsentExpr","TinyExpressionP4AST.NumberMethodDeclarationExpr","TinyExpressionP4AST.StringMethodDeclarationExpr","TinyExpressionP4AST.BooleanMethodDeclarationExpr","TinyExpressionP4AST.ObjectMethodDeclarationExpr","TinyExpressionP4AST.MethodParametersExpr","TinyExpressionP4AST.MethodParameterExpr","TinyExpressionP4AST.ExternalBooleanInvocationExpr","TinyExpressionP4AST.ExternalNumberInvocationExpr","TinyExpressionP4AST.ExternalStringInvocationExpr","TinyExpressionP4AST.ExternalObjectInvocationExpr","TinyExpressionP4AST.MethodInvocationExpr","TinyExpressionP4AST.TernaryExpr","TinyExpressionP4AST.ArgumentExpressionExpr","TinyExpressionP4AST.ArgumentsExpr","TinyExpressionP4AST.BinaryExpr","TinyExpressionP4AST.SinExpr","TinyExpressionP4AST.CosExpr","TinyExpressionP4AST.TanExpr","TinyExpressionP4AST.SqrtExpr","TinyExpressionP4AST.MinExpr","TinyExpressionP4AST.MaxExpr","TinyExpressionP4AST.RandomExpr","TinyExpressionP4AST.AbsExpr","TinyExpressionP4AST.RoundExpr","TinyExpressionP4AST.CeilExpr","TinyExpressionP4AST.FloorExpr","TinyExpressionP4AST.PowExpr","TinyExpressionP4AST.LogExpr","TinyExpressionP4AST.ExpExpr","TinyExpressionP4AST.ToNumExpr","TinyExpressionP4AST.ToUpperCaseExpr","TinyExpressionP4AST.ToLowerCaseExpr","TinyExpressionP4AST.TrimExpr","TinyExpressionP4AST.LengthExpr","TinyExpressionP4AST.ToUpperCaseDotExpr","TinyExpressionP4AST.ToLowerCaseDotExpr","TinyExpressionP4AST.TrimDotExpr","TinyExpressionP4AST.LengthDotExpr","TinyExpressionP4AST.StartsWithExpr","TinyExpressionP4AST.EndsWithExpr","TinyExpressionP4AST.ContainsExpr","TinyExpressionP4AST.InExpr","TinyExpressionP4AST.StartsWithDotExpr","TinyExpressionP4AST.EndsWithDotExpr","TinyExpressionP4AST.ContainsDotExpr","TinyExpressionP4AST.IsPresentExpr","TinyExpressionP4AST.InTimeRangeExpr","TinyExpressionP4AST.InDayTimeRangeExpr","TinyExpressionP4AST.SliceExpr","TinyExpressionP4AST.StringConcatExpr","TinyExpressionP4AST.StringCastVariableRefExpr","TinyExpressionP4AST.StringTypedVariableRefExpr","TinyExpressionP4AST.BooleanOrExpr","TinyExpressionP4AST.BooleanAndExpr","TinyExpressionP4AST.BooleanXorExpr","TinyExpressionP4AST.NotExpr","TinyExpressionP4AST.BooleanEqualityExpr","TinyExpressionP4AST.BooleanFactorExpr","TinyExpressionP4AST.StringComparisonExpr","TinyExpressionP4AST.ComparisonExpr","TinyExpressionP4AST.ObjectExpr","TinyExpressionP4AST.IfExpr","TinyExpressionP4AST.BranchExpressionExpr","TinyExpressionP4AST.NumberMatchExpr","TinyExpressionP4AST.NumberCaseExpr","TinyExpressionP4AST.NumberDefaultCaseExpr","TinyExpressionP4AST.NumberCaseValueExpr","TinyExpressionP4AST.StringMatchExpr","TinyExpressionP4AST.StringCaseExpr","TinyExpressionP4AST.StringDefaultCaseExpr","TinyExpressionP4AST.StringCaseValueExpr","TinyExpressionP4AST.BooleanMatchExpr","TinyExpressionP4AST.BooleanCaseExpr","TinyExpressionP4AST.BooleanDefaultCaseExpr","TinyExpressionP4AST.BooleanCaseValueExpr","TinyExpressionP4AST.VariableRefExpr","TinyExpressionP4AST.ExpressionExpr"]; pub(crate) const TYPE_NAMES: &[&str] = &["text","null","FormulaExpr","CodeBlockExpr","ImportDeclarationExpr","QualifiedNameExpr","NumberVariableDeclarationExpr","StringVariableDeclarationExpr","BooleanVariableDeclarationExpr","ObjectVariableDeclarationExpr","OnlyIfAbsentExpr","NumberMethodDeclarationExpr","StringMethodDeclarationExpr","BooleanMethodDeclarationExpr","ObjectMethodDeclarationExpr","MethodParametersExpr","MethodParameterExpr","ExternalBooleanInvocationExpr","ExternalNumberInvocationExpr","ExternalStringInvocationExpr","ExternalObjectInvocationExpr","MethodInvocationExpr","TernaryExpr","ArgumentExpressionExpr","ArgumentsExpr","BinaryExpr","SinExpr","CosExpr","TanExpr","SqrtExpr","MinExpr","MaxExpr","RandomExpr","AbsExpr","RoundExpr","CeilExpr","FloorExpr","PowExpr","LogExpr","ExpExpr","ToNumExpr","ToUpperCaseExpr","ToLowerCaseExpr","TrimExpr","LengthExpr","ToUpperCaseDotExpr","ToLowerCaseDotExpr","TrimDotExpr","LengthDotExpr","StartsWithExpr","EndsWithExpr","ContainsExpr","InExpr","StartsWithDotExpr","EndsWithDotExpr","ContainsDotExpr","IsPresentExpr","InTimeRangeExpr","InDayTimeRangeExpr","SliceExpr","StringConcatExpr","StringCastVariableRefExpr","StringTypedVariableRefExpr","BooleanOrExpr","BooleanAndExpr","BooleanXorExpr","NotExpr","BooleanEqualityExpr","BooleanFactorExpr","StringComparisonExpr","ComparisonExpr","ObjectExpr","IfExpr","BranchExpressionExpr","NumberMatchExpr","NumberCaseExpr","NumberDefaultCaseExpr","NumberCaseValueExpr","StringMatchExpr","StringCaseExpr","StringDefaultCaseExpr","StringCaseValueExpr","BooleanMatchExpr","BooleanCaseExpr","BooleanDefaultCaseExpr","BooleanCaseValueExpr","VariableRefExpr","ExpressionExpr"]; -pub(crate) const RULE_IDS: &[&str] = &["TinyExpressionP4::Formula", "TinyExpressionP4::CodeBlock", "TinyExpressionP4::ImportDeclaration", "TinyExpressionP4::ClassName", "TinyExpressionP4::VariableDeclaration", "TinyExpressionP4::NumberVariableDeclaration", "TinyExpressionP4::StringVariableDeclaration", "TinyExpressionP4::BooleanVariableDeclaration", "TinyExpressionP4::ObjectVariableDeclaration", "TinyExpressionP4::TypeHint", "TinyExpressionP4::NumberTypeHint", "TinyExpressionP4::StringTypeHint", "TinyExpressionP4::BooleanTypeHint", "TinyExpressionP4::ObjectTypeHint", "TinyExpressionP4::OnlyIfAbsent", "TinyExpressionP4::Description", "TinyExpressionP4::Annotation", "TinyExpressionP4::AnnotationParameters", "TinyExpressionP4::AnnotationParameter", "TinyExpressionP4::MethodDeclaration", "TinyExpressionP4::NumberMethodDeclaration", "TinyExpressionP4::StringMethodDeclaration", "TinyExpressionP4::BooleanMethodDeclaration", "TinyExpressionP4::ObjectMethodDeclaration", "TinyExpressionP4::MethodParameters", "TinyExpressionP4::MethodParameter", "TinyExpressionP4::NumberReturnType", "TinyExpressionP4::StringReturnType", "TinyExpressionP4::BooleanReturnType", "TinyExpressionP4::ObjectReturnType", "TinyExpressionP4::ReturnType", "TinyExpressionP4::ExternalBooleanInvocation", "TinyExpressionP4::ExternalNumberInvocation", "TinyExpressionP4::ExternalStringInvocation", "TinyExpressionP4::ExternalObjectInvocation", "TinyExpressionP4::MethodInvocationHeader", "TinyExpressionP4::MethodInvocation", "TinyExpressionP4::ArgumentTernary", "TinyExpressionP4::ArgumentExpression", "TinyExpressionP4::Arguments", "TinyExpressionP4::NumberExpression", "TinyExpressionP4::NumberTerm", "TinyExpressionP4::AddOp", "TinyExpressionP4::MulOp", "TinyExpressionP4::MathFunction", "TinyExpressionP4::SinFunction", "TinyExpressionP4::CosFunction", "TinyExpressionP4::TanFunction", "TinyExpressionP4::SqrtFunction", "TinyExpressionP4::MinFunction", "TinyExpressionP4::MaxFunction", "TinyExpressionP4::RandomFunction", "TinyExpressionP4::AbsFunction", "TinyExpressionP4::RoundFunction", "TinyExpressionP4::CeilFunction", "TinyExpressionP4::FloorFunction", "TinyExpressionP4::PowFunction", "TinyExpressionP4::LogFunction", "TinyExpressionP4::ExpFunction", "TinyExpressionP4::ToNumFunction", "TinyExpressionP4::NumberFactor", "TinyExpressionP4::ToUpperCaseFunction", "TinyExpressionP4::ToLowerCaseFunction", "TinyExpressionP4::TrimFunction", "TinyExpressionP4::LengthFunction", "TinyExpressionP4::LenFunction", "TinyExpressionP4::ToUpperCaseDotMethod", "TinyExpressionP4::ToLowerCaseDotMethod", "TinyExpressionP4::TrimDotMethod", "TinyExpressionP4::LengthDotMethod", "TinyExpressionP4::StartsWithFunction", "TinyExpressionP4::EndsWithFunction", "TinyExpressionP4::ContainsFunction", "TinyExpressionP4::InMethod", "TinyExpressionP4::StartsWithDotMethod", "TinyExpressionP4::EndsWithDotMethod", "TinyExpressionP4::ContainsDotMethod", "TinyExpressionP4::StringPredicateReceiver", "TinyExpressionP4::IsPresentFunction", "TinyExpressionP4::InTimeRangeFunction", "TinyExpressionP4::InDayTimeRangeFunction", "TinyExpressionP4::DayOfWeek", "TinyExpressionP4::SliceBaseReceiver", "TinyExpressionP4::SliceStartIndex", "TinyExpressionP4::SliceEndIndex", "TinyExpressionP4::SliceStepIndex", "TinyExpressionP4::SliceBaseExpression", "TinyExpressionP4::SliceNestedExpression", "TinyExpressionP4::SliceExpression", "TinyExpressionP4::StringExpression", "TinyExpressionP4::ParenthesizedStringExpression", "TinyExpressionP4::StringTerm", "TinyExpressionP4::StringCastVariable", "TinyExpressionP4::StringTypedVariable", "TinyExpressionP4::BooleanExpression", "TinyExpressionP4::BooleanAndExpression", "TinyExpressionP4::BooleanXorExpression", "TinyExpressionP4::NotExpression", "TinyExpressionP4::BooleanComparable", "TinyExpressionP4::BooleanEqualityExpression", "TinyExpressionP4::BooleanFactor", "TinyExpressionP4::StringComparisonExpression", "TinyExpressionP4::EqualityOp", "TinyExpressionP4::ComparisonExpression", "TinyExpressionP4::CompareOp", "TinyExpressionP4::ObjectExpression", "TinyExpressionP4::IfExpression", "TinyExpressionP4::BranchExpression", "TinyExpressionP4::TernaryExpression", "TinyExpressionP4::NumberMatchExpression", "TinyExpressionP4::NumberCase", "TinyExpressionP4::NumberDefaultCase", "TinyExpressionP4::NumberCaseValue", "TinyExpressionP4::StringMatchExpression", "TinyExpressionP4::StringCase", "TinyExpressionP4::StringDefaultCase", "TinyExpressionP4::StringCaseValue", "TinyExpressionP4::BooleanMatchExpression", "TinyExpressionP4::BooleanCase", "TinyExpressionP4::BooleanDefaultCase", "TinyExpressionP4::BooleanCaseValue", "TinyExpressionP4::VariableRef", "TinyExpressionP4::TypeKeyword", "TinyExpressionP4::Expression"]; +pub(crate) const RULE_IDS: &[&str] = &["TinyExpressionP4::Formula", "TinyExpressionP4::CodeBlock", "TinyExpressionP4::ImportDeclaration", "TinyExpressionP4::ClassName", "TinyExpressionP4::VariableDeclaration", "TinyExpressionP4::NumberVariableDeclaration", "TinyExpressionP4::StringVariableDeclaration", "TinyExpressionP4::BooleanVariableDeclaration", "TinyExpressionP4::ObjectVariableDeclaration", "TinyExpressionP4::TypeHint", "TinyExpressionP4::NumberTypeHint", "TinyExpressionP4::StringTypeHint", "TinyExpressionP4::BooleanTypeHint", "TinyExpressionP4::ObjectTypeHint", "TinyExpressionP4::OnlyIfAbsent", "TinyExpressionP4::Description", "TinyExpressionP4::Annotation", "TinyExpressionP4::AnnotationParameters", "TinyExpressionP4::AnnotationParameter", "TinyExpressionP4::MethodDeclaration", "TinyExpressionP4::NumberMethodDeclaration", "TinyExpressionP4::StringMethodDeclaration", "TinyExpressionP4::BooleanMethodDeclaration", "TinyExpressionP4::ObjectMethodDeclaration", "TinyExpressionP4::MethodParameters", "TinyExpressionP4::MethodParameter", "TinyExpressionP4::NumberReturnType", "TinyExpressionP4::StringReturnType", "TinyExpressionP4::BooleanReturnType", "TinyExpressionP4::ObjectReturnType", "TinyExpressionP4::ReturnType", "TinyExpressionP4::ExternalBooleanInvocation", "TinyExpressionP4::ExternalNumberInvocation", "TinyExpressionP4::ExternalStringInvocation", "TinyExpressionP4::ExternalObjectInvocation", "TinyExpressionP4::MethodInvocationHeader", "TinyExpressionP4::MethodInvocation", "TinyExpressionP4::ArgumentTernary", "TinyExpressionP4::ArgumentExpression", "TinyExpressionP4::Arguments", "TinyExpressionP4::NumberExpression", "TinyExpressionP4::NumberTerm", "TinyExpressionP4::AddOp", "TinyExpressionP4::MulOp", "TinyExpressionP4::MathFunction", "TinyExpressionP4::SinFunction", "TinyExpressionP4::CosFunction", "TinyExpressionP4::TanFunction", "TinyExpressionP4::SqrtFunction", "TinyExpressionP4::MinFunction", "TinyExpressionP4::MaxFunction", "TinyExpressionP4::RandomFunction", "TinyExpressionP4::AbsFunction", "TinyExpressionP4::RoundFunction", "TinyExpressionP4::CeilFunction", "TinyExpressionP4::FloorFunction", "TinyExpressionP4::PowFunction", "TinyExpressionP4::LogFunction", "TinyExpressionP4::ExpFunction", "TinyExpressionP4::ToNumFunction", "TinyExpressionP4::NumberFactor", "TinyExpressionP4::ToUpperCaseFunction", "TinyExpressionP4::ToLowerCaseFunction", "TinyExpressionP4::TrimFunction", "TinyExpressionP4::LengthFunction", "TinyExpressionP4::LenFunction", "TinyExpressionP4::ToUpperCaseDotMethod", "TinyExpressionP4::ToLowerCaseDotMethod", "TinyExpressionP4::TrimDotMethod", "TinyExpressionP4::LengthDotMethod", "TinyExpressionP4::StartsWithFunction", "TinyExpressionP4::EndsWithFunction", "TinyExpressionP4::ContainsFunction", "TinyExpressionP4::InMethod", "TinyExpressionP4::StartsWithDotMethod", "TinyExpressionP4::EndsWithDotMethod", "TinyExpressionP4::ContainsDotMethod", "TinyExpressionP4::StringPredicateReceiver", "TinyExpressionP4::IsPresentFunction", "TinyExpressionP4::InTimeRangeFunction", "TinyExpressionP4::InDayTimeRangeFunction", "TinyExpressionP4::DayOfWeek", "TinyExpressionP4::SliceBaseReceiver", "TinyExpressionP4::SliceStartIndex", "TinyExpressionP4::SliceEndIndex", "TinyExpressionP4::SliceStepIndex", "TinyExpressionP4::SliceBaseExpression", "TinyExpressionP4::SliceNestedExpression", "TinyExpressionP4::SliceExpression", "TinyExpressionP4::StringExpression", "TinyExpressionP4::ParenthesizedStringExpression", "TinyExpressionP4::StringTerm", "TinyExpressionP4::StringCastVariable", "TinyExpressionP4::StringTypedVariable", "TinyExpressionP4::BooleanExpression", "TinyExpressionP4::BooleanAndExpression", "TinyExpressionP4::BooleanXorExpression", "TinyExpressionP4::NotExpression", "TinyExpressionP4::BooleanComparable", "TinyExpressionP4::BooleanEqualityExpression", "TinyExpressionP4::BooleanFactor", "TinyExpressionP4::StringComparisonExpression", "TinyExpressionP4::EqualityOp", "TinyExpressionP4::ComparisonExpression", "TinyExpressionP4::CompareOp", "TinyExpressionP4::ObjectExpression", "TinyExpressionP4::IfExpression", "TinyExpressionP4::BranchExpression", "TinyExpressionP4::TernaryExpression", "TinyExpressionP4::NumberMatchExpression", "TinyExpressionP4::NumberCase", "TinyExpressionP4::NumberDefaultCase", "TinyExpressionP4::NumberCaseValue", "TinyExpressionP4::StringMatchExpression", "TinyExpressionP4::StringCase", "TinyExpressionP4::StringDefaultCase", "TinyExpressionP4::StringCaseValue", "TinyExpressionP4::BooleanMatchExpression", "TinyExpressionP4::BooleanCase", "TinyExpressionP4::BooleanDefaultCase", "TinyExpressionP4::BooleanCaseValue", "TinyExpressionP4::VariableRef", "TinyExpressionP4::TypeKeyword", "TinyExpressionP4::Expression", "TinyExpressionP4::NumberRootExpression", "TinyExpressionP4::BooleanRootExpression", "TinyExpressionP4::StringRootExpression", "TinyExpressionP4::ObjectRootExpression", "TinyExpressionP4::MethodRootExpression", "TinyExpressionP4::ParenthesizedRootExpression"]; /// `super::Ast` と同じ形の、木への参照。 #[derive(Clone, Copy, Debug)] pub enum Node<'t> { Text(&'t str), Null, diff --git a/rust/tinyexpression-rs/src/generated/ubnfc/metadata.rs b/rust/tinyexpression-rs/src/generated/ubnfc/metadata.rs index 992b1a21..ebd6a9b8 100644 --- a/rust/tinyexpression-rs/src/generated/ubnfc/metadata.rs +++ b/rust/tinyexpression-rs/src/generated/ubnfc/metadata.rs @@ -1,5 +1,5 @@ //! Grammar metadata; offsets in catalog sites refer to capture IDs, not input positions. #[derive(Clone,Copy,Debug,PartialEq,Eq)] pub struct Catalog {pub rule_id:&'static str,pub rule:&'static str,pub context:&'static str,pub captures:&'static [&'static str],pub site_ids:&'static [&'static str]} pub const CATALOGS:&[Catalog]=&[ -Catalog{rule_id:"TinyExpressionP4::VariableRef",rule:"VariableRef",context:"variable",captures:&["name", "type"],site_ids:&["expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24688:24698:body/1/tokenRef/capture/0", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24716:24727:body/2/0/1/ruleRef/capture/0"]}, +Catalog{rule_id:"TinyExpressionP4::VariableRef",rule:"VariableRef",context:"variable",captures:&["name", "type"],site_ids:&["expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25252:25262:body/1/tokenRef/capture/0", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25280:25291:body/2/0/1/ruleRef/capture/0"]}, ]; diff --git a/rust/tinyexpression-rs/src/generated/ubnfc/parser.rs b/rust/tinyexpression-rs/src/generated/ubnfc/parser.rs index ad09e1dd..acba3285 100644 --- a/rust/tinyexpression-rs/src/generated/ubnfc/parser.rs +++ b/rust/tinyexpression-rs/src/generated/ubnfc/parser.rs @@ -191,6 +191,12 @@ Ok(match (grammar,entry) { ("TinyExpressionP4",Some("VariableRef"))=>parser.r121_c(State::default()), ("TinyExpressionP4",Some("TypeKeyword"))=>parser.r122_c(State::default()), ("TinyExpressionP4",Some("Expression"))=>parser.r123_c(State::default()), +("TinyExpressionP4",Some("NumberRootExpression"))=>parser.r124_c(State::default()), +("TinyExpressionP4",Some("BooleanRootExpression"))=>parser.r125_c(State::default()), +("TinyExpressionP4",Some("StringRootExpression"))=>parser.r126_c(State::default()), +("TinyExpressionP4",Some("ObjectRootExpression"))=>parser.r127_c(State::default()), +("TinyExpressionP4",Some("MethodRootExpression"))=>parser.r128_c(State::default()), +("TinyExpressionP4",Some("ParenthesizedRootExpression"))=>parser.r129_c(State::default()), _=>return Err("unsupported grammar or entry"),})} // D-070: `parse_entry_budget` / `parse_entry_escalated` は `parse_entry_with_options` より // 前に置く。driver.rs の scanner_hook / examples/p4-rust の build.rs はこの関数を @@ -259,7 +265,7 @@ if !out.ok {self.display_failures(state.consumed.max(state.matched),&["FormulaPa self.depth-=1;out.diag=self.diag_rule(0,out.diag);out } fn r1_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); -let mut out=self.e13_c(state); +let mut out=self.e41_c(state); if out.ok { let end=out.state.consumed; out.events=self.event(Event::Rule {rule:1,span:[state.consumed,end],child:out.events,caps:(0,0)}); @@ -268,7 +274,7 @@ if !out.ok {self.display_failures(state.consumed.max(state.matched),&["CodeBlock self.depth-=1;out.diag=self.diag_rule(1,out.diag);out } fn r2_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); -let mut out=self.e21_c(state); +let mut out=self.e49_c(state); if out.ok { let end=out.state.consumed; out.events=self.event(Event::Rule {rule:2,span:[state.consumed,end],child:out.events,caps:(0,0)}); @@ -277,7 +283,7 @@ if !out.ok {self.display_failures(state.consumed.max(state.matched),&["'import'" self.depth-=1;out.diag=self.diag_rule(2,out.diag);out } fn r3_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); -let mut out=self.e31_c(state); +let mut out=self.e59_c(state); if out.ok { let end=out.state.consumed; out.events=self.event(Event::Rule {rule:3,span:[state.consumed,end],child:out.events,caps:(0,0)}); @@ -286,7 +292,7 @@ if !out.ok {self.display_failures(state.consumed.max(state.matched),&["ClassName self.depth-=1;out.diag=self.diag_rule(3,out.diag);out } fn r4_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); -let mut out=self.e37_c(state); +let mut out=self.e65_c(state); if out.ok { let end=out.state.consumed; out.events=self.event(Event::Rule {rule:4,span:[state.consumed,end],child:out.events,caps:(0,0)}); @@ -295,10 +301,10 @@ if !out.ok {self.display_failures(state.consumed.max(state.matched),&["'$'", "'; self.depth-=1;out.diag=self.diag_rule(4,out.diag);out } fn r5_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); -let mut out=self.e42_c(state); +let mut out=self.e70_c(state); if out.ok { -let mut scope_sites=self.take_scope();self.scope_captures(out.events,&[11],&mut scope_sites);for &(site,span) in &scope_sites { let name=self.text(span);if name.is_empty() {continue;}let offset_cp=self.cp(span[0]);let len_cp=self.cp(span[1])-offset_cp; -if site==11 { +let mut scope_sites=self.take_scope();self.scope_captures(out.events,&[21],&mut scope_sites);for &(site,span) in &scope_sites { let name=self.text(span);if name.is_empty() {continue;}let offset_cp=self.cp(span[0]);let len_cp=self.cp(span[1])-offset_cp; +if site==21 { self.effect_at(ScanEffect::Declare{name,offset_cp},"lexical",offset_cp,len_cp); } let _=(offset_cp,len_cp); } @@ -310,10 +316,10 @@ if !out.ok {self.display_failures(state.consumed.max(state.matched),&["'variable self.depth-=1;out.diag=self.diag_rule(5,out.diag);out } fn r6_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); -let mut out=self.e60_c(state); +let mut out=self.e88_c(state); if out.ok { -let mut scope_sites=self.take_scope();self.scope_captures(out.events,&[15],&mut scope_sites);for &(site,span) in &scope_sites { let name=self.text(span);if name.is_empty() {continue;}let offset_cp=self.cp(span[0]);let len_cp=self.cp(span[1])-offset_cp; -if site==15 { +let mut scope_sites=self.take_scope();self.scope_captures(out.events,&[25],&mut scope_sites);for &(site,span) in &scope_sites { let name=self.text(span);if name.is_empty() {continue;}let offset_cp=self.cp(span[0]);let len_cp=self.cp(span[1])-offset_cp; +if site==25 { self.effect_at(ScanEffect::Declare{name,offset_cp},"lexical",offset_cp,len_cp); } let _=(offset_cp,len_cp); } @@ -325,10 +331,10 @@ if !out.ok {self.display_failures(state.consumed.max(state.matched),&["'variable self.depth-=1;out.diag=self.diag_rule(6,out.diag);out } fn r7_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); -let mut out=self.e78_c(state); +let mut out=self.e106_c(state); if out.ok { -let mut scope_sites=self.take_scope();self.scope_captures(out.events,&[19],&mut scope_sites);for &(site,span) in &scope_sites { let name=self.text(span);if name.is_empty() {continue;}let offset_cp=self.cp(span[0]);let len_cp=self.cp(span[1])-offset_cp; -if site==19 { +let mut scope_sites=self.take_scope();self.scope_captures(out.events,&[29],&mut scope_sites);for &(site,span) in &scope_sites { let name=self.text(span);if name.is_empty() {continue;}let offset_cp=self.cp(span[0]);let len_cp=self.cp(span[1])-offset_cp; +if site==29 { self.effect_at(ScanEffect::Declare{name,offset_cp},"lexical",offset_cp,len_cp); } let _=(offset_cp,len_cp); } @@ -340,10 +346,10 @@ if !out.ok {self.display_failures(state.consumed.max(state.matched),&["'variable self.depth-=1;out.diag=self.diag_rule(7,out.diag);out } fn r8_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); -let mut out=self.e96_c(state); +let mut out=self.e124_c(state); if out.ok { -let mut scope_sites=self.take_scope();self.scope_captures(out.events,&[23],&mut scope_sites);for &(site,span) in &scope_sites { let name=self.text(span);if name.is_empty() {continue;}let offset_cp=self.cp(span[0]);let len_cp=self.cp(span[1])-offset_cp; -if site==23 { +let mut scope_sites=self.take_scope();self.scope_captures(out.events,&[33],&mut scope_sites);for &(site,span) in &scope_sites { let name=self.text(span);if name.is_empty() {continue;}let offset_cp=self.cp(span[0]);let len_cp=self.cp(span[1])-offset_cp; +if site==33 { self.effect_at(ScanEffect::Declare{name,offset_cp},"lexical",offset_cp,len_cp); } let _=(offset_cp,len_cp); } @@ -355,7 +361,7 @@ if !out.ok {self.display_failures(state.consumed.max(state.matched),&["'variable self.depth-=1;out.diag=self.diag_rule(8,out.diag);out } fn r9_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); -let mut out=self.e114_c(state); +let mut out=self.e142_c(state); if out.ok { let end=out.state.consumed; out.events=self.event(Event::Rule {rule:9,span:[state.consumed,end],child:out.events,caps:(0,0)}); @@ -364,7 +370,7 @@ if !out.ok {self.display_failures(state.consumed.max(state.matched),&["'as'", "' self.depth-=1;out.diag=self.diag_rule(9,out.diag);out } fn r10_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); -let mut out=self.e127_c(state); +let mut out=self.e155_c(state); if out.ok { let end=out.state.consumed; out.events=self.event(Event::Rule {rule:10,span:[state.consumed,end],child:out.events,caps:(0,0)}); @@ -373,7 +379,7 @@ if !out.ok {self.display_failures(state.consumed.max(state.matched),&["'as'", "' self.depth-=1;out.diag=self.diag_rule(10,out.diag);out } fn r11_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); -let mut out=self.e136_c(state); +let mut out=self.e164_c(state); if out.ok { let end=out.state.consumed; out.events=self.event(Event::Rule {rule:11,span:[state.consumed,end],child:out.events,caps:(0,0)}); @@ -382,7 +388,7 @@ if !out.ok {self.display_failures(state.consumed.max(state.matched),&["'as'", "' self.depth-=1;out.diag=self.diag_rule(11,out.diag);out } fn r12_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); -let mut out=self.e143_c(state); +let mut out=self.e171_c(state); if out.ok { let end=out.state.consumed; out.events=self.event(Event::Rule {rule:12,span:[state.consumed,end],child:out.events,caps:(0,0)}); @@ -391,7 +397,7 @@ if !out.ok {self.display_failures(state.consumed.max(state.matched),&["'as'", "' self.depth-=1;out.diag=self.diag_rule(12,out.diag);out } fn r13_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); -let mut out=self.e150_c(state); +let mut out=self.e178_c(state); if out.ok { let end=out.state.consumed; out.events=self.event(Event::Rule {rule:13,span:[state.consumed,end],child:out.events,caps:(0,0)}); @@ -400,7 +406,7 @@ if !out.ok {self.display_failures(state.consumed.max(state.matched),&["'as'", "' self.depth-=1;out.diag=self.diag_rule(13,out.diag);out } fn r14_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); -let mut out=self.e157_c(state); +let mut out=self.e185_c(state); if out.ok { let end=out.state.consumed; out.events=self.event(Event::Rule {rule:14,span:[state.consumed,end],child:out.events,caps:(0,0)}); @@ -409,7 +415,7 @@ if !out.ok {self.display_failures(state.consumed.max(state.matched),&["'if'", "' self.depth-=1;out.diag=self.diag_rule(14,out.diag);out } fn r15_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); -let mut out=self.e161_c(state); +let mut out=self.e189_c(state); if out.ok { let end=out.state.consumed; out.events=self.event(Event::Rule {rule:15,span:[state.consumed,end],child:out.events,caps:(0,0)}); @@ -418,7 +424,7 @@ if !out.ok {self.display_failures(state.consumed.max(state.matched),&["'descript self.depth-=1;out.diag=self.diag_rule(15,out.diag);out } fn r16_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); -let mut out=self.e165_c(state); +let mut out=self.e193_c(state); if out.ok { let end=out.state.consumed; out.events=self.event(Event::Rule {rule:16,span:[state.consumed,end],child:out.events,caps:(0,0)}); @@ -427,7 +433,7 @@ if !out.ok {self.display_failures(state.consumed.max(state.matched),&["'@'", "'( self.depth-=1;out.diag=self.diag_rule(16,out.diag);out } fn r17_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); -let mut out=self.e172_c(state); +let mut out=self.e200_c(state); if out.ok { let end=out.state.consumed; out.events=self.event(Event::Rule {rule:17,span:[state.consumed,end],child:out.events,caps:(0,0)}); @@ -436,7 +442,7 @@ if !out.ok {self.display_failures(state.consumed.max(state.matched),&["'='"]);} self.depth-=1;out.diag=self.diag_rule(17,out.diag);out } fn r18_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); -let mut out=self.e178_c(state); +let mut out=self.e206_c(state); if out.ok { let end=out.state.consumed; out.events=self.event(Event::Rule {rule:18,span:[state.consumed,end],child:out.events,caps:(0,0)}); @@ -445,7 +451,7 @@ if !out.ok {self.display_failures(state.consumed.max(state.matched),&["'='"]);} self.depth-=1;out.diag=self.diag_rule(18,out.diag);out } fn r19_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); -let mut out=self.e182_c(state); +let mut out=self.e210_c(state); if out.ok { let end=out.state.consumed; out.events=self.event(Event::Rule {rule:19,span:[state.consumed,end],child:out.events,caps:(0,0)}); @@ -455,11 +461,11 @@ self.depth-=1;out.diag=self.diag_rule(19,out.diag);out } fn r20_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); self.effect_scope_at(ScanEffect::Enter,"lexical",self.cp(state.consumed),0,"NumberMethodDeclaration"); -let mut out=self.e187_c(state); +let mut out=self.e215_c(state); if out.ok { self.effect_scope_at(ScanEffect::Leave,"lexical",self.cp(out.state.consumed),0,"NumberMethodDeclaration"); -let mut scope_sites=self.take_scope();self.scope_captures(out.events,&[27],&mut scope_sites);for &(site,span) in &scope_sites { let name=self.text(span);if name.is_empty() {continue;}let offset_cp=self.cp(span[0]);let len_cp=self.cp(span[1])-offset_cp; -if site==27 { +let mut scope_sites=self.take_scope();self.scope_captures(out.events,&[37],&mut scope_sites);for &(site,span) in &scope_sites { let name=self.text(span);if name.is_empty() {continue;}let offset_cp=self.cp(span[0]);let len_cp=self.cp(span[1])-offset_cp; +if site==37 { self.effect_at(ScanEffect::Declare{name,offset_cp},"lexical",offset_cp,len_cp); } let _=(offset_cp,len_cp); } @@ -472,11 +478,11 @@ self.depth-=1;out.diag=self.diag_rule(20,out.diag);out } fn r21_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); self.effect_scope_at(ScanEffect::Enter,"lexical",self.cp(state.consumed),0,"StringMethodDeclaration"); -let mut out=self.e197_c(state); +let mut out=self.e225_c(state); if out.ok { self.effect_scope_at(ScanEffect::Leave,"lexical",self.cp(out.state.consumed),0,"StringMethodDeclaration"); -let mut scope_sites=self.take_scope();self.scope_captures(out.events,&[30],&mut scope_sites);for &(site,span) in &scope_sites { let name=self.text(span);if name.is_empty() {continue;}let offset_cp=self.cp(span[0]);let len_cp=self.cp(span[1])-offset_cp; -if site==30 { +let mut scope_sites=self.take_scope();self.scope_captures(out.events,&[40],&mut scope_sites);for &(site,span) in &scope_sites { let name=self.text(span);if name.is_empty() {continue;}let offset_cp=self.cp(span[0]);let len_cp=self.cp(span[1])-offset_cp; +if site==40 { self.effect_at(ScanEffect::Declare{name,offset_cp},"lexical",offset_cp,len_cp); } let _=(offset_cp,len_cp); } @@ -489,11 +495,11 @@ self.depth-=1;out.diag=self.diag_rule(21,out.diag);out } fn r22_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); self.effect_scope_at(ScanEffect::Enter,"lexical",self.cp(state.consumed),0,"BooleanMethodDeclaration"); -let mut out=self.e207_c(state); +let mut out=self.e235_c(state); if out.ok { self.effect_scope_at(ScanEffect::Leave,"lexical",self.cp(out.state.consumed),0,"BooleanMethodDeclaration"); -let mut scope_sites=self.take_scope();self.scope_captures(out.events,&[33],&mut scope_sites);for &(site,span) in &scope_sites { let name=self.text(span);if name.is_empty() {continue;}let offset_cp=self.cp(span[0]);let len_cp=self.cp(span[1])-offset_cp; -if site==33 { +let mut scope_sites=self.take_scope();self.scope_captures(out.events,&[43],&mut scope_sites);for &(site,span) in &scope_sites { let name=self.text(span);if name.is_empty() {continue;}let offset_cp=self.cp(span[0]);let len_cp=self.cp(span[1])-offset_cp; +if site==43 { self.effect_at(ScanEffect::Declare{name,offset_cp},"lexical",offset_cp,len_cp); } let _=(offset_cp,len_cp); } @@ -506,11 +512,11 @@ self.depth-=1;out.diag=self.diag_rule(22,out.diag);out } fn r23_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); self.effect_scope_at(ScanEffect::Enter,"lexical",self.cp(state.consumed),0,"ObjectMethodDeclaration"); -let mut out=self.e217_c(state); +let mut out=self.e245_c(state); if out.ok { self.effect_scope_at(ScanEffect::Leave,"lexical",self.cp(out.state.consumed),0,"ObjectMethodDeclaration"); -let mut scope_sites=self.take_scope();self.scope_captures(out.events,&[36],&mut scope_sites);for &(site,span) in &scope_sites { let name=self.text(span);if name.is_empty() {continue;}let offset_cp=self.cp(span[0]);let len_cp=self.cp(span[1])-offset_cp; -if site==36 { +let mut scope_sites=self.take_scope();self.scope_captures(out.events,&[46],&mut scope_sites);for &(site,span) in &scope_sites { let name=self.text(span);if name.is_empty() {continue;}let offset_cp=self.cp(span[0]);let len_cp=self.cp(span[1])-offset_cp; +if site==46 { self.effect_at(ScanEffect::Declare{name,offset_cp},"lexical",offset_cp,len_cp); } let _=(offset_cp,len_cp); } @@ -522,7 +528,7 @@ if !out.ok {self.display_failures(state.consumed.max(state.matched),&["'object'" self.depth-=1;out.diag=self.diag_rule(23,out.diag);out } fn r24_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); -let mut out=self.e227_c(state); +let mut out=self.e255_c(state); if out.ok { let end=out.state.consumed; out.events=self.event(Event::Rule {rule:24,span:[state.consumed,end],child:out.events,caps:(0,0)}); @@ -531,10 +537,10 @@ if !out.ok {self.display_failures(state.consumed.max(state.matched),&["MethodPar self.depth-=1;out.diag=self.diag_rule(24,out.diag);out } fn r25_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); -let mut out=self.e233_c(state); +let mut out=self.e261_c(state); if out.ok { -let mut scope_sites=self.take_scope();self.scope_captures(out.events,&[41],&mut scope_sites);for &(site,span) in &scope_sites { let name=self.text(span);if name.is_empty() {continue;}let offset_cp=self.cp(span[0]);let len_cp=self.cp(span[1])-offset_cp; -if site==41 { +let mut scope_sites=self.take_scope();self.scope_captures(out.events,&[51],&mut scope_sites);for &(site,span) in &scope_sites { let name=self.text(span);if name.is_empty() {continue;}let offset_cp=self.cp(span[0]);let len_cp=self.cp(span[1])-offset_cp; +if site==51 { self.effect_at(ScanEffect::Declare{name,offset_cp},"lexical",offset_cp,len_cp); } let _=(offset_cp,len_cp); } @@ -546,7 +552,7 @@ if !out.ok {self.display_failures(state.consumed.max(state.matched),&["'$'"]);} self.depth-=1;out.diag=self.diag_rule(25,out.diag);out } fn r26_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); -let mut out=self.e240_c(state); +let mut out=self.e268_c(state); if out.ok { let end=out.state.consumed; out.events=self.event(Event::Rule {rule:26,span:[state.consumed,end],child:out.events,caps:(0,0)}); @@ -555,7 +561,7 @@ if !out.ok {self.display_failures(state.consumed.max(state.matched),&["'number'" self.depth-=1;out.diag=self.diag_rule(26,out.diag);out } fn r27_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); -let mut out=self.e243_c(state); +let mut out=self.e271_c(state); if out.ok { let end=out.state.consumed; out.events=self.event(Event::Rule {rule:27,span:[state.consumed,end],child:out.events,caps:(0,0)}); @@ -564,7 +570,7 @@ if !out.ok {self.display_failures(state.consumed.max(state.matched),&["'string'" self.depth-=1;out.diag=self.diag_rule(27,out.diag);out } fn r28_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); -let mut out=self.e245_c(state); +let mut out=self.e273_c(state); if out.ok { let end=out.state.consumed; out.events=self.event(Event::Rule {rule:28,span:[state.consumed,end],child:out.events,caps:(0,0)}); @@ -573,7 +579,7 @@ if !out.ok {self.display_failures(state.consumed.max(state.matched),&["'boolean' self.depth-=1;out.diag=self.diag_rule(28,out.diag);out } fn r29_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); -let mut out=self.e247_c(state); +let mut out=self.e275_c(state); if out.ok { let end=out.state.consumed; out.events=self.event(Event::Rule {rule:29,span:[state.consumed,end],child:out.events,caps:(0,0)}); @@ -582,7 +588,7 @@ if !out.ok {self.display_failures(state.consumed.max(state.matched),&["'object'" self.depth-=1;out.diag=self.diag_rule(29,out.diag);out } fn r30_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); -let mut out=self.e249_c(state); +let mut out=self.e277_c(state); if out.ok { let end=out.state.consumed; out.events=self.event(Event::Rule {rule:30,span:[state.consumed,end],child:out.events,caps:(0,0)}); @@ -591,7 +597,7 @@ if !out.ok {self.display_failures(state.consumed.max(state.matched),&["'number'" self.depth-=1;out.diag=self.diag_rule(30,out.diag);out } fn r31_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); -let mut out=self.e254_c(state); +let mut out=self.e282_c(state); if out.ok { let end=out.state.consumed; out.events=self.event(Event::Rule {rule:31,span:[state.consumed,end],child:out.events,caps:(0,0)}); @@ -600,7 +606,7 @@ if !out.ok {self.display_failures(state.consumed.max(state.matched),&["'external self.depth-=1;out.diag=self.diag_rule(31,out.diag);out } fn r32_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); -let mut out=self.e275_c(state); +let mut out=self.e303_c(state); if out.ok { let end=out.state.consumed; out.events=self.event(Event::Rule {rule:32,span:[state.consumed,end],child:out.events,caps:(0,0)}); @@ -609,7 +615,7 @@ if !out.ok {self.display_failures(state.consumed.max(state.matched),&["'external self.depth-=1;out.diag=self.diag_rule(32,out.diag);out } fn r33_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); -let mut out=self.e301_c(state); +let mut out=self.e329_c(state); if out.ok { let end=out.state.consumed; out.events=self.event(Event::Rule {rule:33,span:[state.consumed,end],child:out.events,caps:(0,0)}); @@ -618,7 +624,7 @@ if !out.ok {self.display_failures(state.consumed.max(state.matched),&["'external self.depth-=1;out.diag=self.diag_rule(33,out.diag);out } fn r34_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); -let mut out=self.e322_c(state); +let mut out=self.e350_c(state); if out.ok { let end=out.state.consumed; out.events=self.event(Event::Rule {rule:34,span:[state.consumed,end],child:out.events,caps:(0,0)}); @@ -627,7 +633,7 @@ if !out.ok {self.display_failures(state.consumed.max(state.matched),&["'external self.depth-=1;out.diag=self.diag_rule(34,out.diag);out } fn r35_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); -let mut out=self.e343_c(state); +let mut out=self.e371_c(state); if out.ok { let end=out.state.consumed; out.events=self.event(Event::Rule {rule:35,span:[state.consumed,end],child:out.events,caps:(0,0)}); @@ -636,10 +642,10 @@ if !out.ok {self.display_failures(state.consumed.max(state.matched),&["'call'", self.depth-=1;out.diag=self.diag_rule(35,out.diag);out } fn r36_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); -let mut out=self.e349_c(state); +let mut out=self.e377_c(state); if out.ok { -let mut scope_sites=self.take_scope();self.scope_captures(out.events,&[59],&mut scope_sites);for &(site,span) in &scope_sites { let name=self.text(span);if name.is_empty() {continue;}let offset_cp=self.cp(span[0]);let len_cp=self.cp(span[1])-offset_cp; -if site==59 { +let mut scope_sites=self.take_scope();self.scope_captures(out.events,&[69],&mut scope_sites);for &(site,span) in &scope_sites { let name=self.text(span);if name.is_empty() {continue;}let offset_cp=self.cp(span[0]);let len_cp=self.cp(span[1])-offset_cp; +if site==69 { self.effect_at(ScanEffect::Use{name,offset_cp,len_cp},"lexical",offset_cp,len_cp); } let _=(offset_cp,len_cp); } @@ -651,7 +657,7 @@ if !out.ok {self.display_failures(state.consumed.max(state.matched),&["'internal self.depth-=1;out.diag=self.diag_rule(36,out.diag);out } fn r37_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); -let mut out=self.e356_c(state); +let mut out=self.e384_c(state); if out.ok { let end=out.state.consumed; out.events=self.event(Event::Rule {rule:37,span:[state.consumed,end],child:out.events,caps:(0,0)}); @@ -660,7 +666,7 @@ if !out.ok {self.display_failures(state.consumed.max(state.matched),&["'?'", "': self.depth-=1;out.diag=self.diag_rule(37,out.diag);out } fn r38_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); -let mut out=self.e362_c(state); +let mut out=self.e390_c(state); if out.ok { let end=out.state.consumed; out.events=self.event(Event::Rule {rule:38,span:[state.consumed,end],child:out.events,caps:(0,0)}); @@ -669,7 +675,7 @@ if !out.ok {self.display_failures(state.consumed.max(state.matched),&["ArgumentE self.depth-=1;out.diag=self.diag_rule(38,out.diag);out } fn r39_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); -let mut out=self.e367_c(state); +let mut out=self.e395_c(state); if out.ok { let end=out.state.consumed; out.events=self.event(Event::Rule {rule:39,span:[state.consumed,end],child:out.events,caps:(0,0)}); @@ -678,7 +684,7 @@ if !out.ok {self.display_failures(state.consumed.max(state.matched),&["Arguments self.depth-=1;out.diag=self.diag_rule(39,out.diag);out } fn r40_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); -let mut out=self.e373_c(state); +let mut out=self.e401_c(state); if out.ok { let end=out.state.consumed; out.events=self.event(Event::Rule {rule:40,span:[state.consumed,end],child:out.events,caps:(0,0)}); @@ -687,7 +693,7 @@ if !out.ok {self.display_failures(state.consumed.max(state.matched),&["NumberExp self.depth-=1;out.diag=self.diag_rule(40,out.diag);out } fn r41_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); -let mut out=self.e379_c(state); +let mut out=self.e407_c(state); if out.ok { let end=out.state.consumed; out.events=self.event(Event::Rule {rule:41,span:[state.consumed,end],child:out.events,caps:(0,0)}); @@ -696,7 +702,7 @@ if !out.ok {self.display_failures(state.consumed.max(state.matched),&["NumberTer self.depth-=1;out.diag=self.diag_rule(41,out.diag);out } fn r42_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); -let mut out=self.e385_c(state); +let mut out=self.e413_c(state); if out.ok { let end=out.state.consumed; out.events=self.event(Event::Rule {rule:42,span:[state.consumed,end],child:out.events,caps:(0,0)}); @@ -705,7 +711,7 @@ if !out.ok {self.display_failures(state.consumed.max(state.matched),&["'+'", "'- self.depth-=1;out.diag=self.diag_rule(42,out.diag);out } fn r43_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); -let mut out=self.e388_c(state); +let mut out=self.e416_c(state); if out.ok { let end=out.state.consumed; out.events=self.event(Event::Rule {rule:43,span:[state.consumed,end],child:out.events,caps:(0,0)}); @@ -714,7 +720,7 @@ if !out.ok {self.display_failures(state.consumed.max(state.matched),&["'*'", "'/ self.depth-=1;out.diag=self.diag_rule(43,out.diag);out } fn r44_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); -let mut out=self.e391_c(state); +let mut out=self.e419_c(state); if out.ok { let end=out.state.consumed; out.events=self.event(Event::Rule {rule:44,span:[state.consumed,end],child:out.events,caps:(0,0)}); @@ -723,7 +729,7 @@ if !out.ok {self.display_failures(state.consumed.max(state.matched),&["'sin'", " self.depth-=1;out.diag=self.diag_rule(44,out.diag);out } fn r45_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); -let mut out=self.e406_c(state); +let mut out=self.e434_c(state); if out.ok { let end=out.state.consumed; out.events=self.event(Event::Rule {rule:45,span:[state.consumed,end],child:out.events,caps:(0,0)}); @@ -732,7 +738,7 @@ if !out.ok {self.display_failures(state.consumed.max(state.matched),&["'sin'", " self.depth-=1;out.diag=self.diag_rule(45,out.diag);out } fn r46_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); -let mut out=self.e411_c(state); +let mut out=self.e439_c(state); if out.ok { let end=out.state.consumed; out.events=self.event(Event::Rule {rule:46,span:[state.consumed,end],child:out.events,caps:(0,0)}); @@ -741,7 +747,7 @@ if !out.ok {self.display_failures(state.consumed.max(state.matched),&["'cos'", " self.depth-=1;out.diag=self.diag_rule(46,out.diag);out } fn r47_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); -let mut out=self.e416_c(state); +let mut out=self.e444_c(state); if out.ok { let end=out.state.consumed; out.events=self.event(Event::Rule {rule:47,span:[state.consumed,end],child:out.events,caps:(0,0)}); @@ -750,7 +756,7 @@ if !out.ok {self.display_failures(state.consumed.max(state.matched),&["'tan'", " self.depth-=1;out.diag=self.diag_rule(47,out.diag);out } fn r48_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); -let mut out=self.e421_c(state); +let mut out=self.e449_c(state); if out.ok { let end=out.state.consumed; out.events=self.event(Event::Rule {rule:48,span:[state.consumed,end],child:out.events,caps:(0,0)}); @@ -759,7 +765,7 @@ if !out.ok {self.display_failures(state.consumed.max(state.matched),&["'sqrt'", self.depth-=1;out.diag=self.diag_rule(48,out.diag);out } fn r49_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); -let mut out=self.e426_c(state); +let mut out=self.e454_c(state); if out.ok { let end=out.state.consumed; out.events=self.event(Event::Rule {rule:49,span:[state.consumed,end],child:out.events,caps:(0,0)}); @@ -768,7 +774,7 @@ if !out.ok {self.display_failures(state.consumed.max(state.matched),&["'min'", " self.depth-=1;out.diag=self.diag_rule(49,out.diag);out } fn r50_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); -let mut out=self.e435_c(state); +let mut out=self.e463_c(state); if out.ok { let end=out.state.consumed; out.events=self.event(Event::Rule {rule:50,span:[state.consumed,end],child:out.events,caps:(0,0)}); @@ -777,7 +783,7 @@ if !out.ok {self.display_failures(state.consumed.max(state.matched),&["'max'", " self.depth-=1;out.diag=self.diag_rule(50,out.diag);out } fn r51_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); -let mut out=self.e444_c(state); +let mut out=self.e472_c(state); if out.ok { let end=out.state.consumed; out.events=self.event(Event::Rule {rule:51,span:[state.consumed,end],child:out.events,caps:(0,0)}); @@ -786,7 +792,7 @@ if !out.ok {self.display_failures(state.consumed.max(state.matched),&["'random'" self.depth-=1;out.diag=self.diag_rule(51,out.diag);out } fn r52_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); -let mut out=self.e448_c(state); +let mut out=self.e476_c(state); if out.ok { let end=out.state.consumed; out.events=self.event(Event::Rule {rule:52,span:[state.consumed,end],child:out.events,caps:(0,0)}); @@ -795,7 +801,7 @@ if !out.ok {self.display_failures(state.consumed.max(state.matched),&["'abs'", " self.depth-=1;out.diag=self.diag_rule(52,out.diag);out } fn r53_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); -let mut out=self.e453_c(state); +let mut out=self.e481_c(state); if out.ok { let end=out.state.consumed; out.events=self.event(Event::Rule {rule:53,span:[state.consumed,end],child:out.events,caps:(0,0)}); @@ -804,7 +810,7 @@ if !out.ok {self.display_failures(state.consumed.max(state.matched),&["'round'", self.depth-=1;out.diag=self.diag_rule(53,out.diag);out } fn r54_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); -let mut out=self.e458_c(state); +let mut out=self.e486_c(state); if out.ok { let end=out.state.consumed; out.events=self.event(Event::Rule {rule:54,span:[state.consumed,end],child:out.events,caps:(0,0)}); @@ -813,7 +819,7 @@ if !out.ok {self.display_failures(state.consumed.max(state.matched),&["'ceil'", self.depth-=1;out.diag=self.diag_rule(54,out.diag);out } fn r55_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); -let mut out=self.e463_c(state); +let mut out=self.e491_c(state); if out.ok { let end=out.state.consumed; out.events=self.event(Event::Rule {rule:55,span:[state.consumed,end],child:out.events,caps:(0,0)}); @@ -822,7 +828,7 @@ if !out.ok {self.display_failures(state.consumed.max(state.matched),&["'floor'", self.depth-=1;out.diag=self.diag_rule(55,out.diag);out } fn r56_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); -let mut out=self.e468_c(state); +let mut out=self.e496_c(state); if out.ok { let end=out.state.consumed; out.events=self.event(Event::Rule {rule:56,span:[state.consumed,end],child:out.events,caps:(0,0)}); @@ -831,7 +837,7 @@ if !out.ok {self.display_failures(state.consumed.max(state.matched),&["'pow'", " self.depth-=1;out.diag=self.diag_rule(56,out.diag);out } fn r57_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); -let mut out=self.e475_c(state); +let mut out=self.e503_c(state); if out.ok { let end=out.state.consumed; out.events=self.event(Event::Rule {rule:57,span:[state.consumed,end],child:out.events,caps:(0,0)}); @@ -840,7 +846,7 @@ if !out.ok {self.display_failures(state.consumed.max(state.matched),&["'log'", " self.depth-=1;out.diag=self.diag_rule(57,out.diag);out } fn r58_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); -let mut out=self.e480_c(state); +let mut out=self.e508_c(state); if out.ok { let end=out.state.consumed; out.events=self.event(Event::Rule {rule:58,span:[state.consumed,end],child:out.events,caps:(0,0)}); @@ -849,7 +855,7 @@ if !out.ok {self.display_failures(state.consumed.max(state.matched),&["'exp'", " self.depth-=1;out.diag=self.diag_rule(58,out.diag);out } fn r59_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); -let mut out=self.e485_c(state); +let mut out=self.e513_c(state); if out.ok { let end=out.state.consumed; out.events=self.event(Event::Rule {rule:59,span:[state.consumed,end],child:out.events,caps:(0,0)}); @@ -858,7 +864,7 @@ if !out.ok {self.display_failures(state.consumed.max(state.matched),&["'toNum'", self.depth-=1;out.diag=self.diag_rule(59,out.diag);out } fn r60_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); -let mut out=self.e492_c(state); +let mut out=self.e520_c(state); if out.ok { let end=out.state.consumed; out.events=self.event(Event::Rule {rule:60,span:[state.consumed,end],child:out.events,caps:(0,0)}); @@ -867,7 +873,7 @@ if !out.ok {self.display_failures(state.consumed.max(state.matched),&["'('", "'? self.depth-=1;out.diag=self.diag_rule(60,out.diag);out } fn r61_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); -let mut out=self.e509_c(state); +let mut out=self.e537_c(state); if out.ok { let end=out.state.consumed; out.events=self.event(Event::Rule {rule:61,span:[state.consumed,end],child:out.events,caps:(0,0)}); @@ -876,7 +882,7 @@ if !out.ok {self.display_failures(state.consumed.max(state.matched),&["'toUpperC self.depth-=1;out.diag=self.diag_rule(61,out.diag);out } fn r62_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); -let mut out=self.e514_c(state); +let mut out=self.e542_c(state); if out.ok { let end=out.state.consumed; out.events=self.event(Event::Rule {rule:62,span:[state.consumed,end],child:out.events,caps:(0,0)}); @@ -885,7 +891,7 @@ if !out.ok {self.display_failures(state.consumed.max(state.matched),&["'toLowerC self.depth-=1;out.diag=self.diag_rule(62,out.diag);out } fn r63_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); -let mut out=self.e519_c(state); +let mut out=self.e547_c(state); if out.ok { let end=out.state.consumed; out.events=self.event(Event::Rule {rule:63,span:[state.consumed,end],child:out.events,caps:(0,0)}); @@ -894,7 +900,7 @@ if !out.ok {self.display_failures(state.consumed.max(state.matched),&["'trim'", self.depth-=1;out.diag=self.diag_rule(63,out.diag);out } fn r64_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); -let mut out=self.e524_c(state); +let mut out=self.e552_c(state); if out.ok { let end=out.state.consumed; out.events=self.event(Event::Rule {rule:64,span:[state.consumed,end],child:out.events,caps:(0,0)}); @@ -903,7 +909,7 @@ if !out.ok {self.display_failures(state.consumed.max(state.matched),&["'length'" self.depth-=1;out.diag=self.diag_rule(64,out.diag);out } fn r65_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); -let mut out=self.e529_c(state); +let mut out=self.e557_c(state); if out.ok { let end=out.state.consumed; out.events=self.event(Event::Rule {rule:65,span:[state.consumed,end],child:out.events,caps:(0,0)}); @@ -912,7 +918,7 @@ if !out.ok {self.display_failures(state.consumed.max(state.matched),&["'len'", " self.depth-=1;out.diag=self.diag_rule(65,out.diag);out } fn r66_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); -let mut out=self.e534_c(state); +let mut out=self.e562_c(state); if out.ok { let end=out.state.consumed; out.events=self.event(Event::Rule {rule:66,span:[state.consumed,end],child:out.events,caps:(0,0)}); @@ -921,7 +927,7 @@ if !out.ok {self.display_failures(state.consumed.max(state.matched),&["'.toUpper self.depth-=1;out.diag=self.diag_rule(66,out.diag);out } fn r67_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); -let mut out=self.e539_c(state); +let mut out=self.e567_c(state); if out.ok { let end=out.state.consumed; out.events=self.event(Event::Rule {rule:67,span:[state.consumed,end],child:out.events,caps:(0,0)}); @@ -930,7 +936,7 @@ if !out.ok {self.display_failures(state.consumed.max(state.matched),&["'.toLower self.depth-=1;out.diag=self.diag_rule(67,out.diag);out } fn r68_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); -let mut out=self.e544_c(state); +let mut out=self.e572_c(state); if out.ok { let end=out.state.consumed; out.events=self.event(Event::Rule {rule:68,span:[state.consumed,end],child:out.events,caps:(0,0)}); @@ -939,7 +945,7 @@ if !out.ok {self.display_failures(state.consumed.max(state.matched),&["'.trim'", self.depth-=1;out.diag=self.diag_rule(68,out.diag);out } fn r69_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); -let mut out=self.e549_c(state); +let mut out=self.e577_c(state); if out.ok { let end=out.state.consumed; out.events=self.event(Event::Rule {rule:69,span:[state.consumed,end],child:out.events,caps:(0,0)}); @@ -948,7 +954,7 @@ if !out.ok {self.display_failures(state.consumed.max(state.matched),&["'.length' self.depth-=1;out.diag=self.diag_rule(69,out.diag);out } fn r70_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); -let mut out=self.e554_c(state); +let mut out=self.e582_c(state); if out.ok { let end=out.state.consumed; out.events=self.event(Event::Rule {rule:70,span:[state.consumed,end],child:out.events,caps:(0,0)}); @@ -957,7 +963,7 @@ if !out.ok {self.display_failures(state.consumed.max(state.matched),&["'startsWi self.depth-=1;out.diag=self.diag_rule(70,out.diag);out } fn r71_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); -let mut out=self.e565_c(state); +let mut out=self.e593_c(state); if out.ok { let end=out.state.consumed; out.events=self.event(Event::Rule {rule:71,span:[state.consumed,end],child:out.events,caps:(0,0)}); @@ -966,7 +972,7 @@ if !out.ok {self.display_failures(state.consumed.max(state.matched),&["'endsWith self.depth-=1;out.diag=self.diag_rule(71,out.diag);out } fn r72_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); -let mut out=self.e576_c(state); +let mut out=self.e604_c(state); if out.ok { let end=out.state.consumed; out.events=self.event(Event::Rule {rule:72,span:[state.consumed,end],child:out.events,caps:(0,0)}); @@ -975,7 +981,7 @@ if !out.ok {self.display_failures(state.consumed.max(state.matched),&["'contains self.depth-=1;out.diag=self.diag_rule(72,out.diag);out } fn r73_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); -let mut out=self.e587_c(state); +let mut out=self.e615_c(state); if out.ok { let end=out.state.consumed; out.events=self.event(Event::Rule {rule:73,span:[state.consumed,end],child:out.events,caps:(0,0)}); @@ -984,7 +990,7 @@ if !out.ok {self.display_failures(state.consumed.max(state.matched),&["'.in'", " self.depth-=1;out.diag=self.diag_rule(73,out.diag);out } fn r74_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); -let mut out=self.e597_c(state); +let mut out=self.e625_c(state); if out.ok { let end=out.state.consumed; out.events=self.event(Event::Rule {rule:74,span:[state.consumed,end],child:out.events,caps:(0,0)}); @@ -993,7 +999,7 @@ if !out.ok {self.display_failures(state.consumed.max(state.matched),&["'.startsW self.depth-=1;out.diag=self.diag_rule(74,out.diag);out } fn r75_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); -let mut out=self.e607_c(state); +let mut out=self.e635_c(state); if out.ok { let end=out.state.consumed; out.events=self.event(Event::Rule {rule:75,span:[state.consumed,end],child:out.events,caps:(0,0)}); @@ -1002,7 +1008,7 @@ if !out.ok {self.display_failures(state.consumed.max(state.matched),&["'.endsWit self.depth-=1;out.diag=self.diag_rule(75,out.diag);out } fn r76_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); -let mut out=self.e617_c(state); +let mut out=self.e645_c(state); if out.ok { let end=out.state.consumed; out.events=self.event(Event::Rule {rule:76,span:[state.consumed,end],child:out.events,caps:(0,0)}); @@ -1011,7 +1017,7 @@ if !out.ok {self.display_failures(state.consumed.max(state.matched),&["'.contain self.depth-=1;out.diag=self.diag_rule(76,out.diag);out } fn r77_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); -let mut out=self.e627_c(state); +let mut out=self.e655_c(state); if out.ok { let end=out.state.consumed; out.events=self.event(Event::Rule {rule:77,span:[state.consumed,end],child:out.events,caps:(0,0)}); @@ -1020,7 +1026,7 @@ if !out.ok {self.display_failures(state.consumed.max(state.matched),&["'toLowerC self.depth-=1;out.diag=self.diag_rule(77,out.diag);out } fn r78_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); -let mut out=self.e632_c(state); +let mut out=self.e660_c(state); if out.ok { let end=out.state.consumed; out.events=self.event(Event::Rule {rule:78,span:[state.consumed,end],child:out.events,caps:(0,0)}); @@ -1029,7 +1035,7 @@ if !out.ok {self.display_failures(state.consumed.max(state.matched),&["'isPresen self.depth-=1;out.diag=self.diag_rule(78,out.diag);out } fn r79_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); -let mut out=self.e637_c(state); +let mut out=self.e665_c(state); if out.ok { let end=out.state.consumed; out.events=self.event(Event::Rule {rule:79,span:[state.consumed,end],child:out.events,caps:(0,0)}); @@ -1038,7 +1044,7 @@ if !out.ok {self.display_failures(state.consumed.max(state.matched),&["'inTimeRa self.depth-=1;out.diag=self.diag_rule(79,out.diag);out } fn r80_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); -let mut out=self.e644_c(state); +let mut out=self.e672_c(state); if out.ok { let end=out.state.consumed; out.events=self.event(Event::Rule {rule:80,span:[state.consumed,end],child:out.events,caps:(0,0)}); @@ -1047,7 +1053,7 @@ if !out.ok {self.display_failures(state.consumed.max(state.matched),&["'inDayTim self.depth-=1;out.diag=self.diag_rule(80,out.diag);out } fn r81_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); -let mut out=self.e655_c(state); +let mut out=self.e683_c(state); if out.ok { let end=out.state.consumed; out.events=self.event(Event::Rule {rule:81,span:[state.consumed,end],child:out.events,caps:(0,0)}); @@ -1056,7 +1062,7 @@ if !out.ok {self.display_failures(state.consumed.max(state.matched),&["'MONDAY'" self.depth-=1;out.diag=self.diag_rule(81,out.diag);out } fn r82_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); -let mut out=self.e663_c(state); +let mut out=self.e691_c(state); if out.ok { let end=out.state.consumed; out.events=self.event(Event::Rule {rule:82,span:[state.consumed,end],child:out.events,caps:(0,0)}); @@ -1065,7 +1071,7 @@ if !out.ok {self.display_failures(state.consumed.max(state.matched),&["'external self.depth-=1;out.diag=self.diag_rule(82,out.diag);out } fn r83_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); -let mut out=self.e679_c(state); +let mut out=self.e707_c(state); if out.ok { let end=out.state.consumed; out.events=self.event(Event::Rule {rule:83,span:[state.consumed,end],child:out.events,caps:(0,0)}); @@ -1074,7 +1080,7 @@ if !out.ok {self.display_failures(state.consumed.max(state.matched),&["SliceStar self.depth-=1;out.diag=self.diag_rule(83,out.diag);out } fn r84_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); -let mut out=self.e681_c(state); +let mut out=self.e709_c(state); if out.ok { let end=out.state.consumed; out.events=self.event(Event::Rule {rule:84,span:[state.consumed,end],child:out.events,caps:(0,0)}); @@ -1083,7 +1089,7 @@ if !out.ok {self.display_failures(state.consumed.max(state.matched),&["SliceEndI self.depth-=1;out.diag=self.diag_rule(84,out.diag);out } fn r85_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); -let mut out=self.e683_c(state); +let mut out=self.e711_c(state); if out.ok { let end=out.state.consumed; out.events=self.event(Event::Rule {rule:85,span:[state.consumed,end],child:out.events,caps:(0,0)}); @@ -1092,7 +1098,7 @@ if !out.ok {self.display_failures(state.consumed.max(state.matched),&["SliceStep self.depth-=1;out.diag=self.diag_rule(85,out.diag);out } fn r86_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); -let mut out=self.e685_c(state); +let mut out=self.e713_c(state); if out.ok { let end=out.state.consumed; out.events=self.event(Event::Rule {rule:86,span:[state.consumed,end],child:out.events,caps:(0,0)}); @@ -1101,7 +1107,7 @@ if !out.ok {self.display_failures(state.consumed.max(state.matched),&["'['", "': self.depth-=1;out.diag=self.diag_rule(86,out.diag);out } fn r87_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); -let mut out=self.e742_c(state); +let mut out=self.e770_c(state); if out.ok { let end=out.state.consumed; out.events=self.event(Event::Rule {rule:87,span:[state.consumed,end],child:out.events,caps:(0,0)}); @@ -1110,7 +1116,7 @@ if !out.ok {self.display_failures(state.consumed.max(state.matched),&["'['", "': self.depth-=1;out.diag=self.diag_rule(87,out.diag);out } fn r88_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); -let mut out=self.e799_c(state); +let mut out=self.e827_c(state); if out.ok { let end=out.state.consumed; out.events=self.event(Event::Rule {rule:88,span:[state.consumed,end],child:out.events,caps:(0,0)}); @@ -1119,7 +1125,7 @@ if !out.ok {self.display_failures(state.consumed.max(state.matched),&["SliceExpr self.depth-=1;out.diag=self.diag_rule(88,out.diag);out } fn r89_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); -let mut out=self.e802_c(state); +let mut out=self.e830_c(state); if out.ok { let end=out.state.consumed; out.events=self.event(Event::Rule {rule:89,span:[state.consumed,end],child:out.events,caps:(0,0)}); @@ -1128,7 +1134,7 @@ if !out.ok {self.display_failures(state.consumed.max(state.matched),&["StringExp self.depth-=1;out.diag=self.diag_rule(89,out.diag);out } fn r90_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); -let mut out=self.e808_c(state); +let mut out=self.e836_c(state); if out.ok { let end=out.state.consumed; out.events=self.event(Event::Rule {rule:90,span:[state.consumed,end],child:out.events,caps:(0,0)}); @@ -1137,7 +1143,7 @@ if !out.ok {self.display_failures(state.consumed.max(state.matched),&["'('", "') self.depth-=1;out.diag=self.diag_rule(90,out.diag);out } fn r91_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); -let mut out=self.e812_c(state); +let mut out=self.e840_c(state); if out.ok { let end=out.state.consumed; out.events=self.event(Event::Rule {rule:91,span:[state.consumed,end],child:out.events,caps:(0,0)}); @@ -1146,7 +1152,7 @@ if !out.ok {self.display_failures(state.consumed.max(state.matched),&["'match'", self.depth-=1;out.diag=self.diag_rule(91,out.diag);out } fn r92_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); -let mut out=self.e829_c(state); +let mut out=self.e857_c(state); if out.ok { let end=out.state.consumed; out.events=self.event(Event::Rule {rule:92,span:[state.consumed,end],child:out.events,caps:(0,0)}); @@ -1155,7 +1161,7 @@ if !out.ok {self.display_failures(state.consumed.max(state.matched),&["'('", "'s self.depth-=1;out.diag=self.diag_rule(92,out.diag);out } fn r93_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); -let mut out=self.e838_c(state); +let mut out=self.e866_c(state); if out.ok { let end=out.state.consumed; out.events=self.event(Event::Rule {rule:93,span:[state.consumed,end],child:out.events,caps:(0,0)}); @@ -1164,7 +1170,7 @@ if !out.ok {self.display_failures(state.consumed.max(state.matched),&["'$'", "'a self.depth-=1;out.diag=self.diag_rule(93,out.diag);out } fn r94_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); -let mut out=self.e846_c(state); +let mut out=self.e874_c(state); if out.ok { let end=out.state.consumed; out.events=self.event(Event::Rule {rule:94,span:[state.consumed,end],child:out.events,caps:(0,0)}); @@ -1173,7 +1179,7 @@ if !out.ok {self.display_failures(state.consumed.max(state.matched),&["BooleanEx self.depth-=1;out.diag=self.diag_rule(94,out.diag);out } fn r95_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); -let mut out=self.e852_c(state); +let mut out=self.e880_c(state); if out.ok { let end=out.state.consumed; out.events=self.event(Event::Rule {rule:95,span:[state.consumed,end],child:out.events,caps:(0,0)}); @@ -1182,7 +1188,7 @@ if !out.ok {self.display_failures(state.consumed.max(state.matched),&["BooleanAn self.depth-=1;out.diag=self.diag_rule(95,out.diag);out } fn r96_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); -let mut out=self.e858_c(state); +let mut out=self.e886_c(state); if out.ok { let end=out.state.consumed; out.events=self.event(Event::Rule {rule:96,span:[state.consumed,end],child:out.events,caps:(0,0)}); @@ -1191,7 +1197,7 @@ if !out.ok {self.display_failures(state.consumed.max(state.matched),&["BooleanXo self.depth-=1;out.diag=self.diag_rule(96,out.diag);out } fn r97_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); -let mut out=self.e864_c(state); +let mut out=self.e892_c(state); if out.ok { let end=out.state.consumed; out.events=self.event(Event::Rule {rule:97,span:[state.consumed,end],child:out.events,caps:(0,0)}); @@ -1200,7 +1206,7 @@ if !out.ok {self.display_failures(state.consumed.max(state.matched),&["'not'", " self.depth-=1;out.diag=self.diag_rule(97,out.diag);out } fn r98_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); -let mut out=self.e869_c(state); +let mut out=self.e897_c(state); if out.ok { let end=out.state.consumed; out.events=self.event(Event::Rule {rule:98,span:[state.consumed,end],child:out.events,caps:(0,0)}); @@ -1209,7 +1215,7 @@ if !out.ok {self.display_failures(state.consumed.max(state.matched),&["'not'", " self.depth-=1;out.diag=self.diag_rule(98,out.diag);out } fn r99_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); -let mut out=self.e892_c(state); +let mut out=self.e920_c(state); if out.ok { let end=out.state.consumed; out.events=self.event(Event::Rule {rule:99,span:[state.consumed,end],child:out.events,caps:(0,0)}); @@ -1218,7 +1224,7 @@ if !out.ok {self.display_failures(state.consumed.max(state.matched),&["BooleanEq self.depth-=1;out.diag=self.diag_rule(99,out.diag);out } fn r100_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); -let mut out=self.e896_c(state); +let mut out=self.e924_c(state); if out.ok { let end=out.state.consumed; out.events=self.event(Event::Rule {rule:100,span:[state.consumed,end],child:out.events,caps:(0,0)}); @@ -1227,7 +1233,7 @@ if !out.ok {self.display_failures(state.consumed.max(state.matched),&["BooleanFa self.depth-=1;out.diag=self.diag_rule(100,out.diag);out } fn r101_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); -let mut out=self.e901_c(state); +let mut out=self.e929_c(state); if out.ok { let end=out.state.consumed; out.events=self.event(Event::Rule {rule:101,span:[state.consumed,end],child:out.events,caps:(0,0)}); @@ -1236,7 +1242,7 @@ if !out.ok {self.display_failures(state.consumed.max(state.matched),&["StringCom self.depth-=1;out.diag=self.diag_rule(101,out.diag);out } fn r102_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); -let mut out=self.e905_c(state); +let mut out=self.e933_c(state); if out.ok { let end=out.state.consumed; out.events=self.event(Event::Rule {rule:102,span:[state.consumed,end],child:out.events,caps:(0,0)}); @@ -1245,7 +1251,7 @@ if !out.ok {self.display_failures(state.consumed.max(state.matched),&["'=='", "' self.depth-=1;out.diag=self.diag_rule(102,out.diag);out } fn r103_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); -let mut out=self.e908_c(state); +let mut out=self.e936_c(state); if out.ok { let end=out.state.consumed; out.events=self.event(Event::Rule {rule:103,span:[state.consumed,end],child:out.events,caps:(0,0)}); @@ -1254,7 +1260,7 @@ if !out.ok {self.display_failures(state.consumed.max(state.matched),&["Compariso self.depth-=1;out.diag=self.diag_rule(103,out.diag);out } fn r104_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); -let mut out=self.e912_c(state); +let mut out=self.e940_c(state); if out.ok { let end=out.state.consumed; out.events=self.event(Event::Rule {rule:104,span:[state.consumed,end],child:out.events,caps:(0,0)}); @@ -1263,7 +1269,7 @@ if !out.ok {self.display_failures(state.consumed.max(state.matched),&["'=='", "' self.depth-=1;out.diag=self.diag_rule(104,out.diag);out } fn r105_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); -let mut out=self.e919_c(state); +let mut out=self.e947_c(state); if out.ok { let end=out.state.consumed; out.events=self.event(Event::Rule {rule:105,span:[state.consumed,end],child:out.events,caps:(0,0)}); @@ -1272,7 +1278,7 @@ if !out.ok {self.display_failures(state.consumed.max(state.matched),&["ObjectExp self.depth-=1;out.diag=self.diag_rule(105,out.diag);out } fn r106_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); -let mut out=self.e926_c(state); +let mut out=self.e954_c(state); if out.ok { let end=out.state.consumed; out.events=self.event(Event::Rule {rule:106,span:[state.consumed,end],child:out.events,caps:(0,0)}); @@ -1281,7 +1287,7 @@ if !out.ok {self.display_failures(state.consumed.max(state.matched),&["'if'", "' self.depth-=1;out.diag=self.diag_rule(106,out.diag);out } fn r107_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); -let mut out=self.e938_c(state); +let mut out=self.e966_c(state); if out.ok { let end=out.state.consumed; out.events=self.event(Event::Rule {rule:107,span:[state.consumed,end],child:out.events,caps:(0,0)}); @@ -1290,7 +1296,7 @@ if !out.ok {self.display_failures(state.consumed.max(state.matched),&["BranchExp self.depth-=1;out.diag=self.diag_rule(107,out.diag);out } fn r108_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); -let mut out=self.e947_c(state); +let mut out=self.e975_c(state); if out.ok { let end=out.state.consumed; out.events=self.event(Event::Rule {rule:108,span:[state.consumed,end],child:out.events,caps:(0,0)}); @@ -1299,7 +1305,7 @@ if !out.ok {self.display_failures(state.consumed.max(state.matched),&["'('", "'? self.depth-=1;out.diag=self.diag_rule(108,out.diag);out } fn r109_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); -let mut out=self.e955_c(state); +let mut out=self.e983_c(state); if out.ok { let end=out.state.consumed; out.events=self.event(Event::Rule {rule:109,span:[state.consumed,end],child:out.events,caps:(0,0)}); @@ -1308,7 +1314,7 @@ if !out.ok {self.display_failures(state.consumed.max(state.matched),&["'match'", self.depth-=1;out.diag=self.diag_rule(109,out.diag);out } fn r110_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); -let mut out=self.e966_c(state); +let mut out=self.e994_c(state); if out.ok { let end=out.state.consumed; out.events=self.event(Event::Rule {rule:110,span:[state.consumed,end],child:out.events,caps:(0,0)}); @@ -1317,7 +1323,7 @@ if !out.ok {self.display_failures(state.consumed.max(state.matched),&["'->'"]);} self.depth-=1;out.diag=self.diag_rule(110,out.diag);out } fn r111_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); -let mut out=self.e970_c(state); +let mut out=self.e998_c(state); if out.ok { let end=out.state.consumed; out.events=self.event(Event::Rule {rule:111,span:[state.consumed,end],child:out.events,caps:(0,0)}); @@ -1326,7 +1332,7 @@ if !out.ok {self.display_failures(state.consumed.max(state.matched),&["'default' self.depth-=1;out.diag=self.diag_rule(111,out.diag);out } fn r112_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); -let mut out=self.e974_c(state); +let mut out=self.e1002_c(state); if out.ok { let end=out.state.consumed; out.events=self.event(Event::Rule {rule:112,span:[state.consumed,end],child:out.events,caps:(0,0)}); @@ -1335,7 +1341,7 @@ if !out.ok {self.display_failures(state.consumed.max(state.matched),&["NumberCas self.depth-=1;out.diag=self.diag_rule(112,out.diag);out } fn r113_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); -let mut out=self.e976_c(state); +let mut out=self.e1004_c(state); if out.ok { let end=out.state.consumed; out.events=self.event(Event::Rule {rule:113,span:[state.consumed,end],child:out.events,caps:(0,0)}); @@ -1344,7 +1350,7 @@ if !out.ok {self.display_failures(state.consumed.max(state.matched),&["'match'", self.depth-=1;out.diag=self.diag_rule(113,out.diag);out } fn r114_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); -let mut out=self.e987_c(state); +let mut out=self.e1015_c(state); if out.ok { let end=out.state.consumed; out.events=self.event(Event::Rule {rule:114,span:[state.consumed,end],child:out.events,caps:(0,0)}); @@ -1353,7 +1359,7 @@ if !out.ok {self.display_failures(state.consumed.max(state.matched),&["'->'"]);} self.depth-=1;out.diag=self.diag_rule(114,out.diag);out } fn r115_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); -let mut out=self.e991_c(state); +let mut out=self.e1019_c(state); if out.ok { let end=out.state.consumed; out.events=self.event(Event::Rule {rule:115,span:[state.consumed,end],child:out.events,caps:(0,0)}); @@ -1362,7 +1368,7 @@ if !out.ok {self.display_failures(state.consumed.max(state.matched),&["'default' self.depth-=1;out.diag=self.diag_rule(115,out.diag);out } fn r116_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); -let mut out=self.e995_c(state); +let mut out=self.e1023_c(state); if out.ok { let end=out.state.consumed; out.events=self.event(Event::Rule {rule:116,span:[state.consumed,end],child:out.events,caps:(0,0)}); @@ -1371,7 +1377,7 @@ if !out.ok {self.display_failures(state.consumed.max(state.matched),&["StringCas self.depth-=1;out.diag=self.diag_rule(116,out.diag);out } fn r117_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); -let mut out=self.e997_c(state); +let mut out=self.e1025_c(state); if out.ok { let end=out.state.consumed; out.events=self.event(Event::Rule {rule:117,span:[state.consumed,end],child:out.events,caps:(0,0)}); @@ -1380,7 +1386,7 @@ if !out.ok {self.display_failures(state.consumed.max(state.matched),&["'match'", self.depth-=1;out.diag=self.diag_rule(117,out.diag);out } fn r118_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); -let mut out=self.e1008_c(state); +let mut out=self.e1036_c(state); if out.ok { let end=out.state.consumed; out.events=self.event(Event::Rule {rule:118,span:[state.consumed,end],child:out.events,caps:(0,0)}); @@ -1389,7 +1395,7 @@ if !out.ok {self.display_failures(state.consumed.max(state.matched),&["'->'"]);} self.depth-=1;out.diag=self.diag_rule(118,out.diag);out } fn r119_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); -let mut out=self.e1012_c(state); +let mut out=self.e1040_c(state); if out.ok { let end=out.state.consumed; out.events=self.event(Event::Rule {rule:119,span:[state.consumed,end],child:out.events,caps:(0,0)}); @@ -1398,7 +1404,7 @@ if !out.ok {self.display_failures(state.consumed.max(state.matched),&["'default' self.depth-=1;out.diag=self.diag_rule(119,out.diag);out } fn r120_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); -let mut out=self.e1016_c(state); +let mut out=self.e1044_c(state); if out.ok { let end=out.state.consumed; out.events=self.event(Event::Rule {rule:120,span:[state.consumed,end],child:out.events,caps:(0,0)}); @@ -1407,10 +1413,10 @@ if !out.ok {self.display_failures(state.consumed.max(state.matched),&["BooleanCa self.depth-=1;out.diag=self.diag_rule(120,out.diag);out } fn r121_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); -let mut out=self.e1018_c(state); +let mut out=self.e1046_c(state); if out.ok { -let mut scope_sites=self.take_scope();self.scope_captures(out.events,&[240],&mut scope_sites);for &(site,span) in &scope_sites { let name=self.text(span);if name.is_empty() {continue;}let offset_cp=self.cp(span[0]);let len_cp=self.cp(span[1])-offset_cp; -if site==240 { +let mut scope_sites=self.take_scope();self.scope_captures(out.events,&[250],&mut scope_sites);for &(site,span) in &scope_sites { let name=self.text(span);if name.is_empty() {continue;}let offset_cp=self.cp(span[0]);let len_cp=self.cp(span[1])-offset_cp; +if site==250 { self.effect_at(ScanEffect::Use{name,offset_cp,len_cp},"lexical",offset_cp,len_cp); } let _=(offset_cp,len_cp); } @@ -1422,7 +1428,7 @@ if !out.ok {self.display_failures(state.consumed.max(state.matched),&["'$'"]);} self.depth-=1;out.diag=self.diag_rule(121,out.diag);out } fn r122_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); -let mut out=self.e1026_c(state); +let mut out=self.e1054_c(state); if out.ok { let end=out.state.consumed; out.events=self.event(Event::Rule {rule:122,span:[state.consumed,end],child:out.events,caps:(0,0)}); @@ -1431,7 +1437,7 @@ if !out.ok {self.display_failures(state.consumed.max(state.matched),&["'number'" self.depth-=1;out.diag=self.diag_rule(122,out.diag);out } fn r123_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); -let mut out=self.e1037_c(state); +let mut out=self.e1065_c(state); if out.ok { let end=out.state.consumed; out.events=self.event(Event::Rule {rule:123,span:[state.consumed,end],child:out.events,caps:(0,0)}); @@ -1439,6 +1445,60 @@ out.events=self.event(Event::Rule {rule:123,span:[state.consumed,end],child:out. if !out.ok {self.display_failures(state.consumed.max(state.matched),&["'('", "')'"]);} self.depth-=1;out.diag=self.diag_rule(123,out.diag);out } +fn r124_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); +let mut out=self.e1075_c(state); +if out.ok { +let end=out.state.consumed; +out.events=self.event(Event::Rule {rule:124,span:[state.consumed,end],child:out.events,caps:(0,0)}); +} else { self.restore(mark); } +if !out.ok {self.display_failures(state.consumed.max(state.matched),&["NumberRootExpressionParser"]);} +self.depth-=1;out.diag=self.diag_rule(124,out.diag);out +} +fn r125_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); +let mut out=self.e1077_c(state); +if out.ok { +let end=out.state.consumed; +out.events=self.event(Event::Rule {rule:125,span:[state.consumed,end],child:out.events,caps:(0,0)}); +} else { self.restore(mark); } +if !out.ok {self.display_failures(state.consumed.max(state.matched),&["BooleanRootExpressionParser"]);} +self.depth-=1;out.diag=self.diag_rule(125,out.diag);out +} +fn r126_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); +let mut out=self.e1079_c(state); +if out.ok { +let end=out.state.consumed; +out.events=self.event(Event::Rule {rule:126,span:[state.consumed,end],child:out.events,caps:(0,0)}); +} else { self.restore(mark); } +if !out.ok {self.display_failures(state.consumed.max(state.matched),&["StringRootExpressionParser"]);} +self.depth-=1;out.diag=self.diag_rule(126,out.diag);out +} +fn r127_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); +let mut out=self.e1081_c(state); +if out.ok { +let end=out.state.consumed; +out.events=self.event(Event::Rule {rule:127,span:[state.consumed,end],child:out.events,caps:(0,0)}); +} else { self.restore(mark); } +if !out.ok {self.display_failures(state.consumed.max(state.matched),&["ObjectRootExpressionParser"]);} +self.depth-=1;out.diag=self.diag_rule(127,out.diag);out +} +fn r128_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); +let mut out=self.e1083_c(state); +if out.ok { +let end=out.state.consumed; +out.events=self.event(Event::Rule {rule:128,span:[state.consumed,end],child:out.events,caps:(0,0)}); +} else { self.restore(mark); } +if !out.ok {self.display_failures(state.consumed.max(state.matched),&["MethodRootExpressionParser"]);} +self.depth-=1;out.diag=self.diag_rule(128,out.diag);out +} +fn r129_c(&mut self,state:State)->Step { if let Some(limit)=self.enter_rule(state) {return limit;}self.statistics.rule_evaluations+=1;let mark=self.mark(); +let mut out=self.e1085_c(state); +if out.ok { +let end=out.state.consumed; +out.events=self.event(Event::Rule {rule:129,span:[state.consumed,end],child:out.events,caps:(0,0)}); +} else { self.restore(mark); } +if !out.ok {self.display_failures(state.consumed.max(state.matched),&["'('", "')'"]);} +self.depth-=1;out.diag=self.diag_rule(129,out.diag);out +} fn e0_c(&mut self,state:State)->Step { let mark=self.mark(); let key=Key {expression:0,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} @@ -1464,10 +1524,6 @@ let child=self.e7_c(out.state);out=self.combine(out,child);if !out.ok {out.state let trivia=self.trivia_0::(out.state);out=self.combine(out,trivia); let child=self.e9_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_0::(out.state);out=self.combine(out,trivia); -let child=self.e10_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} -let trivia=self.trivia_0::(out.state);out=self.combine(out,trivia); -let child=self.e12_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} -let trivia=self.trivia_0::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } @@ -1601,176 +1657,199 @@ out fn e9_c(&mut self,state:State)->Step { let mut out=self.b9_c(state); if out.ok { -out.events=self.event(Event::Capture {site:3,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); -} else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} +out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:false,text:false}); +} else {self.display_failures(state.consumed.max(state.matched),&["FormulaGroup0Parser"]);} out } fn b9_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); -out=self.r123_c(out.state); +out=self.e10_c(out.state); out } fn e10_c(&mut self,state:State)->Step { let mut out=self.b10_c(state); if out.ok { -out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:false,text:false}); -} else {self.display_failures(state.consumed.max(state.matched),&["Repeat"]);} +} else {self.display_failures(state.consumed.max(state.matched),&["FormulaGroup0Parser"]);} out } fn b10_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); -out.state=state.begin(); -let mut count=0usize;loop {let mark=self.mark();let before=out.state; -let mut child=self.e11_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} -out.events=self.join(out.events,child.events);count+=1; -if before.position::()==out.state.position::() {break;} -} -let _=count; -if false {out.ok=false;out.state=state;let d=self.diag_fail(state.position::(),"expression");out.diag=self.diag_join(out.diag,d);} -out.state=if out.ok {state.commit(out.state)} else {state}; +out='choice: {let mark=self.mark();let mut diagnostic=Diag::NONE;let mut best:Option<(Step,[usize;2])>=None; +let ct=self.input.cp_at(self.skip_0::(out.state.begin()).position::()).map(|(c,_)|c); +self.restore(mark);let mut child=self.e11_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} +self.restore(mark);let mut child=self.e16_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} +self.restore(mark);let mut child=self.e21_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} +self.restore(mark);let mut child=self.e26_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} +self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,99|105))) {self.guard_e31_c(out.state.begin())} else {self.e31_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); +if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} +self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,40))) {self.guard_e36_c(out.state.begin())} else {self.e36_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); +if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} +self.restore(mark);break 'choice if let Some((mut child,effects))=best {self.replay_effects(effects);child.diag=diagnostic;child} else {out.ok=false;out.diag=diagnostic;out}; +}; out } fn e11_c(&mut self,state:State)->Step { let mut out=self.b11_c(state); if out.ok { -out.events=self.event(Event::Capture {site:4,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); -} else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} +out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:false,text:false}); +} else {self.display_failures(state.consumed.max(state.matched),&[]);} out } fn b11_c(&mut self,mut state:State)->Step { +state.reset=false; let mut out=Step::yes(state); -out=self.r19_c(out.state); +out.state=state.begin(); +let trivia=self.trivia_0::(out.state);out=self.combine(out,trivia); +let child=self.e12_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let trivia=self.trivia_0::(out.state);out=self.combine(out,trivia); +let child=self.e13_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let trivia=self.trivia_0::(out.state);out=self.combine(out,trivia); +let child=self.e15_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let trivia=self.trivia_0::(out.state);out=self.combine(out,trivia); +out.state=if out.ok {state.commit(out.state)} else {state}; out } fn e12_c(&mut self,state:State)->Step { -let mut out=self.b12_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +let mut out=self.b12_c(state); if out.ok { -out.events=self.relabel_token(out.events,12,0); -} else {self.display_failures(state.consumed.max(state.matched),&["EOFParser"]);} +out.events=self.event(Event::Capture {site:3,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +} else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } fn b12_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); -out=self.token_7::(out.state,"EOF","EOFParser"); +out=self.r124_c(out.state); out } fn e13_c(&mut self,state:State)->Step { let mut out=self.b13_c(state); if out.ok { -} else {self.display_failures(state.consumed.max(state.matched),&[]);} +out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:false,text:false}); +} else {self.display_failures(state.consumed.max(state.matched),&["Repeat"]);} out } fn b13_c(&mut self,mut state:State)->Step { -state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); -let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e14_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} -let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); +let mut count=0usize;loop {let mark=self.mark();let before=out.state; +let mut child=self.e14_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} +out.events=self.join(out.events,child.events);count+=1; +if before.position::()==out.state.position::() {break;} +} +let _=count; +if false {out.ok=false;out.state=state;let d=self.diag_fail(state.position::(),"expression");out.diag=self.diag_join(out.diag,d);} out.state=if out.ok {state.commit(out.state)} else {state}; out } fn e14_c(&mut self,state:State)->Step { let mut out=self.b14_c(state); if out.ok { -out.events=self.event(Event::Capture {site:5,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); -} else {self.display_failures(state.consumed.max(state.matched),&["CodeBlockGroup0Parser", "__CaptureSite"]);} +out.events=self.event(Event::Capture {site:4,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +} else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } fn b14_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); -out=self.e15_c(out.state); +out=self.r19_c(out.state); out } fn e15_c(&mut self,state:State)->Step { -let mut out=self.b15_c(state); +let mut out=self.b15_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -} else {self.display_failures(state.consumed.max(state.matched),&["CodeBlockGroup0Parser"]);} +out.events=self.relabel_token(out.events,15,0); +} else {self.display_failures(state.consumed.max(state.matched),&["EOFParser"]);} out } fn b15_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); -out='choice: {let mark=self.mark();let mut diagnostic=Diag::NONE;let mut best:Option<(Step,[usize;2])>=None; -self.restore(mark);let mut child=self.e16_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); -if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=self.e17_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); -if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);break 'choice if let Some((mut child,effects))=best {self.replay_effects(effects);child.diag=diagnostic;child} else {out.ok=false;out.diag=diagnostic;out}; -}; +out=self.token_7::(out.state,"EOF","EOFParser"); out } fn e16_c(&mut self,state:State)->Step { -let mut out=self.b16_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +let mut out=self.b16_c(state); if out.ok { -out.events=self.relabel_token(out.events,16,1); -} else {self.display_failures(state.consumed.max(state.matched),&["LONG_CODE_BLOCKParser"]);} +out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:false,text:false}); +} else {self.display_failures(state.consumed.max(state.matched),&[]);} out } fn b16_c(&mut self,mut state:State)->Step { +state.reset=false; let mut out=Step::yes(state); -out=self.token_6::(out.state,"LONG_CODE_BLOCK","LONG_CODE_BLOCKParser"); +out.state=state.begin(); +let trivia=self.trivia_0::(out.state);out=self.combine(out,trivia); +let child=self.e17_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let trivia=self.trivia_0::(out.state);out=self.combine(out,trivia); +let child=self.e18_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let trivia=self.trivia_0::(out.state);out=self.combine(out,trivia); +let child=self.e20_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let trivia=self.trivia_0::(out.state);out=self.combine(out,trivia); +out.state=if out.ok {state.commit(out.state)} else {state}; out } fn e17_c(&mut self,state:State)->Step { let mut out=self.b17_c(state); if out.ok { -} else {self.display_failures(state.consumed.max(state.matched),&[]);} +out.events=self.event(Event::Capture {site:5,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +} else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } fn b17_c(&mut self,mut state:State)->Step { -state.reset=false; let mut out=Step::yes(state); -out.state=state.begin(); -let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e18_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} -let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e19_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} -let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e20_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} -let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -out.state=if out.ok {state.commit(out.state)} else {state}; +out=self.r125_c(out.state); out } fn e18_c(&mut self,state:State)->Step { -let mut out=self.b18_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +let mut out=self.b18_c(state); if out.ok { -out.events=self.relabel_token(out.events,18,1); -} else {self.display_failures(state.consumed.max(state.matched),&["CODE_STARTParser"]);} +out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:false,text:false}); +} else {self.display_failures(state.consumed.max(state.matched),&["Repeat"]);} out } fn b18_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); -out=self.token_3::(out.state,"CODE_START","CODE_STARTParser"); +out.state=state.begin(); +let mut count=0usize;loop {let mark=self.mark();let before=out.state; +let mut child=self.e19_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} +out.events=self.join(out.events,child.events);count+=1; +if before.position::()==out.state.position::() {break;} +} +let _=count; +if false {out.ok=false;out.state=state;let d=self.diag_fail(state.position::(),"expression");out.diag=self.diag_join(out.diag,d);} +out.state=if out.ok {state.commit(out.state)} else {state}; out } fn e19_c(&mut self,state:State)->Step { -let mut out=self.b19_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +let mut out=self.b19_c(state); if out.ok { -out.events=self.relabel_token(out.events,19,1); -} else {self.display_failures(state.consumed.max(state.matched),&["CODE_BODYParser"]);} +out.events=self.event(Event::Capture {site:6,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +} else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } fn b19_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); -out=self.token_4::(out.state,"CODE_BODY","CODE_BODYParser"); +out=self.r19_c(out.state); out } fn e20_c(&mut self,state:State)->Step { let mut out=self.b20_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,20,1); -} else {self.display_failures(state.consumed.max(state.matched),&["CODE_ENDParser"]);} +out.events=self.relabel_token(out.events,20,0); +} else {self.display_failures(state.consumed.max(state.matched),&["EOFParser"]);} out } fn b20_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); -out=self.token_5::(out.state,"CODE_END","CODE_ENDParser"); +out=self.token_7::(out.state,"EOF","EOFParser"); out } fn e21_c(&mut self,state:State)->Step { let mut out=self.b21_c(state); if out.ok { -out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:true,text:false}); +out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:false,text:false}); } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } @@ -1783,148 +1862,148 @@ let child=self.e22_c(out.state);out=self.combine(out,child);if !out.ok {out.stat let trivia=self.trivia_0::(out.state);out=self.combine(out,trivia); let child=self.e23_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_0::(out.state);out=self.combine(out,trivia); -let child=self.e24_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} -let trivia=self.trivia_0::(out.state);out=self.combine(out,trivia); -let child=self.e28_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} -let trivia=self.trivia_0::(out.state);out=self.combine(out,trivia); -let child=self.e29_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} -let trivia=self.trivia_0::(out.state);out=self.combine(out,trivia); -let child=self.e30_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e25_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_0::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } fn e22_c(&mut self,state:State)->Step { -let mut out=self.b22_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +let mut out=self.b22_c(state); if out.ok { -out.events=self.relabel_token(out.events,22,2); -} else {self.display_failures(state.consumed.max(state.matched),&["'import'"]);} +out.events=self.event(Event::Capture {site:7,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +} else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } fn b22_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); -out=self.literal::(out.state,"import",true,64,false,"import"); -if !out.ok {self.display_fail(state.consumed.max(state.matched),"'import'");} +out=self.r126_c(out.state); out } fn e23_c(&mut self,state:State)->Step { let mut out=self.b23_c(state); if out.ok { -out.events=self.event(Event::Capture {site:6,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); -} else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} +out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:false,text:false}); +} else {self.display_failures(state.consumed.max(state.matched),&["Repeat"]);} out } fn b23_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); -out=self.r3_c(out.state); +out.state=state.begin(); +let mut count=0usize;loop {let mark=self.mark();let before=out.state; +let mut child=self.e24_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} +out.events=self.join(out.events,child.events);count+=1; +if before.position::()==out.state.position::() {break;} +} +let _=count; +if false {out.ok=false;out.state=state;let d=self.diag_fail(state.position::(),"expression");out.diag=self.diag_join(out.diag,d);} +out.state=if out.ok {state.commit(out.state)} else {state}; out } fn e24_c(&mut self,state:State)->Step { let mut out=self.b24_c(state); if out.ok { -} else {self.display_failures(state.consumed.max(state.matched),&["'#'"]);} +out.events=self.event(Event::Capture {site:8,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +} else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } fn b24_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); -out.state=state.begin(); -let mut count=0usize;loop {let mark=self.mark();let before=out.state; -let mut child=self.e25_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} -out.events=self.join(out.events,child.events);count+=1; -if before.position::()==out.state.position::() {break;} -if count>=1 {break;} -} -let _=count; -if count>1 {out.ok=false;out.state=state;let d=self.diag_fail(state.position::(),"expression");out.diag=self.diag_join(out.diag,d);} -out.state=if out.ok {state.commit(out.state)} else {state}; +out=self.r19_c(out.state); out } fn e25_c(&mut self,state:State)->Step { -let mut out=self.b25_c(state); +let mut out=self.b25_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -} else {self.display_failures(state.consumed.max(state.matched),&["'#'"]);} +out.events=self.relabel_token(out.events,25,0); +} else {self.display_failures(state.consumed.max(state.matched),&["EOFParser"]);} out } fn b25_c(&mut self,mut state:State)->Step { -state.reset=false; let mut out=Step::yes(state); -out.state=state.begin(); -let trivia=self.trivia_0::(out.state);out=self.combine(out,trivia); -let child=self.e26_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} -let trivia=self.trivia_0::(out.state);out=self.combine(out,trivia); -let child=self.e27_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} -let trivia=self.trivia_0::(out.state);out=self.combine(out,trivia); -out.state=if out.ok {state.commit(out.state)} else {state}; +out=self.token_7::(out.state,"EOF","EOFParser"); out } fn e26_c(&mut self,state:State)->Step { -let mut out=self.b26_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +let mut out=self.b26_c(state); if out.ok { -out.events=self.relabel_token(out.events,26,2); -} else {self.display_failures(state.consumed.max(state.matched),&["'#'"]);} +out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:false,text:false}); +} else {self.display_failures(state.consumed.max(state.matched),&[]);} out } fn b26_c(&mut self,mut state:State)->Step { +state.reset=false; let mut out=Step::yes(state); -out=self.literal::(out.state,"#",true,1,false,"#"); -if !out.ok {self.display_fail(state.consumed.max(state.matched),"'#'");} +out.state=state.begin(); +let trivia=self.trivia_0::(out.state);out=self.combine(out,trivia); +let child=self.e27_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let trivia=self.trivia_0::(out.state);out=self.combine(out,trivia); +let child=self.e28_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let trivia=self.trivia_0::(out.state);out=self.combine(out,trivia); +let child=self.e30_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let trivia=self.trivia_0::(out.state);out=self.combine(out,trivia); +out.state=if out.ok {state.commit(out.state)} else {state}; out } fn e27_c(&mut self,state:State)->Step { -let mut out=self.b27_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +let mut out=self.b27_c(state); if out.ok { -out.events=self.relabel_token(out.events,27,2); -out.events=self.event(Event::Capture {site:7,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); -} else {self.display_failures(state.consumed.max(state.matched),&["IDENTIFIERParser", "__CaptureSite"]);} +out.events=self.event(Event::Capture {site:9,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +} else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } fn b27_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); -out=self.token_1::(out.state,"IDENTIFIER","IDENTIFIERParser"); +out=self.r127_c(out.state); out } fn e28_c(&mut self,state:State)->Step { -let mut out=self.b28_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +let mut out=self.b28_c(state); if out.ok { -out.events=self.relabel_token(out.events,28,2); -} else {self.display_failures(state.consumed.max(state.matched),&["'as'"]);} +out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:false,text:false}); +} else {self.display_failures(state.consumed.max(state.matched),&["Repeat"]);} out } fn b28_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); -out=self.literal::(out.state,"as",true,47,false,"as"); -if !out.ok {self.display_fail(state.consumed.max(state.matched),"'as'");} +out.state=state.begin(); +let mut count=0usize;loop {let mark=self.mark();let before=out.state; +let mut child=self.e29_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} +out.events=self.join(out.events,child.events);count+=1; +if before.position::()==out.state.position::() {break;} +} +let _=count; +if false {out.ok=false;out.state=state;let d=self.diag_fail(state.position::(),"expression");out.diag=self.diag_join(out.diag,d);} +out.state=if out.ok {state.commit(out.state)} else {state}; out } fn e29_c(&mut self,state:State)->Step { -let mut out=self.b29_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +let mut out=self.b29_c(state); if out.ok { -out.events=self.relabel_token(out.events,29,2); -out.events=self.event(Event::Capture {site:8,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); -} else {self.display_failures(state.consumed.max(state.matched),&["IDENTIFIERParser", "__CaptureSite"]);} +out.events=self.event(Event::Capture {site:10,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +} else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } fn b29_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); -out=self.token_1::(out.state,"IDENTIFIER","IDENTIFIERParser"); +out=self.r19_c(out.state); out } fn e30_c(&mut self,state:State)->Step { let mut out=self.b30_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,30,2); -} else {self.display_failures(state.consumed.max(state.matched),&["';'"]);} +out.events=self.relabel_token(out.events,30,0); +} else {self.display_failures(state.consumed.max(state.matched),&["EOFParser"]);} out } fn b30_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); -out=self.literal::(out.state,";",true,22,false,";"); -if !out.ok {self.display_fail(state.consumed.max(state.matched),"';'");} +out=self.token_7::(out.state,"EOF","EOFParser"); out } fn e31_c(&mut self,state:State)->Step { let mut out=self.b31_c(state); if out.ok { +out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:false,text:false}); } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } @@ -1932,31 +2011,33 @@ fn b31_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); -let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); +let trivia=self.trivia_0::(out.state);out=self.combine(out,trivia); let child=self.e32_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} -let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); +let trivia=self.trivia_0::(out.state);out=self.combine(out,trivia); let child=self.e33_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} -let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); +let trivia=self.trivia_0::(out.state);out=self.combine(out,trivia); +let child=self.e35_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let trivia=self.trivia_0::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } fn e32_c(&mut self,state:State)->Step { -let mut out=self.b32_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +let mut out=self.b32_c(state); if out.ok { -out.events=self.relabel_token(out.events,32,3); -out.events=self.event(Event::Capture {site:9,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); -} else {self.display_failures(state.consumed.max(state.matched),&["IDENTIFIERParser", "__CaptureSite"]);} +out.events=self.event(Event::Capture {site:11,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +} else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } fn b32_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); -out=self.token_1::(out.state,"IDENTIFIER","IDENTIFIERParser"); +out=self.r128_c(out.state); out } fn e33_c(&mut self,state:State)->Step { let mut out=self.b33_c(state); if out.ok { -} else {self.display_failures(state.consumed.max(state.matched),&["'.'"]);} +out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:false,text:false}); +} else {self.display_failures(state.consumed.max(state.matched),&["Repeat"]);} out } fn b33_c(&mut self,mut state:State)->Step { @@ -1975,239 +2056,658 @@ out fn e34_c(&mut self,state:State)->Step { let mut out=self.b34_c(state); if out.ok { -} else {self.display_failures(state.consumed.max(state.matched),&["'.'"]);} +out.events=self.event(Event::Capture {site:12,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +} else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } fn b34_c(&mut self,mut state:State)->Step { +let mut out=Step::yes(state); +out=self.r19_c(out.state); +out +} +fn e35_c(&mut self,state:State)->Step { +let mut out=self.b35_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +if out.ok { +out.events=self.relabel_token(out.events,35,0); +} else {self.display_failures(state.consumed.max(state.matched),&["EOFParser"]);} +out +} +fn b35_c(&mut self,mut state:State)->Step { +let mut out=Step::yes(state); +out=self.token_7::(out.state,"EOF","EOFParser"); +out +} +fn e36_c(&mut self,state:State)->Step { +let mut out=self.b36_c(state); +if out.ok { +out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:false,text:false}); +} else {self.display_failures(state.consumed.max(state.matched),&[]);} +out +} +fn b36_c(&mut self,mut state:State)->Step { +state.reset=false; +let mut out=Step::yes(state); +out.state=state.begin(); +let trivia=self.trivia_0::(out.state);out=self.combine(out,trivia); +let child=self.e37_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let trivia=self.trivia_0::(out.state);out=self.combine(out,trivia); +let child=self.e38_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let trivia=self.trivia_0::(out.state);out=self.combine(out,trivia); +let child=self.e40_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let trivia=self.trivia_0::(out.state);out=self.combine(out,trivia); +out.state=if out.ok {state.commit(out.state)} else {state}; +out +} +fn e37_c(&mut self,state:State)->Step { +let mut out=self.b37_c(state); +if out.ok { +out.events=self.event(Event::Capture {site:13,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +} else {self.display_failures(state.consumed.max(state.matched),&["'('", "')'"]);} +out +} +fn b37_c(&mut self,mut state:State)->Step { +let mut out=Step::yes(state); +out=self.r129_c(out.state); +out +} +fn e38_c(&mut self,state:State)->Step { +let mut out=self.b38_c(state); +if out.ok { +out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:false,text:false}); +} else {self.display_failures(state.consumed.max(state.matched),&["Repeat"]);} +out +} +fn b38_c(&mut self,mut state:State)->Step { +let mut out=Step::yes(state); +out.state=state.begin(); +let mut count=0usize;loop {let mark=self.mark();let before=out.state; +let mut child=self.e39_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} +out.events=self.join(out.events,child.events);count+=1; +if before.position::()==out.state.position::() {break;} +} +let _=count; +if false {out.ok=false;out.state=state;let d=self.diag_fail(state.position::(),"expression");out.diag=self.diag_join(out.diag,d);} +out.state=if out.ok {state.commit(out.state)} else {state}; +out +} +fn e39_c(&mut self,state:State)->Step { +let mut out=self.b39_c(state); +if out.ok { +out.events=self.event(Event::Capture {site:14,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +} else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} +out +} +fn b39_c(&mut self,mut state:State)->Step { +let mut out=Step::yes(state); +out=self.r19_c(out.state); +out +} +fn e40_c(&mut self,state:State)->Step { +let mut out=self.b40_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +if out.ok { +out.events=self.relabel_token(out.events,40,0); +} else {self.display_failures(state.consumed.max(state.matched),&["EOFParser"]);} +out +} +fn b40_c(&mut self,mut state:State)->Step { +let mut out=Step::yes(state); +out=self.token_7::(out.state,"EOF","EOFParser"); +out +} +fn e41_c(&mut self,state:State)->Step { +let mut out=self.b41_c(state); +if out.ok { +} else {self.display_failures(state.consumed.max(state.matched),&[]);} +out +} +fn b41_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e35_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e42_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e36_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +out.state=if out.ok {state.commit(out.state)} else {state}; +out +} +fn e42_c(&mut self,state:State)->Step { +let mut out=self.b42_c(state); +if out.ok { +out.events=self.event(Event::Capture {site:15,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +} else {self.display_failures(state.consumed.max(state.matched),&["CodeBlockGroup0Parser", "__CaptureSite"]);} +out +} +fn b42_c(&mut self,mut state:State)->Step { +let mut out=Step::yes(state); +out=self.e43_c(out.state); +out +} +fn e43_c(&mut self,state:State)->Step { +let mut out=self.b43_c(state); +if out.ok { +} else {self.display_failures(state.consumed.max(state.matched),&["CodeBlockGroup0Parser"]);} +out +} +fn b43_c(&mut self,mut state:State)->Step { +let mut out=Step::yes(state); +out='choice: {let mark=self.mark();let mut diagnostic=Diag::NONE;let mut best:Option<(Step,[usize;2])>=None; +self.restore(mark);let mut child=self.e44_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} +self.restore(mark);let mut child=self.e45_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} +self.restore(mark);break 'choice if let Some((mut child,effects))=best {self.replay_effects(effects);child.diag=diagnostic;child} else {out.ok=false;out.diag=diagnostic;out}; +}; +out +} +fn e44_c(&mut self,state:State)->Step { +let mut out=self.b44_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +if out.ok { +out.events=self.relabel_token(out.events,44,1); +} else {self.display_failures(state.consumed.max(state.matched),&["LONG_CODE_BLOCKParser"]);} +out +} +fn b44_c(&mut self,mut state:State)->Step { +let mut out=Step::yes(state); +out=self.token_6::(out.state,"LONG_CODE_BLOCK","LONG_CODE_BLOCKParser"); +out +} +fn e45_c(&mut self,state:State)->Step { +let mut out=self.b45_c(state); +if out.ok { +} else {self.display_failures(state.consumed.max(state.matched),&[]);} +out +} +fn b45_c(&mut self,mut state:State)->Step { +state.reset=false; +let mut out=Step::yes(state); +out.state=state.begin(); +let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); +let child=self.e46_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); +let child=self.e47_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); +let child=self.e48_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e35_c(&mut self,state:State)->Step { -let mut out=self.b35_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e46_c(&mut self,state:State)->Step { +let mut out=self.b46_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +if out.ok { +out.events=self.relabel_token(out.events,46,1); +} else {self.display_failures(state.consumed.max(state.matched),&["CODE_STARTParser"]);} +out +} +fn b46_c(&mut self,mut state:State)->Step { +let mut out=Step::yes(state); +out=self.token_3::(out.state,"CODE_START","CODE_STARTParser"); +out +} +fn e47_c(&mut self,state:State)->Step { +let mut out=self.b47_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +if out.ok { +out.events=self.relabel_token(out.events,47,1); +} else {self.display_failures(state.consumed.max(state.matched),&["CODE_BODYParser"]);} +out +} +fn b47_c(&mut self,mut state:State)->Step { +let mut out=Step::yes(state); +out=self.token_4::(out.state,"CODE_BODY","CODE_BODYParser"); +out +} +fn e48_c(&mut self,state:State)->Step { +let mut out=self.b48_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +if out.ok { +out.events=self.relabel_token(out.events,48,1); +} else {self.display_failures(state.consumed.max(state.matched),&["CODE_ENDParser"]);} +out +} +fn b48_c(&mut self,mut state:State)->Step { +let mut out=Step::yes(state); +out=self.token_5::(out.state,"CODE_END","CODE_ENDParser"); +out +} +fn e49_c(&mut self,state:State)->Step { +let mut out=self.b49_c(state); +if out.ok { +out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:true,text:false}); +} else {self.display_failures(state.consumed.max(state.matched),&[]);} +out +} +fn b49_c(&mut self,mut state:State)->Step { +state.reset=false; +let mut out=Step::yes(state); +out.state=state.begin(); +let trivia=self.trivia_0::(out.state);out=self.combine(out,trivia); +let child=self.e50_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let trivia=self.trivia_0::(out.state);out=self.combine(out,trivia); +let child=self.e51_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let trivia=self.trivia_0::(out.state);out=self.combine(out,trivia); +let child=self.e52_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let trivia=self.trivia_0::(out.state);out=self.combine(out,trivia); +let child=self.e56_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let trivia=self.trivia_0::(out.state);out=self.combine(out,trivia); +let child=self.e57_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let trivia=self.trivia_0::(out.state);out=self.combine(out,trivia); +let child=self.e58_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let trivia=self.trivia_0::(out.state);out=self.combine(out,trivia); +out.state=if out.ok {state.commit(out.state)} else {state}; +out +} +fn e50_c(&mut self,state:State)->Step { +let mut out=self.b50_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +if out.ok { +out.events=self.relabel_token(out.events,50,2); +} else {self.display_failures(state.consumed.max(state.matched),&["'import'"]);} +out +} +fn b50_c(&mut self,mut state:State)->Step { +let mut out=Step::yes(state); +out=self.literal::(out.state,"import",true,64,false,"import"); +if !out.ok {self.display_fail(state.consumed.max(state.matched),"'import'");} +out +} +fn e51_c(&mut self,state:State)->Step { +let mut out=self.b51_c(state); +if out.ok { +out.events=self.event(Event::Capture {site:16,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +} else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} +out +} +fn b51_c(&mut self,mut state:State)->Step { +let mut out=Step::yes(state); +out=self.r3_c(out.state); +out +} +fn e52_c(&mut self,state:State)->Step { +let mut out=self.b52_c(state); +if out.ok { +} else {self.display_failures(state.consumed.max(state.matched),&["'#'"]);} +out +} +fn b52_c(&mut self,mut state:State)->Step { +let mut out=Step::yes(state); +out.state=state.begin(); +let mut count=0usize;loop {let mark=self.mark();let before=out.state; +let mut child=self.e53_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} +out.events=self.join(out.events,child.events);count+=1; +if before.position::()==out.state.position::() {break;} +if count>=1 {break;} +} +let _=count; +if count>1 {out.ok=false;out.state=state;let d=self.diag_fail(state.position::(),"expression");out.diag=self.diag_join(out.diag,d);} +out.state=if out.ok {state.commit(out.state)} else {state}; +out +} +fn e53_c(&mut self,state:State)->Step { +let mut out=self.b53_c(state); +if out.ok { +} else {self.display_failures(state.consumed.max(state.matched),&["'#'"]);} +out +} +fn b53_c(&mut self,mut state:State)->Step { +state.reset=false; +let mut out=Step::yes(state); +out.state=state.begin(); +let trivia=self.trivia_0::(out.state);out=self.combine(out,trivia); +let child=self.e54_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let trivia=self.trivia_0::(out.state);out=self.combine(out,trivia); +let child=self.e55_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let trivia=self.trivia_0::(out.state);out=self.combine(out,trivia); +out.state=if out.ok {state.commit(out.state)} else {state}; +out +} +fn e54_c(&mut self,state:State)->Step { +let mut out=self.b54_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +if out.ok { +out.events=self.relabel_token(out.events,54,2); +} else {self.display_failures(state.consumed.max(state.matched),&["'#'"]);} +out +} +fn b54_c(&mut self,mut state:State)->Step { +let mut out=Step::yes(state); +out=self.literal::(out.state,"#",true,1,false,"#"); +if !out.ok {self.display_fail(state.consumed.max(state.matched),"'#'");} +out +} +fn e55_c(&mut self,state:State)->Step { +let mut out=self.b55_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +if out.ok { +out.events=self.relabel_token(out.events,55,2); +out.events=self.event(Event::Capture {site:17,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +} else {self.display_failures(state.consumed.max(state.matched),&["IDENTIFIERParser", "__CaptureSite"]);} +out +} +fn b55_c(&mut self,mut state:State)->Step { +let mut out=Step::yes(state); +out=self.token_1::(out.state,"IDENTIFIER","IDENTIFIERParser"); +out +} +fn e56_c(&mut self,state:State)->Step { +let mut out=self.b56_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +if out.ok { +out.events=self.relabel_token(out.events,56,2); +} else {self.display_failures(state.consumed.max(state.matched),&["'as'"]);} +out +} +fn b56_c(&mut self,mut state:State)->Step { +let mut out=Step::yes(state); +out=self.literal::(out.state,"as",true,47,false,"as"); +if !out.ok {self.display_fail(state.consumed.max(state.matched),"'as'");} +out +} +fn e57_c(&mut self,state:State)->Step { +let mut out=self.b57_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +if out.ok { +out.events=self.relabel_token(out.events,57,2); +out.events=self.event(Event::Capture {site:18,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +} else {self.display_failures(state.consumed.max(state.matched),&["IDENTIFIERParser", "__CaptureSite"]);} +out +} +fn b57_c(&mut self,mut state:State)->Step { +let mut out=Step::yes(state); +out=self.token_1::(out.state,"IDENTIFIER","IDENTIFIERParser"); +out +} +fn e58_c(&mut self,state:State)->Step { +let mut out=self.b58_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +if out.ok { +out.events=self.relabel_token(out.events,58,2); +} else {self.display_failures(state.consumed.max(state.matched),&["';'"]);} +out +} +fn b58_c(&mut self,mut state:State)->Step { +let mut out=Step::yes(state); +out=self.literal::(out.state,";",true,22,false,";"); +if !out.ok {self.display_fail(state.consumed.max(state.matched),"';'");} +out +} +fn e59_c(&mut self,state:State)->Step { +let mut out=self.b59_c(state); +if out.ok { +} else {self.display_failures(state.consumed.max(state.matched),&[]);} +out +} +fn b59_c(&mut self,mut state:State)->Step { +state.reset=false; +let mut out=Step::yes(state); +out.state=state.begin(); +let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); +let child=self.e60_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); +let child=self.e61_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); +out.state=if out.ok {state.commit(out.state)} else {state}; +out +} +fn e60_c(&mut self,state:State)->Step { +let mut out=self.b60_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +if out.ok { +out.events=self.relabel_token(out.events,60,3); +out.events=self.event(Event::Capture {site:19,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +} else {self.display_failures(state.consumed.max(state.matched),&["IDENTIFIERParser", "__CaptureSite"]);} +out +} +fn b60_c(&mut self,mut state:State)->Step { +let mut out=Step::yes(state); +out=self.token_1::(out.state,"IDENTIFIER","IDENTIFIERParser"); +out +} +fn e61_c(&mut self,state:State)->Step { +let mut out=self.b61_c(state); if out.ok { -out.events=self.relabel_token(out.events,35,3); } else {self.display_failures(state.consumed.max(state.matched),&["'.'"]);} out } -fn b35_c(&mut self,mut state:State)->Step { +fn b61_c(&mut self,mut state:State)->Step { +let mut out=Step::yes(state); +out.state=state.begin(); +let mut count=0usize;loop {let mark=self.mark();let before=out.state; +let mut child=self.e62_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} +out.events=self.join(out.events,child.events);count+=1; +if before.position::()==out.state.position::() {break;} +} +let _=count; +if false {out.ok=false;out.state=state;let d=self.diag_fail(state.position::(),"expression");out.diag=self.diag_join(out.diag,d);} +out.state=if out.ok {state.commit(out.state)} else {state}; +out +} +fn e62_c(&mut self,state:State)->Step { +let mut out=self.b62_c(state); +if out.ok { +} else {self.display_failures(state.consumed.max(state.matched),&["'.'"]);} +out +} +fn b62_c(&mut self,mut state:State)->Step { +state.reset=false; +let mut out=Step::yes(state); +out.state=state.begin(); +let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); +let child=self.e63_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); +let child=self.e64_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); +out.state=if out.ok {state.commit(out.state)} else {state}; +out +} +fn e63_c(&mut self,state:State)->Step { +let mut out=self.b63_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +if out.ok { +out.events=self.relabel_token(out.events,63,3); +} else {self.display_failures(state.consumed.max(state.matched),&["'.'"]);} +out +} +fn b63_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,".",true,11,false,"."); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'.'");} out } -fn e36_c(&mut self,state:State)->Step { -let mut out=self.b36_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e64_c(&mut self,state:State)->Step { +let mut out=self.b64_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,36,3); -out.events=self.event(Event::Capture {site:10,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.relabel_token(out.events,64,3); +out.events=self.event(Event::Capture {site:20,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["IDENTIFIERParser", "__CaptureSite"]);} out } -fn b36_c(&mut self,mut state:State)->Step { +fn b64_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.token_1::(out.state,"IDENTIFIER","IDENTIFIERParser"); out } -fn e37_c(&mut self,state:State)->Step { +fn e65_c(&mut self,state:State)->Step { let mark=self.mark(); -let key=Key {expression:37,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} -self.display_enter(state.consumed.max(state.matched));let mut out=self.b37_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +let key=Key {expression:65,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} +self.display_enter(state.consumed.max(state.matched));let mut out=self.b65_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { } else {self.restore(mark);self.display_failures(state.consumed.max(state.matched),&[]);} if (out.ok && true) || (!out.ok && true) {self.store(key,out,mark);}self.display_leave(); out } -fn b37_c(&mut self,mut state:State)->Step { +fn b65_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out='choice: {let mark=self.mark();let mut diagnostic=Diag::NONE;let mut best:Option<(Step,[usize;2])>=None; let ct=self.input.cp_at(self.skip_0::(out.state.begin()).position::()).map(|(c,_)|c); -self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,118))) {self.guard_e38_c(out.state.begin())} else {self.e38_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,118))) {self.guard_e66_c(out.state.begin())} else {self.e66_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,118))) {self.guard_e39_c(out.state.begin())} else {self.e39_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,118))) {self.guard_e67_c(out.state.begin())} else {self.e67_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,118))) {self.guard_e40_c(out.state.begin())} else {self.e40_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,118))) {self.guard_e68_c(out.state.begin())} else {self.e68_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,118))) {self.guard_e41_c(out.state.begin())} else {self.e41_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,118))) {self.guard_e69_c(out.state.begin())} else {self.e69_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} self.restore(mark);break 'choice if let Some((mut child,effects))=best {self.replay_effects(effects);child.diag=diagnostic;child} else {out.ok=false;out.diag=diagnostic;out}; }; out } -fn e38_c(&mut self,state:State)->Step { -let mut out=self.b38_c(state); +fn e66_c(&mut self,state:State)->Step { +let mut out=self.b66_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b38_c(&mut self,mut state:State)->Step { +fn b66_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r5_c(out.state); out } -fn e39_c(&mut self,state:State)->Step { -let mut out=self.b39_c(state); +fn e67_c(&mut self,state:State)->Step { +let mut out=self.b67_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b39_c(&mut self,mut state:State)->Step { +fn b67_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r6_c(out.state); out } -fn e40_c(&mut self,state:State)->Step { -let mut out=self.b40_c(state); +fn e68_c(&mut self,state:State)->Step { +let mut out=self.b68_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b40_c(&mut self,mut state:State)->Step { +fn b68_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r7_c(out.state); out } -fn e41_c(&mut self,state:State)->Step { -let mut out=self.b41_c(state); +fn e69_c(&mut self,state:State)->Step { +let mut out=self.b69_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b41_c(&mut self,mut state:State)->Step { +fn b69_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r8_c(out.state); out } -fn e42_c(&mut self,state:State)->Step { +fn e70_c(&mut self,state:State)->Step { let mark=self.mark(); -let key=Key {expression:42,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} -self.display_enter(state.consumed.max(state.matched));let mut out=self.b42_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +let key=Key {expression:70,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} +self.display_enter(state.consumed.max(state.matched));let mut out=self.b70_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:false,text:false}); } else {self.restore(mark);self.display_failures(state.consumed.max(state.matched),&[]);} if (out.ok && true) || (!out.ok && true) {self.store(key,out,mark);}self.display_leave(); out } -fn b42_c(&mut self,mut state:State)->Step { +fn b70_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e43_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e71_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e47_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e75_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e48_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e76_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e49_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e77_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e51_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e79_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e57_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e85_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e59_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e87_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e43_c(&mut self,state:State)->Step { -let mut out=self.b43_c(state); +fn e71_c(&mut self,state:State)->Step { +let mut out=self.b71_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&["'var'", "'variable'"]);} out } -fn b43_c(&mut self,mut state:State)->Step { +fn b71_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); -out=self.e44_c(out.state); +out=self.e72_c(out.state); out } -fn e44_c(&mut self,state:State)->Step { -let mut out=self.b44_c(state); +fn e72_c(&mut self,state:State)->Step { +let mut out=self.b72_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&["'var'", "'variable'"]);} out } -fn b44_c(&mut self,mut state:State)->Step { +fn b72_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out='choice: {let mark=self.mark();let mut diagnostic=Diag::NONE;let mut best:Option<(Step,[usize;2])>=None; -self.restore(mark);let mut child=self.e45_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=self.e73_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=self.e46_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=self.e74_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} self.restore(mark);break 'choice if let Some((mut child,effects))=best {self.replay_effects(effects);child.diag=diagnostic;child} else {out.ok=false;out.diag=diagnostic;out}; }; out } -fn e45_c(&mut self,state:State)->Step { -let mut out=self.b45_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e73_c(&mut self,state:State)->Step { +let mut out=self.b73_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,45,5); +out.events=self.relabel_token(out.events,73,5); } else {self.display_failures(state.consumed.max(state.matched),&["'variable'"]);} out } -fn b45_c(&mut self,mut state:State)->Step { +fn b73_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"variable",true,94,false,"variable"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'variable'");} out } -fn e46_c(&mut self,state:State)->Step { -let mut out=self.b46_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e74_c(&mut self,state:State)->Step { +let mut out=self.b74_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,46,5); +out.events=self.relabel_token(out.events,74,5); } else {self.display_failures(state.consumed.max(state.matched),&["'var'"]);} out } -fn b46_c(&mut self,mut state:State)->Step { +fn b74_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"var",true,93,false,"var"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'var'");} out } -fn e47_c(&mut self,state:State)->Step { -let mut out=self.b47_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e75_c(&mut self,state:State)->Step { +let mut out=self.b75_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,47,5); +out.events=self.relabel_token(out.events,75,5); } else {self.display_failures(state.consumed.max(state.matched),&["'$'"]);} out } -fn b47_c(&mut self,mut state:State)->Step { +fn b75_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"$",true,2,false,"$"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'$'");} out } -fn e48_c(&mut self,state:State)->Step { -let mut out=self.b48_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e76_c(&mut self,state:State)->Step { +let mut out=self.b76_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,48,5); -out.events=self.event(Event::Capture {site:11,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.relabel_token(out.events,76,5); +out.events=self.event(Event::Capture {site:21,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["IDENTIFIERParser", "__CaptureSite"]);} out } -fn b48_c(&mut self,mut state:State)->Step { +fn b76_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.token_1::(out.state,"IDENTIFIER","IDENTIFIERParser"); out } -fn e49_c(&mut self,state:State)->Step { -let mut out=self.b49_c(state); +fn e77_c(&mut self,state:State)->Step { +let mut out=self.b77_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&["Optional"]);} out } -fn b49_c(&mut self,mut state:State)->Step { +fn b77_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out.state=state.begin(); let mut count=0usize;loop {let mark=self.mark();let before=out.state; -let mut child=self.e50_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} +let mut child=self.e78_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} out.events=self.join(out.events,child.events);count+=1; if before.position::()==out.state.position::() {break;} if count>=1 {break;} @@ -2217,29 +2717,29 @@ if count>1 {out.ok=false;out.state=state;let d=self.diag_fail(state.position::Step { -let mut out=self.b50_c(state); +fn e78_c(&mut self,state:State)->Step { +let mut out=self.b78_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b50_c(&mut self,mut state:State)->Step { +fn b78_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r10_c(out.state); out } -fn e51_c(&mut self,state:State)->Step { -let mut out=self.b51_c(state); +fn e79_c(&mut self,state:State)->Step { +let mut out=self.b79_c(state); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:false,text:false}); } else {self.display_failures(state.consumed.max(state.matched),&["'set'"]);} out } -fn b51_c(&mut self,mut state:State)->Step { +fn b79_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out.state=state.begin(); let mut count=0usize;loop {let mark=self.mark();let before=out.state; -let mut child=self.e52_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} +let mut child=self.e80_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} out.events=self.join(out.events,child.events);count+=1; if before.position::()==out.state.position::() {break;} if count>=1 {break;} @@ -2249,52 +2749,52 @@ if count>1 {out.ok=false;out.state=state;let d=self.diag_fail(state.position::Step { -let mut out=self.b52_c(state); +fn e80_c(&mut self,state:State)->Step { +let mut out=self.b80_c(state); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:false,text:false}); } else {self.display_failures(state.consumed.max(state.matched),&["'set'"]);} out } -fn b52_c(&mut self,mut state:State)->Step { +fn b80_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e53_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e81_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e54_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e82_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e56_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e84_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e53_c(&mut self,state:State)->Step { -let mut out=self.b53_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e81_c(&mut self,state:State)->Step { +let mut out=self.b81_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,53,5); +out.events=self.relabel_token(out.events,81,5); } else {self.display_failures(state.consumed.max(state.matched),&["'set'"]);} out } -fn b53_c(&mut self,mut state:State)->Step { +fn b81_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"set",true,82,false,"set"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'set'");} out } -fn e54_c(&mut self,state:State)->Step { -let mut out=self.b54_c(state); +fn e82_c(&mut self,state:State)->Step { +let mut out=self.b82_c(state); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:true,text:false}); } else {self.display_failures(state.consumed.max(state.matched),&["Optional"]);} out } -fn b54_c(&mut self,mut state:State)->Step { +fn b82_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out.state=state.begin(); let mut count=0usize;loop {let mark=self.mark();let before=out.state; -let mut child=self.e55_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} +let mut child=self.e83_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} out.events=self.join(out.events,child.events);count+=1; if before.position::()==out.state.position::() {break;} if count>=1 {break;} @@ -2304,41 +2804,41 @@ if count>1 {out.ok=false;out.state=state;let d=self.diag_fail(state.position::Step { -let mut out=self.b55_c(state); +fn e83_c(&mut self,state:State)->Step { +let mut out=self.b83_c(state); if out.ok { -out.events=self.event(Event::Capture {site:12,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:22,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["'exists'", "'if'", "'not'"]);} out } -fn b55_c(&mut self,mut state:State)->Step { +fn b83_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r14_c(out.state); out } -fn e56_c(&mut self,state:State)->Step { -let mut out=self.b56_c(state); +fn e84_c(&mut self,state:State)->Step { +let mut out=self.b84_c(state); if out.ok { -out.events=self.event(Event::Capture {site:13,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:23,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b56_c(&mut self,mut state:State)->Step { +fn b84_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r40_c(out.state); out } -fn e57_c(&mut self,state:State)->Step { -let mut out=self.b57_c(state); +fn e85_c(&mut self,state:State)->Step { +let mut out=self.b85_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&["Optional"]);} out } -fn b57_c(&mut self,mut state:State)->Step { +fn b85_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out.state=state.begin(); let mut count=0usize;loop {let mark=self.mark();let before=out.state; -let mut child=self.e58_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} +let mut child=self.e86_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} out.events=self.join(out.events,child.events);count+=1; if before.position::()==out.state.position::() {break;} if count>=1 {break;} @@ -2348,154 +2848,154 @@ if count>1 {out.ok=false;out.state=state;let d=self.diag_fail(state.position::Step { -let mut out=self.b58_c(state); +fn e86_c(&mut self,state:State)->Step { +let mut out=self.b86_c(state); if out.ok { -out.events=self.event(Event::Capture {site:14,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:24,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["'='", "'description'"]);} out } -fn b58_c(&mut self,mut state:State)->Step { +fn b86_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r15_c(out.state); out } -fn e59_c(&mut self,state:State)->Step { -let mut out=self.b59_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e87_c(&mut self,state:State)->Step { +let mut out=self.b87_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,59,5); +out.events=self.relabel_token(out.events,87,5); } else {self.display_failures(state.consumed.max(state.matched),&["';'"]);} out } -fn b59_c(&mut self,mut state:State)->Step { +fn b87_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,";",true,22,false,";"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"';'");} out } -fn e60_c(&mut self,state:State)->Step { +fn e88_c(&mut self,state:State)->Step { let mark=self.mark(); -let key=Key {expression:60,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} -self.display_enter(state.consumed.max(state.matched));let mut out=self.b60_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +let key=Key {expression:88,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} +self.display_enter(state.consumed.max(state.matched));let mut out=self.b88_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:false,text:false}); } else {self.restore(mark);self.display_failures(state.consumed.max(state.matched),&[]);} if (out.ok && true) || (!out.ok && true) {self.store(key,out,mark);}self.display_leave(); out } -fn b60_c(&mut self,mut state:State)->Step { +fn b88_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e61_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e89_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e65_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e93_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e66_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e94_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e67_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e95_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e69_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e97_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e75_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e103_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e77_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e105_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e61_c(&mut self,state:State)->Step { -let mut out=self.b61_c(state); +fn e89_c(&mut self,state:State)->Step { +let mut out=self.b89_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&["'var'", "'variable'"]);} out } -fn b61_c(&mut self,mut state:State)->Step { +fn b89_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); -out=self.e62_c(out.state); +out=self.e90_c(out.state); out } -fn e62_c(&mut self,state:State)->Step { -let mut out=self.b62_c(state); +fn e90_c(&mut self,state:State)->Step { +let mut out=self.b90_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&["'var'", "'variable'"]);} out } -fn b62_c(&mut self,mut state:State)->Step { +fn b90_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out='choice: {let mark=self.mark();let mut diagnostic=Diag::NONE;let mut best:Option<(Step,[usize;2])>=None; -self.restore(mark);let mut child=self.e63_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=self.e91_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=self.e64_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=self.e92_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} self.restore(mark);break 'choice if let Some((mut child,effects))=best {self.replay_effects(effects);child.diag=diagnostic;child} else {out.ok=false;out.diag=diagnostic;out}; }; out } -fn e63_c(&mut self,state:State)->Step { -let mut out=self.b63_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e91_c(&mut self,state:State)->Step { +let mut out=self.b91_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,63,6); +out.events=self.relabel_token(out.events,91,6); } else {self.display_failures(state.consumed.max(state.matched),&["'variable'"]);} out } -fn b63_c(&mut self,mut state:State)->Step { +fn b91_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"variable",true,94,false,"variable"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'variable'");} out } -fn e64_c(&mut self,state:State)->Step { -let mut out=self.b64_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e92_c(&mut self,state:State)->Step { +let mut out=self.b92_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,64,6); +out.events=self.relabel_token(out.events,92,6); } else {self.display_failures(state.consumed.max(state.matched),&["'var'"]);} out } -fn b64_c(&mut self,mut state:State)->Step { +fn b92_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"var",true,93,false,"var"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'var'");} out } -fn e65_c(&mut self,state:State)->Step { -let mut out=self.b65_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e93_c(&mut self,state:State)->Step { +let mut out=self.b93_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,65,6); +out.events=self.relabel_token(out.events,93,6); } else {self.display_failures(state.consumed.max(state.matched),&["'$'"]);} out } -fn b65_c(&mut self,mut state:State)->Step { +fn b93_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"$",true,2,false,"$"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'$'");} out } -fn e66_c(&mut self,state:State)->Step { -let mut out=self.b66_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e94_c(&mut self,state:State)->Step { +let mut out=self.b94_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,66,6); -out.events=self.event(Event::Capture {site:15,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.relabel_token(out.events,94,6); +out.events=self.event(Event::Capture {site:25,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["IDENTIFIERParser", "__CaptureSite"]);} out } -fn b66_c(&mut self,mut state:State)->Step { +fn b94_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.token_1::(out.state,"IDENTIFIER","IDENTIFIERParser"); out } -fn e67_c(&mut self,state:State)->Step { -let mut out=self.b67_c(state); +fn e95_c(&mut self,state:State)->Step { +let mut out=self.b95_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&["Optional"]);} out } -fn b67_c(&mut self,mut state:State)->Step { +fn b95_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out.state=state.begin(); let mut count=0usize;loop {let mark=self.mark();let before=out.state; -let mut child=self.e68_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} +let mut child=self.e96_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} out.events=self.join(out.events,child.events);count+=1; if before.position::()==out.state.position::() {break;} if count>=1 {break;} @@ -2505,29 +3005,29 @@ if count>1 {out.ok=false;out.state=state;let d=self.diag_fail(state.position::Step { -let mut out=self.b68_c(state); +fn e96_c(&mut self,state:State)->Step { +let mut out=self.b96_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b68_c(&mut self,mut state:State)->Step { +fn b96_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r11_c(out.state); out } -fn e69_c(&mut self,state:State)->Step { -let mut out=self.b69_c(state); +fn e97_c(&mut self,state:State)->Step { +let mut out=self.b97_c(state); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:false,text:false}); } else {self.display_failures(state.consumed.max(state.matched),&["'set'"]);} out } -fn b69_c(&mut self,mut state:State)->Step { +fn b97_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out.state=state.begin(); let mut count=0usize;loop {let mark=self.mark();let before=out.state; -let mut child=self.e70_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} +let mut child=self.e98_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} out.events=self.join(out.events,child.events);count+=1; if before.position::()==out.state.position::() {break;} if count>=1 {break;} @@ -2537,52 +3037,52 @@ if count>1 {out.ok=false;out.state=state;let d=self.diag_fail(state.position::Step { -let mut out=self.b70_c(state); +fn e98_c(&mut self,state:State)->Step { +let mut out=self.b98_c(state); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:false,text:false}); } else {self.display_failures(state.consumed.max(state.matched),&["'set'"]);} out } -fn b70_c(&mut self,mut state:State)->Step { +fn b98_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e71_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e99_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e72_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e100_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e74_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e102_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e71_c(&mut self,state:State)->Step { -let mut out=self.b71_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e99_c(&mut self,state:State)->Step { +let mut out=self.b99_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,71,6); +out.events=self.relabel_token(out.events,99,6); } else {self.display_failures(state.consumed.max(state.matched),&["'set'"]);} out } -fn b71_c(&mut self,mut state:State)->Step { +fn b99_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"set",true,82,false,"set"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'set'");} out } -fn e72_c(&mut self,state:State)->Step { -let mut out=self.b72_c(state); +fn e100_c(&mut self,state:State)->Step { +let mut out=self.b100_c(state); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:true,text:false}); } else {self.display_failures(state.consumed.max(state.matched),&["Optional"]);} out } -fn b72_c(&mut self,mut state:State)->Step { +fn b100_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out.state=state.begin(); let mut count=0usize;loop {let mark=self.mark();let before=out.state; -let mut child=self.e73_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} +let mut child=self.e101_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} out.events=self.join(out.events,child.events);count+=1; if before.position::()==out.state.position::() {break;} if count>=1 {break;} @@ -2592,41 +3092,41 @@ if count>1 {out.ok=false;out.state=state;let d=self.diag_fail(state.position::Step { -let mut out=self.b73_c(state); +fn e101_c(&mut self,state:State)->Step { +let mut out=self.b101_c(state); if out.ok { -out.events=self.event(Event::Capture {site:16,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:26,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["'exists'", "'if'", "'not'"]);} out } -fn b73_c(&mut self,mut state:State)->Step { +fn b101_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r14_c(out.state); out } -fn e74_c(&mut self,state:State)->Step { -let mut out=self.b74_c(state); +fn e102_c(&mut self,state:State)->Step { +let mut out=self.b102_c(state); if out.ok { -out.events=self.event(Event::Capture {site:17,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:27,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b74_c(&mut self,mut state:State)->Step { +fn b102_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r89_c(out.state); out } -fn e75_c(&mut self,state:State)->Step { -let mut out=self.b75_c(state); +fn e103_c(&mut self,state:State)->Step { +let mut out=self.b103_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&["Optional"]);} out } -fn b75_c(&mut self,mut state:State)->Step { +fn b103_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out.state=state.begin(); let mut count=0usize;loop {let mark=self.mark();let before=out.state; -let mut child=self.e76_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} +let mut child=self.e104_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} out.events=self.join(out.events,child.events);count+=1; if before.position::()==out.state.position::() {break;} if count>=1 {break;} @@ -2636,154 +3136,154 @@ if count>1 {out.ok=false;out.state=state;let d=self.diag_fail(state.position::Step { -let mut out=self.b76_c(state); +fn e104_c(&mut self,state:State)->Step { +let mut out=self.b104_c(state); if out.ok { -out.events=self.event(Event::Capture {site:18,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:28,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["'='", "'description'"]);} out } -fn b76_c(&mut self,mut state:State)->Step { +fn b104_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r15_c(out.state); out } -fn e77_c(&mut self,state:State)->Step { -let mut out=self.b77_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e105_c(&mut self,state:State)->Step { +let mut out=self.b105_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,77,6); +out.events=self.relabel_token(out.events,105,6); } else {self.display_failures(state.consumed.max(state.matched),&["';'"]);} out } -fn b77_c(&mut self,mut state:State)->Step { +fn b105_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,";",true,22,false,";"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"';'");} out } -fn e78_c(&mut self,state:State)->Step { +fn e106_c(&mut self,state:State)->Step { let mark=self.mark(); -let key=Key {expression:78,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} -self.display_enter(state.consumed.max(state.matched));let mut out=self.b78_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +let key=Key {expression:106,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} +self.display_enter(state.consumed.max(state.matched));let mut out=self.b106_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:false,text:false}); } else {self.restore(mark);self.display_failures(state.consumed.max(state.matched),&[]);} if (out.ok && true) || (!out.ok && true) {self.store(key,out,mark);}self.display_leave(); out } -fn b78_c(&mut self,mut state:State)->Step { +fn b106_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e79_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e107_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e83_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e111_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e84_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e112_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e85_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e113_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e87_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e115_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e93_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e121_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e95_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e123_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e79_c(&mut self,state:State)->Step { -let mut out=self.b79_c(state); +fn e107_c(&mut self,state:State)->Step { +let mut out=self.b107_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&["'var'", "'variable'"]);} out } -fn b79_c(&mut self,mut state:State)->Step { +fn b107_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); -out=self.e80_c(out.state); +out=self.e108_c(out.state); out } -fn e80_c(&mut self,state:State)->Step { -let mut out=self.b80_c(state); +fn e108_c(&mut self,state:State)->Step { +let mut out=self.b108_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&["'var'", "'variable'"]);} out } -fn b80_c(&mut self,mut state:State)->Step { +fn b108_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out='choice: {let mark=self.mark();let mut diagnostic=Diag::NONE;let mut best:Option<(Step,[usize;2])>=None; -self.restore(mark);let mut child=self.e81_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=self.e109_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=self.e82_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=self.e110_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} self.restore(mark);break 'choice if let Some((mut child,effects))=best {self.replay_effects(effects);child.diag=diagnostic;child} else {out.ok=false;out.diag=diagnostic;out}; }; out } -fn e81_c(&mut self,state:State)->Step { -let mut out=self.b81_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e109_c(&mut self,state:State)->Step { +let mut out=self.b109_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,81,7); +out.events=self.relabel_token(out.events,109,7); } else {self.display_failures(state.consumed.max(state.matched),&["'variable'"]);} out } -fn b81_c(&mut self,mut state:State)->Step { +fn b109_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"variable",true,94,false,"variable"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'variable'");} out } -fn e82_c(&mut self,state:State)->Step { -let mut out=self.b82_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e110_c(&mut self,state:State)->Step { +let mut out=self.b110_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,82,7); +out.events=self.relabel_token(out.events,110,7); } else {self.display_failures(state.consumed.max(state.matched),&["'var'"]);} out } -fn b82_c(&mut self,mut state:State)->Step { +fn b110_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"var",true,93,false,"var"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'var'");} out } -fn e83_c(&mut self,state:State)->Step { -let mut out=self.b83_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e111_c(&mut self,state:State)->Step { +let mut out=self.b111_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,83,7); +out.events=self.relabel_token(out.events,111,7); } else {self.display_failures(state.consumed.max(state.matched),&["'$'"]);} out } -fn b83_c(&mut self,mut state:State)->Step { +fn b111_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"$",true,2,false,"$"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'$'");} out } -fn e84_c(&mut self,state:State)->Step { -let mut out=self.b84_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e112_c(&mut self,state:State)->Step { +let mut out=self.b112_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,84,7); -out.events=self.event(Event::Capture {site:19,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.relabel_token(out.events,112,7); +out.events=self.event(Event::Capture {site:29,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["IDENTIFIERParser", "__CaptureSite"]);} out } -fn b84_c(&mut self,mut state:State)->Step { +fn b112_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.token_1::(out.state,"IDENTIFIER","IDENTIFIERParser"); out } -fn e85_c(&mut self,state:State)->Step { -let mut out=self.b85_c(state); +fn e113_c(&mut self,state:State)->Step { +let mut out=self.b113_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&["Optional"]);} out } -fn b85_c(&mut self,mut state:State)->Step { +fn b113_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out.state=state.begin(); let mut count=0usize;loop {let mark=self.mark();let before=out.state; -let mut child=self.e86_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} +let mut child=self.e114_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} out.events=self.join(out.events,child.events);count+=1; if before.position::()==out.state.position::() {break;} if count>=1 {break;} @@ -2793,29 +3293,29 @@ if count>1 {out.ok=false;out.state=state;let d=self.diag_fail(state.position::Step { -let mut out=self.b86_c(state); +fn e114_c(&mut self,state:State)->Step { +let mut out=self.b114_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b86_c(&mut self,mut state:State)->Step { +fn b114_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r12_c(out.state); out } -fn e87_c(&mut self,state:State)->Step { -let mut out=self.b87_c(state); +fn e115_c(&mut self,state:State)->Step { +let mut out=self.b115_c(state); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:false,text:false}); } else {self.display_failures(state.consumed.max(state.matched),&["'set'"]);} out } -fn b87_c(&mut self,mut state:State)->Step { +fn b115_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out.state=state.begin(); let mut count=0usize;loop {let mark=self.mark();let before=out.state; -let mut child=self.e88_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} +let mut child=self.e116_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} out.events=self.join(out.events,child.events);count+=1; if before.position::()==out.state.position::() {break;} if count>=1 {break;} @@ -2825,52 +3325,52 @@ if count>1 {out.ok=false;out.state=state;let d=self.diag_fail(state.position::Step { -let mut out=self.b88_c(state); +fn e116_c(&mut self,state:State)->Step { +let mut out=self.b116_c(state); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:false,text:false}); } else {self.display_failures(state.consumed.max(state.matched),&["'set'"]);} out } -fn b88_c(&mut self,mut state:State)->Step { +fn b116_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e89_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e117_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e90_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e118_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e92_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e120_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e89_c(&mut self,state:State)->Step { -let mut out=self.b89_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e117_c(&mut self,state:State)->Step { +let mut out=self.b117_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,89,7); +out.events=self.relabel_token(out.events,117,7); } else {self.display_failures(state.consumed.max(state.matched),&["'set'"]);} out } -fn b89_c(&mut self,mut state:State)->Step { +fn b117_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"set",true,82,false,"set"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'set'");} out } -fn e90_c(&mut self,state:State)->Step { -let mut out=self.b90_c(state); +fn e118_c(&mut self,state:State)->Step { +let mut out=self.b118_c(state); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:true,text:false}); } else {self.display_failures(state.consumed.max(state.matched),&["Optional"]);} out } -fn b90_c(&mut self,mut state:State)->Step { +fn b118_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out.state=state.begin(); let mut count=0usize;loop {let mark=self.mark();let before=out.state; -let mut child=self.e91_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} +let mut child=self.e119_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} out.events=self.join(out.events,child.events);count+=1; if before.position::()==out.state.position::() {break;} if count>=1 {break;} @@ -2880,41 +3380,41 @@ if count>1 {out.ok=false;out.state=state;let d=self.diag_fail(state.position::Step { -let mut out=self.b91_c(state); +fn e119_c(&mut self,state:State)->Step { +let mut out=self.b119_c(state); if out.ok { -out.events=self.event(Event::Capture {site:20,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:30,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["'exists'", "'if'", "'not'"]);} out } -fn b91_c(&mut self,mut state:State)->Step { +fn b119_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r14_c(out.state); out } -fn e92_c(&mut self,state:State)->Step { -let mut out=self.b92_c(state); +fn e120_c(&mut self,state:State)->Step { +let mut out=self.b120_c(state); if out.ok { -out.events=self.event(Event::Capture {site:21,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:31,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b92_c(&mut self,mut state:State)->Step { +fn b120_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r94_c(out.state); out } -fn e93_c(&mut self,state:State)->Step { -let mut out=self.b93_c(state); +fn e121_c(&mut self,state:State)->Step { +let mut out=self.b121_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&["Optional"]);} out } -fn b93_c(&mut self,mut state:State)->Step { +fn b121_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out.state=state.begin(); let mut count=0usize;loop {let mark=self.mark();let before=out.state; -let mut child=self.e94_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} +let mut child=self.e122_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} out.events=self.join(out.events,child.events);count+=1; if before.position::()==out.state.position::() {break;} if count>=1 {break;} @@ -2924,154 +3424,154 @@ if count>1 {out.ok=false;out.state=state;let d=self.diag_fail(state.position::Step { -let mut out=self.b94_c(state); +fn e122_c(&mut self,state:State)->Step { +let mut out=self.b122_c(state); if out.ok { -out.events=self.event(Event::Capture {site:22,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:32,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["'='", "'description'"]);} out } -fn b94_c(&mut self,mut state:State)->Step { +fn b122_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r15_c(out.state); out } -fn e95_c(&mut self,state:State)->Step { -let mut out=self.b95_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e123_c(&mut self,state:State)->Step { +let mut out=self.b123_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,95,7); +out.events=self.relabel_token(out.events,123,7); } else {self.display_failures(state.consumed.max(state.matched),&["';'"]);} out } -fn b95_c(&mut self,mut state:State)->Step { +fn b123_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,";",true,22,false,";"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"';'");} out } -fn e96_c(&mut self,state:State)->Step { +fn e124_c(&mut self,state:State)->Step { let mark=self.mark(); -let key=Key {expression:96,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} -self.display_enter(state.consumed.max(state.matched));let mut out=self.b96_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +let key=Key {expression:124,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} +self.display_enter(state.consumed.max(state.matched));let mut out=self.b124_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:false,text:false}); } else {self.restore(mark);self.display_failures(state.consumed.max(state.matched),&[]);} if (out.ok && true) || (!out.ok && true) {self.store(key,out,mark);}self.display_leave(); out } -fn b96_c(&mut self,mut state:State)->Step { +fn b124_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e97_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e125_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e101_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e129_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e102_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e130_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e103_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e131_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e105_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e133_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e111_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e139_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e113_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e141_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e97_c(&mut self,state:State)->Step { -let mut out=self.b97_c(state); +fn e125_c(&mut self,state:State)->Step { +let mut out=self.b125_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&["'var'", "'variable'"]);} out } -fn b97_c(&mut self,mut state:State)->Step { +fn b125_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); -out=self.e98_c(out.state); +out=self.e126_c(out.state); out } -fn e98_c(&mut self,state:State)->Step { -let mut out=self.b98_c(state); +fn e126_c(&mut self,state:State)->Step { +let mut out=self.b126_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&["'var'", "'variable'"]);} out } -fn b98_c(&mut self,mut state:State)->Step { +fn b126_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out='choice: {let mark=self.mark();let mut diagnostic=Diag::NONE;let mut best:Option<(Step,[usize;2])>=None; -self.restore(mark);let mut child=self.e99_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=self.e127_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=self.e100_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=self.e128_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} self.restore(mark);break 'choice if let Some((mut child,effects))=best {self.replay_effects(effects);child.diag=diagnostic;child} else {out.ok=false;out.diag=diagnostic;out}; }; out } -fn e99_c(&mut self,state:State)->Step { -let mut out=self.b99_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e127_c(&mut self,state:State)->Step { +let mut out=self.b127_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,99,8); +out.events=self.relabel_token(out.events,127,8); } else {self.display_failures(state.consumed.max(state.matched),&["'variable'"]);} out } -fn b99_c(&mut self,mut state:State)->Step { +fn b127_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"variable",true,94,false,"variable"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'variable'");} out } -fn e100_c(&mut self,state:State)->Step { -let mut out=self.b100_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e128_c(&mut self,state:State)->Step { +let mut out=self.b128_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,100,8); +out.events=self.relabel_token(out.events,128,8); } else {self.display_failures(state.consumed.max(state.matched),&["'var'"]);} out } -fn b100_c(&mut self,mut state:State)->Step { +fn b128_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"var",true,93,false,"var"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'var'");} out } -fn e101_c(&mut self,state:State)->Step { -let mut out=self.b101_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e129_c(&mut self,state:State)->Step { +let mut out=self.b129_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,101,8); +out.events=self.relabel_token(out.events,129,8); } else {self.display_failures(state.consumed.max(state.matched),&["'$'"]);} out } -fn b101_c(&mut self,mut state:State)->Step { +fn b129_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"$",true,2,false,"$"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'$'");} out } -fn e102_c(&mut self,state:State)->Step { -let mut out=self.b102_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e130_c(&mut self,state:State)->Step { +let mut out=self.b130_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,102,8); -out.events=self.event(Event::Capture {site:23,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.relabel_token(out.events,130,8); +out.events=self.event(Event::Capture {site:33,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["IDENTIFIERParser", "__CaptureSite"]);} out } -fn b102_c(&mut self,mut state:State)->Step { +fn b130_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.token_1::(out.state,"IDENTIFIER","IDENTIFIERParser"); out } -fn e103_c(&mut self,state:State)->Step { -let mut out=self.b103_c(state); +fn e131_c(&mut self,state:State)->Step { +let mut out=self.b131_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&["Optional"]);} out } -fn b103_c(&mut self,mut state:State)->Step { +fn b131_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out.state=state.begin(); let mut count=0usize;loop {let mark=self.mark();let before=out.state; -let mut child=self.e104_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} +let mut child=self.e132_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} out.events=self.join(out.events,child.events);count+=1; if before.position::()==out.state.position::() {break;} if count>=1 {break;} @@ -3081,29 +3581,29 @@ if count>1 {out.ok=false;out.state=state;let d=self.diag_fail(state.position::Step { -let mut out=self.b104_c(state); +fn e132_c(&mut self,state:State)->Step { +let mut out=self.b132_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b104_c(&mut self,mut state:State)->Step { +fn b132_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r13_c(out.state); out } -fn e105_c(&mut self,state:State)->Step { -let mut out=self.b105_c(state); +fn e133_c(&mut self,state:State)->Step { +let mut out=self.b133_c(state); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:false,text:false}); } else {self.display_failures(state.consumed.max(state.matched),&["'set'"]);} out } -fn b105_c(&mut self,mut state:State)->Step { +fn b133_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out.state=state.begin(); let mut count=0usize;loop {let mark=self.mark();let before=out.state; -let mut child=self.e106_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} +let mut child=self.e134_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} out.events=self.join(out.events,child.events);count+=1; if before.position::()==out.state.position::() {break;} if count>=1 {break;} @@ -3113,52 +3613,52 @@ if count>1 {out.ok=false;out.state=state;let d=self.diag_fail(state.position::Step { -let mut out=self.b106_c(state); +fn e134_c(&mut self,state:State)->Step { +let mut out=self.b134_c(state); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:false,text:false}); } else {self.display_failures(state.consumed.max(state.matched),&["'set'"]);} out } -fn b106_c(&mut self,mut state:State)->Step { +fn b134_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e107_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e135_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e108_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e136_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e110_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e138_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e107_c(&mut self,state:State)->Step { -let mut out=self.b107_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e135_c(&mut self,state:State)->Step { +let mut out=self.b135_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,107,8); +out.events=self.relabel_token(out.events,135,8); } else {self.display_failures(state.consumed.max(state.matched),&["'set'"]);} out } -fn b107_c(&mut self,mut state:State)->Step { +fn b135_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"set",true,82,false,"set"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'set'");} out } -fn e108_c(&mut self,state:State)->Step { -let mut out=self.b108_c(state); +fn e136_c(&mut self,state:State)->Step { +let mut out=self.b136_c(state); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:true,text:false}); } else {self.display_failures(state.consumed.max(state.matched),&["Optional"]);} out } -fn b108_c(&mut self,mut state:State)->Step { +fn b136_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out.state=state.begin(); let mut count=0usize;loop {let mark=self.mark();let before=out.state; -let mut child=self.e109_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} +let mut child=self.e137_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} out.events=self.join(out.events,child.events);count+=1; if before.position::()==out.state.position::() {break;} if count>=1 {break;} @@ -3168,41 +3668,41 @@ if count>1 {out.ok=false;out.state=state;let d=self.diag_fail(state.position::Step { -let mut out=self.b109_c(state); +fn e137_c(&mut self,state:State)->Step { +let mut out=self.b137_c(state); if out.ok { -out.events=self.event(Event::Capture {site:24,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:34,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["'exists'", "'if'", "'not'"]);} out } -fn b109_c(&mut self,mut state:State)->Step { +fn b137_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r14_c(out.state); out } -fn e110_c(&mut self,state:State)->Step { -let mut out=self.b110_c(state); +fn e138_c(&mut self,state:State)->Step { +let mut out=self.b138_c(state); if out.ok { -out.events=self.event(Event::Capture {site:25,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:35,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b110_c(&mut self,mut state:State)->Step { +fn b138_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r105_c(out.state); out } -fn e111_c(&mut self,state:State)->Step { -let mut out=self.b111_c(state); +fn e139_c(&mut self,state:State)->Step { +let mut out=self.b139_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&["Optional"]);} out } -fn b111_c(&mut self,mut state:State)->Step { +fn b139_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out.state=state.begin(); let mut count=0usize;loop {let mark=self.mark();let before=out.state; -let mut child=self.e112_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} +let mut child=self.e140_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} out.events=self.join(out.events,child.events);count+=1; if before.position::()==out.state.position::() {break;} if count>=1 {break;} @@ -3212,60 +3712,60 @@ if count>1 {out.ok=false;out.state=state;let d=self.diag_fail(state.position::Step { -let mut out=self.b112_c(state); +fn e140_c(&mut self,state:State)->Step { +let mut out=self.b140_c(state); if out.ok { -out.events=self.event(Event::Capture {site:26,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:36,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["'='", "'description'"]);} out } -fn b112_c(&mut self,mut state:State)->Step { +fn b140_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r15_c(out.state); out } -fn e113_c(&mut self,state:State)->Step { -let mut out=self.b113_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e141_c(&mut self,state:State)->Step { +let mut out=self.b141_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,113,8); +out.events=self.relabel_token(out.events,141,8); } else {self.display_failures(state.consumed.max(state.matched),&["';'"]);} out } -fn b113_c(&mut self,mut state:State)->Step { +fn b141_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,";",true,22,false,";"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"';'");} out } -fn e114_c(&mut self,state:State)->Step { -let mut out=self.b114_c(state); +fn e142_c(&mut self,state:State)->Step { +let mut out=self.b142_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b114_c(&mut self,mut state:State)->Step { +fn b142_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e115_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e143_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e117_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e145_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e115_c(&mut self,state:State)->Step { -let mut out=self.b115_c(state); +fn e143_c(&mut self,state:State)->Step { +let mut out=self.b143_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&["'as'"]);} out } -fn b115_c(&mut self,mut state:State)->Step { +fn b143_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out.state=state.begin(); let mut count=0usize;loop {let mark=self.mark();let before=out.state; -let mut child=self.e116_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} +let mut child=self.e144_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} out.events=self.join(out.events,child.events);count+=1; if before.position::()==out.state.position::() {break;} if count>=1 {break;} @@ -3275,192 +3775,192 @@ if count>1 {out.ok=false;out.state=state;let d=self.diag_fail(state.position::Step { -let mut out=self.b116_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e144_c(&mut self,state:State)->Step { +let mut out=self.b144_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,116,9); +out.events=self.relabel_token(out.events,144,9); } else {self.display_failures(state.consumed.max(state.matched),&["'as'"]);} out } -fn b116_c(&mut self,mut state:State)->Step { +fn b144_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"as",true,47,false,"as"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'as'");} out } -fn e117_c(&mut self,state:State)->Step { -let mut out=self.b117_c(state); +fn e145_c(&mut self,state:State)->Step { +let mut out=self.b145_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&["'Boolean'", "'Number'", "'Object'", "'String'", "'boolean'", "'number'", "'object'", "'string'"]);} out } -fn b117_c(&mut self,mut state:State)->Step { +fn b145_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); -out=self.e118_c(out.state); +out=self.e146_c(out.state); out } -fn e118_c(&mut self,state:State)->Step { -let mut out=self.b118_c(state); +fn e146_c(&mut self,state:State)->Step { +let mut out=self.b146_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&["'Boolean'", "'Number'", "'Object'", "'String'", "'boolean'", "'number'", "'object'", "'string'"]);} out } -fn b118_c(&mut self,mut state:State)->Step { +fn b146_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out='choice: {let mark=self.mark();let mut diagnostic=Diag::NONE;let mut best:Option<(Step,[usize;2])>=None; -self.restore(mark);let mut child=self.e119_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=self.e147_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=self.e120_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=self.e148_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=self.e121_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=self.e149_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=self.e122_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=self.e150_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=self.e123_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=self.e151_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=self.e124_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=self.e152_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=self.e125_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=self.e153_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=self.e126_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=self.e154_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} self.restore(mark);break 'choice if let Some((mut child,effects))=best {self.replay_effects(effects);child.diag=diagnostic;child} else {out.ok=false;out.diag=diagnostic;out}; }; out } -fn e119_c(&mut self,state:State)->Step { -let mut out=self.b119_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e147_c(&mut self,state:State)->Step { +let mut out=self.b147_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,119,9); +out.events=self.relabel_token(out.events,147,9); } else {self.display_failures(state.consumed.max(state.matched),&["'number'"]);} out } -fn b119_c(&mut self,mut state:State)->Step { +fn b147_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"number",true,76,false,"number"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'number'");} out } -fn e120_c(&mut self,state:State)->Step { -let mut out=self.b120_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e148_c(&mut self,state:State)->Step { +let mut out=self.b148_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,120,9); +out.events=self.relabel_token(out.events,148,9); } else {self.display_failures(state.consumed.max(state.matched),&["'Number'"]);} out } -fn b120_c(&mut self,mut state:State)->Step { +fn b148_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"Number",true,35,false,"Number"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'Number'");} out } -fn e121_c(&mut self,state:State)->Step { -let mut out=self.b121_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e149_c(&mut self,state:State)->Step { +let mut out=self.b149_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,121,9); +out.events=self.relabel_token(out.events,149,9); } else {self.display_failures(state.consumed.max(state.matched),&["'string'"]);} out } -fn b121_c(&mut self,mut state:State)->Step { +fn b149_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"string",true,86,false,"string"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'string'");} out } -fn e122_c(&mut self,state:State)->Step { -let mut out=self.b122_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e150_c(&mut self,state:State)->Step { +let mut out=self.b150_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,122,9); +out.events=self.relabel_token(out.events,150,9); } else {self.display_failures(state.consumed.max(state.matched),&["'String'"]);} out } -fn b122_c(&mut self,mut state:State)->Step { +fn b150_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"String",true,39,false,"String"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'String'");} out } -fn e123_c(&mut self,state:State)->Step { -let mut out=self.b123_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e151_c(&mut self,state:State)->Step { +let mut out=self.b151_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,123,9); +out.events=self.relabel_token(out.events,151,9); } else {self.display_failures(state.consumed.max(state.matched),&["'boolean'"]);} out } -fn b123_c(&mut self,mut state:State)->Step { +fn b151_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"boolean",true,48,false,"boolean"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'boolean'");} out } -fn e124_c(&mut self,state:State)->Step { -let mut out=self.b124_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e152_c(&mut self,state:State)->Step { +let mut out=self.b152_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,124,9); +out.events=self.relabel_token(out.events,152,9); } else {self.display_failures(state.consumed.max(state.matched),&["'Boolean'"]);} out } -fn b124_c(&mut self,mut state:State)->Step { +fn b152_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"Boolean",true,31,false,"Boolean"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'Boolean'");} out } -fn e125_c(&mut self,state:State)->Step { -let mut out=self.b125_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e153_c(&mut self,state:State)->Step { +let mut out=self.b153_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,125,9); +out.events=self.relabel_token(out.events,153,9); } else {self.display_failures(state.consumed.max(state.matched),&["'object'"]);} out } -fn b125_c(&mut self,mut state:State)->Step { +fn b153_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"object",true,77,false,"object"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'object'");} out } -fn e126_c(&mut self,state:State)->Step { -let mut out=self.b126_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e154_c(&mut self,state:State)->Step { +let mut out=self.b154_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,126,9); +out.events=self.relabel_token(out.events,154,9); } else {self.display_failures(state.consumed.max(state.matched),&["'Object'"]);} out } -fn b126_c(&mut self,mut state:State)->Step { +fn b154_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"Object",true,36,false,"Object"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'Object'");} out } -fn e127_c(&mut self,state:State)->Step { -let mut out=self.b127_c(state); +fn e155_c(&mut self,state:State)->Step { +let mut out=self.b155_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b127_c(&mut self,mut state:State)->Step { +fn b155_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e128_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e156_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e130_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e158_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e128_c(&mut self,state:State)->Step { -let mut out=self.b128_c(state); +fn e156_c(&mut self,state:State)->Step { +let mut out=self.b156_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&["'as'"]);} out } -fn b128_c(&mut self,mut state:State)->Step { +fn b156_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out.state=state.begin(); let mut count=0usize;loop {let mark=self.mark();let before=out.state; -let mut child=self.e129_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} +let mut child=self.e157_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} out.events=self.join(out.events,child.events);count+=1; if before.position::()==out.state.position::() {break;} if count>=1 {break;} @@ -3470,132 +3970,132 @@ if count>1 {out.ok=false;out.state=state;let d=self.diag_fail(state.position::Step { -let mut out=self.b129_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e157_c(&mut self,state:State)->Step { +let mut out=self.b157_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,129,10); +out.events=self.relabel_token(out.events,157,10); } else {self.display_failures(state.consumed.max(state.matched),&["'as'"]);} out } -fn b129_c(&mut self,mut state:State)->Step { +fn b157_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"as",true,47,false,"as"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'as'");} out } -fn e130_c(&mut self,state:State)->Step { -let mut out=self.b130_c(state); +fn e158_c(&mut self,state:State)->Step { +let mut out=self.b158_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&["'Float'", "'Number'", "'float'", "'number'"]);} out } -fn b130_c(&mut self,mut state:State)->Step { +fn b158_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); -out=self.e131_c(out.state); +out=self.e159_c(out.state); out } -fn e131_c(&mut self,state:State)->Step { -let mut out=self.b131_c(state); +fn e159_c(&mut self,state:State)->Step { +let mut out=self.b159_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&["'Float'", "'Number'", "'float'", "'number'"]);} out } -fn b131_c(&mut self,mut state:State)->Step { +fn b159_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out='choice: {let mark=self.mark();let mut diagnostic=Diag::NONE;let mut best:Option<(Step,[usize;2])>=None; -self.restore(mark);let mut child=self.e132_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=self.e160_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=self.e133_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=self.e161_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=self.e134_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=self.e162_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=self.e135_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=self.e163_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} self.restore(mark);break 'choice if let Some((mut child,effects))=best {self.replay_effects(effects);child.diag=diagnostic;child} else {out.ok=false;out.diag=diagnostic;out}; }; out } -fn e132_c(&mut self,state:State)->Step { -let mut out=self.b132_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e160_c(&mut self,state:State)->Step { +let mut out=self.b160_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,132,10); +out.events=self.relabel_token(out.events,160,10); } else {self.display_failures(state.consumed.max(state.matched),&["'number'"]);} out } -fn b132_c(&mut self,mut state:State)->Step { +fn b160_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"number",true,76,false,"number"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'number'");} out } -fn e133_c(&mut self,state:State)->Step { -let mut out=self.b133_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e161_c(&mut self,state:State)->Step { +let mut out=self.b161_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,133,10); +out.events=self.relabel_token(out.events,161,10); } else {self.display_failures(state.consumed.max(state.matched),&["'Number'"]);} out } -fn b133_c(&mut self,mut state:State)->Step { +fn b161_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"Number",true,35,false,"Number"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'Number'");} out } -fn e134_c(&mut self,state:State)->Step { -let mut out=self.b134_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e162_c(&mut self,state:State)->Step { +let mut out=self.b162_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,134,10); +out.events=self.relabel_token(out.events,162,10); } else {self.display_failures(state.consumed.max(state.matched),&["'float'"]);} out } -fn b134_c(&mut self,mut state:State)->Step { +fn b162_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"float",true,61,false,"float"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'float'");} out } -fn e135_c(&mut self,state:State)->Step { -let mut out=self.b135_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e163_c(&mut self,state:State)->Step { +let mut out=self.b163_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,135,10); +out.events=self.relabel_token(out.events,163,10); } else {self.display_failures(state.consumed.max(state.matched),&["'Float'"]);} out } -fn b135_c(&mut self,mut state:State)->Step { +fn b163_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"Float",true,33,false,"Float"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'Float'");} out } -fn e136_c(&mut self,state:State)->Step { -let mut out=self.b136_c(state); +fn e164_c(&mut self,state:State)->Step { +let mut out=self.b164_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b136_c(&mut self,mut state:State)->Step { +fn b164_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e137_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e165_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e139_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e167_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e137_c(&mut self,state:State)->Step { -let mut out=self.b137_c(state); +fn e165_c(&mut self,state:State)->Step { +let mut out=self.b165_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&["'as'"]);} out } -fn b137_c(&mut self,mut state:State)->Step { +fn b165_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out.state=state.begin(); let mut count=0usize;loop {let mark=self.mark();let before=out.state; -let mut child=self.e138_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} +let mut child=self.e166_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} out.events=self.join(out.events,child.events);count+=1; if before.position::()==out.state.position::() {break;} if count>=1 {break;} @@ -3605,102 +4105,102 @@ if count>1 {out.ok=false;out.state=state;let d=self.diag_fail(state.position::Step { -let mut out=self.b138_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e166_c(&mut self,state:State)->Step { +let mut out=self.b166_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,138,11); +out.events=self.relabel_token(out.events,166,11); } else {self.display_failures(state.consumed.max(state.matched),&["'as'"]);} out } -fn b138_c(&mut self,mut state:State)->Step { +fn b166_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"as",true,47,false,"as"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'as'");} out } -fn e139_c(&mut self,state:State)->Step { -let mut out=self.b139_c(state); +fn e167_c(&mut self,state:State)->Step { +let mut out=self.b167_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&["'String'", "'string'"]);} out } -fn b139_c(&mut self,mut state:State)->Step { +fn b167_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); -out=self.e140_c(out.state); +out=self.e168_c(out.state); out } -fn e140_c(&mut self,state:State)->Step { -let mut out=self.b140_c(state); +fn e168_c(&mut self,state:State)->Step { +let mut out=self.b168_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&["'String'", "'string'"]);} out } -fn b140_c(&mut self,mut state:State)->Step { +fn b168_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out='choice: {let mark=self.mark();let mut diagnostic=Diag::NONE;let mut best:Option<(Step,[usize;2])>=None; -self.restore(mark);let mut child=self.e141_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=self.e169_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=self.e142_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=self.e170_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} self.restore(mark);break 'choice if let Some((mut child,effects))=best {self.replay_effects(effects);child.diag=diagnostic;child} else {out.ok=false;out.diag=diagnostic;out}; }; out } -fn e141_c(&mut self,state:State)->Step { -let mut out=self.b141_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e169_c(&mut self,state:State)->Step { +let mut out=self.b169_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,141,11); +out.events=self.relabel_token(out.events,169,11); } else {self.display_failures(state.consumed.max(state.matched),&["'string'"]);} out } -fn b141_c(&mut self,mut state:State)->Step { +fn b169_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"string",true,86,false,"string"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'string'");} out } -fn e142_c(&mut self,state:State)->Step { -let mut out=self.b142_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e170_c(&mut self,state:State)->Step { +let mut out=self.b170_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,142,11); +out.events=self.relabel_token(out.events,170,11); } else {self.display_failures(state.consumed.max(state.matched),&["'String'"]);} out } -fn b142_c(&mut self,mut state:State)->Step { +fn b170_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"String",true,39,false,"String"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'String'");} out -} -fn e143_c(&mut self,state:State)->Step { -let mut out=self.b143_c(state); +} +fn e171_c(&mut self,state:State)->Step { +let mut out=self.b171_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b143_c(&mut self,mut state:State)->Step { +fn b171_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e144_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e172_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e146_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e174_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e144_c(&mut self,state:State)->Step { -let mut out=self.b144_c(state); +fn e172_c(&mut self,state:State)->Step { +let mut out=self.b172_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&["'as'"]);} out } -fn b144_c(&mut self,mut state:State)->Step { +fn b172_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out.state=state.begin(); let mut count=0usize;loop {let mark=self.mark();let before=out.state; -let mut child=self.e145_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} +let mut child=self.e173_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} out.events=self.join(out.events,child.events);count+=1; if before.position::()==out.state.position::() {break;} if count>=1 {break;} @@ -3710,102 +4210,102 @@ if count>1 {out.ok=false;out.state=state;let d=self.diag_fail(state.position::Step { -let mut out=self.b145_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e173_c(&mut self,state:State)->Step { +let mut out=self.b173_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,145,12); +out.events=self.relabel_token(out.events,173,12); } else {self.display_failures(state.consumed.max(state.matched),&["'as'"]);} out } -fn b145_c(&mut self,mut state:State)->Step { +fn b173_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"as",true,47,false,"as"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'as'");} out } -fn e146_c(&mut self,state:State)->Step { -let mut out=self.b146_c(state); +fn e174_c(&mut self,state:State)->Step { +let mut out=self.b174_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&["'Boolean'", "'boolean'"]);} out } -fn b146_c(&mut self,mut state:State)->Step { +fn b174_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); -out=self.e147_c(out.state); +out=self.e175_c(out.state); out } -fn e147_c(&mut self,state:State)->Step { -let mut out=self.b147_c(state); +fn e175_c(&mut self,state:State)->Step { +let mut out=self.b175_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&["'Boolean'", "'boolean'"]);} out } -fn b147_c(&mut self,mut state:State)->Step { +fn b175_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out='choice: {let mark=self.mark();let mut diagnostic=Diag::NONE;let mut best:Option<(Step,[usize;2])>=None; -self.restore(mark);let mut child=self.e148_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=self.e176_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=self.e149_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=self.e177_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} self.restore(mark);break 'choice if let Some((mut child,effects))=best {self.replay_effects(effects);child.diag=diagnostic;child} else {out.ok=false;out.diag=diagnostic;out}; }; out } -fn e148_c(&mut self,state:State)->Step { -let mut out=self.b148_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e176_c(&mut self,state:State)->Step { +let mut out=self.b176_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,148,12); +out.events=self.relabel_token(out.events,176,12); } else {self.display_failures(state.consumed.max(state.matched),&["'boolean'"]);} out } -fn b148_c(&mut self,mut state:State)->Step { +fn b176_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"boolean",true,48,false,"boolean"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'boolean'");} out } -fn e149_c(&mut self,state:State)->Step { -let mut out=self.b149_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e177_c(&mut self,state:State)->Step { +let mut out=self.b177_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,149,12); +out.events=self.relabel_token(out.events,177,12); } else {self.display_failures(state.consumed.max(state.matched),&["'Boolean'"]);} out } -fn b149_c(&mut self,mut state:State)->Step { +fn b177_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"Boolean",true,31,false,"Boolean"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'Boolean'");} out } -fn e150_c(&mut self,state:State)->Step { -let mut out=self.b150_c(state); +fn e178_c(&mut self,state:State)->Step { +let mut out=self.b178_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b150_c(&mut self,mut state:State)->Step { +fn b178_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e151_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e179_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e153_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e181_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e151_c(&mut self,state:State)->Step { -let mut out=self.b151_c(state); +fn e179_c(&mut self,state:State)->Step { +let mut out=self.b179_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&["'as'"]);} out } -fn b151_c(&mut self,mut state:State)->Step { +fn b179_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out.state=state.begin(); let mut count=0usize;loop {let mark=self.mark();let before=out.state; -let mut child=self.e152_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} +let mut child=self.e180_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} out.events=self.join(out.events,child.events);count+=1; if before.position::()==out.state.position::() {break;} if count>=1 {break;} @@ -3815,268 +4315,268 @@ if count>1 {out.ok=false;out.state=state;let d=self.diag_fail(state.position::Step { -let mut out=self.b152_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e180_c(&mut self,state:State)->Step { +let mut out=self.b180_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,152,13); +out.events=self.relabel_token(out.events,180,13); } else {self.display_failures(state.consumed.max(state.matched),&["'as'"]);} out } -fn b152_c(&mut self,mut state:State)->Step { +fn b180_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"as",true,47,false,"as"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'as'");} out } -fn e153_c(&mut self,state:State)->Step { -let mut out=self.b153_c(state); +fn e181_c(&mut self,state:State)->Step { +let mut out=self.b181_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&["'Object'", "'object'"]);} out } -fn b153_c(&mut self,mut state:State)->Step { +fn b181_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); -out=self.e154_c(out.state); +out=self.e182_c(out.state); out } -fn e154_c(&mut self,state:State)->Step { -let mut out=self.b154_c(state); +fn e182_c(&mut self,state:State)->Step { +let mut out=self.b182_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&["'Object'", "'object'"]);} out } -fn b154_c(&mut self,mut state:State)->Step { +fn b182_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out='choice: {let mark=self.mark();let mut diagnostic=Diag::NONE;let mut best:Option<(Step,[usize;2])>=None; -self.restore(mark);let mut child=self.e155_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=self.e183_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=self.e156_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=self.e184_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} self.restore(mark);break 'choice if let Some((mut child,effects))=best {self.replay_effects(effects);child.diag=diagnostic;child} else {out.ok=false;out.diag=diagnostic;out}; }; out } -fn e155_c(&mut self,state:State)->Step { -let mut out=self.b155_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e183_c(&mut self,state:State)->Step { +let mut out=self.b183_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,155,13); +out.events=self.relabel_token(out.events,183,13); } else {self.display_failures(state.consumed.max(state.matched),&["'object'"]);} out } -fn b155_c(&mut self,mut state:State)->Step { +fn b183_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"object",true,77,false,"object"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'object'");} out } -fn e156_c(&mut self,state:State)->Step { -let mut out=self.b156_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e184_c(&mut self,state:State)->Step { +let mut out=self.b184_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,156,13); +out.events=self.relabel_token(out.events,184,13); } else {self.display_failures(state.consumed.max(state.matched),&["'Object'"]);} out } -fn b156_c(&mut self,mut state:State)->Step { +fn b184_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"Object",true,36,false,"Object"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'Object'");} out } -fn e157_c(&mut self,state:State)->Step { -let mut out=self.b157_c(state); +fn e185_c(&mut self,state:State)->Step { +let mut out=self.b185_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b157_c(&mut self,mut state:State)->Step { +fn b185_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e158_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e186_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e159_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e187_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e160_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e188_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e158_c(&mut self,state:State)->Step { -let mut out=self.b158_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e186_c(&mut self,state:State)->Step { +let mut out=self.b186_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,158,14); +out.events=self.relabel_token(out.events,186,14); } else {self.display_failures(state.consumed.max(state.matched),&["'if'"]);} out } -fn b158_c(&mut self,mut state:State)->Step { +fn b186_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"if",true,63,false,"if"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'if'");} out } -fn e159_c(&mut self,state:State)->Step { -let mut out=self.b159_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e187_c(&mut self,state:State)->Step { +let mut out=self.b187_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,159,14); +out.events=self.relabel_token(out.events,187,14); } else {self.display_failures(state.consumed.max(state.matched),&["'not'"]);} out } -fn b159_c(&mut self,mut state:State)->Step { +fn b187_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"not",true,75,false,"not"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'not'");} out } -fn e160_c(&mut self,state:State)->Step { -let mut out=self.b160_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e188_c(&mut self,state:State)->Step { +let mut out=self.b188_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,160,14); +out.events=self.relabel_token(out.events,188,14); } else {self.display_failures(state.consumed.max(state.matched),&["'exists'"]);} out } -fn b160_c(&mut self,mut state:State)->Step { +fn b188_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"exists",true,57,false,"exists"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'exists'");} out } -fn e161_c(&mut self,state:State)->Step { -let mut out=self.b161_c(state); +fn e189_c(&mut self,state:State)->Step { +let mut out=self.b189_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b161_c(&mut self,mut state:State)->Step { +fn b189_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e162_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e190_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e163_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e191_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e164_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e192_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e162_c(&mut self,state:State)->Step { -let mut out=self.b162_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e190_c(&mut self,state:State)->Step { +let mut out=self.b190_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,162,15); +out.events=self.relabel_token(out.events,190,15); } else {self.display_failures(state.consumed.max(state.matched),&["'description'"]);} out } -fn b162_c(&mut self,mut state:State)->Step { +fn b190_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"description",true,54,false,"description"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'description'");} out } -fn e163_c(&mut self,state:State)->Step { -let mut out=self.b163_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e191_c(&mut self,state:State)->Step { +let mut out=self.b191_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,163,15); +out.events=self.relabel_token(out.events,191,15); } else {self.display_failures(state.consumed.max(state.matched),&["'='"]);} out } -fn b163_c(&mut self,mut state:State)->Step { +fn b191_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"=",true,25,false,"="); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'='");} out } -fn e164_c(&mut self,state:State)->Step { -let mut out=self.b164_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e192_c(&mut self,state:State)->Step { +let mut out=self.b192_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,164,15); +out.events=self.relabel_token(out.events,192,15); } else {self.display_failures(state.consumed.max(state.matched),&["STRINGParser"]);} out } -fn b164_c(&mut self,mut state:State)->Step { +fn b192_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.token_2::(out.state,"STRING","STRINGParser"); out } -fn e165_c(&mut self,state:State)->Step { +fn e193_c(&mut self,state:State)->Step { let mark=self.mark(); -let key=Key {expression:165,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} -self.display_enter(state.consumed.max(state.matched));let mut out=self.b165_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +let key=Key {expression:193,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} +self.display_enter(state.consumed.max(state.matched));let mut out=self.b193_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:false,text:false}); } else {self.restore(mark);self.display_failures(state.consumed.max(state.matched),&[]);} if (out.ok && true) || (!out.ok && true) {self.store(key,out,mark);}self.display_leave(); out } -fn b165_c(&mut self,mut state:State)->Step { +fn b193_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e166_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e194_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e167_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e195_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e168_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e196_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e169_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e197_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e171_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e199_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e166_c(&mut self,state:State)->Step { -let mut out=self.b166_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e194_c(&mut self,state:State)->Step { +let mut out=self.b194_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,166,16); +out.events=self.relabel_token(out.events,194,16); } else {self.display_failures(state.consumed.max(state.matched),&["'@'"]);} out } -fn b166_c(&mut self,mut state:State)->Step { +fn b194_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"@",true,30,false,"@"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'@'");} out } -fn e167_c(&mut self,state:State)->Step { -let mut out=self.b167_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e195_c(&mut self,state:State)->Step { +let mut out=self.b195_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,167,16); +out.events=self.relabel_token(out.events,195,16); } else {self.display_failures(state.consumed.max(state.matched),&["IDENTIFIERParser"]);} out } -fn b167_c(&mut self,mut state:State)->Step { +fn b195_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.token_1::(out.state,"IDENTIFIER","IDENTIFIERParser"); out } -fn e168_c(&mut self,state:State)->Step { -let mut out=self.b168_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e196_c(&mut self,state:State)->Step { +let mut out=self.b196_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,168,16); +out.events=self.relabel_token(out.events,196,16); } else {self.display_failures(state.consumed.max(state.matched),&["'('"]);} out } -fn b168_c(&mut self,mut state:State)->Step { +fn b196_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"(",true,4,false,"("); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'('");} out } -fn e169_c(&mut self,state:State)->Step { -let mut out=self.b169_c(state); +fn e197_c(&mut self,state:State)->Step { +let mut out=self.b197_c(state); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:false,text:false}); } else {self.display_failures(state.consumed.max(state.matched),&["Optional"]);} out } -fn b169_c(&mut self,mut state:State)->Step { +fn b197_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out.state=state.begin(); let mut count=0usize;loop {let mark=self.mark();let before=out.state; -let mut child=self.e170_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} +let mut child=self.e198_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} out.events=self.join(out.events,child.events);count+=1; if before.position::()==out.state.position::() {break;} if count>=1 {break;} @@ -4086,75 +4586,75 @@ if count>1 {out.ok=false;out.state=state;let d=self.diag_fail(state.position::Step { -let mut out=self.b170_c(state); +fn e198_c(&mut self,state:State)->Step { +let mut out=self.b198_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b170_c(&mut self,mut state:State)->Step { +fn b198_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r17_c(out.state); out } -fn e171_c(&mut self,state:State)->Step { -let mut out=self.b171_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e199_c(&mut self,state:State)->Step { +let mut out=self.b199_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,171,16); +out.events=self.relabel_token(out.events,199,16); } else {self.display_failures(state.consumed.max(state.matched),&["')'"]);} out } -fn b171_c(&mut self,mut state:State)->Step { +fn b199_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,")",true,5,false,")"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"')'");} out } -fn e172_c(&mut self,state:State)->Step { +fn e200_c(&mut self,state:State)->Step { let mark=self.mark(); -let key=Key {expression:172,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} -self.display_enter(state.consumed.max(state.matched));let mut out=self.b172_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +let key=Key {expression:200,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} +self.display_enter(state.consumed.max(state.matched));let mut out=self.b200_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:false,text:false}); } else {self.restore(mark);self.display_failures(state.consumed.max(state.matched),&[]);} if (out.ok && true) || (!out.ok && true) {self.store(key,out,mark);}self.display_leave(); out } -fn b172_c(&mut self,mut state:State)->Step { +fn b200_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e173_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e201_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e174_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e202_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e173_c(&mut self,state:State)->Step { -let mut out=self.b173_c(state); +fn e201_c(&mut self,state:State)->Step { +let mut out=self.b201_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b173_c(&mut self,mut state:State)->Step { +fn b201_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r18_c(out.state); out } -fn e174_c(&mut self,state:State)->Step { -let mut out=self.b174_c(state); +fn e202_c(&mut self,state:State)->Step { +let mut out=self.b202_c(state); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:false,text:false}); } else {self.display_failures(state.consumed.max(state.matched),&["','"]);} out } -fn b174_c(&mut self,mut state:State)->Step { +fn b202_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out.state=state.begin(); let mut count=0usize;loop {let mark=self.mark();let before=out.state; -let mut child=self.e175_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} +let mut child=self.e203_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} out.events=self.join(out.events,child.events);count+=1; if before.position::()==out.state.position::() {break;} } @@ -4163,260 +4663,260 @@ if false {out.ok=false;out.state=state;let d=self.diag_fail(state.position::Step { -let mut out=self.b175_c(state); +fn e203_c(&mut self,state:State)->Step { +let mut out=self.b203_c(state); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:true,text:false}); } else {self.display_failures(state.consumed.max(state.matched),&["','", "'='"]);} out } -fn b175_c(&mut self,mut state:State)->Step { +fn b203_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e176_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e204_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e177_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e205_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e176_c(&mut self,state:State)->Step { -let mut out=self.b176_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e204_c(&mut self,state:State)->Step { +let mut out=self.b204_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,176,17); +out.events=self.relabel_token(out.events,204,17); } else {self.display_failures(state.consumed.max(state.matched),&["','"]);} out } -fn b176_c(&mut self,mut state:State)->Step { +fn b204_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,",",true,8,false,","); if !out.ok {self.display_fail(state.consumed.max(state.matched),"','");} out } -fn e177_c(&mut self,state:State)->Step { -let mut out=self.b177_c(state); +fn e205_c(&mut self,state:State)->Step { +let mut out=self.b205_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b177_c(&mut self,mut state:State)->Step { +fn b205_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r18_c(out.state); out } -fn e178_c(&mut self,state:State)->Step { +fn e206_c(&mut self,state:State)->Step { let mark=self.mark(); -let key=Key {expression:178,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} -self.display_enter(state.consumed.max(state.matched));let mut out=self.b178_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +let key=Key {expression:206,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} +self.display_enter(state.consumed.max(state.matched));let mut out=self.b206_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:true,text:false}); } else {self.restore(mark);self.display_failures(state.consumed.max(state.matched),&[]);} if (out.ok && true) || (!out.ok && true) {self.store(key,out,mark);}self.display_leave(); out } -fn b178_c(&mut self,mut state:State)->Step { +fn b206_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e179_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e207_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e180_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e208_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e181_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e209_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e179_c(&mut self,state:State)->Step { -let mut out=self.b179_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e207_c(&mut self,state:State)->Step { +let mut out=self.b207_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,179,18); +out.events=self.relabel_token(out.events,207,18); } else {self.display_failures(state.consumed.max(state.matched),&["IDENTIFIERParser"]);} out } -fn b179_c(&mut self,mut state:State)->Step { +fn b207_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.token_1::(out.state,"IDENTIFIER","IDENTIFIERParser"); out } -fn e180_c(&mut self,state:State)->Step { -let mut out=self.b180_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e208_c(&mut self,state:State)->Step { +let mut out=self.b208_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,180,18); +out.events=self.relabel_token(out.events,208,18); } else {self.display_failures(state.consumed.max(state.matched),&["'='"]);} out } -fn b180_c(&mut self,mut state:State)->Step { +fn b208_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"=",true,25,false,"="); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'='");} out } -fn e181_c(&mut self,state:State)->Step { -let mut out=self.b181_c(state); +fn e209_c(&mut self,state:State)->Step { +let mut out=self.b209_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b181_c(&mut self,mut state:State)->Step { +fn b209_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r123_c(out.state); out } -fn e182_c(&mut self,state:State)->Step { +fn e210_c(&mut self,state:State)->Step { let mark=self.mark(); -let key=Key {expression:182,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} -self.display_enter(state.consumed.max(state.matched));let mut out=self.b182_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +let key=Key {expression:210,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} +self.display_enter(state.consumed.max(state.matched));let mut out=self.b210_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { } else {self.restore(mark);self.display_failures(state.consumed.max(state.matched),&[]);} if (out.ok && true) || (!out.ok && true) {self.store(key,out,mark);}self.display_leave(); out } -fn b182_c(&mut self,mut state:State)->Step { +fn b210_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out='choice: {let mark=self.mark();let mut diagnostic=Diag::NONE;let mut best:Option<(Step,[usize;2])>=None; -self.restore(mark);let mut child=self.e183_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=self.e211_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=self.e184_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=self.e212_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=self.e185_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=self.e213_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=self.e186_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=self.e214_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} self.restore(mark);break 'choice if let Some((mut child,effects))=best {self.replay_effects(effects);child.diag=diagnostic;child} else {out.ok=false;out.diag=diagnostic;out}; }; out } -fn e183_c(&mut self,state:State)->Step { -let mut out=self.b183_c(state); +fn e211_c(&mut self,state:State)->Step { +let mut out=self.b211_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b183_c(&mut self,mut state:State)->Step { +fn b211_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r20_c(out.state); out } -fn e184_c(&mut self,state:State)->Step { -let mut out=self.b184_c(state); +fn e212_c(&mut self,state:State)->Step { +let mut out=self.b212_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b184_c(&mut self,mut state:State)->Step { +fn b212_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r21_c(out.state); out } -fn e185_c(&mut self,state:State)->Step { -let mut out=self.b185_c(state); +fn e213_c(&mut self,state:State)->Step { +let mut out=self.b213_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b185_c(&mut self,mut state:State)->Step { +fn b213_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r22_c(out.state); out } -fn e186_c(&mut self,state:State)->Step { -let mut out=self.b186_c(state); +fn e214_c(&mut self,state:State)->Step { +let mut out=self.b214_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b186_c(&mut self,mut state:State)->Step { +fn b214_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r23_c(out.state); out } -fn e187_c(&mut self,state:State)->Step { +fn e215_c(&mut self,state:State)->Step { let mark=self.mark(); -let key=Key {expression:187,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} -self.display_enter(state.consumed.max(state.matched));let mut out=self.b187_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +let key=Key {expression:215,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} +self.display_enter(state.consumed.max(state.matched));let mut out=self.b215_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:false,text:false}); } else {self.restore(mark);self.display_failures(state.consumed.max(state.matched),&[]);} if (out.ok && true) || (!out.ok && true) {self.store(key,out,mark);}self.display_leave(); out } -fn b187_c(&mut self,mut state:State)->Step { +fn b215_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e188_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e216_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e189_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e217_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e190_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e218_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e191_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e219_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e193_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e221_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e194_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e222_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e195_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e223_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e196_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e224_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e188_c(&mut self,state:State)->Step { -let mut out=self.b188_c(state); +fn e216_c(&mut self,state:State)->Step { +let mut out=self.b216_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b188_c(&mut self,mut state:State)->Step { +fn b216_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r26_c(out.state); out } -fn e189_c(&mut self,state:State)->Step { -let mut out=self.b189_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e217_c(&mut self,state:State)->Step { +let mut out=self.b217_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,189,20); -out.events=self.event(Event::Capture {site:27,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.relabel_token(out.events,217,20); +out.events=self.event(Event::Capture {site:37,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["IDENTIFIERParser", "__CaptureSite"]);} out } -fn b189_c(&mut self,mut state:State)->Step { +fn b217_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.token_1::(out.state,"IDENTIFIER","IDENTIFIERParser"); out } -fn e190_c(&mut self,state:State)->Step { -let mut out=self.b190_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e218_c(&mut self,state:State)->Step { +let mut out=self.b218_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,190,20); +out.events=self.relabel_token(out.events,218,20); } else {self.display_failures(state.consumed.max(state.matched),&["'('"]);} out } -fn b190_c(&mut self,mut state:State)->Step { +fn b218_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"(",true,4,false,"("); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'('");} out } -fn e191_c(&mut self,state:State)->Step { -let mut out=self.b191_c(state); +fn e219_c(&mut self,state:State)->Step { +let mut out=self.b219_c(state); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:true,text:false}); } else {self.display_failures(state.consumed.max(state.matched),&["Optional"]);} out } -fn b191_c(&mut self,mut state:State)->Step { +fn b219_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out.state=state.begin(); let mut count=0usize;loop {let mark=self.mark();let before=out.state; -let mut child=self.e192_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} +let mut child=self.e220_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} out.events=self.join(out.events,child.events);count+=1; if before.position::()==out.state.position::() {break;} if count>=1 {break;} @@ -4426,152 +4926,152 @@ if count>1 {out.ok=false;out.state=state;let d=self.diag_fail(state.position::Step { -let mut out=self.b192_c(state); +fn e220_c(&mut self,state:State)->Step { +let mut out=self.b220_c(state); if out.ok { -out.events=self.event(Event::Capture {site:28,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:38,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b192_c(&mut self,mut state:State)->Step { +fn b220_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r24_c(out.state); out } -fn e193_c(&mut self,state:State)->Step { -let mut out=self.b193_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e221_c(&mut self,state:State)->Step { +let mut out=self.b221_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,193,20); +out.events=self.relabel_token(out.events,221,20); } else {self.display_failures(state.consumed.max(state.matched),&["')'"]);} out } -fn b193_c(&mut self,mut state:State)->Step { +fn b221_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,")",true,5,false,")"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"')'");} out } -fn e194_c(&mut self,state:State)->Step { -let mut out=self.b194_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e222_c(&mut self,state:State)->Step { +let mut out=self.b222_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,194,20); +out.events=self.relabel_token(out.events,222,20); } else {self.display_failures(state.consumed.max(state.matched),&["'{'"]);} out } -fn b194_c(&mut self,mut state:State)->Step { +fn b222_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"{",true,95,false,"{"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'{'");} out } -fn e195_c(&mut self,state:State)->Step { -let mut out=self.b195_c(state); +fn e223_c(&mut self,state:State)->Step { +let mut out=self.b223_c(state); if out.ok { -out.events=self.event(Event::Capture {site:29,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:39,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b195_c(&mut self,mut state:State)->Step { +fn b223_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r40_c(out.state); out } -fn e196_c(&mut self,state:State)->Step { -let mut out=self.b196_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e224_c(&mut self,state:State)->Step { +let mut out=self.b224_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,196,20); +out.events=self.relabel_token(out.events,224,20); } else {self.display_failures(state.consumed.max(state.matched),&["'}'"]);} out } -fn b196_c(&mut self,mut state:State)->Step { +fn b224_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"}",true,97,false,"}"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'}'");} out } -fn e197_c(&mut self,state:State)->Step { +fn e225_c(&mut self,state:State)->Step { let mark=self.mark(); -let key=Key {expression:197,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} -self.display_enter(state.consumed.max(state.matched));let mut out=self.b197_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +let key=Key {expression:225,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} +self.display_enter(state.consumed.max(state.matched));let mut out=self.b225_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:false,text:false}); } else {self.restore(mark);self.display_failures(state.consumed.max(state.matched),&[]);} if (out.ok && true) || (!out.ok && true) {self.store(key,out,mark);}self.display_leave(); out } -fn b197_c(&mut self,mut state:State)->Step { +fn b225_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e198_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e226_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e199_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e227_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e200_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e228_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e201_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e229_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e203_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e231_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e204_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e232_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e205_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e233_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e206_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e234_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e198_c(&mut self,state:State)->Step { -let mut out=self.b198_c(state); +fn e226_c(&mut self,state:State)->Step { +let mut out=self.b226_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b198_c(&mut self,mut state:State)->Step { +fn b226_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r27_c(out.state); out } -fn e199_c(&mut self,state:State)->Step { -let mut out=self.b199_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e227_c(&mut self,state:State)->Step { +let mut out=self.b227_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,199,21); -out.events=self.event(Event::Capture {site:30,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.relabel_token(out.events,227,21); +out.events=self.event(Event::Capture {site:40,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["IDENTIFIERParser", "__CaptureSite"]);} out } -fn b199_c(&mut self,mut state:State)->Step { +fn b227_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.token_1::(out.state,"IDENTIFIER","IDENTIFIERParser"); out } -fn e200_c(&mut self,state:State)->Step { -let mut out=self.b200_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e228_c(&mut self,state:State)->Step { +let mut out=self.b228_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,200,21); +out.events=self.relabel_token(out.events,228,21); } else {self.display_failures(state.consumed.max(state.matched),&["'('"]);} out } -fn b200_c(&mut self,mut state:State)->Step { +fn b228_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"(",true,4,false,"("); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'('");} out } -fn e201_c(&mut self,state:State)->Step { -let mut out=self.b201_c(state); +fn e229_c(&mut self,state:State)->Step { +let mut out=self.b229_c(state); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:true,text:false}); } else {self.display_failures(state.consumed.max(state.matched),&["Optional"]);} out } -fn b201_c(&mut self,mut state:State)->Step { +fn b229_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out.state=state.begin(); let mut count=0usize;loop {let mark=self.mark();let before=out.state; -let mut child=self.e202_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} +let mut child=self.e230_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} out.events=self.join(out.events,child.events);count+=1; if before.position::()==out.state.position::() {break;} if count>=1 {break;} @@ -4581,152 +5081,152 @@ if count>1 {out.ok=false;out.state=state;let d=self.diag_fail(state.position::Step { -let mut out=self.b202_c(state); +fn e230_c(&mut self,state:State)->Step { +let mut out=self.b230_c(state); if out.ok { -out.events=self.event(Event::Capture {site:31,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:41,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b202_c(&mut self,mut state:State)->Step { +fn b230_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r24_c(out.state); out } -fn e203_c(&mut self,state:State)->Step { -let mut out=self.b203_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e231_c(&mut self,state:State)->Step { +let mut out=self.b231_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,203,21); +out.events=self.relabel_token(out.events,231,21); } else {self.display_failures(state.consumed.max(state.matched),&["')'"]);} out } -fn b203_c(&mut self,mut state:State)->Step { +fn b231_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,")",true,5,false,")"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"')'");} out } -fn e204_c(&mut self,state:State)->Step { -let mut out=self.b204_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e232_c(&mut self,state:State)->Step { +let mut out=self.b232_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,204,21); +out.events=self.relabel_token(out.events,232,21); } else {self.display_failures(state.consumed.max(state.matched),&["'{'"]);} out } -fn b204_c(&mut self,mut state:State)->Step { +fn b232_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"{",true,95,false,"{"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'{'");} out } -fn e205_c(&mut self,state:State)->Step { -let mut out=self.b205_c(state); +fn e233_c(&mut self,state:State)->Step { +let mut out=self.b233_c(state); if out.ok { -out.events=self.event(Event::Capture {site:32,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:42,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b205_c(&mut self,mut state:State)->Step { +fn b233_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r89_c(out.state); out } -fn e206_c(&mut self,state:State)->Step { -let mut out=self.b206_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e234_c(&mut self,state:State)->Step { +let mut out=self.b234_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,206,21); +out.events=self.relabel_token(out.events,234,21); } else {self.display_failures(state.consumed.max(state.matched),&["'}'"]);} out } -fn b206_c(&mut self,mut state:State)->Step { +fn b234_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"}",true,97,false,"}"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'}'");} out } -fn e207_c(&mut self,state:State)->Step { +fn e235_c(&mut self,state:State)->Step { let mark=self.mark(); -let key=Key {expression:207,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} -self.display_enter(state.consumed.max(state.matched));let mut out=self.b207_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +let key=Key {expression:235,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} +self.display_enter(state.consumed.max(state.matched));let mut out=self.b235_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:false,text:false}); } else {self.restore(mark);self.display_failures(state.consumed.max(state.matched),&[]);} if (out.ok && true) || (!out.ok && true) {self.store(key,out,mark);}self.display_leave(); out } -fn b207_c(&mut self,mut state:State)->Step { +fn b235_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e208_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e236_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e209_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e237_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e210_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e238_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e211_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e239_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e213_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e241_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e214_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e242_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e215_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e243_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e216_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e244_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e208_c(&mut self,state:State)->Step { -let mut out=self.b208_c(state); +fn e236_c(&mut self,state:State)->Step { +let mut out=self.b236_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b208_c(&mut self,mut state:State)->Step { +fn b236_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r28_c(out.state); out } -fn e209_c(&mut self,state:State)->Step { -let mut out=self.b209_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e237_c(&mut self,state:State)->Step { +let mut out=self.b237_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,209,22); -out.events=self.event(Event::Capture {site:33,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.relabel_token(out.events,237,22); +out.events=self.event(Event::Capture {site:43,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["IDENTIFIERParser", "__CaptureSite"]);} out } -fn b209_c(&mut self,mut state:State)->Step { +fn b237_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.token_1::(out.state,"IDENTIFIER","IDENTIFIERParser"); out } -fn e210_c(&mut self,state:State)->Step { -let mut out=self.b210_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e238_c(&mut self,state:State)->Step { +let mut out=self.b238_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,210,22); +out.events=self.relabel_token(out.events,238,22); } else {self.display_failures(state.consumed.max(state.matched),&["'('"]);} out } -fn b210_c(&mut self,mut state:State)->Step { +fn b238_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"(",true,4,false,"("); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'('");} out } -fn e211_c(&mut self,state:State)->Step { -let mut out=self.b211_c(state); +fn e239_c(&mut self,state:State)->Step { +let mut out=self.b239_c(state); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:true,text:false}); } else {self.display_failures(state.consumed.max(state.matched),&["Optional"]);} out } -fn b211_c(&mut self,mut state:State)->Step { +fn b239_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out.state=state.begin(); let mut count=0usize;loop {let mark=self.mark();let before=out.state; -let mut child=self.e212_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} +let mut child=self.e240_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} out.events=self.join(out.events,child.events);count+=1; if before.position::()==out.state.position::() {break;} if count>=1 {break;} @@ -4736,152 +5236,152 @@ if count>1 {out.ok=false;out.state=state;let d=self.diag_fail(state.position::Step { -let mut out=self.b212_c(state); +fn e240_c(&mut self,state:State)->Step { +let mut out=self.b240_c(state); if out.ok { -out.events=self.event(Event::Capture {site:34,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:44,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b212_c(&mut self,mut state:State)->Step { +fn b240_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r24_c(out.state); out } -fn e213_c(&mut self,state:State)->Step { -let mut out=self.b213_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e241_c(&mut self,state:State)->Step { +let mut out=self.b241_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,213,22); +out.events=self.relabel_token(out.events,241,22); } else {self.display_failures(state.consumed.max(state.matched),&["')'"]);} out } -fn b213_c(&mut self,mut state:State)->Step { +fn b241_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,")",true,5,false,")"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"')'");} out } -fn e214_c(&mut self,state:State)->Step { -let mut out=self.b214_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e242_c(&mut self,state:State)->Step { +let mut out=self.b242_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,214,22); +out.events=self.relabel_token(out.events,242,22); } else {self.display_failures(state.consumed.max(state.matched),&["'{'"]);} out } -fn b214_c(&mut self,mut state:State)->Step { +fn b242_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"{",true,95,false,"{"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'{'");} out } -fn e215_c(&mut self,state:State)->Step { -let mut out=self.b215_c(state); +fn e243_c(&mut self,state:State)->Step { +let mut out=self.b243_c(state); if out.ok { -out.events=self.event(Event::Capture {site:35,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:45,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b215_c(&mut self,mut state:State)->Step { +fn b243_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r94_c(out.state); out } -fn e216_c(&mut self,state:State)->Step { -let mut out=self.b216_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e244_c(&mut self,state:State)->Step { +let mut out=self.b244_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,216,22); +out.events=self.relabel_token(out.events,244,22); } else {self.display_failures(state.consumed.max(state.matched),&["'}'"]);} out } -fn b216_c(&mut self,mut state:State)->Step { +fn b244_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"}",true,97,false,"}"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'}'");} out } -fn e217_c(&mut self,state:State)->Step { +fn e245_c(&mut self,state:State)->Step { let mark=self.mark(); -let key=Key {expression:217,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} -self.display_enter(state.consumed.max(state.matched));let mut out=self.b217_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +let key=Key {expression:245,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} +self.display_enter(state.consumed.max(state.matched));let mut out=self.b245_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:false,text:false}); } else {self.restore(mark);self.display_failures(state.consumed.max(state.matched),&[]);} if (out.ok && true) || (!out.ok && true) {self.store(key,out,mark);}self.display_leave(); out } -fn b217_c(&mut self,mut state:State)->Step { +fn b245_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e218_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e246_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e219_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e247_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e220_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e248_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e221_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e249_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e223_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e251_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e224_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e252_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e225_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e253_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e226_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e254_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e218_c(&mut self,state:State)->Step { -let mut out=self.b218_c(state); +fn e246_c(&mut self,state:State)->Step { +let mut out=self.b246_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b218_c(&mut self,mut state:State)->Step { +fn b246_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r29_c(out.state); out } -fn e219_c(&mut self,state:State)->Step { -let mut out=self.b219_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e247_c(&mut self,state:State)->Step { +let mut out=self.b247_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,219,23); -out.events=self.event(Event::Capture {site:36,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.relabel_token(out.events,247,23); +out.events=self.event(Event::Capture {site:46,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["IDENTIFIERParser", "__CaptureSite"]);} out } -fn b219_c(&mut self,mut state:State)->Step { +fn b247_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.token_1::(out.state,"IDENTIFIER","IDENTIFIERParser"); out } -fn e220_c(&mut self,state:State)->Step { -let mut out=self.b220_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e248_c(&mut self,state:State)->Step { +let mut out=self.b248_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,220,23); +out.events=self.relabel_token(out.events,248,23); } else {self.display_failures(state.consumed.max(state.matched),&["'('"]);} out } -fn b220_c(&mut self,mut state:State)->Step { +fn b248_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"(",true,4,false,"("); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'('");} out } -fn e221_c(&mut self,state:State)->Step { -let mut out=self.b221_c(state); +fn e249_c(&mut self,state:State)->Step { +let mut out=self.b249_c(state); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:true,text:false}); } else {self.display_failures(state.consumed.max(state.matched),&["Optional"]);} out } -fn b221_c(&mut self,mut state:State)->Step { +fn b249_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out.state=state.begin(); let mut count=0usize;loop {let mark=self.mark();let before=out.state; -let mut child=self.e222_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} +let mut child=self.e250_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} out.events=self.join(out.events,child.events);count+=1; if before.position::()==out.state.position::() {break;} if count>=1 {break;} @@ -4891,115 +5391,115 @@ if count>1 {out.ok=false;out.state=state;let d=self.diag_fail(state.position::Step { -let mut out=self.b222_c(state); +fn e250_c(&mut self,state:State)->Step { +let mut out=self.b250_c(state); if out.ok { -out.events=self.event(Event::Capture {site:37,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:47,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b222_c(&mut self,mut state:State)->Step { +fn b250_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r24_c(out.state); out } -fn e223_c(&mut self,state:State)->Step { -let mut out=self.b223_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e251_c(&mut self,state:State)->Step { +let mut out=self.b251_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,223,23); +out.events=self.relabel_token(out.events,251,23); } else {self.display_failures(state.consumed.max(state.matched),&["')'"]);} out } -fn b223_c(&mut self,mut state:State)->Step { +fn b251_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,")",true,5,false,")"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"')'");} out } -fn e224_c(&mut self,state:State)->Step { -let mut out=self.b224_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e252_c(&mut self,state:State)->Step { +let mut out=self.b252_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,224,23); +out.events=self.relabel_token(out.events,252,23); } else {self.display_failures(state.consumed.max(state.matched),&["'{'"]);} out } -fn b224_c(&mut self,mut state:State)->Step { +fn b252_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"{",true,95,false,"{"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'{'");} out } -fn e225_c(&mut self,state:State)->Step { -let mut out=self.b225_c(state); +fn e253_c(&mut self,state:State)->Step { +let mut out=self.b253_c(state); if out.ok { -out.events=self.event(Event::Capture {site:38,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:48,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b225_c(&mut self,mut state:State)->Step { +fn b253_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r105_c(out.state); out } -fn e226_c(&mut self,state:State)->Step { -let mut out=self.b226_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e254_c(&mut self,state:State)->Step { +let mut out=self.b254_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,226,23); +out.events=self.relabel_token(out.events,254,23); } else {self.display_failures(state.consumed.max(state.matched),&["'}'"]);} out } -fn b226_c(&mut self,mut state:State)->Step { +fn b254_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"}",true,97,false,"}"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'}'");} out } -fn e227_c(&mut self,state:State)->Step { +fn e255_c(&mut self,state:State)->Step { let mark=self.mark(); -let key=Key {expression:227,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} -self.display_enter(state.consumed.max(state.matched));let mut out=self.b227_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +let key=Key {expression:255,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} +self.display_enter(state.consumed.max(state.matched));let mut out=self.b255_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:false,text:false}); } else {self.restore(mark);self.display_failures(state.consumed.max(state.matched),&[]);} if (out.ok && true) || (!out.ok && true) {self.store(key,out,mark);}self.display_leave(); out } -fn b227_c(&mut self,mut state:State)->Step { +fn b255_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e228_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e256_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e229_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e257_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e228_c(&mut self,state:State)->Step { -let mut out=self.b228_c(state); +fn e256_c(&mut self,state:State)->Step { +let mut out=self.b256_c(state); if out.ok { -out.events=self.event(Event::Capture {site:39,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:49,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["'$'"]);} out } -fn b228_c(&mut self,mut state:State)->Step { +fn b256_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r25_c(out.state); out } -fn e229_c(&mut self,state:State)->Step { -let mut out=self.b229_c(state); +fn e257_c(&mut self,state:State)->Step { +let mut out=self.b257_c(state); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:false,text:false}); } else {self.display_failures(state.consumed.max(state.matched),&["','"]);} out } -fn b229_c(&mut self,mut state:State)->Step { +fn b257_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out.state=state.begin(); let mut count=0usize;loop {let mark=self.mark();let before=out.state; -let mut child=self.e230_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} +let mut child=self.e258_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} out.events=self.join(out.events,child.events);count+=1; if before.position::()==out.state.position::() {break;} } @@ -5008,110 +5508,110 @@ if false {out.ok=false;out.state=state;let d=self.diag_fail(state.position::Step { -let mut out=self.b230_c(state); +fn e258_c(&mut self,state:State)->Step { +let mut out=self.b258_c(state); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:true,text:false}); } else {self.display_failures(state.consumed.max(state.matched),&["','"]);} out } -fn b230_c(&mut self,mut state:State)->Step { +fn b258_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e231_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e259_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e232_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e260_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e231_c(&mut self,state:State)->Step { -let mut out=self.b231_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e259_c(&mut self,state:State)->Step { +let mut out=self.b259_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,231,24); +out.events=self.relabel_token(out.events,259,24); } else {self.display_failures(state.consumed.max(state.matched),&["','"]);} out } -fn b231_c(&mut self,mut state:State)->Step { +fn b259_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,",",true,8,false,","); if !out.ok {self.display_fail(state.consumed.max(state.matched),"','");} out } -fn e232_c(&mut self,state:State)->Step { -let mut out=self.b232_c(state); +fn e260_c(&mut self,state:State)->Step { +let mut out=self.b260_c(state); if out.ok { -out.events=self.event(Event::Capture {site:40,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:50,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["'$'"]);} out } -fn b232_c(&mut self,mut state:State)->Step { +fn b260_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r25_c(out.state); out } -fn e233_c(&mut self,state:State)->Step { +fn e261_c(&mut self,state:State)->Step { let mark=self.mark(); -let key=Key {expression:233,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} -self.display_enter(state.consumed.max(state.matched));let mut out=self.b233_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +let key=Key {expression:261,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} +self.display_enter(state.consumed.max(state.matched));let mut out=self.b261_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { } else {self.restore(mark);self.display_failures(state.consumed.max(state.matched),&[]);} if (out.ok && true) || (!out.ok && true) {self.store(key,out,mark);}self.display_leave(); out } -fn b233_c(&mut self,mut state:State)->Step { +fn b261_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e234_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e262_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e235_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e263_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e236_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e264_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e234_c(&mut self,state:State)->Step { -let mut out=self.b234_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e262_c(&mut self,state:State)->Step { +let mut out=self.b262_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,234,25); +out.events=self.relabel_token(out.events,262,25); } else {self.display_failures(state.consumed.max(state.matched),&["'$'"]);} out } -fn b234_c(&mut self,mut state:State)->Step { +fn b262_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"$",true,2,false,"$"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'$'");} out } -fn e235_c(&mut self,state:State)->Step { -let mut out=self.b235_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e263_c(&mut self,state:State)->Step { +let mut out=self.b263_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,235,25); -out.events=self.event(Event::Capture {site:41,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.relabel_token(out.events,263,25); +out.events=self.event(Event::Capture {site:51,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["IDENTIFIERParser", "__CaptureSite"]);} out } -fn b235_c(&mut self,mut state:State)->Step { +fn b263_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.token_1::(out.state,"IDENTIFIER","IDENTIFIERParser"); out } -fn e236_c(&mut self,state:State)->Step { -let mut out=self.b236_c(state); +fn e264_c(&mut self,state:State)->Step { +let mut out=self.b264_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&["'as'"]);} out } -fn b236_c(&mut self,mut state:State)->Step { +fn b264_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out.state=state.begin(); let mut count=0usize;loop {let mark=self.mark();let before=out.state; -let mut child=self.e237_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} +let mut child=self.e265_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} out.events=self.join(out.events,child.events);count+=1; if before.position::()==out.state.position::() {break;} if count>=1 {break;} @@ -5121,307 +5621,307 @@ if count>1 {out.ok=false;out.state=state;let d=self.diag_fail(state.position::Step { -let mut out=self.b237_c(state); +fn e265_c(&mut self,state:State)->Step { +let mut out=self.b265_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&["'as'"]);} out } -fn b237_c(&mut self,mut state:State)->Step { +fn b265_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e238_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e266_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e239_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e267_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e238_c(&mut self,state:State)->Step { -let mut out=self.b238_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e266_c(&mut self,state:State)->Step { +let mut out=self.b266_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,238,25); +out.events=self.relabel_token(out.events,266,25); } else {self.display_failures(state.consumed.max(state.matched),&["'as'"]);} out } -fn b238_c(&mut self,mut state:State)->Step { +fn b266_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"as",true,47,false,"as"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'as'");} out } -fn e239_c(&mut self,state:State)->Step { -let mut out=self.b239_c(state); +fn e267_c(&mut self,state:State)->Step { +let mut out=self.b267_c(state); if out.ok { -out.events=self.event(Event::Capture {site:42,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:52,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b239_c(&mut self,mut state:State)->Step { +fn b267_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r30_c(out.state); out } -fn e240_c(&mut self,state:State)->Step { -let mut out=self.b240_c(state); +fn e268_c(&mut self,state:State)->Step { +let mut out=self.b268_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b240_c(&mut self,mut state:State)->Step { +fn b268_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out='choice: {let mark=self.mark();let mut diagnostic=Diag::NONE;let mut best:Option<(Step,[usize;2])>=None; -self.restore(mark);let mut child=self.e241_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=self.e269_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=self.e242_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=self.e270_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} self.restore(mark);break 'choice if let Some((mut child,effects))=best {self.replay_effects(effects);child.diag=diagnostic;child} else {out.ok=false;out.diag=diagnostic;out}; }; out } -fn e241_c(&mut self,state:State)->Step { -let mut out=self.b241_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e269_c(&mut self,state:State)->Step { +let mut out=self.b269_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,241,26); +out.events=self.relabel_token(out.events,269,26); } else {self.display_failures(state.consumed.max(state.matched),&["'number'"]);} out } -fn b241_c(&mut self,mut state:State)->Step { +fn b269_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"number",true,76,false,"number"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'number'");} out } -fn e242_c(&mut self,state:State)->Step { -let mut out=self.b242_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e270_c(&mut self,state:State)->Step { +let mut out=self.b270_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,242,26); +out.events=self.relabel_token(out.events,270,26); } else {self.display_failures(state.consumed.max(state.matched),&["'float'"]);} out } -fn b242_c(&mut self,mut state:State)->Step { +fn b270_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"float",true,61,false,"float"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'float'");} out } -fn e243_c(&mut self,state:State)->Step { -let mut out=self.b243_c(state); +fn e271_c(&mut self,state:State)->Step { +let mut out=self.b271_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b243_c(&mut self,mut state:State)->Step { +fn b271_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e244_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e272_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e244_c(&mut self,state:State)->Step { -let mut out=self.b244_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e272_c(&mut self,state:State)->Step { +let mut out=self.b272_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,244,27); +out.events=self.relabel_token(out.events,272,27); } else {self.display_failures(state.consumed.max(state.matched),&["'string'"]);} out } -fn b244_c(&mut self,mut state:State)->Step { +fn b272_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"string",true,86,false,"string"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'string'");} out } -fn e245_c(&mut self,state:State)->Step { -let mut out=self.b245_c(state); +fn e273_c(&mut self,state:State)->Step { +let mut out=self.b273_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b245_c(&mut self,mut state:State)->Step { +fn b273_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e246_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e274_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e246_c(&mut self,state:State)->Step { -let mut out=self.b246_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e274_c(&mut self,state:State)->Step { +let mut out=self.b274_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,246,28); +out.events=self.relabel_token(out.events,274,28); } else {self.display_failures(state.consumed.max(state.matched),&["'boolean'"]);} out } -fn b246_c(&mut self,mut state:State)->Step { +fn b274_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"boolean",true,48,false,"boolean"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'boolean'");} out } -fn e247_c(&mut self,state:State)->Step { -let mut out=self.b247_c(state); +fn e275_c(&mut self,state:State)->Step { +let mut out=self.b275_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b247_c(&mut self,mut state:State)->Step { +fn b275_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e248_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e276_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e248_c(&mut self,state:State)->Step { -let mut out=self.b248_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e276_c(&mut self,state:State)->Step { +let mut out=self.b276_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,248,29); +out.events=self.relabel_token(out.events,276,29); } else {self.display_failures(state.consumed.max(state.matched),&["'object'"]);} out } -fn b248_c(&mut self,mut state:State)->Step { +fn b276_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"object",true,77,false,"object"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'object'");} out } -fn e249_c(&mut self,state:State)->Step { +fn e277_c(&mut self,state:State)->Step { let mark=self.mark(); -let key=Key {expression:249,state,matched_mode:false,version:0};if let Some(hit)=self.lookup(key) {return hit;} -self.display_enter(state.consumed.max(state.matched));let mut out=self.b249_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +let key=Key {expression:277,state,matched_mode:false,version:0};if let Some(hit)=self.lookup(key) {return hit;} +self.display_enter(state.consumed.max(state.matched));let mut out=self.b277_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { } else {self.restore(mark);self.display_failures(state.consumed.max(state.matched),&[]);} if (out.ok && true) || (!out.ok && true) {self.store(key,out,mark);}self.display_leave(); out } -fn b249_c(&mut self,mut state:State)->Step { +fn b277_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out='choice: {let mark=self.mark();let mut diagnostic=Diag::NONE;let mut best:Option<(Step,[usize;2])>=None; let c0=self.input.cp_at(out.state.begin().position::()).map(|(c,_)|c); let ct=self.input.cp_at(self.skip_0::(out.state.begin()).position::()).map(|(c,_)|c); -self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(c0.is_some_and(|c| matches!(c as u32,102|110))) {self.guard_e250_c(out.state.begin())} else {self.e250_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(c0.is_some_and(|c| matches!(c as u32,102|110))) {self.guard_e278_c(out.state.begin())} else {self.e278_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,115))) {self.guard_e251_c(out.state.begin())} else {self.e251_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,115))) {self.guard_e279_c(out.state.begin())} else {self.e279_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,98))) {self.guard_e252_c(out.state.begin())} else {self.e252_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,98))) {self.guard_e280_c(out.state.begin())} else {self.e280_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,111))) {self.guard_e253_c(out.state.begin())} else {self.e253_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,111))) {self.guard_e281_c(out.state.begin())} else {self.e281_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} self.restore(mark);break 'choice if let Some((mut child,effects))=best {self.replay_effects(effects);child.diag=diagnostic;child} else {out.ok=false;out.diag=diagnostic;out}; }; out } -fn e250_c(&mut self,state:State)->Step { -let mut out=self.b250_c(state); +fn e278_c(&mut self,state:State)->Step { +let mut out=self.b278_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b250_c(&mut self,mut state:State)->Step { +fn b278_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r26_c(out.state); out } -fn e251_c(&mut self,state:State)->Step { -let mut out=self.b251_c(state); +fn e279_c(&mut self,state:State)->Step { +let mut out=self.b279_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b251_c(&mut self,mut state:State)->Step { +fn b279_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r27_c(out.state); out } -fn e252_c(&mut self,state:State)->Step { -let mut out=self.b252_c(state); +fn e280_c(&mut self,state:State)->Step { +let mut out=self.b280_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b252_c(&mut self,mut state:State)->Step { +fn b280_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r28_c(out.state); out } -fn e253_c(&mut self,state:State)->Step { -let mut out=self.b253_c(state); +fn e281_c(&mut self,state:State)->Step { +let mut out=self.b281_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b253_c(&mut self,mut state:State)->Step { +fn b281_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r29_c(out.state); out } -fn e254_c(&mut self,state:State)->Step { +fn e282_c(&mut self,state:State)->Step { let mark=self.mark(); -let key=Key {expression:254,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} -self.display_enter(state.consumed.max(state.matched));let mut out=self.b254_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +let key=Key {expression:282,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} +self.display_enter(state.consumed.max(state.matched));let mut out=self.b282_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:false,text:false}); } else {self.restore(mark);self.display_failures(state.consumed.max(state.matched),&[]);} if (out.ok && true) || (!out.ok && true) {self.store(key,out,mark);}self.display_leave(); out } -fn b254_c(&mut self,mut state:State)->Step { +fn b282_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e255_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e283_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e256_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e284_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e261_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e289_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e262_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e290_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e264_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e292_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e271_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e299_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e272_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e300_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e274_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e302_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e255_c(&mut self,state:State)->Step { -let mut out=self.b255_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e283_c(&mut self,state:State)->Step { +let mut out=self.b283_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,255,31); +out.events=self.relabel_token(out.events,283,31); } else {self.display_failures(state.consumed.max(state.matched),&["'external'"]);} out } -fn b255_c(&mut self,mut state:State)->Step { +fn b283_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"external",true,59,false,"external"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'external'");} out } -fn e256_c(&mut self,state:State)->Step { -let mut out=self.b256_c(state); +fn e284_c(&mut self,state:State)->Step { +let mut out=self.b284_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&["'returning'"]);} out } -fn b256_c(&mut self,mut state:State)->Step { +fn b284_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out.state=state.begin(); let mut count=0usize;loop {let mark=self.mark();let before=out.state; -let mut child=self.e257_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} +let mut child=self.e285_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} out.events=self.join(out.events,child.events);count+=1; if before.position::()==out.state.position::() {break;} if count>=1 {break;} @@ -5431,48 +5931,48 @@ if count>1 {out.ok=false;out.state=state;let d=self.diag_fail(state.position::Step { -let mut out=self.b257_c(state); +fn e285_c(&mut self,state:State)->Step { +let mut out=self.b285_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&["'as'", "'returning'"]);} out } -fn b257_c(&mut self,mut state:State)->Step { +fn b285_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e258_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e286_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e259_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e287_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e258_c(&mut self,state:State)->Step { -let mut out=self.b258_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e286_c(&mut self,state:State)->Step { +let mut out=self.b286_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,258,31); +out.events=self.relabel_token(out.events,286,31); } else {self.display_failures(state.consumed.max(state.matched),&["'returning'"]);} out } -fn b258_c(&mut self,mut state:State)->Step { +fn b286_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"returning",true,80,false,"returning"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'returning'");} out } -fn e259_c(&mut self,state:State)->Step { -let mut out=self.b259_c(state); +fn e287_c(&mut self,state:State)->Step { +let mut out=self.b287_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&["'as'"]);} out } -fn b259_c(&mut self,mut state:State)->Step { +fn b287_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out.state=state.begin(); let mut count=0usize;loop {let mark=self.mark();let before=out.state; -let mut child=self.e260_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} +let mut child=self.e288_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} out.events=self.join(out.events,child.events);count+=1; if before.position::()==out.state.position::() {break;} if count>=1 {break;} @@ -5482,41 +5982,41 @@ if count>1 {out.ok=false;out.state=state;let d=self.diag_fail(state.position::Step { -let mut out=self.b260_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e288_c(&mut self,state:State)->Step { +let mut out=self.b288_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,260,31); +out.events=self.relabel_token(out.events,288,31); } else {self.display_failures(state.consumed.max(state.matched),&["'as'"]);} out } -fn b260_c(&mut self,mut state:State)->Step { +fn b288_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"as",true,47,false,"as"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'as'");} out } -fn e261_c(&mut self,state:State)->Step { -let mut out=self.b261_c(state); +fn e289_c(&mut self,state:State)->Step { +let mut out=self.b289_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b261_c(&mut self,mut state:State)->Step { +fn b289_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r28_c(out.state); out } -fn e262_c(&mut self,state:State)->Step { -let mut out=self.b262_c(state); +fn e290_c(&mut self,state:State)->Step { +let mut out=self.b290_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&["':'"]);} out } -fn b262_c(&mut self,mut state:State)->Step { +fn b290_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out.state=state.begin(); let mut count=0usize;loop {let mark=self.mark();let before=out.state; -let mut child=self.e263_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} +let mut child=self.e291_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} out.events=self.join(out.events,child.events);count+=1; if before.position::()==out.state.position::() {break;} if count>=1 {break;} @@ -5526,146 +6026,146 @@ if count>1 {out.ok=false;out.state=state;let d=self.diag_fail(state.position::Step { -let mut out=self.b263_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e291_c(&mut self,state:State)->Step { +let mut out=self.b291_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,263,31); +out.events=self.relabel_token(out.events,291,31); } else {self.display_failures(state.consumed.max(state.matched),&["':'"]);} out } -fn b263_c(&mut self,mut state:State)->Step { +fn b291_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,":",true,21,false,":"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"':'");} out } -fn e264_c(&mut self,state:State)->Step { -let mut out=self.b264_c(state); +fn e292_c(&mut self,state:State)->Step { +let mut out=self.b292_c(state); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:true,text:false}); } else {self.display_failures(state.consumed.max(state.matched),&["'#'"]);} out } -fn b264_c(&mut self,mut state:State)->Step { +fn b292_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); -out=self.e265_c(out.state); +out=self.e293_c(out.state); out } -fn e265_c(&mut self,state:State)->Step { -let mut out=self.b265_c(state); +fn e293_c(&mut self,state:State)->Step { +let mut out=self.b293_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&["'#'"]);} out } -fn b265_c(&mut self,mut state:State)->Step { +fn b293_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out='choice: {let mark=self.mark();let mut diagnostic=Diag::NONE;let mut best:Option<(Step,[usize;2])>=None; -self.restore(mark);let mut child=self.e266_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=self.e294_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=self.e270_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=self.e298_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} self.restore(mark);break 'choice if let Some((mut child,effects))=best {self.replay_effects(effects);child.diag=diagnostic;child} else {out.ok=false;out.diag=diagnostic;out}; }; out } -fn e266_c(&mut self,state:State)->Step { -let mut out=self.b266_c(state); +fn e294_c(&mut self,state:State)->Step { +let mut out=self.b294_c(state); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:true,text:false}); } else {self.display_failures(state.consumed.max(state.matched),&["'#'"]);} out } -fn b266_c(&mut self,mut state:State)->Step { +fn b294_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e267_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e295_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e268_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e296_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e269_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e297_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e267_c(&mut self,state:State)->Step { -let mut out=self.b267_c(state); +fn e295_c(&mut self,state:State)->Step { +let mut out=self.b295_c(state); if out.ok { -out.events=self.event(Event::Capture {site:43,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:53,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b267_c(&mut self,mut state:State)->Step { +fn b295_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r3_c(out.state); out } -fn e268_c(&mut self,state:State)->Step { -let mut out=self.b268_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e296_c(&mut self,state:State)->Step { +let mut out=self.b296_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,268,31); +out.events=self.relabel_token(out.events,296,31); } else {self.display_failures(state.consumed.max(state.matched),&["'#'"]);} out } -fn b268_c(&mut self,mut state:State)->Step { +fn b296_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"#",true,1,false,"#"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'#'");} out } -fn e269_c(&mut self,state:State)->Step { -let mut out=self.b269_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e297_c(&mut self,state:State)->Step { +let mut out=self.b297_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,269,31); -out.events=self.event(Event::Capture {site:44,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.relabel_token(out.events,297,31); +out.events=self.event(Event::Capture {site:54,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["IDENTIFIERParser", "__CaptureSite"]);} out } -fn b269_c(&mut self,mut state:State)->Step { +fn b297_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.token_1::(out.state,"IDENTIFIER","IDENTIFIERParser"); out } -fn e270_c(&mut self,state:State)->Step { -let mut out=self.b270_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e298_c(&mut self,state:State)->Step { +let mut out=self.b298_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,270,31); +out.events=self.relabel_token(out.events,298,31); out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:false,text:true}); -out.events=self.event(Event::Capture {site:45,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:55,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["IDENTIFIERParser", "__CaptureSite"]);} out } -fn b270_c(&mut self,mut state:State)->Step { +fn b298_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.token_1::(out.state,"IDENTIFIER","IDENTIFIERParser"); out } -fn e271_c(&mut self,state:State)->Step { -let mut out=self.b271_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e299_c(&mut self,state:State)->Step { +let mut out=self.b299_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,271,31); +out.events=self.relabel_token(out.events,299,31); } else {self.display_failures(state.consumed.max(state.matched),&["'('"]);} out } -fn b271_c(&mut self,mut state:State)->Step { +fn b299_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"(",true,4,false,"("); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'('");} out } -fn e272_c(&mut self,state:State)->Step { -let mut out=self.b272_c(state); +fn e300_c(&mut self,state:State)->Step { +let mut out=self.b300_c(state); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:true,text:false}); } else {self.display_failures(state.consumed.max(state.matched),&["Optional"]);} out } -fn b272_c(&mut self,mut state:State)->Step { +fn b300_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out.state=state.begin(); let mut count=0usize;loop {let mark=self.mark();let before=out.state; -let mut child=self.e273_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} +let mut child=self.e301_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} out.events=self.join(out.events,child.events);count+=1; if before.position::()==out.state.position::() {break;} if count>=1 {break;} @@ -5675,133 +6175,133 @@ if count>1 {out.ok=false;out.state=state;let d=self.diag_fail(state.position::Step { -let mut out=self.b273_c(state); +fn e301_c(&mut self,state:State)->Step { +let mut out=self.b301_c(state); if out.ok { -out.events=self.event(Event::Capture {site:46,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:56,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b273_c(&mut self,mut state:State)->Step { +fn b301_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r39_c(out.state); out } -fn e274_c(&mut self,state:State)->Step { -let mut out=self.b274_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e302_c(&mut self,state:State)->Step { +let mut out=self.b302_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,274,31); +out.events=self.relabel_token(out.events,302,31); } else {self.display_failures(state.consumed.max(state.matched),&["')'"]);} out } -fn b274_c(&mut self,mut state:State)->Step { +fn b302_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,")",true,5,false,")"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"')'");} out } -fn e275_c(&mut self,state:State)->Step { +fn e303_c(&mut self,state:State)->Step { let mark=self.mark(); -let key=Key {expression:275,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} -self.display_enter(state.consumed.max(state.matched));let mut out=self.b275_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +let key=Key {expression:303,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} +self.display_enter(state.consumed.max(state.matched));let mut out=self.b303_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:false,text:false}); } else {self.restore(mark);self.display_failures(state.consumed.max(state.matched),&[]);} if (out.ok && true) || (!out.ok && true) {self.store(key,out,mark);}self.display_leave(); out } -fn b275_c(&mut self,mut state:State)->Step { +fn b303_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e276_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e304_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e277_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e305_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e290_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e318_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e297_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e325_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e298_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e326_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e300_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e328_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e276_c(&mut self,state:State)->Step { -let mut out=self.b276_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e304_c(&mut self,state:State)->Step { +let mut out=self.b304_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,276,32); +out.events=self.relabel_token(out.events,304,32); } else {self.display_failures(state.consumed.max(state.matched),&["'external'"]);} out } -fn b276_c(&mut self,mut state:State)->Step { +fn b304_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"external",true,59,false,"external"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'external'");} out } -fn e277_c(&mut self,state:State)->Step { -let mut out=self.b277_c(state); +fn e305_c(&mut self,state:State)->Step { +let mut out=self.b305_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&["':'"]);} out } -fn b277_c(&mut self,mut state:State)->Step { +fn b305_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); -out=self.e278_c(out.state); +out=self.e306_c(out.state); out } -fn e278_c(&mut self,state:State)->Step { -let mut out=self.b278_c(state); +fn e306_c(&mut self,state:State)->Step { +let mut out=self.b306_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&["':'"]);} out } -fn b278_c(&mut self,mut state:State)->Step { +fn b306_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out='choice: {let mark=self.mark();let mut diagnostic=Diag::NONE;let mut best:Option<(Step,[usize;2])>=None; -self.restore(mark);let mut child=self.e279_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=self.e307_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=self.e288_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=self.e316_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} self.restore(mark);break 'choice if let Some((mut child,effects))=best {self.replay_effects(effects);child.diag=diagnostic;child} else {out.ok=false;out.diag=diagnostic;out}; }; out } -fn e279_c(&mut self,state:State)->Step { -let mut out=self.b279_c(state); +fn e307_c(&mut self,state:State)->Step { +let mut out=self.b307_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&["':'", "'float'", "'number'"]);} out } -fn b279_c(&mut self,mut state:State)->Step { +fn b307_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e280_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e308_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e285_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e313_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e286_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e314_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e280_c(&mut self,state:State)->Step { -let mut out=self.b280_c(state); +fn e308_c(&mut self,state:State)->Step { +let mut out=self.b308_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&["'returning'"]);} out } -fn b280_c(&mut self,mut state:State)->Step { +fn b308_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out.state=state.begin(); let mut count=0usize;loop {let mark=self.mark();let before=out.state; -let mut child=self.e281_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} +let mut child=self.e309_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} out.events=self.join(out.events,child.events);count+=1; if before.position::()==out.state.position::() {break;} if count>=1 {break;} @@ -5811,48 +6311,48 @@ if count>1 {out.ok=false;out.state=state;let d=self.diag_fail(state.position::Step { -let mut out=self.b281_c(state); +fn e309_c(&mut self,state:State)->Step { +let mut out=self.b309_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&["'as'", "'returning'"]);} out } -fn b281_c(&mut self,mut state:State)->Step { +fn b309_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e282_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e310_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e283_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e311_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e282_c(&mut self,state:State)->Step { -let mut out=self.b282_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e310_c(&mut self,state:State)->Step { +let mut out=self.b310_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,282,32); +out.events=self.relabel_token(out.events,310,32); } else {self.display_failures(state.consumed.max(state.matched),&["'returning'"]);} out } -fn b282_c(&mut self,mut state:State)->Step { +fn b310_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"returning",true,80,false,"returning"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'returning'");} out } -fn e283_c(&mut self,state:State)->Step { -let mut out=self.b283_c(state); +fn e311_c(&mut self,state:State)->Step { +let mut out=self.b311_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&["'as'"]);} out } -fn b283_c(&mut self,mut state:State)->Step { +fn b311_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out.state=state.begin(); let mut count=0usize;loop {let mark=self.mark();let before=out.state; -let mut child=self.e284_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} +let mut child=self.e312_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} out.events=self.join(out.events,child.events);count+=1; if before.position::()==out.state.position::() {break;} if count>=1 {break;} @@ -5862,41 +6362,41 @@ if count>1 {out.ok=false;out.state=state;let d=self.diag_fail(state.position::Step { -let mut out=self.b284_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e312_c(&mut self,state:State)->Step { +let mut out=self.b312_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,284,32); +out.events=self.relabel_token(out.events,312,32); } else {self.display_failures(state.consumed.max(state.matched),&["'as'"]);} out } -fn b284_c(&mut self,mut state:State)->Step { +fn b312_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"as",true,47,false,"as"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'as'");} out } -fn e285_c(&mut self,state:State)->Step { -let mut out=self.b285_c(state); +fn e313_c(&mut self,state:State)->Step { +let mut out=self.b313_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b285_c(&mut self,mut state:State)->Step { +fn b313_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r26_c(out.state); out } -fn e286_c(&mut self,state:State)->Step { -let mut out=self.b286_c(state); +fn e314_c(&mut self,state:State)->Step { +let mut out=self.b314_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&["':'"]);} out } -fn b286_c(&mut self,mut state:State)->Step { +fn b314_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out.state=state.begin(); let mut count=0usize;loop {let mark=self.mark();let before=out.state; -let mut child=self.e287_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} +let mut child=self.e315_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} out.events=self.join(out.events,child.events);count+=1; if before.position::()==out.state.position::() {break;} if count>=1 {break;} @@ -5906,30 +6406,30 @@ if count>1 {out.ok=false;out.state=state;let d=self.diag_fail(state.position::Step { -let mut out=self.b287_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e315_c(&mut self,state:State)->Step { +let mut out=self.b315_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,287,32); +out.events=self.relabel_token(out.events,315,32); } else {self.display_failures(state.consumed.max(state.matched),&["':'"]);} out } -fn b287_c(&mut self,mut state:State)->Step { +fn b315_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,":",true,21,false,":"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"':'");} out } -fn e288_c(&mut self,state:State)->Step { -let mut out=self.b288_c(state); +fn e316_c(&mut self,state:State)->Step { +let mut out=self.b316_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&["':'"]);} out } -fn b288_c(&mut self,mut state:State)->Step { +fn b316_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out.state=state.begin(); let mut count=0usize;loop {let mark=self.mark();let before=out.state; -let mut child=self.e289_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} +let mut child=self.e317_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} out.events=self.join(out.events,child.events);count+=1; if before.position::()==out.state.position::() {break;} if count>=1 {break;} @@ -5939,146 +6439,146 @@ if count>1 {out.ok=false;out.state=state;let d=self.diag_fail(state.position::Step { -let mut out=self.b289_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e317_c(&mut self,state:State)->Step { +let mut out=self.b317_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,289,32); +out.events=self.relabel_token(out.events,317,32); } else {self.display_failures(state.consumed.max(state.matched),&["':'"]);} out } -fn b289_c(&mut self,mut state:State)->Step { +fn b317_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,":",true,21,false,":"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"':'");} out } -fn e290_c(&mut self,state:State)->Step { -let mut out=self.b290_c(state); +fn e318_c(&mut self,state:State)->Step { +let mut out=self.b318_c(state); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:true,text:false}); } else {self.display_failures(state.consumed.max(state.matched),&["'#'"]);} out } -fn b290_c(&mut self,mut state:State)->Step { +fn b318_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); -out=self.e291_c(out.state); +out=self.e319_c(out.state); out } -fn e291_c(&mut self,state:State)->Step { -let mut out=self.b291_c(state); +fn e319_c(&mut self,state:State)->Step { +let mut out=self.b319_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&["'#'"]);} out } -fn b291_c(&mut self,mut state:State)->Step { +fn b319_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out='choice: {let mark=self.mark();let mut diagnostic=Diag::NONE;let mut best:Option<(Step,[usize;2])>=None; -self.restore(mark);let mut child=self.e292_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=self.e320_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=self.e296_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=self.e324_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} self.restore(mark);break 'choice if let Some((mut child,effects))=best {self.replay_effects(effects);child.diag=diagnostic;child} else {out.ok=false;out.diag=diagnostic;out}; }; out } -fn e292_c(&mut self,state:State)->Step { -let mut out=self.b292_c(state); +fn e320_c(&mut self,state:State)->Step { +let mut out=self.b320_c(state); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:true,text:false}); } else {self.display_failures(state.consumed.max(state.matched),&["'#'"]);} out } -fn b292_c(&mut self,mut state:State)->Step { +fn b320_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e293_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e321_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e294_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e322_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e295_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e323_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e293_c(&mut self,state:State)->Step { -let mut out=self.b293_c(state); +fn e321_c(&mut self,state:State)->Step { +let mut out=self.b321_c(state); if out.ok { -out.events=self.event(Event::Capture {site:47,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:57,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b293_c(&mut self,mut state:State)->Step { +fn b321_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r3_c(out.state); out } -fn e294_c(&mut self,state:State)->Step { -let mut out=self.b294_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e322_c(&mut self,state:State)->Step { +let mut out=self.b322_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,294,32); +out.events=self.relabel_token(out.events,322,32); } else {self.display_failures(state.consumed.max(state.matched),&["'#'"]);} out } -fn b294_c(&mut self,mut state:State)->Step { +fn b322_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"#",true,1,false,"#"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'#'");} out } -fn e295_c(&mut self,state:State)->Step { -let mut out=self.b295_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e323_c(&mut self,state:State)->Step { +let mut out=self.b323_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,295,32); -out.events=self.event(Event::Capture {site:48,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.relabel_token(out.events,323,32); +out.events=self.event(Event::Capture {site:58,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["IDENTIFIERParser", "__CaptureSite"]);} out } -fn b295_c(&mut self,mut state:State)->Step { +fn b323_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.token_1::(out.state,"IDENTIFIER","IDENTIFIERParser"); out } -fn e296_c(&mut self,state:State)->Step { -let mut out=self.b296_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e324_c(&mut self,state:State)->Step { +let mut out=self.b324_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,296,32); +out.events=self.relabel_token(out.events,324,32); out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:false,text:true}); -out.events=self.event(Event::Capture {site:49,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:59,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["IDENTIFIERParser", "__CaptureSite"]);} out } -fn b296_c(&mut self,mut state:State)->Step { +fn b324_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.token_1::(out.state,"IDENTIFIER","IDENTIFIERParser"); out } -fn e297_c(&mut self,state:State)->Step { -let mut out=self.b297_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e325_c(&mut self,state:State)->Step { +let mut out=self.b325_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,297,32); +out.events=self.relabel_token(out.events,325,32); } else {self.display_failures(state.consumed.max(state.matched),&["'('"]);} out } -fn b297_c(&mut self,mut state:State)->Step { +fn b325_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"(",true,4,false,"("); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'('");} out } -fn e298_c(&mut self,state:State)->Step { -let mut out=self.b298_c(state); +fn e326_c(&mut self,state:State)->Step { +let mut out=self.b326_c(state); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:true,text:false}); } else {self.display_failures(state.consumed.max(state.matched),&["Optional"]);} out } -fn b298_c(&mut self,mut state:State)->Step { +fn b326_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out.state=state.begin(); let mut count=0usize;loop {let mark=self.mark();let before=out.state; -let mut child=self.e299_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} +let mut child=self.e327_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} out.events=self.join(out.events,child.events);count+=1; if before.position::()==out.state.position::() {break;} if count>=1 {break;} @@ -6088,89 +6588,89 @@ if count>1 {out.ok=false;out.state=state;let d=self.diag_fail(state.position::Step { -let mut out=self.b299_c(state); +fn e327_c(&mut self,state:State)->Step { +let mut out=self.b327_c(state); if out.ok { -out.events=self.event(Event::Capture {site:50,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:60,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b299_c(&mut self,mut state:State)->Step { +fn b327_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r39_c(out.state); out } -fn e300_c(&mut self,state:State)->Step { -let mut out=self.b300_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e328_c(&mut self,state:State)->Step { +let mut out=self.b328_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,300,32); +out.events=self.relabel_token(out.events,328,32); } else {self.display_failures(state.consumed.max(state.matched),&["')'"]);} out } -fn b300_c(&mut self,mut state:State)->Step { +fn b328_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,")",true,5,false,")"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"')'");} out } -fn e301_c(&mut self,state:State)->Step { +fn e329_c(&mut self,state:State)->Step { let mark=self.mark(); -let key=Key {expression:301,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} -self.display_enter(state.consumed.max(state.matched));let mut out=self.b301_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +let key=Key {expression:329,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} +self.display_enter(state.consumed.max(state.matched));let mut out=self.b329_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:false,text:false}); } else {self.restore(mark);self.display_failures(state.consumed.max(state.matched),&[]);} if (out.ok && true) || (!out.ok && true) {self.store(key,out,mark);}self.display_leave(); out } -fn b301_c(&mut self,mut state:State)->Step { +fn b329_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e302_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e330_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e303_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e331_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e308_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e336_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e309_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e337_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e311_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e339_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e318_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e346_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e319_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e347_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e321_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e349_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e302_c(&mut self,state:State)->Step { -let mut out=self.b302_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e330_c(&mut self,state:State)->Step { +let mut out=self.b330_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,302,33); +out.events=self.relabel_token(out.events,330,33); } else {self.display_failures(state.consumed.max(state.matched),&["'external'"]);} out } -fn b302_c(&mut self,mut state:State)->Step { +fn b330_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"external",true,59,false,"external"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'external'");} out } -fn e303_c(&mut self,state:State)->Step { -let mut out=self.b303_c(state); +fn e331_c(&mut self,state:State)->Step { +let mut out=self.b331_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&["'returning'"]);} out } -fn b303_c(&mut self,mut state:State)->Step { +fn b331_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out.state=state.begin(); let mut count=0usize;loop {let mark=self.mark();let before=out.state; -let mut child=self.e304_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} +let mut child=self.e332_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} out.events=self.join(out.events,child.events);count+=1; if before.position::()==out.state.position::() {break;} if count>=1 {break;} @@ -6180,48 +6680,48 @@ if count>1 {out.ok=false;out.state=state;let d=self.diag_fail(state.position::Step { -let mut out=self.b304_c(state); +fn e332_c(&mut self,state:State)->Step { +let mut out=self.b332_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&["'as'", "'returning'"]);} out } -fn b304_c(&mut self,mut state:State)->Step { +fn b332_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e305_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e333_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e306_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e334_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e305_c(&mut self,state:State)->Step { -let mut out=self.b305_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e333_c(&mut self,state:State)->Step { +let mut out=self.b333_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,305,33); +out.events=self.relabel_token(out.events,333,33); } else {self.display_failures(state.consumed.max(state.matched),&["'returning'"]);} out } -fn b305_c(&mut self,mut state:State)->Step { +fn b333_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"returning",true,80,false,"returning"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'returning'");} out } -fn e306_c(&mut self,state:State)->Step { -let mut out=self.b306_c(state); +fn e334_c(&mut self,state:State)->Step { +let mut out=self.b334_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&["'as'"]);} out } -fn b306_c(&mut self,mut state:State)->Step { +fn b334_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out.state=state.begin(); let mut count=0usize;loop {let mark=self.mark();let before=out.state; -let mut child=self.e307_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} +let mut child=self.e335_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} out.events=self.join(out.events,child.events);count+=1; if before.position::()==out.state.position::() {break;} if count>=1 {break;} @@ -6231,41 +6731,41 @@ if count>1 {out.ok=false;out.state=state;let d=self.diag_fail(state.position::Step { -let mut out=self.b307_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e335_c(&mut self,state:State)->Step { +let mut out=self.b335_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,307,33); +out.events=self.relabel_token(out.events,335,33); } else {self.display_failures(state.consumed.max(state.matched),&["'as'"]);} out } -fn b307_c(&mut self,mut state:State)->Step { +fn b335_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"as",true,47,false,"as"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'as'");} out } -fn e308_c(&mut self,state:State)->Step { -let mut out=self.b308_c(state); +fn e336_c(&mut self,state:State)->Step { +let mut out=self.b336_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b308_c(&mut self,mut state:State)->Step { +fn b336_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r27_c(out.state); out } -fn e309_c(&mut self,state:State)->Step { -let mut out=self.b309_c(state); +fn e337_c(&mut self,state:State)->Step { +let mut out=self.b337_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&["':'"]);} out } -fn b309_c(&mut self,mut state:State)->Step { +fn b337_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out.state=state.begin(); let mut count=0usize;loop {let mark=self.mark();let before=out.state; -let mut child=self.e310_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} +let mut child=self.e338_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} out.events=self.join(out.events,child.events);count+=1; if before.position::()==out.state.position::() {break;} if count>=1 {break;} @@ -6275,146 +6775,146 @@ if count>1 {out.ok=false;out.state=state;let d=self.diag_fail(state.position::Step { -let mut out=self.b310_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e338_c(&mut self,state:State)->Step { +let mut out=self.b338_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,310,33); +out.events=self.relabel_token(out.events,338,33); } else {self.display_failures(state.consumed.max(state.matched),&["':'"]);} out } -fn b310_c(&mut self,mut state:State)->Step { +fn b338_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,":",true,21,false,":"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"':'");} out } -fn e311_c(&mut self,state:State)->Step { -let mut out=self.b311_c(state); +fn e339_c(&mut self,state:State)->Step { +let mut out=self.b339_c(state); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:true,text:false}); } else {self.display_failures(state.consumed.max(state.matched),&["'#'"]);} out } -fn b311_c(&mut self,mut state:State)->Step { +fn b339_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); -out=self.e312_c(out.state); +out=self.e340_c(out.state); out } -fn e312_c(&mut self,state:State)->Step { -let mut out=self.b312_c(state); +fn e340_c(&mut self,state:State)->Step { +let mut out=self.b340_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&["'#'"]);} out } -fn b312_c(&mut self,mut state:State)->Step { +fn b340_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out='choice: {let mark=self.mark();let mut diagnostic=Diag::NONE;let mut best:Option<(Step,[usize;2])>=None; -self.restore(mark);let mut child=self.e313_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=self.e341_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=self.e317_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=self.e345_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} self.restore(mark);break 'choice if let Some((mut child,effects))=best {self.replay_effects(effects);child.diag=diagnostic;child} else {out.ok=false;out.diag=diagnostic;out}; }; out } -fn e313_c(&mut self,state:State)->Step { -let mut out=self.b313_c(state); +fn e341_c(&mut self,state:State)->Step { +let mut out=self.b341_c(state); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:true,text:false}); } else {self.display_failures(state.consumed.max(state.matched),&["'#'"]);} out } -fn b313_c(&mut self,mut state:State)->Step { +fn b341_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e314_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e342_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e315_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e343_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e316_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e344_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e314_c(&mut self,state:State)->Step { -let mut out=self.b314_c(state); +fn e342_c(&mut self,state:State)->Step { +let mut out=self.b342_c(state); if out.ok { -out.events=self.event(Event::Capture {site:51,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:61,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b314_c(&mut self,mut state:State)->Step { +fn b342_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r3_c(out.state); out } -fn e315_c(&mut self,state:State)->Step { -let mut out=self.b315_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e343_c(&mut self,state:State)->Step { +let mut out=self.b343_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,315,33); +out.events=self.relabel_token(out.events,343,33); } else {self.display_failures(state.consumed.max(state.matched),&["'#'"]);} out } -fn b315_c(&mut self,mut state:State)->Step { +fn b343_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"#",true,1,false,"#"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'#'");} out } -fn e316_c(&mut self,state:State)->Step { -let mut out=self.b316_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e344_c(&mut self,state:State)->Step { +let mut out=self.b344_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,316,33); -out.events=self.event(Event::Capture {site:52,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.relabel_token(out.events,344,33); +out.events=self.event(Event::Capture {site:62,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["IDENTIFIERParser", "__CaptureSite"]);} out } -fn b316_c(&mut self,mut state:State)->Step { +fn b344_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.token_1::(out.state,"IDENTIFIER","IDENTIFIERParser"); out -} -fn e317_c(&mut self,state:State)->Step { -let mut out=self.b317_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +} +fn e345_c(&mut self,state:State)->Step { +let mut out=self.b345_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,317,33); +out.events=self.relabel_token(out.events,345,33); out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:false,text:true}); -out.events=self.event(Event::Capture {site:53,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:63,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["IDENTIFIERParser", "__CaptureSite"]);} out } -fn b317_c(&mut self,mut state:State)->Step { +fn b345_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.token_1::(out.state,"IDENTIFIER","IDENTIFIERParser"); out } -fn e318_c(&mut self,state:State)->Step { -let mut out=self.b318_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e346_c(&mut self,state:State)->Step { +let mut out=self.b346_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,318,33); +out.events=self.relabel_token(out.events,346,33); } else {self.display_failures(state.consumed.max(state.matched),&["'('"]);} out } -fn b318_c(&mut self,mut state:State)->Step { +fn b346_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"(",true,4,false,"("); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'('");} out } -fn e319_c(&mut self,state:State)->Step { -let mut out=self.b319_c(state); +fn e347_c(&mut self,state:State)->Step { +let mut out=self.b347_c(state); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:true,text:false}); } else {self.display_failures(state.consumed.max(state.matched),&["Optional"]);} out } -fn b319_c(&mut self,mut state:State)->Step { +fn b347_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out.state=state.begin(); let mut count=0usize;loop {let mark=self.mark();let before=out.state; -let mut child=self.e320_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} +let mut child=self.e348_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} out.events=self.join(out.events,child.events);count+=1; if before.position::()==out.state.position::() {break;} if count>=1 {break;} @@ -6424,89 +6924,89 @@ if count>1 {out.ok=false;out.state=state;let d=self.diag_fail(state.position::Step { -let mut out=self.b320_c(state); +fn e348_c(&mut self,state:State)->Step { +let mut out=self.b348_c(state); if out.ok { -out.events=self.event(Event::Capture {site:54,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:64,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b320_c(&mut self,mut state:State)->Step { +fn b348_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r39_c(out.state); out } -fn e321_c(&mut self,state:State)->Step { -let mut out=self.b321_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e349_c(&mut self,state:State)->Step { +let mut out=self.b349_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,321,33); +out.events=self.relabel_token(out.events,349,33); } else {self.display_failures(state.consumed.max(state.matched),&["')'"]);} out } -fn b321_c(&mut self,mut state:State)->Step { +fn b349_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,")",true,5,false,")"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"')'");} out } -fn e322_c(&mut self,state:State)->Step { +fn e350_c(&mut self,state:State)->Step { let mark=self.mark(); -let key=Key {expression:322,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} -self.display_enter(state.consumed.max(state.matched));let mut out=self.b322_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +let key=Key {expression:350,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} +self.display_enter(state.consumed.max(state.matched));let mut out=self.b350_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:false,text:false}); } else {self.restore(mark);self.display_failures(state.consumed.max(state.matched),&[]);} if (out.ok && true) || (!out.ok && true) {self.store(key,out,mark);}self.display_leave(); out } -fn b322_c(&mut self,mut state:State)->Step { +fn b350_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e323_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e351_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e324_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e352_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e329_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e357_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e330_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e358_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e332_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e360_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e339_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e367_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e340_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e368_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e342_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e370_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e323_c(&mut self,state:State)->Step { -let mut out=self.b323_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e351_c(&mut self,state:State)->Step { +let mut out=self.b351_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,323,34); +out.events=self.relabel_token(out.events,351,34); } else {self.display_failures(state.consumed.max(state.matched),&["'external'"]);} out } -fn b323_c(&mut self,mut state:State)->Step { +fn b351_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"external",true,59,false,"external"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'external'");} out } -fn e324_c(&mut self,state:State)->Step { -let mut out=self.b324_c(state); +fn e352_c(&mut self,state:State)->Step { +let mut out=self.b352_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&["'returning'"]);} out } -fn b324_c(&mut self,mut state:State)->Step { +fn b352_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out.state=state.begin(); let mut count=0usize;loop {let mark=self.mark();let before=out.state; -let mut child=self.e325_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} +let mut child=self.e353_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} out.events=self.join(out.events,child.events);count+=1; if before.position::()==out.state.position::() {break;} if count>=1 {break;} @@ -6516,48 +7016,48 @@ if count>1 {out.ok=false;out.state=state;let d=self.diag_fail(state.position::Step { -let mut out=self.b325_c(state); +fn e353_c(&mut self,state:State)->Step { +let mut out=self.b353_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&["'as'", "'returning'"]);} out } -fn b325_c(&mut self,mut state:State)->Step { +fn b353_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e326_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e354_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e327_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e355_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e326_c(&mut self,state:State)->Step { -let mut out=self.b326_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e354_c(&mut self,state:State)->Step { +let mut out=self.b354_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,326,34); +out.events=self.relabel_token(out.events,354,34); } else {self.display_failures(state.consumed.max(state.matched),&["'returning'"]);} out } -fn b326_c(&mut self,mut state:State)->Step { +fn b354_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"returning",true,80,false,"returning"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'returning'");} out } -fn e327_c(&mut self,state:State)->Step { -let mut out=self.b327_c(state); +fn e355_c(&mut self,state:State)->Step { +let mut out=self.b355_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&["'as'"]);} out } -fn b327_c(&mut self,mut state:State)->Step { +fn b355_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out.state=state.begin(); let mut count=0usize;loop {let mark=self.mark();let before=out.state; -let mut child=self.e328_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} +let mut child=self.e356_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} out.events=self.join(out.events,child.events);count+=1; if before.position::()==out.state.position::() {break;} if count>=1 {break;} @@ -6567,41 +7067,41 @@ if count>1 {out.ok=false;out.state=state;let d=self.diag_fail(state.position::Step { -let mut out=self.b328_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e356_c(&mut self,state:State)->Step { +let mut out=self.b356_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,328,34); +out.events=self.relabel_token(out.events,356,34); } else {self.display_failures(state.consumed.max(state.matched),&["'as'"]);} out } -fn b328_c(&mut self,mut state:State)->Step { +fn b356_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"as",true,47,false,"as"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'as'");} out } -fn e329_c(&mut self,state:State)->Step { -let mut out=self.b329_c(state); +fn e357_c(&mut self,state:State)->Step { +let mut out=self.b357_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b329_c(&mut self,mut state:State)->Step { +fn b357_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r29_c(out.state); out } -fn e330_c(&mut self,state:State)->Step { -let mut out=self.b330_c(state); +fn e358_c(&mut self,state:State)->Step { +let mut out=self.b358_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&["':'"]);} out } -fn b330_c(&mut self,mut state:State)->Step { +fn b358_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out.state=state.begin(); let mut count=0usize;loop {let mark=self.mark();let before=out.state; -let mut child=self.e331_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} +let mut child=self.e359_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} out.events=self.join(out.events,child.events);count+=1; if before.position::()==out.state.position::() {break;} if count>=1 {break;} @@ -6611,146 +7111,146 @@ if count>1 {out.ok=false;out.state=state;let d=self.diag_fail(state.position::Step { -let mut out=self.b331_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e359_c(&mut self,state:State)->Step { +let mut out=self.b359_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,331,34); +out.events=self.relabel_token(out.events,359,34); } else {self.display_failures(state.consumed.max(state.matched),&["':'"]);} out } -fn b331_c(&mut self,mut state:State)->Step { +fn b359_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,":",true,21,false,":"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"':'");} out } -fn e332_c(&mut self,state:State)->Step { -let mut out=self.b332_c(state); +fn e360_c(&mut self,state:State)->Step { +let mut out=self.b360_c(state); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:true,text:false}); } else {self.display_failures(state.consumed.max(state.matched),&["'#'"]);} out } -fn b332_c(&mut self,mut state:State)->Step { +fn b360_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); -out=self.e333_c(out.state); +out=self.e361_c(out.state); out } -fn e333_c(&mut self,state:State)->Step { -let mut out=self.b333_c(state); +fn e361_c(&mut self,state:State)->Step { +let mut out=self.b361_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&["'#'"]);} out } -fn b333_c(&mut self,mut state:State)->Step { +fn b361_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out='choice: {let mark=self.mark();let mut diagnostic=Diag::NONE;let mut best:Option<(Step,[usize;2])>=None; -self.restore(mark);let mut child=self.e334_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=self.e362_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=self.e338_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=self.e366_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} self.restore(mark);break 'choice if let Some((mut child,effects))=best {self.replay_effects(effects);child.diag=diagnostic;child} else {out.ok=false;out.diag=diagnostic;out}; }; out } -fn e334_c(&mut self,state:State)->Step { -let mut out=self.b334_c(state); +fn e362_c(&mut self,state:State)->Step { +let mut out=self.b362_c(state); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:true,text:false}); } else {self.display_failures(state.consumed.max(state.matched),&["'#'"]);} out } -fn b334_c(&mut self,mut state:State)->Step { +fn b362_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e335_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e363_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e336_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e364_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e337_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e365_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e335_c(&mut self,state:State)->Step { -let mut out=self.b335_c(state); +fn e363_c(&mut self,state:State)->Step { +let mut out=self.b363_c(state); if out.ok { -out.events=self.event(Event::Capture {site:55,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:65,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b335_c(&mut self,mut state:State)->Step { +fn b363_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r3_c(out.state); out } -fn e336_c(&mut self,state:State)->Step { -let mut out=self.b336_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e364_c(&mut self,state:State)->Step { +let mut out=self.b364_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,336,34); +out.events=self.relabel_token(out.events,364,34); } else {self.display_failures(state.consumed.max(state.matched),&["'#'"]);} out } -fn b336_c(&mut self,mut state:State)->Step { +fn b364_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"#",true,1,false,"#"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'#'");} out } -fn e337_c(&mut self,state:State)->Step { -let mut out=self.b337_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e365_c(&mut self,state:State)->Step { +let mut out=self.b365_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,337,34); -out.events=self.event(Event::Capture {site:56,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.relabel_token(out.events,365,34); +out.events=self.event(Event::Capture {site:66,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["IDENTIFIERParser", "__CaptureSite"]);} out } -fn b337_c(&mut self,mut state:State)->Step { +fn b365_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.token_1::(out.state,"IDENTIFIER","IDENTIFIERParser"); out } -fn e338_c(&mut self,state:State)->Step { -let mut out=self.b338_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e366_c(&mut self,state:State)->Step { +let mut out=self.b366_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,338,34); +out.events=self.relabel_token(out.events,366,34); out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:false,text:true}); -out.events=self.event(Event::Capture {site:57,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:67,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["IDENTIFIERParser", "__CaptureSite"]);} out } -fn b338_c(&mut self,mut state:State)->Step { +fn b366_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.token_1::(out.state,"IDENTIFIER","IDENTIFIERParser"); out } -fn e339_c(&mut self,state:State)->Step { -let mut out=self.b339_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e367_c(&mut self,state:State)->Step { +let mut out=self.b367_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,339,34); +out.events=self.relabel_token(out.events,367,34); } else {self.display_failures(state.consumed.max(state.matched),&["'('"]);} out } -fn b339_c(&mut self,mut state:State)->Step { +fn b367_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"(",true,4,false,"("); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'('");} out } -fn e340_c(&mut self,state:State)->Step { -let mut out=self.b340_c(state); +fn e368_c(&mut self,state:State)->Step { +let mut out=self.b368_c(state); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:true,text:false}); } else {self.display_failures(state.consumed.max(state.matched),&["Optional"]);} out } -fn b340_c(&mut self,mut state:State)->Step { +fn b368_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out.state=state.begin(); let mut count=0usize;loop {let mark=self.mark();let before=out.state; -let mut child=self.e341_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} +let mut child=self.e369_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} out.events=self.join(out.events,child.events);count+=1; if before.position::()==out.state.position::() {break;} if count>=1 {break;} @@ -6760,91 +7260,91 @@ if count>1 {out.ok=false;out.state=state;let d=self.diag_fail(state.position::Step { -let mut out=self.b341_c(state); +fn e369_c(&mut self,state:State)->Step { +let mut out=self.b369_c(state); if out.ok { -out.events=self.event(Event::Capture {site:58,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:68,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b341_c(&mut self,mut state:State)->Step { +fn b369_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r39_c(out.state); out } -fn e342_c(&mut self,state:State)->Step { -let mut out=self.b342_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e370_c(&mut self,state:State)->Step { +let mut out=self.b370_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,342,34); +out.events=self.relabel_token(out.events,370,34); } else {self.display_failures(state.consumed.max(state.matched),&["')'"]);} out } -fn b342_c(&mut self,mut state:State)->Step { +fn b370_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,")",true,5,false,")"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"')'");} out } -fn e343_c(&mut self,state:State)->Step { -let mut out=self.b343_c(state); +fn e371_c(&mut self,state:State)->Step { +let mut out=self.b371_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b343_c(&mut self,mut state:State)->Step { +fn b371_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out='choice: {let mark=self.mark();let mut diagnostic=Diag::NONE;let mut best:Option<(Step,[usize;2])>=None; let ct=self.input.cp_at(self.skip_0::(out.state.begin()).position::()).map(|(c,_)|c); -self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,99))) {self.guard_e344_c(out.state.begin())} else {self.e344_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,99))) {self.guard_e372_c(out.state.begin())} else {self.e372_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=self.e348_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=self.e376_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} self.restore(mark);break 'choice if let Some((mut child,effects))=best {self.replay_effects(effects);child.diag=diagnostic;child} else {out.ok=false;out.diag=diagnostic;out}; }; out } -fn e344_c(&mut self,state:State)->Step { -let mut out=self.b344_c(state); +fn e372_c(&mut self,state:State)->Step { +let mut out=self.b372_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&["'call'", "'internal'"]);} out } -fn b344_c(&mut self,mut state:State)->Step { +fn b372_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e345_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e373_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e346_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e374_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e345_c(&mut self,state:State)->Step { -let mut out=self.b345_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e373_c(&mut self,state:State)->Step { +let mut out=self.b373_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,345,35); +out.events=self.relabel_token(out.events,373,35); } else {self.display_failures(state.consumed.max(state.matched),&["'call'"]);} out } -fn b345_c(&mut self,mut state:State)->Step { +fn b373_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"call",true,49,false,"call"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'call'");} out } -fn e346_c(&mut self,state:State)->Step { -let mut out=self.b346_c(state); +fn e374_c(&mut self,state:State)->Step { +let mut out=self.b374_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&["'internal'"]);} out } -fn b346_c(&mut self,mut state:State)->Step { +fn b374_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out.state=state.begin(); let mut count=0usize;loop {let mark=self.mark();let before=out.state; -let mut child=self.e347_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} +let mut child=self.e375_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} out.events=self.join(out.events,child.events);count+=1; if before.position::()==out.state.position::() {break;} if count>=1 {break;} @@ -6854,109 +7354,109 @@ if count>1 {out.ok=false;out.state=state;let d=self.diag_fail(state.position::Step { -let mut out=self.b347_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e375_c(&mut self,state:State)->Step { +let mut out=self.b375_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,347,35); +out.events=self.relabel_token(out.events,375,35); } else {self.display_failures(state.consumed.max(state.matched),&["'internal'"]);} out } -fn b347_c(&mut self,mut state:State)->Step { +fn b375_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"internal",true,67,false,"internal"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'internal'");} out } -fn e348_c(&mut self,state:State)->Step { -let mut out=self.b348_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e376_c(&mut self,state:State)->Step { +let mut out=self.b376_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,348,35); +out.events=self.relabel_token(out.events,376,35); } else {self.display_failures(state.consumed.max(state.matched),&["'internal'"]);} out } -fn b348_c(&mut self,mut state:State)->Step { +fn b376_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"internal",true,67,false,"internal"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'internal'");} out } -fn e349_c(&mut self,state:State)->Step { +fn e377_c(&mut self,state:State)->Step { let mark=self.mark(); -let key=Key {expression:349,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} -self.display_enter(state.consumed.max(state.matched));let mut out=self.b349_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +let key=Key {expression:377,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} +self.display_enter(state.consumed.max(state.matched));let mut out=self.b377_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:true,text:false}); } else {self.restore(mark);self.display_failures(state.consumed.max(state.matched),&[]);} if (out.ok && true) || (!out.ok && true) {self.store(key,out,mark);}self.display_leave(); out } -fn b349_c(&mut self,mut state:State)->Step { +fn b377_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e350_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e378_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e351_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e379_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e352_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e380_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e353_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e381_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e355_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e383_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e350_c(&mut self,state:State)->Step { -let mut out=self.b350_c(state); +fn e378_c(&mut self,state:State)->Step { +let mut out=self.b378_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b350_c(&mut self,mut state:State)->Step { +fn b378_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r35_c(out.state); out } -fn e351_c(&mut self,state:State)->Step { -let mut out=self.b351_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e379_c(&mut self,state:State)->Step { +let mut out=self.b379_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,351,36); -out.events=self.event(Event::Capture {site:59,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.relabel_token(out.events,379,36); +out.events=self.event(Event::Capture {site:69,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["IDENTIFIERParser", "__CaptureSite"]);} out } -fn b351_c(&mut self,mut state:State)->Step { +fn b379_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.token_1::(out.state,"IDENTIFIER","IDENTIFIERParser"); out } -fn e352_c(&mut self,state:State)->Step { -let mut out=self.b352_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e380_c(&mut self,state:State)->Step { +let mut out=self.b380_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,352,36); +out.events=self.relabel_token(out.events,380,36); } else {self.display_failures(state.consumed.max(state.matched),&["'('"]);} out } -fn b352_c(&mut self,mut state:State)->Step { +fn b380_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"(",true,4,false,"("); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'('");} out } -fn e353_c(&mut self,state:State)->Step { -let mut out=self.b353_c(state); +fn e381_c(&mut self,state:State)->Step { +let mut out=self.b381_c(state); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:true,text:false}); } else {self.display_failures(state.consumed.max(state.matched),&["Optional"]);} out } -fn b353_c(&mut self,mut state:State)->Step { +fn b381_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out.state=state.begin(); let mut count=0usize;loop {let mark=self.mark();let before=out.state; -let mut child=self.e354_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} +let mut child=self.e382_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} out.events=self.join(out.events,child.events);count+=1; if before.position::()==out.state.position::() {break;} if count>=1 {break;} @@ -6966,239 +7466,239 @@ if count>1 {out.ok=false;out.state=state;let d=self.diag_fail(state.position::Step { -let mut out=self.b354_c(state); +fn e382_c(&mut self,state:State)->Step { +let mut out=self.b382_c(state); if out.ok { -out.events=self.event(Event::Capture {site:60,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:70,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b354_c(&mut self,mut state:State)->Step { +fn b382_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r39_c(out.state); out } -fn e355_c(&mut self,state:State)->Step { -let mut out=self.b355_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e383_c(&mut self,state:State)->Step { +let mut out=self.b383_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,355,36); +out.events=self.relabel_token(out.events,383,36); } else {self.display_failures(state.consumed.max(state.matched),&["')'"]);} out } -fn b355_c(&mut self,mut state:State)->Step { +fn b383_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,")",true,5,false,")"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"')'");} out } -fn e356_c(&mut self,state:State)->Step { +fn e384_c(&mut self,state:State)->Step { let mark=self.mark(); -let key=Key {expression:356,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} -self.display_enter(state.consumed.max(state.matched));let mut out=self.b356_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +let key=Key {expression:384,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} +self.display_enter(state.consumed.max(state.matched));let mut out=self.b384_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:false,text:false}); } else {self.restore(mark);self.display_failures(state.consumed.max(state.matched),&[]);} if (out.ok && true) || (!out.ok && true) {self.store(key,out,mark);}self.display_leave(); out } -fn b356_c(&mut self,mut state:State)->Step { +fn b384_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e357_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e385_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e358_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e386_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e359_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e387_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e360_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e388_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e361_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e389_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e357_c(&mut self,state:State)->Step { -let mut out=self.b357_c(state); +fn e385_c(&mut self,state:State)->Step { +let mut out=self.b385_c(state); if out.ok { -out.events=self.event(Event::Capture {site:61,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:71,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b357_c(&mut self,mut state:State)->Step { +fn b385_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r94_c(out.state); out } -fn e358_c(&mut self,state:State)->Step { -let mut out=self.b358_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e386_c(&mut self,state:State)->Step { +let mut out=self.b386_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,358,37); +out.events=self.relabel_token(out.events,386,37); } else {self.display_failures(state.consumed.max(state.matched),&["'?'"]);} out } -fn b358_c(&mut self,mut state:State)->Step { +fn b386_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"?",true,29,false,"?"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'?'");} out } -fn e359_c(&mut self,state:State)->Step { -let mut out=self.b359_c(state); +fn e387_c(&mut self,state:State)->Step { +let mut out=self.b387_c(state); if out.ok { -out.events=self.event(Event::Capture {site:62,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:72,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b359_c(&mut self,mut state:State)->Step { +fn b387_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r107_c(out.state); out } -fn e360_c(&mut self,state:State)->Step { -let mut out=self.b360_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e388_c(&mut self,state:State)->Step { +let mut out=self.b388_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,360,37); +out.events=self.relabel_token(out.events,388,37); } else {self.display_failures(state.consumed.max(state.matched),&["':'"]);} out } -fn b360_c(&mut self,mut state:State)->Step { +fn b388_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,":",true,21,false,":"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"':'");} out } -fn e361_c(&mut self,state:State)->Step { -let mut out=self.b361_c(state); +fn e389_c(&mut self,state:State)->Step { +let mut out=self.b389_c(state); if out.ok { -out.events=self.event(Event::Capture {site:63,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:73,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b361_c(&mut self,mut state:State)->Step { +fn b389_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r107_c(out.state); out } -fn e362_c(&mut self,state:State)->Step { +fn e390_c(&mut self,state:State)->Step { let mark=self.mark(); -let key=Key {expression:362,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} -self.display_enter(state.consumed.max(state.matched));let mut out=self.b362_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +let key=Key {expression:390,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} +self.display_enter(state.consumed.max(state.matched));let mut out=self.b390_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { } else {self.restore(mark);self.display_failures(state.consumed.max(state.matched),&[]);} if (out.ok && true) || (!out.ok && true) {self.store(key,out,mark);}self.display_leave(); out } -fn b362_c(&mut self,mut state:State)->Step { +fn b390_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out='choice: {let mark=self.mark();let mut diagnostic=Diag::NONE;let mut best:Option<(Step,[usize;2])>=None; -self.restore(mark);let mut child=self.e363_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=self.e391_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=self.e364_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=self.e392_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=self.e365_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=self.e393_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=self.e366_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=self.e394_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} self.restore(mark);break 'choice if let Some((mut child,effects))=best {self.replay_effects(effects);child.diag=diagnostic;child} else {out.ok=false;out.diag=diagnostic;out}; }; out } -fn e363_c(&mut self,state:State)->Step { -let mut out=self.b363_c(state); +fn e391_c(&mut self,state:State)->Step { +let mut out=self.b391_c(state); if out.ok { -out.events=self.event(Event::Capture {site:64,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:74,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["':'", "'?'"]);} out } -fn b363_c(&mut self,mut state:State)->Step { +fn b391_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r37_c(out.state); out } -fn e364_c(&mut self,state:State)->Step { -let mut out=self.b364_c(state); +fn e392_c(&mut self,state:State)->Step { +let mut out=self.b392_c(state); if out.ok { -out.events=self.event(Event::Capture {site:65,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:75,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b364_c(&mut self,mut state:State)->Step { +fn b392_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r103_c(out.state); out } -fn e365_c(&mut self,state:State)->Step { -let mut out=self.b365_c(state); +fn e393_c(&mut self,state:State)->Step { +let mut out=self.b393_c(state); if out.ok { -out.events=self.event(Event::Capture {site:66,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:76,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b365_c(&mut self,mut state:State)->Step { +fn b393_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r101_c(out.state); out } -fn e366_c(&mut self,state:State)->Step { -let mut out=self.b366_c(state); +fn e394_c(&mut self,state:State)->Step { +let mut out=self.b394_c(state); if out.ok { -out.events=self.event(Event::Capture {site:67,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:77,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b366_c(&mut self,mut state:State)->Step { +fn b394_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r123_c(out.state); out } -fn e367_c(&mut self,state:State)->Step { +fn e395_c(&mut self,state:State)->Step { let mark=self.mark(); -let key=Key {expression:367,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} -self.display_enter(state.consumed.max(state.matched));let mut out=self.b367_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +let key=Key {expression:395,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} +self.display_enter(state.consumed.max(state.matched));let mut out=self.b395_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:false,text:false}); } else {self.restore(mark);self.display_failures(state.consumed.max(state.matched),&[]);} if (out.ok && true) || (!out.ok && true) {self.store(key,out,mark);}self.display_leave(); out } -fn b367_c(&mut self,mut state:State)->Step { +fn b395_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e368_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e396_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e369_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e397_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e368_c(&mut self,state:State)->Step { -let mut out=self.b368_c(state); +fn e396_c(&mut self,state:State)->Step { +let mut out=self.b396_c(state); if out.ok { -out.events=self.event(Event::Capture {site:68,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:78,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b368_c(&mut self,mut state:State)->Step { +fn b396_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r38_c(out.state); out } -fn e369_c(&mut self,state:State)->Step { -let mut out=self.b369_c(state); +fn e397_c(&mut self,state:State)->Step { +let mut out=self.b397_c(state); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:false,text:false}); } else {self.display_failures(state.consumed.max(state.matched),&["','"]);} out } -fn b369_c(&mut self,mut state:State)->Step { +fn b397_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out.state=state.begin(); let mut count=0usize;loop {let mark=self.mark();let before=out.state; -let mut child=self.e370_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} +let mut child=self.e398_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} out.events=self.join(out.events,child.events);count+=1; if before.position::()==out.state.position::() {break;} } @@ -7207,96 +7707,96 @@ if false {out.ok=false;out.state=state;let d=self.diag_fail(state.position::Step { -let mut out=self.b370_c(state); +fn e398_c(&mut self,state:State)->Step { +let mut out=self.b398_c(state); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:true,text:false}); } else {self.display_failures(state.consumed.max(state.matched),&["','"]);} out } -fn b370_c(&mut self,mut state:State)->Step { +fn b398_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e371_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e399_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e372_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e400_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e371_c(&mut self,state:State)->Step { -let mut out=self.b371_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e399_c(&mut self,state:State)->Step { +let mut out=self.b399_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,371,39); +out.events=self.relabel_token(out.events,399,39); } else {self.display_failures(state.consumed.max(state.matched),&["','"]);} out } -fn b371_c(&mut self,mut state:State)->Step { +fn b399_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,",",true,8,false,","); if !out.ok {self.display_fail(state.consumed.max(state.matched),"','");} out } -fn e372_c(&mut self,state:State)->Step { -let mut out=self.b372_c(state); +fn e400_c(&mut self,state:State)->Step { +let mut out=self.b400_c(state); if out.ok { -out.events=self.event(Event::Capture {site:69,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:79,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b372_c(&mut self,mut state:State)->Step { +fn b400_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r38_c(out.state); out } -fn e373_c(&mut self,state:State)->Step { +fn e401_c(&mut self,state:State)->Step { let mark=self.mark(); -let key=Key {expression:373,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} -self.display_enter(state.consumed.max(state.matched));let mut out=self.b373_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +let key=Key {expression:401,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} +self.display_enter(state.consumed.max(state.matched));let mut out=self.b401_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:false,text:false}); } else {self.restore(mark);self.display_failures(state.consumed.max(state.matched),&[]);} if (out.ok && true) || (!out.ok && true) {self.store(key,out,mark);}self.display_leave(); out } -fn b373_c(&mut self,mut state:State)->Step { +fn b401_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e374_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e402_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e375_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e403_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e374_c(&mut self,state:State)->Step { -let mut out=self.b374_c(state); +fn e402_c(&mut self,state:State)->Step { +let mut out=self.b402_c(state); if out.ok { -out.events=self.event(Event::Capture {site:70,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:80,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b374_c(&mut self,mut state:State)->Step { +fn b402_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r41_c(out.state); out } -fn e375_c(&mut self,state:State)->Step { -let mut out=self.b375_c(state); +fn e403_c(&mut self,state:State)->Step { +let mut out=self.b403_c(state); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:false,text:false}); } else {self.display_failures(state.consumed.max(state.matched),&["Repeat"]);} out } -fn b375_c(&mut self,mut state:State)->Step { +fn b403_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out.state=state.begin(); let mut count=0usize;loop {let mark=self.mark();let before=out.state; -let mut child=self.e376_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} +let mut child=self.e404_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} out.events=self.join(out.events,child.events);count+=1; if before.position::()==out.state.position::() {break;} } @@ -7305,95 +7805,95 @@ if false {out.ok=false;out.state=state;let d=self.diag_fail(state.position::Step { -let mut out=self.b376_c(state); +fn e404_c(&mut self,state:State)->Step { +let mut out=self.b404_c(state); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:true,text:false}); } else {self.display_failures(state.consumed.max(state.matched),&["NumberExpressionRepeat0Parser"]);} out } -fn b376_c(&mut self,mut state:State)->Step { +fn b404_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e377_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e405_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e378_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e406_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e377_c(&mut self,state:State)->Step { -let mut out=self.b377_c(state); +fn e405_c(&mut self,state:State)->Step { +let mut out=self.b405_c(state); if out.ok { -out.events=self.event(Event::Capture {site:71,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:81,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["'+'", "'-'"]);} out } -fn b377_c(&mut self,mut state:State)->Step { +fn b405_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r42_c(out.state); out } -fn e378_c(&mut self,state:State)->Step { -let mut out=self.b378_c(state); +fn e406_c(&mut self,state:State)->Step { +let mut out=self.b406_c(state); if out.ok { -out.events=self.event(Event::Capture {site:72,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:82,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b378_c(&mut self,mut state:State)->Step { +fn b406_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r41_c(out.state); out } -fn e379_c(&mut self,state:State)->Step { +fn e407_c(&mut self,state:State)->Step { let mark=self.mark(); -let key=Key {expression:379,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} -self.display_enter(state.consumed.max(state.matched));let mut out=self.b379_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +let key=Key {expression:407,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} +self.display_enter(state.consumed.max(state.matched));let mut out=self.b407_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:false,text:false}); } else {self.restore(mark);self.display_failures(state.consumed.max(state.matched),&[]);} if (out.ok && true) || (!out.ok && true) {self.store(key,out,mark);}self.display_leave(); out } -fn b379_c(&mut self,mut state:State)->Step { +fn b407_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e380_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e408_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e381_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e409_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e380_c(&mut self,state:State)->Step { -let mut out=self.b380_c(state); +fn e408_c(&mut self,state:State)->Step { +let mut out=self.b408_c(state); if out.ok { -out.events=self.event(Event::Capture {site:73,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:83,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b380_c(&mut self,mut state:State)->Step { +fn b408_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r60_c(out.state); out } -fn e381_c(&mut self,state:State)->Step { -let mut out=self.b381_c(state); +fn e409_c(&mut self,state:State)->Step { +let mut out=self.b409_c(state); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:false,text:false}); } else {self.display_failures(state.consumed.max(state.matched),&["Repeat"]);} out } -fn b381_c(&mut self,mut state:State)->Step { +fn b409_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out.state=state.begin(); let mut count=0usize;loop {let mark=self.mark();let before=out.state; -let mut child=self.e382_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} +let mut child=self.e410_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} out.events=self.join(out.events,child.events);count+=1; if before.position::()==out.state.position::() {break;} } @@ -7402,744 +7902,744 @@ if false {out.ok=false;out.state=state;let d=self.diag_fail(state.position::Step { -let mut out=self.b382_c(state); +fn e410_c(&mut self,state:State)->Step { +let mut out=self.b410_c(state); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:true,text:false}); } else {self.display_failures(state.consumed.max(state.matched),&["NumberTermRepeat0Parser"]);} out } -fn b382_c(&mut self,mut state:State)->Step { +fn b410_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e383_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e411_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e384_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e412_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e383_c(&mut self,state:State)->Step { -let mut out=self.b383_c(state); +fn e411_c(&mut self,state:State)->Step { +let mut out=self.b411_c(state); if out.ok { -out.events=self.event(Event::Capture {site:74,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:84,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["'*'", "'/'"]);} out } -fn b383_c(&mut self,mut state:State)->Step { +fn b411_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r43_c(out.state); out } -fn e384_c(&mut self,state:State)->Step { -let mut out=self.b384_c(state); +fn e412_c(&mut self,state:State)->Step { +let mut out=self.b412_c(state); if out.ok { -out.events=self.event(Event::Capture {site:75,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:85,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b384_c(&mut self,mut state:State)->Step { +fn b412_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r60_c(out.state); out } -fn e385_c(&mut self,state:State)->Step { -let mut out=self.b385_c(state); +fn e413_c(&mut self,state:State)->Step { +let mut out=self.b413_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b385_c(&mut self,mut state:State)->Step { +fn b413_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out='choice: {let mark=self.mark();let mut diagnostic=Diag::NONE;let mut best:Option<(Step,[usize;2])>=None; if !out.state.invert {let predicted=match self.input.cp_at(out.state.begin().position::()).map(|(c,_)|c) { Some('+')=>0usize, Some('-')=>1usize, _=>usize::MAX,};let candidate=match predicted { -0=>Some(self.e386_c(out.state.begin())), -1=>Some(self.e387_c(out.state.begin())), +0=>Some(self.e414_c(out.state.begin())), +1=>Some(self.e415_c(out.state.begin())), _=>None,}; if !DIAG && self.options.predict && predicted==usize::MAX {self.restore(mark);out.ok=false;out.diag=diagnostic;break 'choice out;} if let Some(mut child)=candidate {if child.ok { if predicted>0 {let d=self.diag_fail(out.state.begin().position::(),"+");diagnostic=self.diag_join(diagnostic,d);} if predicted>1 {let d=self.diag_fail(out.state.begin().position::(),"-");diagnostic=self.diag_join(diagnostic,d);} child.state=out.state.commit(child.state);child.diag=self.diag_join(diagnostic,child.diag);break 'choice child;}}self.restore(mark); } -self.restore(mark);let mut child=self.e386_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=self.e414_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=self.e387_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=self.e415_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} self.restore(mark);break 'choice if let Some((mut child,effects))=best {self.replay_effects(effects);child.diag=diagnostic;child} else {out.ok=false;out.diag=diagnostic;out}; }; out } -fn e386_c(&mut self,state:State)->Step { -let mut out=self.b386_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e414_c(&mut self,state:State)->Step { +let mut out=self.b414_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,386,42); +out.events=self.relabel_token(out.events,414,42); } else {self.display_failures(state.consumed.max(state.matched),&["'+'"]);} out } -fn b386_c(&mut self,mut state:State)->Step { +fn b414_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"+",true,7,false,"+"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'+'");} out } -fn e387_c(&mut self,state:State)->Step { -let mut out=self.b387_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e415_c(&mut self,state:State)->Step { +let mut out=self.b415_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,387,42); +out.events=self.relabel_token(out.events,415,42); } else {self.display_failures(state.consumed.max(state.matched),&["'-'"]);} out } -fn b387_c(&mut self,mut state:State)->Step { +fn b415_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"-",true,9,false,"-"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'-'");} out } -fn e388_c(&mut self,state:State)->Step { -let mut out=self.b388_c(state); +fn e416_c(&mut self,state:State)->Step { +let mut out=self.b416_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b388_c(&mut self,mut state:State)->Step { +fn b416_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out='choice: {let mark=self.mark();let mut diagnostic=Diag::NONE;let mut best:Option<(Step,[usize;2])>=None; if !out.state.invert {let predicted=match self.input.cp_at(out.state.begin().position::()).map(|(c,_)|c) { Some('*')=>0usize, Some('/')=>1usize, _=>usize::MAX,};let candidate=match predicted { -0=>Some(self.e389_c(out.state.begin())), -1=>Some(self.e390_c(out.state.begin())), +0=>Some(self.e417_c(out.state.begin())), +1=>Some(self.e418_c(out.state.begin())), _=>None,}; if !DIAG && self.options.predict && predicted==usize::MAX {self.restore(mark);out.ok=false;out.diag=diagnostic;break 'choice out;} if let Some(mut child)=candidate {if child.ok { if predicted>0 {let d=self.diag_fail(out.state.begin().position::(),"*");diagnostic=self.diag_join(diagnostic,d);} if predicted>1 {let d=self.diag_fail(out.state.begin().position::(),"/");diagnostic=self.diag_join(diagnostic,d);} child.state=out.state.commit(child.state);child.diag=self.diag_join(diagnostic,child.diag);break 'choice child;}}self.restore(mark); } -self.restore(mark);let mut child=self.e389_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=self.e417_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=self.e390_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=self.e418_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} self.restore(mark);break 'choice if let Some((mut child,effects))=best {self.replay_effects(effects);child.diag=diagnostic;child} else {out.ok=false;out.diag=diagnostic;out}; }; out } -fn e389_c(&mut self,state:State)->Step { -let mut out=self.b389_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e417_c(&mut self,state:State)->Step { +let mut out=self.b417_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,389,43); +out.events=self.relabel_token(out.events,417,43); } else {self.display_failures(state.consumed.max(state.matched),&["'*'"]);} out } -fn b389_c(&mut self,mut state:State)->Step { +fn b417_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"*",true,6,false,"*"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'*'");} out } -fn e390_c(&mut self,state:State)->Step { -let mut out=self.b390_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e418_c(&mut self,state:State)->Step { +let mut out=self.b418_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,390,43); +out.events=self.relabel_token(out.events,418,43); } else {self.display_failures(state.consumed.max(state.matched),&["'/'"]);} out } -fn b390_c(&mut self,mut state:State)->Step { +fn b418_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"/",true,20,false,"/"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'/'");} out } -fn e391_c(&mut self,state:State)->Step { +fn e419_c(&mut self,state:State)->Step { let mark=self.mark(); -let key=Key {expression:391,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} -self.display_enter(state.consumed.max(state.matched));let mut out=self.b391_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +let key=Key {expression:419,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} +self.display_enter(state.consumed.max(state.matched));let mut out=self.b419_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { } else {self.restore(mark);self.display_failures(state.consumed.max(state.matched),&[]);} if (out.ok && true) || (!out.ok && true) {self.store(key,out,mark);}self.display_leave(); out } -fn b391_c(&mut self,mut state:State)->Step { +fn b419_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out='choice: {let mark=self.mark();let mut diagnostic=Diag::NONE;let mut best:Option<(Step,[usize;2])>=None; let ct=self.input.cp_at(self.skip_0::(out.state.begin()).position::()).map(|(c,_)|c); -self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,115))) {self.guard_e392_c(out.state.begin())} else {self.e392_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,115))) {self.guard_e420_c(out.state.begin())} else {self.e420_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,99))) {self.guard_e393_c(out.state.begin())} else {self.e393_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,99))) {self.guard_e421_c(out.state.begin())} else {self.e421_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,116))) {self.guard_e394_c(out.state.begin())} else {self.e394_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,116))) {self.guard_e422_c(out.state.begin())} else {self.e422_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,115))) {self.guard_e395_c(out.state.begin())} else {self.e395_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,115))) {self.guard_e423_c(out.state.begin())} else {self.e423_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,109))) {self.guard_e396_c(out.state.begin())} else {self.e396_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,109))) {self.guard_e424_c(out.state.begin())} else {self.e424_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,109))) {self.guard_e397_c(out.state.begin())} else {self.e397_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,109))) {self.guard_e425_c(out.state.begin())} else {self.e425_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,114))) {self.guard_e398_c(out.state.begin())} else {self.e398_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,114))) {self.guard_e426_c(out.state.begin())} else {self.e426_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,97))) {self.guard_e399_c(out.state.begin())} else {self.e399_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,97))) {self.guard_e427_c(out.state.begin())} else {self.e427_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,114))) {self.guard_e400_c(out.state.begin())} else {self.e400_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,114))) {self.guard_e428_c(out.state.begin())} else {self.e428_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,99))) {self.guard_e401_c(out.state.begin())} else {self.e401_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,99))) {self.guard_e429_c(out.state.begin())} else {self.e429_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,102))) {self.guard_e402_c(out.state.begin())} else {self.e402_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,102))) {self.guard_e430_c(out.state.begin())} else {self.e430_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,112))) {self.guard_e403_c(out.state.begin())} else {self.e403_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,112))) {self.guard_e431_c(out.state.begin())} else {self.e431_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,108))) {self.guard_e404_c(out.state.begin())} else {self.e404_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,108))) {self.guard_e432_c(out.state.begin())} else {self.e432_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,101))) {self.guard_e405_c(out.state.begin())} else {self.e405_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,101))) {self.guard_e433_c(out.state.begin())} else {self.e433_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} self.restore(mark);break 'choice if let Some((mut child,effects))=best {self.replay_effects(effects);child.diag=diagnostic;child} else {out.ok=false;out.diag=diagnostic;out}; }; out } -fn e392_c(&mut self,state:State)->Step { -let mut out=self.b392_c(state); +fn e420_c(&mut self,state:State)->Step { +let mut out=self.b420_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b392_c(&mut self,mut state:State)->Step { +fn b420_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r45_c(out.state); out } -fn e393_c(&mut self,state:State)->Step { -let mut out=self.b393_c(state); +fn e421_c(&mut self,state:State)->Step { +let mut out=self.b421_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b393_c(&mut self,mut state:State)->Step { +fn b421_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r46_c(out.state); out } -fn e394_c(&mut self,state:State)->Step { -let mut out=self.b394_c(state); +fn e422_c(&mut self,state:State)->Step { +let mut out=self.b422_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b394_c(&mut self,mut state:State)->Step { +fn b422_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r47_c(out.state); out } -fn e395_c(&mut self,state:State)->Step { -let mut out=self.b395_c(state); +fn e423_c(&mut self,state:State)->Step { +let mut out=self.b423_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b395_c(&mut self,mut state:State)->Step { +fn b423_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r48_c(out.state); out } -fn e396_c(&mut self,state:State)->Step { -let mut out=self.b396_c(state); +fn e424_c(&mut self,state:State)->Step { +let mut out=self.b424_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b396_c(&mut self,mut state:State)->Step { +fn b424_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r49_c(out.state); out } -fn e397_c(&mut self,state:State)->Step { -let mut out=self.b397_c(state); +fn e425_c(&mut self,state:State)->Step { +let mut out=self.b425_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b397_c(&mut self,mut state:State)->Step { +fn b425_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r50_c(out.state); out } -fn e398_c(&mut self,state:State)->Step { -let mut out=self.b398_c(state); +fn e426_c(&mut self,state:State)->Step { +let mut out=self.b426_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b398_c(&mut self,mut state:State)->Step { +fn b426_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r51_c(out.state); out } -fn e399_c(&mut self,state:State)->Step { -let mut out=self.b399_c(state); +fn e427_c(&mut self,state:State)->Step { +let mut out=self.b427_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b399_c(&mut self,mut state:State)->Step { +fn b427_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r52_c(out.state); out } -fn e400_c(&mut self,state:State)->Step { -let mut out=self.b400_c(state); +fn e428_c(&mut self,state:State)->Step { +let mut out=self.b428_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b400_c(&mut self,mut state:State)->Step { +fn b428_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r53_c(out.state); out } -fn e401_c(&mut self,state:State)->Step { -let mut out=self.b401_c(state); +fn e429_c(&mut self,state:State)->Step { +let mut out=self.b429_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b401_c(&mut self,mut state:State)->Step { +fn b429_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r54_c(out.state); out } -fn e402_c(&mut self,state:State)->Step { -let mut out=self.b402_c(state); +fn e430_c(&mut self,state:State)->Step { +let mut out=self.b430_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b402_c(&mut self,mut state:State)->Step { +fn b430_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r55_c(out.state); out } -fn e403_c(&mut self,state:State)->Step { -let mut out=self.b403_c(state); +fn e431_c(&mut self,state:State)->Step { +let mut out=self.b431_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b403_c(&mut self,mut state:State)->Step { +fn b431_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r56_c(out.state); out } -fn e404_c(&mut self,state:State)->Step { -let mut out=self.b404_c(state); +fn e432_c(&mut self,state:State)->Step { +let mut out=self.b432_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b404_c(&mut self,mut state:State)->Step { +fn b432_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r57_c(out.state); out } -fn e405_c(&mut self,state:State)->Step { -let mut out=self.b405_c(state); +fn e433_c(&mut self,state:State)->Step { +let mut out=self.b433_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b405_c(&mut self,mut state:State)->Step { +fn b433_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r58_c(out.state); out } -fn e406_c(&mut self,state:State)->Step { +fn e434_c(&mut self,state:State)->Step { let mark=self.mark(); -let key=Key {expression:406,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} -self.display_enter(state.consumed.max(state.matched));let mut out=self.b406_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +let key=Key {expression:434,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} +self.display_enter(state.consumed.max(state.matched));let mut out=self.b434_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:true,text:false}); } else {self.restore(mark);self.display_failures(state.consumed.max(state.matched),&[]);} if (out.ok && true) || (!out.ok && true) {self.store(key,out,mark);}self.display_leave(); out } -fn b406_c(&mut self,mut state:State)->Step { +fn b434_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e407_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e435_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e408_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e436_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e409_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e437_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e410_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e438_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e407_c(&mut self,state:State)->Step { -let mut out=self.b407_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e435_c(&mut self,state:State)->Step { +let mut out=self.b435_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,407,45); +out.events=self.relabel_token(out.events,435,45); } else {self.display_failures(state.consumed.max(state.matched),&["'sin'"]);} out } -fn b407_c(&mut self,mut state:State)->Step { +fn b435_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"sin",true,83,false,"sin"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'sin'");} out } -fn e408_c(&mut self,state:State)->Step { -let mut out=self.b408_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e436_c(&mut self,state:State)->Step { +let mut out=self.b436_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,408,45); +out.events=self.relabel_token(out.events,436,45); } else {self.display_failures(state.consumed.max(state.matched),&["'('"]);} out } -fn b408_c(&mut self,mut state:State)->Step { +fn b436_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"(",true,4,false,"("); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'('");} out } -fn e409_c(&mut self,state:State)->Step { -let mut out=self.b409_c(state); +fn e437_c(&mut self,state:State)->Step { +let mut out=self.b437_c(state); if out.ok { -out.events=self.event(Event::Capture {site:76,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:86,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b409_c(&mut self,mut state:State)->Step { +fn b437_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r38_c(out.state); out } -fn e410_c(&mut self,state:State)->Step { -let mut out=self.b410_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e438_c(&mut self,state:State)->Step { +let mut out=self.b438_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,410,45); +out.events=self.relabel_token(out.events,438,45); } else {self.display_failures(state.consumed.max(state.matched),&["')'"]);} out } -fn b410_c(&mut self,mut state:State)->Step { +fn b438_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,")",true,5,false,")"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"')'");} out } -fn e411_c(&mut self,state:State)->Step { +fn e439_c(&mut self,state:State)->Step { let mark=self.mark(); -let key=Key {expression:411,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} -self.display_enter(state.consumed.max(state.matched));let mut out=self.b411_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +let key=Key {expression:439,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} +self.display_enter(state.consumed.max(state.matched));let mut out=self.b439_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:true,text:false}); } else {self.restore(mark);self.display_failures(state.consumed.max(state.matched),&[]);} if (out.ok && true) || (!out.ok && true) {self.store(key,out,mark);}self.display_leave(); out } -fn b411_c(&mut self,mut state:State)->Step { +fn b439_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e412_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e440_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e413_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e441_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e414_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e442_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e415_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e443_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e412_c(&mut self,state:State)->Step { -let mut out=self.b412_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e440_c(&mut self,state:State)->Step { +let mut out=self.b440_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,412,46); +out.events=self.relabel_token(out.events,440,46); } else {self.display_failures(state.consumed.max(state.matched),&["'cos'"]);} out } -fn b412_c(&mut self,mut state:State)->Step { +fn b440_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"cos",true,52,false,"cos"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'cos'");} out } -fn e413_c(&mut self,state:State)->Step { -let mut out=self.b413_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e441_c(&mut self,state:State)->Step { +let mut out=self.b441_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,413,46); +out.events=self.relabel_token(out.events,441,46); } else {self.display_failures(state.consumed.max(state.matched),&["'('"]);} out } -fn b413_c(&mut self,mut state:State)->Step { +fn b441_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"(",true,4,false,"("); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'('");} out } -fn e414_c(&mut self,state:State)->Step { -let mut out=self.b414_c(state); +fn e442_c(&mut self,state:State)->Step { +let mut out=self.b442_c(state); if out.ok { -out.events=self.event(Event::Capture {site:77,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:87,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b414_c(&mut self,mut state:State)->Step { +fn b442_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r38_c(out.state); out } -fn e415_c(&mut self,state:State)->Step { -let mut out=self.b415_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e443_c(&mut self,state:State)->Step { +let mut out=self.b443_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,415,46); +out.events=self.relabel_token(out.events,443,46); } else {self.display_failures(state.consumed.max(state.matched),&["')'"]);} out } -fn b415_c(&mut self,mut state:State)->Step { +fn b443_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,")",true,5,false,")"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"')'");} out } -fn e416_c(&mut self,state:State)->Step { +fn e444_c(&mut self,state:State)->Step { let mark=self.mark(); -let key=Key {expression:416,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} -self.display_enter(state.consumed.max(state.matched));let mut out=self.b416_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +let key=Key {expression:444,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} +self.display_enter(state.consumed.max(state.matched));let mut out=self.b444_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:true,text:false}); } else {self.restore(mark);self.display_failures(state.consumed.max(state.matched),&[]);} if (out.ok && true) || (!out.ok && true) {self.store(key,out,mark);}self.display_leave(); out } -fn b416_c(&mut self,mut state:State)->Step { +fn b444_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e417_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e445_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e418_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e446_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e419_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e447_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e420_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e448_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e417_c(&mut self,state:State)->Step { -let mut out=self.b417_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e445_c(&mut self,state:State)->Step { +let mut out=self.b445_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,417,47); +out.events=self.relabel_token(out.events,445,47); } else {self.display_failures(state.consumed.max(state.matched),&["'tan'"]);} out } -fn b417_c(&mut self,mut state:State)->Step { +fn b445_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"tan",true,87,false,"tan"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'tan'");} out } -fn e418_c(&mut self,state:State)->Step { -let mut out=self.b418_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e446_c(&mut self,state:State)->Step { +let mut out=self.b446_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,418,47); +out.events=self.relabel_token(out.events,446,47); } else {self.display_failures(state.consumed.max(state.matched),&["'('"]);} out } -fn b418_c(&mut self,mut state:State)->Step { +fn b446_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"(",true,4,false,"("); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'('");} out } -fn e419_c(&mut self,state:State)->Step { -let mut out=self.b419_c(state); +fn e447_c(&mut self,state:State)->Step { +let mut out=self.b447_c(state); if out.ok { -out.events=self.event(Event::Capture {site:78,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:88,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b419_c(&mut self,mut state:State)->Step { +fn b447_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r38_c(out.state); out } -fn e420_c(&mut self,state:State)->Step { -let mut out=self.b420_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e448_c(&mut self,state:State)->Step { +let mut out=self.b448_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,420,47); +out.events=self.relabel_token(out.events,448,47); } else {self.display_failures(state.consumed.max(state.matched),&["')'"]);} out } -fn b420_c(&mut self,mut state:State)->Step { +fn b448_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,")",true,5,false,")"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"')'");} out } -fn e421_c(&mut self,state:State)->Step { +fn e449_c(&mut self,state:State)->Step { let mark=self.mark(); -let key=Key {expression:421,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} -self.display_enter(state.consumed.max(state.matched));let mut out=self.b421_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +let key=Key {expression:449,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} +self.display_enter(state.consumed.max(state.matched));let mut out=self.b449_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:true,text:false}); } else {self.restore(mark);self.display_failures(state.consumed.max(state.matched),&[]);} if (out.ok && true) || (!out.ok && true) {self.store(key,out,mark);}self.display_leave(); out } -fn b421_c(&mut self,mut state:State)->Step { +fn b449_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e422_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e450_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e423_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e451_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e424_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e452_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e425_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e453_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e422_c(&mut self,state:State)->Step { -let mut out=self.b422_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e450_c(&mut self,state:State)->Step { +let mut out=self.b450_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,422,48); +out.events=self.relabel_token(out.events,450,48); } else {self.display_failures(state.consumed.max(state.matched),&["'sqrt'"]);} out } -fn b422_c(&mut self,mut state:State)->Step { +fn b450_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"sqrt",true,84,false,"sqrt"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'sqrt'");} out } -fn e423_c(&mut self,state:State)->Step { -let mut out=self.b423_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e451_c(&mut self,state:State)->Step { +let mut out=self.b451_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,423,48); +out.events=self.relabel_token(out.events,451,48); } else {self.display_failures(state.consumed.max(state.matched),&["'('"]);} out } -fn b423_c(&mut self,mut state:State)->Step { +fn b451_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"(",true,4,false,"("); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'('");} out } -fn e424_c(&mut self,state:State)->Step { -let mut out=self.b424_c(state); +fn e452_c(&mut self,state:State)->Step { +let mut out=self.b452_c(state); if out.ok { -out.events=self.event(Event::Capture {site:79,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:89,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b424_c(&mut self,mut state:State)->Step { +fn b452_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r38_c(out.state); out } -fn e425_c(&mut self,state:State)->Step { -let mut out=self.b425_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e453_c(&mut self,state:State)->Step { +let mut out=self.b453_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,425,48); +out.events=self.relabel_token(out.events,453,48); } else {self.display_failures(state.consumed.max(state.matched),&["')'"]);} out } -fn b425_c(&mut self,mut state:State)->Step { +fn b453_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,")",true,5,false,")"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"')'");} out } -fn e426_c(&mut self,state:State)->Step { +fn e454_c(&mut self,state:State)->Step { let mark=self.mark(); -let key=Key {expression:426,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} -self.display_enter(state.consumed.max(state.matched));let mut out=self.b426_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +let key=Key {expression:454,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} +self.display_enter(state.consumed.max(state.matched));let mut out=self.b454_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:false,text:false}); } else {self.restore(mark);self.display_failures(state.consumed.max(state.matched),&[]);} if (out.ok && true) || (!out.ok && true) {self.store(key,out,mark);}self.display_leave(); out } -fn b426_c(&mut self,mut state:State)->Step { +fn b454_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e427_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e455_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e428_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e456_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e429_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e457_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e430_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e458_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e434_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e462_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e427_c(&mut self,state:State)->Step { -let mut out=self.b427_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e455_c(&mut self,state:State)->Step { +let mut out=self.b455_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,427,49); +out.events=self.relabel_token(out.events,455,49); } else {self.display_failures(state.consumed.max(state.matched),&["'min'"]);} out } -fn b427_c(&mut self,mut state:State)->Step { +fn b455_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"min",true,74,false,"min"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'min'");} out } -fn e428_c(&mut self,state:State)->Step { -let mut out=self.b428_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e456_c(&mut self,state:State)->Step { +let mut out=self.b456_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,428,49); +out.events=self.relabel_token(out.events,456,49); } else {self.display_failures(state.consumed.max(state.matched),&["'('"]);} out } -fn b428_c(&mut self,mut state:State)->Step { +fn b456_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"(",true,4,false,"("); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'('");} out } -fn e429_c(&mut self,state:State)->Step { -let mut out=self.b429_c(state); +fn e457_c(&mut self,state:State)->Step { +let mut out=self.b457_c(state); if out.ok { -out.events=self.event(Event::Capture {site:80,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:90,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b429_c(&mut self,mut state:State)->Step { +fn b457_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r38_c(out.state); out } -fn e430_c(&mut self,state:State)->Step { -let mut out=self.b430_c(state); +fn e458_c(&mut self,state:State)->Step { +let mut out=self.b458_c(state); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:false,text:false}); } else {self.display_failures(state.consumed.max(state.matched),&["','"]);} out } -fn b430_c(&mut self,mut state:State)->Step { +fn b458_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out.state=state.begin(); let mut count=0usize;loop {let mark=self.mark();let before=out.state; -let mut child=self.e431_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} +let mut child=self.e459_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} out.events=self.join(out.events,child.events);count+=1; if before.position::()==out.state.position::() {break;} } @@ -8148,141 +8648,141 @@ if false {out.ok=false;out.state=state;let d=self.diag_fail(state.position::Step { -let mut out=self.b431_c(state); +fn e459_c(&mut self,state:State)->Step { +let mut out=self.b459_c(state); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:true,text:false}); } else {self.display_failures(state.consumed.max(state.matched),&["','"]);} out } -fn b431_c(&mut self,mut state:State)->Step { +fn b459_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e432_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e460_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e433_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e461_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e432_c(&mut self,state:State)->Step { -let mut out=self.b432_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e460_c(&mut self,state:State)->Step { +let mut out=self.b460_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,432,49); +out.events=self.relabel_token(out.events,460,49); } else {self.display_failures(state.consumed.max(state.matched),&["','"]);} out } -fn b432_c(&mut self,mut state:State)->Step { +fn b460_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,",",true,8,false,","); if !out.ok {self.display_fail(state.consumed.max(state.matched),"','");} out } -fn e433_c(&mut self,state:State)->Step { -let mut out=self.b433_c(state); +fn e461_c(&mut self,state:State)->Step { +let mut out=self.b461_c(state); if out.ok { -out.events=self.event(Event::Capture {site:81,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:91,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b433_c(&mut self,mut state:State)->Step { +fn b461_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r38_c(out.state); out } -fn e434_c(&mut self,state:State)->Step { -let mut out=self.b434_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e462_c(&mut self,state:State)->Step { +let mut out=self.b462_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,434,49); +out.events=self.relabel_token(out.events,462,49); } else {self.display_failures(state.consumed.max(state.matched),&["')'"]);} out } -fn b434_c(&mut self,mut state:State)->Step { +fn b462_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,")",true,5,false,")"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"')'");} out } -fn e435_c(&mut self,state:State)->Step { +fn e463_c(&mut self,state:State)->Step { let mark=self.mark(); -let key=Key {expression:435,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} -self.display_enter(state.consumed.max(state.matched));let mut out=self.b435_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +let key=Key {expression:463,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} +self.display_enter(state.consumed.max(state.matched));let mut out=self.b463_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:false,text:false}); } else {self.restore(mark);self.display_failures(state.consumed.max(state.matched),&[]);} if (out.ok && true) || (!out.ok && true) {self.store(key,out,mark);}self.display_leave(); out } -fn b435_c(&mut self,mut state:State)->Step { +fn b463_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e436_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e464_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e437_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e465_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e438_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e466_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e439_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e467_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e443_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e471_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e436_c(&mut self,state:State)->Step { -let mut out=self.b436_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e464_c(&mut self,state:State)->Step { +let mut out=self.b464_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,436,50); +out.events=self.relabel_token(out.events,464,50); } else {self.display_failures(state.consumed.max(state.matched),&["'max'"]);} out } -fn b436_c(&mut self,mut state:State)->Step { +fn b464_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"max",true,73,false,"max"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'max'");} out } -fn e437_c(&mut self,state:State)->Step { -let mut out=self.b437_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e465_c(&mut self,state:State)->Step { +let mut out=self.b465_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,437,50); +out.events=self.relabel_token(out.events,465,50); } else {self.display_failures(state.consumed.max(state.matched),&["'('"]);} out } -fn b437_c(&mut self,mut state:State)->Step { +fn b465_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"(",true,4,false,"("); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'('");} out } -fn e438_c(&mut self,state:State)->Step { -let mut out=self.b438_c(state); +fn e466_c(&mut self,state:State)->Step { +let mut out=self.b466_c(state); if out.ok { -out.events=self.event(Event::Capture {site:82,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:92,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b438_c(&mut self,mut state:State)->Step { +fn b466_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r38_c(out.state); out } -fn e439_c(&mut self,state:State)->Step { -let mut out=self.b439_c(state); +fn e467_c(&mut self,state:State)->Step { +let mut out=self.b467_c(state); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:false,text:false}); } else {self.display_failures(state.consumed.max(state.matched),&["','"]);} out } -fn b439_c(&mut self,mut state:State)->Step { +fn b467_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out.state=state.begin(); let mut count=0usize;loop {let mark=self.mark();let before=out.state; -let mut child=self.e440_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} +let mut child=self.e468_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} out.events=self.join(out.events,child.events);count+=1; if before.position::()==out.state.position::() {break;} } @@ -8291,1831 +8791,1831 @@ if false {out.ok=false;out.state=state;let d=self.diag_fail(state.position::Step { -let mut out=self.b440_c(state); +fn e468_c(&mut self,state:State)->Step { +let mut out=self.b468_c(state); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:true,text:false}); } else {self.display_failures(state.consumed.max(state.matched),&["','"]);} out } -fn b440_c(&mut self,mut state:State)->Step { +fn b468_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e441_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e469_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e442_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e470_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e441_c(&mut self,state:State)->Step { -let mut out=self.b441_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e469_c(&mut self,state:State)->Step { +let mut out=self.b469_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,441,50); +out.events=self.relabel_token(out.events,469,50); } else {self.display_failures(state.consumed.max(state.matched),&["','"]);} out } -fn b441_c(&mut self,mut state:State)->Step { +fn b469_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,",",true,8,false,","); if !out.ok {self.display_fail(state.consumed.max(state.matched),"','");} out } -fn e442_c(&mut self,state:State)->Step { -let mut out=self.b442_c(state); +fn e470_c(&mut self,state:State)->Step { +let mut out=self.b470_c(state); if out.ok { -out.events=self.event(Event::Capture {site:83,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:93,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b442_c(&mut self,mut state:State)->Step { +fn b470_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r38_c(out.state); out } -fn e443_c(&mut self,state:State)->Step { -let mut out=self.b443_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e471_c(&mut self,state:State)->Step { +let mut out=self.b471_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,443,50); +out.events=self.relabel_token(out.events,471,50); } else {self.display_failures(state.consumed.max(state.matched),&["')'"]);} out } -fn b443_c(&mut self,mut state:State)->Step { +fn b471_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,")",true,5,false,")"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"')'");} out } -fn e444_c(&mut self,state:State)->Step { -let mut out=self.b444_c(state); +fn e472_c(&mut self,state:State)->Step { +let mut out=self.b472_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b444_c(&mut self,mut state:State)->Step { +fn b472_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e445_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e473_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e446_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e474_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e447_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e475_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e445_c(&mut self,state:State)->Step { -let mut out=self.b445_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e473_c(&mut self,state:State)->Step { +let mut out=self.b473_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,445,51); +out.events=self.relabel_token(out.events,473,51); } else {self.display_failures(state.consumed.max(state.matched),&["'random'"]);} out } -fn b445_c(&mut self,mut state:State)->Step { +fn b473_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"random",true,79,false,"random"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'random'");} out } -fn e446_c(&mut self,state:State)->Step { -let mut out=self.b446_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e474_c(&mut self,state:State)->Step { +let mut out=self.b474_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,446,51); +out.events=self.relabel_token(out.events,474,51); } else {self.display_failures(state.consumed.max(state.matched),&["'('"]);} out } -fn b446_c(&mut self,mut state:State)->Step { +fn b474_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"(",true,4,false,"("); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'('");} out } -fn e447_c(&mut self,state:State)->Step { -let mut out=self.b447_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e475_c(&mut self,state:State)->Step { +let mut out=self.b475_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,447,51); +out.events=self.relabel_token(out.events,475,51); } else {self.display_failures(state.consumed.max(state.matched),&["')'"]);} out } -fn b447_c(&mut self,mut state:State)->Step { +fn b475_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,")",true,5,false,")"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"')'");} out } -fn e448_c(&mut self,state:State)->Step { +fn e476_c(&mut self,state:State)->Step { let mark=self.mark(); -let key=Key {expression:448,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} -self.display_enter(state.consumed.max(state.matched));let mut out=self.b448_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +let key=Key {expression:476,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} +self.display_enter(state.consumed.max(state.matched));let mut out=self.b476_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:true,text:false}); } else {self.restore(mark);self.display_failures(state.consumed.max(state.matched),&[]);} if (out.ok && true) || (!out.ok && true) {self.store(key,out,mark);}self.display_leave(); out } -fn b448_c(&mut self,mut state:State)->Step { +fn b476_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e449_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e477_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e450_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e478_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e451_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e479_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e452_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e480_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e449_c(&mut self,state:State)->Step { -let mut out=self.b449_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e477_c(&mut self,state:State)->Step { +let mut out=self.b477_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,449,52); +out.events=self.relabel_token(out.events,477,52); } else {self.display_failures(state.consumed.max(state.matched),&["'abs'"]);} out } -fn b449_c(&mut self,mut state:State)->Step { +fn b477_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"abs",true,46,false,"abs"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'abs'");} out } -fn e450_c(&mut self,state:State)->Step { -let mut out=self.b450_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e478_c(&mut self,state:State)->Step { +let mut out=self.b478_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,450,52); +out.events=self.relabel_token(out.events,478,52); } else {self.display_failures(state.consumed.max(state.matched),&["'('"]);} out } -fn b450_c(&mut self,mut state:State)->Step { +fn b478_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"(",true,4,false,"("); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'('");} out } -fn e451_c(&mut self,state:State)->Step { -let mut out=self.b451_c(state); +fn e479_c(&mut self,state:State)->Step { +let mut out=self.b479_c(state); if out.ok { -out.events=self.event(Event::Capture {site:84,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:94,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b451_c(&mut self,mut state:State)->Step { +fn b479_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r38_c(out.state); out } -fn e452_c(&mut self,state:State)->Step { -let mut out=self.b452_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e480_c(&mut self,state:State)->Step { +let mut out=self.b480_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,452,52); +out.events=self.relabel_token(out.events,480,52); } else {self.display_failures(state.consumed.max(state.matched),&["')'"]);} out } -fn b452_c(&mut self,mut state:State)->Step { +fn b480_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,")",true,5,false,")"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"')'");} out } -fn e453_c(&mut self,state:State)->Step { +fn e481_c(&mut self,state:State)->Step { let mark=self.mark(); -let key=Key {expression:453,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} -self.display_enter(state.consumed.max(state.matched));let mut out=self.b453_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +let key=Key {expression:481,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} +self.display_enter(state.consumed.max(state.matched));let mut out=self.b481_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:true,text:false}); } else {self.restore(mark);self.display_failures(state.consumed.max(state.matched),&[]);} if (out.ok && true) || (!out.ok && true) {self.store(key,out,mark);}self.display_leave(); out } -fn b453_c(&mut self,mut state:State)->Step { +fn b481_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e454_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e482_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e455_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e483_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e456_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e484_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e457_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e485_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e454_c(&mut self,state:State)->Step { -let mut out=self.b454_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e482_c(&mut self,state:State)->Step { +let mut out=self.b482_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,454,53); +out.events=self.relabel_token(out.events,482,53); } else {self.display_failures(state.consumed.max(state.matched),&["'round'"]);} out } -fn b454_c(&mut self,mut state:State)->Step { +fn b482_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"round",true,81,false,"round"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'round'");} out } -fn e455_c(&mut self,state:State)->Step { -let mut out=self.b455_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e483_c(&mut self,state:State)->Step { +let mut out=self.b483_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,455,53); +out.events=self.relabel_token(out.events,483,53); } else {self.display_failures(state.consumed.max(state.matched),&["'('"]);} out } -fn b455_c(&mut self,mut state:State)->Step { +fn b483_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"(",true,4,false,"("); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'('");} out } -fn e456_c(&mut self,state:State)->Step { -let mut out=self.b456_c(state); +fn e484_c(&mut self,state:State)->Step { +let mut out=self.b484_c(state); if out.ok { -out.events=self.event(Event::Capture {site:85,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:95,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b456_c(&mut self,mut state:State)->Step { +fn b484_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r38_c(out.state); out } -fn e457_c(&mut self,state:State)->Step { -let mut out=self.b457_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e485_c(&mut self,state:State)->Step { +let mut out=self.b485_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,457,53); +out.events=self.relabel_token(out.events,485,53); } else {self.display_failures(state.consumed.max(state.matched),&["')'"]);} out } -fn b457_c(&mut self,mut state:State)->Step { +fn b485_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,")",true,5,false,")"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"')'");} out } -fn e458_c(&mut self,state:State)->Step { +fn e486_c(&mut self,state:State)->Step { let mark=self.mark(); -let key=Key {expression:458,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} -self.display_enter(state.consumed.max(state.matched));let mut out=self.b458_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +let key=Key {expression:486,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} +self.display_enter(state.consumed.max(state.matched));let mut out=self.b486_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:true,text:false}); } else {self.restore(mark);self.display_failures(state.consumed.max(state.matched),&[]);} if (out.ok && true) || (!out.ok && true) {self.store(key,out,mark);}self.display_leave(); out } -fn b458_c(&mut self,mut state:State)->Step { +fn b486_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e459_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e487_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e460_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e488_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e461_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e489_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e462_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e490_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e459_c(&mut self,state:State)->Step { -let mut out=self.b459_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e487_c(&mut self,state:State)->Step { +let mut out=self.b487_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,459,54); +out.events=self.relabel_token(out.events,487,54); } else {self.display_failures(state.consumed.max(state.matched),&["'ceil'"]);} out } -fn b459_c(&mut self,mut state:State)->Step { +fn b487_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"ceil",true,50,false,"ceil"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'ceil'");} out } -fn e460_c(&mut self,state:State)->Step { -let mut out=self.b460_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e488_c(&mut self,state:State)->Step { +let mut out=self.b488_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,460,54); +out.events=self.relabel_token(out.events,488,54); } else {self.display_failures(state.consumed.max(state.matched),&["'('"]);} out } -fn b460_c(&mut self,mut state:State)->Step { +fn b488_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"(",true,4,false,"("); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'('");} out } -fn e461_c(&mut self,state:State)->Step { -let mut out=self.b461_c(state); +fn e489_c(&mut self,state:State)->Step { +let mut out=self.b489_c(state); if out.ok { -out.events=self.event(Event::Capture {site:86,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:96,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b461_c(&mut self,mut state:State)->Step { +fn b489_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r38_c(out.state); out } -fn e462_c(&mut self,state:State)->Step { -let mut out=self.b462_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e490_c(&mut self,state:State)->Step { +let mut out=self.b490_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,462,54); +out.events=self.relabel_token(out.events,490,54); } else {self.display_failures(state.consumed.max(state.matched),&["')'"]);} out } -fn b462_c(&mut self,mut state:State)->Step { +fn b490_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,")",true,5,false,")"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"')'");} out } -fn e463_c(&mut self,state:State)->Step { +fn e491_c(&mut self,state:State)->Step { let mark=self.mark(); -let key=Key {expression:463,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} -self.display_enter(state.consumed.max(state.matched));let mut out=self.b463_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +let key=Key {expression:491,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} +self.display_enter(state.consumed.max(state.matched));let mut out=self.b491_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:true,text:false}); } else {self.restore(mark);self.display_failures(state.consumed.max(state.matched),&[]);} if (out.ok && true) || (!out.ok && true) {self.store(key,out,mark);}self.display_leave(); out } -fn b463_c(&mut self,mut state:State)->Step { +fn b491_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e464_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e492_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e465_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e493_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e466_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e494_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e467_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e495_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e464_c(&mut self,state:State)->Step { -let mut out=self.b464_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e492_c(&mut self,state:State)->Step { +let mut out=self.b492_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,464,55); +out.events=self.relabel_token(out.events,492,55); } else {self.display_failures(state.consumed.max(state.matched),&["'floor'"]);} out } -fn b464_c(&mut self,mut state:State)->Step { +fn b492_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"floor",true,62,false,"floor"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'floor'");} out } -fn e465_c(&mut self,state:State)->Step { -let mut out=self.b465_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e493_c(&mut self,state:State)->Step { +let mut out=self.b493_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,465,55); +out.events=self.relabel_token(out.events,493,55); } else {self.display_failures(state.consumed.max(state.matched),&["'('"]);} out } -fn b465_c(&mut self,mut state:State)->Step { +fn b493_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"(",true,4,false,"("); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'('");} out } -fn e466_c(&mut self,state:State)->Step { -let mut out=self.b466_c(state); +fn e494_c(&mut self,state:State)->Step { +let mut out=self.b494_c(state); if out.ok { -out.events=self.event(Event::Capture {site:87,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:97,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b466_c(&mut self,mut state:State)->Step { +fn b494_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r38_c(out.state); out } -fn e467_c(&mut self,state:State)->Step { -let mut out=self.b467_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e495_c(&mut self,state:State)->Step { +let mut out=self.b495_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,467,55); +out.events=self.relabel_token(out.events,495,55); } else {self.display_failures(state.consumed.max(state.matched),&["')'"]);} out } -fn b467_c(&mut self,mut state:State)->Step { +fn b495_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,")",true,5,false,")"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"')'");} out } -fn e468_c(&mut self,state:State)->Step { +fn e496_c(&mut self,state:State)->Step { let mark=self.mark(); -let key=Key {expression:468,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} -self.display_enter(state.consumed.max(state.matched));let mut out=self.b468_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +let key=Key {expression:496,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} +self.display_enter(state.consumed.max(state.matched));let mut out=self.b496_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:false,text:false}); } else {self.restore(mark);self.display_failures(state.consumed.max(state.matched),&[]);} if (out.ok && true) || (!out.ok && true) {self.store(key,out,mark);}self.display_leave(); out } -fn b468_c(&mut self,mut state:State)->Step { +fn b496_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e469_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e497_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e470_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e498_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e471_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e499_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e472_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e500_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e473_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e501_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e474_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e502_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e469_c(&mut self,state:State)->Step { -let mut out=self.b469_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e497_c(&mut self,state:State)->Step { +let mut out=self.b497_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,469,56); +out.events=self.relabel_token(out.events,497,56); } else {self.display_failures(state.consumed.max(state.matched),&["'pow'"]);} out } -fn b469_c(&mut self,mut state:State)->Step { +fn b497_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"pow",true,78,false,"pow"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'pow'");} out } -fn e470_c(&mut self,state:State)->Step { -let mut out=self.b470_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e498_c(&mut self,state:State)->Step { +let mut out=self.b498_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,470,56); +out.events=self.relabel_token(out.events,498,56); } else {self.display_failures(state.consumed.max(state.matched),&["'('"]);} out } -fn b470_c(&mut self,mut state:State)->Step { +fn b498_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"(",true,4,false,"("); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'('");} out } -fn e471_c(&mut self,state:State)->Step { -let mut out=self.b471_c(state); +fn e499_c(&mut self,state:State)->Step { +let mut out=self.b499_c(state); if out.ok { -out.events=self.event(Event::Capture {site:88,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:98,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b471_c(&mut self,mut state:State)->Step { +fn b499_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r38_c(out.state); out } -fn e472_c(&mut self,state:State)->Step { -let mut out=self.b472_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e500_c(&mut self,state:State)->Step { +let mut out=self.b500_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,472,56); +out.events=self.relabel_token(out.events,500,56); } else {self.display_failures(state.consumed.max(state.matched),&["','"]);} out } -fn b472_c(&mut self,mut state:State)->Step { +fn b500_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,",",true,8,false,","); if !out.ok {self.display_fail(state.consumed.max(state.matched),"','");} out } -fn e473_c(&mut self,state:State)->Step { -let mut out=self.b473_c(state); +fn e501_c(&mut self,state:State)->Step { +let mut out=self.b501_c(state); if out.ok { -out.events=self.event(Event::Capture {site:89,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:99,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b473_c(&mut self,mut state:State)->Step { +fn b501_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r38_c(out.state); out } -fn e474_c(&mut self,state:State)->Step { -let mut out=self.b474_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e502_c(&mut self,state:State)->Step { +let mut out=self.b502_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,474,56); +out.events=self.relabel_token(out.events,502,56); } else {self.display_failures(state.consumed.max(state.matched),&["')'"]);} out } -fn b474_c(&mut self,mut state:State)->Step { +fn b502_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,")",true,5,false,")"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"')'");} out } -fn e475_c(&mut self,state:State)->Step { +fn e503_c(&mut self,state:State)->Step { let mark=self.mark(); -let key=Key {expression:475,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} -self.display_enter(state.consumed.max(state.matched));let mut out=self.b475_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +let key=Key {expression:503,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} +self.display_enter(state.consumed.max(state.matched));let mut out=self.b503_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:true,text:false}); } else {self.restore(mark);self.display_failures(state.consumed.max(state.matched),&[]);} if (out.ok && true) || (!out.ok && true) {self.store(key,out,mark);}self.display_leave(); out } -fn b475_c(&mut self,mut state:State)->Step { +fn b503_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e476_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e504_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e477_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e505_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e478_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e506_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e479_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e507_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e476_c(&mut self,state:State)->Step { -let mut out=self.b476_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e504_c(&mut self,state:State)->Step { +let mut out=self.b504_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,476,57); +out.events=self.relabel_token(out.events,504,57); } else {self.display_failures(state.consumed.max(state.matched),&["'log'"]);} out } -fn b476_c(&mut self,mut state:State)->Step { +fn b504_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"log",true,71,false,"log"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'log'");} out } -fn e477_c(&mut self,state:State)->Step { -let mut out=self.b477_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e505_c(&mut self,state:State)->Step { +let mut out=self.b505_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,477,57); +out.events=self.relabel_token(out.events,505,57); } else {self.display_failures(state.consumed.max(state.matched),&["'('"]);} out } -fn b477_c(&mut self,mut state:State)->Step { +fn b505_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"(",true,4,false,"("); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'('");} out } -fn e478_c(&mut self,state:State)->Step { -let mut out=self.b478_c(state); +fn e506_c(&mut self,state:State)->Step { +let mut out=self.b506_c(state); if out.ok { -out.events=self.event(Event::Capture {site:90,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:100,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b478_c(&mut self,mut state:State)->Step { +fn b506_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r38_c(out.state); out } -fn e479_c(&mut self,state:State)->Step { -let mut out=self.b479_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e507_c(&mut self,state:State)->Step { +let mut out=self.b507_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,479,57); +out.events=self.relabel_token(out.events,507,57); } else {self.display_failures(state.consumed.max(state.matched),&["')'"]);} out } -fn b479_c(&mut self,mut state:State)->Step { +fn b507_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,")",true,5,false,")"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"')'");} out } -fn e480_c(&mut self,state:State)->Step { +fn e508_c(&mut self,state:State)->Step { let mark=self.mark(); -let key=Key {expression:480,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} -self.display_enter(state.consumed.max(state.matched));let mut out=self.b480_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +let key=Key {expression:508,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} +self.display_enter(state.consumed.max(state.matched));let mut out=self.b508_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:true,text:false}); } else {self.restore(mark);self.display_failures(state.consumed.max(state.matched),&[]);} if (out.ok && true) || (!out.ok && true) {self.store(key,out,mark);}self.display_leave(); out } -fn b480_c(&mut self,mut state:State)->Step { +fn b508_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e481_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e509_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e482_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e510_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e483_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e511_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e484_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e512_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e481_c(&mut self,state:State)->Step { -let mut out=self.b481_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e509_c(&mut self,state:State)->Step { +let mut out=self.b509_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,481,58); +out.events=self.relabel_token(out.events,509,58); } else {self.display_failures(state.consumed.max(state.matched),&["'exp'"]);} out } -fn b481_c(&mut self,mut state:State)->Step { +fn b509_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"exp",true,58,false,"exp"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'exp'");} out } -fn e482_c(&mut self,state:State)->Step { -let mut out=self.b482_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e510_c(&mut self,state:State)->Step { +let mut out=self.b510_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,482,58); +out.events=self.relabel_token(out.events,510,58); } else {self.display_failures(state.consumed.max(state.matched),&["'('"]);} out } -fn b482_c(&mut self,mut state:State)->Step { +fn b510_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"(",true,4,false,"("); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'('");} out } -fn e483_c(&mut self,state:State)->Step { -let mut out=self.b483_c(state); +fn e511_c(&mut self,state:State)->Step { +let mut out=self.b511_c(state); if out.ok { -out.events=self.event(Event::Capture {site:91,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:101,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b483_c(&mut self,mut state:State)->Step { +fn b511_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r38_c(out.state); out } -fn e484_c(&mut self,state:State)->Step { -let mut out=self.b484_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e512_c(&mut self,state:State)->Step { +let mut out=self.b512_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,484,58); +out.events=self.relabel_token(out.events,512,58); } else {self.display_failures(state.consumed.max(state.matched),&["')'"]);} out } -fn b484_c(&mut self,mut state:State)->Step { +fn b512_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,")",true,5,false,")"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"')'");} out } -fn e485_c(&mut self,state:State)->Step { +fn e513_c(&mut self,state:State)->Step { let mark=self.mark(); -let key=Key {expression:485,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} -self.display_enter(state.consumed.max(state.matched));let mut out=self.b485_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +let key=Key {expression:513,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} +self.display_enter(state.consumed.max(state.matched));let mut out=self.b513_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:false,text:false}); } else {self.restore(mark);self.display_failures(state.consumed.max(state.matched),&[]);} if (out.ok && true) || (!out.ok && true) {self.store(key,out,mark);}self.display_leave(); out } -fn b485_c(&mut self,mut state:State)->Step { +fn b513_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e486_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e514_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e487_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e515_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e488_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e516_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e489_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e517_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e490_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e518_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e491_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e519_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e486_c(&mut self,state:State)->Step { -let mut out=self.b486_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e514_c(&mut self,state:State)->Step { +let mut out=self.b514_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,486,59); +out.events=self.relabel_token(out.events,514,59); } else {self.display_failures(state.consumed.max(state.matched),&["'toNum'"]);} out } -fn b486_c(&mut self,mut state:State)->Step { +fn b514_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"toNum",true,89,false,"toNum"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'toNum'");} out } -fn e487_c(&mut self,state:State)->Step { -let mut out=self.b487_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e515_c(&mut self,state:State)->Step { +let mut out=self.b515_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,487,59); +out.events=self.relabel_token(out.events,515,59); } else {self.display_failures(state.consumed.max(state.matched),&["'('"]);} out } -fn b487_c(&mut self,mut state:State)->Step { +fn b515_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"(",true,4,false,"("); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'('");} out } -fn e488_c(&mut self,state:State)->Step { -let mut out=self.b488_c(state); +fn e516_c(&mut self,state:State)->Step { +let mut out=self.b516_c(state); if out.ok { -out.events=self.event(Event::Capture {site:92,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:102,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b488_c(&mut self,mut state:State)->Step { +fn b516_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r89_c(out.state); out } -fn e489_c(&mut self,state:State)->Step { -let mut out=self.b489_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e517_c(&mut self,state:State)->Step { +let mut out=self.b517_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,489,59); +out.events=self.relabel_token(out.events,517,59); } else {self.display_failures(state.consumed.max(state.matched),&["','"]);} out } -fn b489_c(&mut self,mut state:State)->Step { +fn b517_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,",",true,8,false,","); if !out.ok {self.display_fail(state.consumed.max(state.matched),"','");} out } -fn e490_c(&mut self,state:State)->Step { -let mut out=self.b490_c(state); +fn e518_c(&mut self,state:State)->Step { +let mut out=self.b518_c(state); if out.ok { -out.events=self.event(Event::Capture {site:93,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:103,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b490_c(&mut self,mut state:State)->Step { +fn b518_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r38_c(out.state); out } -fn e491_c(&mut self,state:State)->Step { -let mut out=self.b491_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e519_c(&mut self,state:State)->Step { +let mut out=self.b519_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,491,59); +out.events=self.relabel_token(out.events,519,59); } else {self.display_failures(state.consumed.max(state.matched),&["')'"]);} out } -fn b491_c(&mut self,mut state:State)->Step { +fn b519_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,")",true,5,false,")"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"')'");} out } -fn e492_c(&mut self,state:State)->Step { +fn e520_c(&mut self,state:State)->Step { let mark=self.mark(); -let key=Key {expression:492,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} -self.display_enter(state.consumed.max(state.matched));let mut out=self.b492_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +let key=Key {expression:520,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} +self.display_enter(state.consumed.max(state.matched));let mut out=self.b520_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { } else {self.restore(mark);self.display_failures(state.consumed.max(state.matched),&[]);} if (out.ok && true) || (!out.ok && true) {self.store(key,out,mark);}self.display_leave(); out } -fn b492_c(&mut self,mut state:State)->Step { +fn b520_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out='choice: {let mark=self.mark();let mut diagnostic=Diag::NONE;let mut best:Option<(Step,[usize;2])>=None; let ct=self.input.cp_at(self.skip_0::(out.state.begin()).position::()).map(|(c,_)|c); -self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,40))) {self.guard_e493_c(out.state.begin())} else {self.e493_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,40))) {self.guard_e521_c(out.state.begin())} else {self.e521_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,109))) {self.guard_e494_c(out.state.begin())} else {self.e494_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,109))) {self.guard_e522_c(out.state.begin())} else {self.e522_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,105))) {self.guard_e495_c(out.state.begin())} else {self.e495_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,105))) {self.guard_e523_c(out.state.begin())} else {self.e523_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,97|99|101..=102|108..=109|112|114..=116))) {self.guard_e496_c(out.state.begin())} else {self.e496_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,97|99|101..=102|108..=109|112|114..=116))) {self.guard_e524_c(out.state.begin())} else {self.e524_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,116))) {self.guard_e497_c(out.state.begin())} else {self.e497_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,116))) {self.guard_e525_c(out.state.begin())} else {self.e525_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,36))) {self.guard_e498_c(out.state.begin())} else {self.e498_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,36))) {self.guard_e526_c(out.state.begin())} else {self.e526_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,108))) {self.guard_e499_c(out.state.begin())} else {self.e499_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,108))) {self.guard_e527_c(out.state.begin())} else {self.e527_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,108))) {self.guard_e500_c(out.state.begin())} else {self.e500_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,108))) {self.guard_e528_c(out.state.begin())} else {self.e528_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,101))) {self.guard_e501_c(out.state.begin())} else {self.e501_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,101))) {self.guard_e529_c(out.state.begin())} else {self.e529_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=self.e502_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=self.e530_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,36))) {self.guard_e503_c(out.state.begin())} else {self.e503_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,36))) {self.guard_e531_c(out.state.begin())} else {self.e531_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,99|105))) {self.guard_e504_c(out.state.begin())} else {self.e504_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,99|105))) {self.guard_e532_c(out.state.begin())} else {self.e532_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,40))) {self.guard_e505_c(out.state.begin())} else {self.e505_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,40))) {self.guard_e533_c(out.state.begin())} else {self.e533_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} self.restore(mark);break 'choice if let Some((mut child,effects))=best {self.replay_effects(effects);child.diag=diagnostic;child} else {out.ok=false;out.diag=diagnostic;out}; }; out } -fn e493_c(&mut self,state:State)->Step { -let mut out=self.b493_c(state); +fn e521_c(&mut self,state:State)->Step { +let mut out=self.b521_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b493_c(&mut self,mut state:State)->Step { +fn b521_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r108_c(out.state); out } -fn e494_c(&mut self,state:State)->Step { -let mut out=self.b494_c(state); +fn e522_c(&mut self,state:State)->Step { +let mut out=self.b522_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b494_c(&mut self,mut state:State)->Step { +fn b522_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r109_c(out.state); out } -fn e495_c(&mut self,state:State)->Step { -let mut out=self.b495_c(state); +fn e523_c(&mut self,state:State)->Step { +let mut out=self.b523_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b495_c(&mut self,mut state:State)->Step { +fn b523_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r106_c(out.state); out } -fn e496_c(&mut self,state:State)->Step { -let mut out=self.b496_c(state); +fn e524_c(&mut self,state:State)->Step { +let mut out=self.b524_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b496_c(&mut self,mut state:State)->Step { +fn b524_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r44_c(out.state); out } -fn e497_c(&mut self,state:State)->Step { -let mut out=self.b497_c(state); +fn e525_c(&mut self,state:State)->Step { +let mut out=self.b525_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b497_c(&mut self,mut state:State)->Step { +fn b525_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r59_c(out.state); out } -fn e498_c(&mut self,state:State)->Step { -let mut out=self.b498_c(state); +fn e526_c(&mut self,state:State)->Step { +let mut out=self.b526_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b498_c(&mut self,mut state:State)->Step { +fn b526_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r69_c(out.state); out } -fn e499_c(&mut self,state:State)->Step { -let mut out=self.b499_c(state); +fn e527_c(&mut self,state:State)->Step { +let mut out=self.b527_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b499_c(&mut self,mut state:State)->Step { +fn b527_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r65_c(out.state); out } -fn e500_c(&mut self,state:State)->Step { -let mut out=self.b500_c(state); +fn e528_c(&mut self,state:State)->Step { +let mut out=self.b528_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b500_c(&mut self,mut state:State)->Step { +fn b528_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r64_c(out.state); out } -fn e501_c(&mut self,state:State)->Step { -let mut out=self.b501_c(state); +fn e529_c(&mut self,state:State)->Step { +let mut out=self.b529_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b501_c(&mut self,mut state:State)->Step { +fn b529_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r32_c(out.state); out } -fn e502_c(&mut self,state:State)->Step { -let mut out=self.b502_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e530_c(&mut self,state:State)->Step { +let mut out=self.b530_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,502,60); +out.events=self.relabel_token(out.events,530,60); out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:false,text:true}); } else {self.display_failures(state.consumed.max(state.matched),&["NUMBERParser"]);} out } -fn b502_c(&mut self,mut state:State)->Step { +fn b530_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.token_0::(out.state,"NUMBER","NUMBERParser"); out } -fn e503_c(&mut self,state:State)->Step { -let mut out=self.b503_c(state); +fn e531_c(&mut self,state:State)->Step { +let mut out=self.b531_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b503_c(&mut self,mut state:State)->Step { +fn b531_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r121_c(out.state); out } -fn e504_c(&mut self,state:State)->Step { -let mut out=self.b504_c(state); +fn e532_c(&mut self,state:State)->Step { +let mut out=self.b532_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b504_c(&mut self,mut state:State)->Step { +fn b532_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r36_c(out.state); out } -fn e505_c(&mut self,state:State)->Step { -let mut out=self.b505_c(state); +fn e533_c(&mut self,state:State)->Step { +let mut out=self.b533_c(state); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:true,text:false}); } else {self.display_failures(state.consumed.max(state.matched),&["'('", "')'"]);} out } -fn b505_c(&mut self,mut state:State)->Step { +fn b533_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e506_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e534_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e507_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e535_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e508_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e536_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e506_c(&mut self,state:State)->Step { -let mut out=self.b506_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e534_c(&mut self,state:State)->Step { +let mut out=self.b534_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,506,60); +out.events=self.relabel_token(out.events,534,60); } else {self.display_failures(state.consumed.max(state.matched),&["'('"]);} out } -fn b506_c(&mut self,mut state:State)->Step { +fn b534_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"(",true,4,false,"("); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'('");} out } -fn e507_c(&mut self,state:State)->Step { -let mut out=self.b507_c(state); +fn e535_c(&mut self,state:State)->Step { +let mut out=self.b535_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b507_c(&mut self,mut state:State)->Step { +fn b535_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r40_c(out.state); out } -fn e508_c(&mut self,state:State)->Step { -let mut out=self.b508_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e536_c(&mut self,state:State)->Step { +let mut out=self.b536_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,508,60); +out.events=self.relabel_token(out.events,536,60); } else {self.display_failures(state.consumed.max(state.matched),&["')'"]);} out } -fn b508_c(&mut self,mut state:State)->Step { +fn b536_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,")",true,5,false,")"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"')'");} out } -fn e509_c(&mut self,state:State)->Step { +fn e537_c(&mut self,state:State)->Step { let mark=self.mark(); -let key=Key {expression:509,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} -self.display_enter(state.consumed.max(state.matched));let mut out=self.b509_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +let key=Key {expression:537,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} +self.display_enter(state.consumed.max(state.matched));let mut out=self.b537_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:true,text:false}); } else {self.restore(mark);self.display_failures(state.consumed.max(state.matched),&[]);} if (out.ok && true) || (!out.ok && true) {self.store(key,out,mark);}self.display_leave(); out } -fn b509_c(&mut self,mut state:State)->Step { +fn b537_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e510_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e538_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e511_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e539_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e512_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e540_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e513_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e541_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e510_c(&mut self,state:State)->Step { -let mut out=self.b510_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e538_c(&mut self,state:State)->Step { +let mut out=self.b538_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,510,61); +out.events=self.relabel_token(out.events,538,61); } else {self.display_failures(state.consumed.max(state.matched),&["'toUpperCase'"]);} out } -fn b510_c(&mut self,mut state:State)->Step { +fn b538_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"toUpperCase",true,90,false,"toUpperCase"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'toUpperCase'");} out } -fn e511_c(&mut self,state:State)->Step { -let mut out=self.b511_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e539_c(&mut self,state:State)->Step { +let mut out=self.b539_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,511,61); +out.events=self.relabel_token(out.events,539,61); } else {self.display_failures(state.consumed.max(state.matched),&["'('"]);} out } -fn b511_c(&mut self,mut state:State)->Step { +fn b539_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"(",true,4,false,"("); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'('");} out } -fn e512_c(&mut self,state:State)->Step { -let mut out=self.b512_c(state); +fn e540_c(&mut self,state:State)->Step { +let mut out=self.b540_c(state); if out.ok { -out.events=self.event(Event::Capture {site:94,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:104,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b512_c(&mut self,mut state:State)->Step { +fn b540_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r89_c(out.state); out } -fn e513_c(&mut self,state:State)->Step { -let mut out=self.b513_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e541_c(&mut self,state:State)->Step { +let mut out=self.b541_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,513,61); +out.events=self.relabel_token(out.events,541,61); } else {self.display_failures(state.consumed.max(state.matched),&["')'"]);} out } -fn b513_c(&mut self,mut state:State)->Step { +fn b541_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,")",true,5,false,")"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"')'");} out } -fn e514_c(&mut self,state:State)->Step { +fn e542_c(&mut self,state:State)->Step { let mark=self.mark(); -let key=Key {expression:514,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} -self.display_enter(state.consumed.max(state.matched));let mut out=self.b514_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +let key=Key {expression:542,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} +self.display_enter(state.consumed.max(state.matched));let mut out=self.b542_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:true,text:false}); } else {self.restore(mark);self.display_failures(state.consumed.max(state.matched),&[]);} if (out.ok && true) || (!out.ok && true) {self.store(key,out,mark);}self.display_leave(); out } -fn b514_c(&mut self,mut state:State)->Step { +fn b542_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e515_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e543_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e516_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e544_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e517_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e545_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e518_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e546_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e515_c(&mut self,state:State)->Step { -let mut out=self.b515_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e543_c(&mut self,state:State)->Step { +let mut out=self.b543_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,515,62); +out.events=self.relabel_token(out.events,543,62); } else {self.display_failures(state.consumed.max(state.matched),&["'toLowerCase'"]);} out } -fn b515_c(&mut self,mut state:State)->Step { +fn b543_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"toLowerCase",true,88,false,"toLowerCase"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'toLowerCase'");} out } -fn e516_c(&mut self,state:State)->Step { -let mut out=self.b516_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e544_c(&mut self,state:State)->Step { +let mut out=self.b544_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,516,62); +out.events=self.relabel_token(out.events,544,62); } else {self.display_failures(state.consumed.max(state.matched),&["'('"]);} out } -fn b516_c(&mut self,mut state:State)->Step { +fn b544_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"(",true,4,false,"("); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'('");} out } -fn e517_c(&mut self,state:State)->Step { -let mut out=self.b517_c(state); +fn e545_c(&mut self,state:State)->Step { +let mut out=self.b545_c(state); if out.ok { -out.events=self.event(Event::Capture {site:95,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:105,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b517_c(&mut self,mut state:State)->Step { +fn b545_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r89_c(out.state); out } -fn e518_c(&mut self,state:State)->Step { -let mut out=self.b518_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e546_c(&mut self,state:State)->Step { +let mut out=self.b546_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,518,62); +out.events=self.relabel_token(out.events,546,62); } else {self.display_failures(state.consumed.max(state.matched),&["')'"]);} out } -fn b518_c(&mut self,mut state:State)->Step { +fn b546_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,")",true,5,false,")"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"')'");} out } -fn e519_c(&mut self,state:State)->Step { +fn e547_c(&mut self,state:State)->Step { let mark=self.mark(); -let key=Key {expression:519,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} -self.display_enter(state.consumed.max(state.matched));let mut out=self.b519_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +let key=Key {expression:547,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} +self.display_enter(state.consumed.max(state.matched));let mut out=self.b547_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:true,text:false}); } else {self.restore(mark);self.display_failures(state.consumed.max(state.matched),&[]);} if (out.ok && true) || (!out.ok && true) {self.store(key,out,mark);}self.display_leave(); out } -fn b519_c(&mut self,mut state:State)->Step { +fn b547_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e520_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e548_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e521_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e549_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e522_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e550_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e523_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e551_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e520_c(&mut self,state:State)->Step { -let mut out=self.b520_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e548_c(&mut self,state:State)->Step { +let mut out=self.b548_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,520,63); +out.events=self.relabel_token(out.events,548,63); } else {self.display_failures(state.consumed.max(state.matched),&["'trim'"]);} out } -fn b520_c(&mut self,mut state:State)->Step { +fn b548_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"trim",true,91,false,"trim"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'trim'");} out } -fn e521_c(&mut self,state:State)->Step { -let mut out=self.b521_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e549_c(&mut self,state:State)->Step { +let mut out=self.b549_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,521,63); +out.events=self.relabel_token(out.events,549,63); } else {self.display_failures(state.consumed.max(state.matched),&["'('"]);} out } -fn b521_c(&mut self,mut state:State)->Step { +fn b549_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"(",true,4,false,"("); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'('");} out } -fn e522_c(&mut self,state:State)->Step { -let mut out=self.b522_c(state); +fn e550_c(&mut self,state:State)->Step { +let mut out=self.b550_c(state); if out.ok { -out.events=self.event(Event::Capture {site:96,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:106,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b522_c(&mut self,mut state:State)->Step { +fn b550_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r89_c(out.state); out } -fn e523_c(&mut self,state:State)->Step { -let mut out=self.b523_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e551_c(&mut self,state:State)->Step { +let mut out=self.b551_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,523,63); +out.events=self.relabel_token(out.events,551,63); } else {self.display_failures(state.consumed.max(state.matched),&["')'"]);} out } -fn b523_c(&mut self,mut state:State)->Step { +fn b551_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,")",true,5,false,")"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"')'");} out } -fn e524_c(&mut self,state:State)->Step { +fn e552_c(&mut self,state:State)->Step { let mark=self.mark(); -let key=Key {expression:524,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} -self.display_enter(state.consumed.max(state.matched));let mut out=self.b524_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +let key=Key {expression:552,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} +self.display_enter(state.consumed.max(state.matched));let mut out=self.b552_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:true,text:false}); } else {self.restore(mark);self.display_failures(state.consumed.max(state.matched),&[]);} if (out.ok && true) || (!out.ok && true) {self.store(key,out,mark);}self.display_leave(); out } -fn b524_c(&mut self,mut state:State)->Step { +fn b552_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e525_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e553_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e526_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e554_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e527_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e555_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e528_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e556_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e525_c(&mut self,state:State)->Step { -let mut out=self.b525_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e553_c(&mut self,state:State)->Step { +let mut out=self.b553_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,525,64); +out.events=self.relabel_token(out.events,553,64); } else {self.display_failures(state.consumed.max(state.matched),&["'length'"]);} out } -fn b525_c(&mut self,mut state:State)->Step { +fn b553_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"length",true,70,false,"length"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'length'");} out } -fn e526_c(&mut self,state:State)->Step { -let mut out=self.b526_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e554_c(&mut self,state:State)->Step { +let mut out=self.b554_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,526,64); +out.events=self.relabel_token(out.events,554,64); } else {self.display_failures(state.consumed.max(state.matched),&["'('"]);} out } -fn b526_c(&mut self,mut state:State)->Step { +fn b554_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"(",true,4,false,"("); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'('");} out } -fn e527_c(&mut self,state:State)->Step { -let mut out=self.b527_c(state); +fn e555_c(&mut self,state:State)->Step { +let mut out=self.b555_c(state); if out.ok { -out.events=self.event(Event::Capture {site:97,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:107,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b527_c(&mut self,mut state:State)->Step { +fn b555_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r89_c(out.state); out } -fn e528_c(&mut self,state:State)->Step { -let mut out=self.b528_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e556_c(&mut self,state:State)->Step { +let mut out=self.b556_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,528,64); +out.events=self.relabel_token(out.events,556,64); } else {self.display_failures(state.consumed.max(state.matched),&["')'"]);} out } -fn b528_c(&mut self,mut state:State)->Step { +fn b556_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,")",true,5,false,")"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"')'");} out } -fn e529_c(&mut self,state:State)->Step { +fn e557_c(&mut self,state:State)->Step { let mark=self.mark(); -let key=Key {expression:529,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} -self.display_enter(state.consumed.max(state.matched));let mut out=self.b529_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +let key=Key {expression:557,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} +self.display_enter(state.consumed.max(state.matched));let mut out=self.b557_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:true,text:false}); } else {self.restore(mark);self.display_failures(state.consumed.max(state.matched),&[]);} if (out.ok && true) || (!out.ok && true) {self.store(key,out,mark);}self.display_leave(); out } -fn b529_c(&mut self,mut state:State)->Step { +fn b557_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e530_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e558_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e531_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e559_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e532_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e560_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e533_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e561_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e530_c(&mut self,state:State)->Step { -let mut out=self.b530_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e558_c(&mut self,state:State)->Step { +let mut out=self.b558_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,530,65); +out.events=self.relabel_token(out.events,558,65); } else {self.display_failures(state.consumed.max(state.matched),&["'len'"]);} out } -fn b530_c(&mut self,mut state:State)->Step { +fn b558_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"len",true,69,false,"len"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'len'");} out } -fn e531_c(&mut self,state:State)->Step { -let mut out=self.b531_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e559_c(&mut self,state:State)->Step { +let mut out=self.b559_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,531,65); +out.events=self.relabel_token(out.events,559,65); } else {self.display_failures(state.consumed.max(state.matched),&["'('"]);} out } -fn b531_c(&mut self,mut state:State)->Step { +fn b559_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"(",true,4,false,"("); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'('");} out } -fn e532_c(&mut self,state:State)->Step { -let mut out=self.b532_c(state); +fn e560_c(&mut self,state:State)->Step { +let mut out=self.b560_c(state); if out.ok { -out.events=self.event(Event::Capture {site:98,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:108,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b532_c(&mut self,mut state:State)->Step { +fn b560_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r89_c(out.state); out } -fn e533_c(&mut self,state:State)->Step { -let mut out=self.b533_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e561_c(&mut self,state:State)->Step { +let mut out=self.b561_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,533,65); +out.events=self.relabel_token(out.events,561,65); } else {self.display_failures(state.consumed.max(state.matched),&["')'"]);} out } -fn b533_c(&mut self,mut state:State)->Step { +fn b561_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,")",true,5,false,")"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"')'");} out } -fn e534_c(&mut self,state:State)->Step { +fn e562_c(&mut self,state:State)->Step { let mark=self.mark(); -let key=Key {expression:534,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} -self.display_enter(state.consumed.max(state.matched));let mut out=self.b534_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +let key=Key {expression:562,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} +self.display_enter(state.consumed.max(state.matched));let mut out=self.b562_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:true,text:false}); } else {self.restore(mark);self.display_failures(state.consumed.max(state.matched),&[]);} if (out.ok && true) || (!out.ok && true) {self.store(key,out,mark);}self.display_leave(); out } -fn b534_c(&mut self,mut state:State)->Step { +fn b562_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e535_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e563_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e536_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e564_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e537_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e565_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e538_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e566_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e535_c(&mut self,state:State)->Step { -let mut out=self.b535_c(state); +fn e563_c(&mut self,state:State)->Step { +let mut out=self.b563_c(state); if out.ok { -out.events=self.event(Event::Capture {site:99,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:109,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["'$'"]);} out } -fn b535_c(&mut self,mut state:State)->Step { +fn b563_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r121_c(out.state); out } -fn e536_c(&mut self,state:State)->Step { -let mut out=self.b536_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e564_c(&mut self,state:State)->Step { +let mut out=self.b564_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,536,66); +out.events=self.relabel_token(out.events,564,66); } else {self.display_failures(state.consumed.max(state.matched),&["'.toUpperCase'"]);} out } -fn b536_c(&mut self,mut state:State)->Step { +fn b564_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,".toUpperCase",true,18,false,".toUpperCase"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'.toUpperCase'");} out } -fn e537_c(&mut self,state:State)->Step { -let mut out=self.b537_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e565_c(&mut self,state:State)->Step { +let mut out=self.b565_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,537,66); +out.events=self.relabel_token(out.events,565,66); } else {self.display_failures(state.consumed.max(state.matched),&["'('"]);} out } -fn b537_c(&mut self,mut state:State)->Step { +fn b565_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"(",true,4,false,"("); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'('");} out } -fn e538_c(&mut self,state:State)->Step { -let mut out=self.b538_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e566_c(&mut self,state:State)->Step { +let mut out=self.b566_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,538,66); +out.events=self.relabel_token(out.events,566,66); } else {self.display_failures(state.consumed.max(state.matched),&["')'"]);} out } -fn b538_c(&mut self,mut state:State)->Step { +fn b566_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,")",true,5,false,")"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"')'");} out } -fn e539_c(&mut self,state:State)->Step { +fn e567_c(&mut self,state:State)->Step { let mark=self.mark(); -let key=Key {expression:539,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} -self.display_enter(state.consumed.max(state.matched));let mut out=self.b539_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +let key=Key {expression:567,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} +self.display_enter(state.consumed.max(state.matched));let mut out=self.b567_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:true,text:false}); } else {self.restore(mark);self.display_failures(state.consumed.max(state.matched),&[]);} if (out.ok && true) || (!out.ok && true) {self.store(key,out,mark);}self.display_leave(); out } -fn b539_c(&mut self,mut state:State)->Step { +fn b567_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e540_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e568_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e541_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e569_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e542_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e570_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e543_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e571_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e540_c(&mut self,state:State)->Step { -let mut out=self.b540_c(state); +fn e568_c(&mut self,state:State)->Step { +let mut out=self.b568_c(state); if out.ok { -out.events=self.event(Event::Capture {site:100,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:110,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["'$'"]);} out } -fn b540_c(&mut self,mut state:State)->Step { +fn b568_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r121_c(out.state); out } -fn e541_c(&mut self,state:State)->Step { -let mut out=self.b541_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e569_c(&mut self,state:State)->Step { +let mut out=self.b569_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,541,67); +out.events=self.relabel_token(out.events,569,67); } else {self.display_failures(state.consumed.max(state.matched),&["'.toLowerCase'"]);} out } -fn b541_c(&mut self,mut state:State)->Step { +fn b569_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,".toLowerCase",true,17,false,".toLowerCase"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'.toLowerCase'");} out } -fn e542_c(&mut self,state:State)->Step { -let mut out=self.b542_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e570_c(&mut self,state:State)->Step { +let mut out=self.b570_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,542,67); +out.events=self.relabel_token(out.events,570,67); } else {self.display_failures(state.consumed.max(state.matched),&["'('"]);} out } -fn b542_c(&mut self,mut state:State)->Step { +fn b570_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"(",true,4,false,"("); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'('");} out } -fn e543_c(&mut self,state:State)->Step { -let mut out=self.b543_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e571_c(&mut self,state:State)->Step { +let mut out=self.b571_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,543,67); +out.events=self.relabel_token(out.events,571,67); } else {self.display_failures(state.consumed.max(state.matched),&["')'"]);} out } -fn b543_c(&mut self,mut state:State)->Step { +fn b571_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,")",true,5,false,")"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"')'");} out } -fn e544_c(&mut self,state:State)->Step { +fn e572_c(&mut self,state:State)->Step { let mark=self.mark(); -let key=Key {expression:544,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} -self.display_enter(state.consumed.max(state.matched));let mut out=self.b544_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +let key=Key {expression:572,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} +self.display_enter(state.consumed.max(state.matched));let mut out=self.b572_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:true,text:false}); } else {self.restore(mark);self.display_failures(state.consumed.max(state.matched),&[]);} if (out.ok && true) || (!out.ok && true) {self.store(key,out,mark);}self.display_leave(); out } -fn b544_c(&mut self,mut state:State)->Step { +fn b572_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e545_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e573_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e546_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e574_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e547_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e575_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e548_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e576_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e545_c(&mut self,state:State)->Step { -let mut out=self.b545_c(state); +fn e573_c(&mut self,state:State)->Step { +let mut out=self.b573_c(state); if out.ok { -out.events=self.event(Event::Capture {site:101,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:111,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["'$'"]);} out } -fn b545_c(&mut self,mut state:State)->Step { +fn b573_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r121_c(out.state); out } -fn e546_c(&mut self,state:State)->Step { -let mut out=self.b546_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e574_c(&mut self,state:State)->Step { +let mut out=self.b574_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,546,68); +out.events=self.relabel_token(out.events,574,68); } else {self.display_failures(state.consumed.max(state.matched),&["'.trim'"]);} out } -fn b546_c(&mut self,mut state:State)->Step { +fn b574_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,".trim",true,19,false,".trim"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'.trim'");} out } -fn e547_c(&mut self,state:State)->Step { -let mut out=self.b547_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e575_c(&mut self,state:State)->Step { +let mut out=self.b575_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,547,68); +out.events=self.relabel_token(out.events,575,68); } else {self.display_failures(state.consumed.max(state.matched),&["'('"]);} out } -fn b547_c(&mut self,mut state:State)->Step { +fn b575_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"(",true,4,false,"("); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'('");} out } -fn e548_c(&mut self,state:State)->Step { -let mut out=self.b548_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e576_c(&mut self,state:State)->Step { +let mut out=self.b576_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,548,68); +out.events=self.relabel_token(out.events,576,68); } else {self.display_failures(state.consumed.max(state.matched),&["')'"]);} out } -fn b548_c(&mut self,mut state:State)->Step { +fn b576_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,")",true,5,false,")"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"')'");} out } -fn e549_c(&mut self,state:State)->Step { +fn e577_c(&mut self,state:State)->Step { let mark=self.mark(); -let key=Key {expression:549,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} -self.display_enter(state.consumed.max(state.matched));let mut out=self.b549_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +let key=Key {expression:577,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} +self.display_enter(state.consumed.max(state.matched));let mut out=self.b577_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:true,text:false}); } else {self.restore(mark);self.display_failures(state.consumed.max(state.matched),&[]);} if (out.ok && true) || (!out.ok && true) {self.store(key,out,mark);}self.display_leave(); out } -fn b549_c(&mut self,mut state:State)->Step { +fn b577_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e550_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e578_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e551_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e579_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e552_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e580_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e553_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e581_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e550_c(&mut self,state:State)->Step { -let mut out=self.b550_c(state); +fn e578_c(&mut self,state:State)->Step { +let mut out=self.b578_c(state); if out.ok { -out.events=self.event(Event::Capture {site:102,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:112,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["'$'"]);} out } -fn b550_c(&mut self,mut state:State)->Step { +fn b578_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r121_c(out.state); out } -fn e551_c(&mut self,state:State)->Step { -let mut out=self.b551_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e579_c(&mut self,state:State)->Step { +let mut out=self.b579_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,551,69); +out.events=self.relabel_token(out.events,579,69); } else {self.display_failures(state.consumed.max(state.matched),&["'.length'"]);} out } -fn b551_c(&mut self,mut state:State)->Step { +fn b579_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,".length",true,15,false,".length"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'.length'");} out } -fn e552_c(&mut self,state:State)->Step { -let mut out=self.b552_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e580_c(&mut self,state:State)->Step { +let mut out=self.b580_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,552,69); +out.events=self.relabel_token(out.events,580,69); } else {self.display_failures(state.consumed.max(state.matched),&["'('"]);} out } -fn b552_c(&mut self,mut state:State)->Step { +fn b580_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"(",true,4,false,"("); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'('");} out } -fn e553_c(&mut self,state:State)->Step { -let mut out=self.b553_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e581_c(&mut self,state:State)->Step { +let mut out=self.b581_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,553,69); +out.events=self.relabel_token(out.events,581,69); } else {self.display_failures(state.consumed.max(state.matched),&["')'"]);} out } -fn b553_c(&mut self,mut state:State)->Step { +fn b581_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,")",true,5,false,")"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"')'");} out } -fn e554_c(&mut self,state:State)->Step { +fn e582_c(&mut self,state:State)->Step { let mark=self.mark(); -let key=Key {expression:554,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} -self.display_enter(state.consumed.max(state.matched));let mut out=self.b554_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +let key=Key {expression:582,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} +self.display_enter(state.consumed.max(state.matched));let mut out=self.b582_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:false,text:false}); } else {self.restore(mark);self.display_failures(state.consumed.max(state.matched),&[]);} if (out.ok && true) || (!out.ok && true) {self.store(key,out,mark);}self.display_leave(); out } -fn b554_c(&mut self,mut state:State)->Step { +fn b582_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e555_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e583_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e556_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e584_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e557_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e585_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e558_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e586_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e559_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e587_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e560_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e588_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e564_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e592_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e555_c(&mut self,state:State)->Step { -let mut out=self.b555_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e583_c(&mut self,state:State)->Step { +let mut out=self.b583_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,555,70); +out.events=self.relabel_token(out.events,583,70); } else {self.display_failures(state.consumed.max(state.matched),&["'startsWith'"]);} out } -fn b555_c(&mut self,mut state:State)->Step { +fn b583_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"startsWith",true,85,false,"startsWith"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'startsWith'");} out } -fn e556_c(&mut self,state:State)->Step { -let mut out=self.b556_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e584_c(&mut self,state:State)->Step { +let mut out=self.b584_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,556,70); +out.events=self.relabel_token(out.events,584,70); } else {self.display_failures(state.consumed.max(state.matched),&["'('"]);} out } -fn b556_c(&mut self,mut state:State)->Step { +fn b584_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"(",true,4,false,"("); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'('");} out } -fn e557_c(&mut self,state:State)->Step { -let mut out=self.b557_c(state); +fn e585_c(&mut self,state:State)->Step { +let mut out=self.b585_c(state); if out.ok { -out.events=self.event(Event::Capture {site:103,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:113,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b557_c(&mut self,mut state:State)->Step { +fn b585_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r89_c(out.state); out } -fn e558_c(&mut self,state:State)->Step { -let mut out=self.b558_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e586_c(&mut self,state:State)->Step { +let mut out=self.b586_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,558,70); +out.events=self.relabel_token(out.events,586,70); } else {self.display_failures(state.consumed.max(state.matched),&["','"]);} out } -fn b558_c(&mut self,mut state:State)->Step { +fn b586_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,",",true,8,false,","); if !out.ok {self.display_fail(state.consumed.max(state.matched),"','");} out } -fn e559_c(&mut self,state:State)->Step { -let mut out=self.b559_c(state); +fn e587_c(&mut self,state:State)->Step { +let mut out=self.b587_c(state); if out.ok { -out.events=self.event(Event::Capture {site:104,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:114,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b559_c(&mut self,mut state:State)->Step { +fn b587_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r89_c(out.state); out } -fn e560_c(&mut self,state:State)->Step { -let mut out=self.b560_c(state); +fn e588_c(&mut self,state:State)->Step { +let mut out=self.b588_c(state); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:false,text:false}); } else {self.display_failures(state.consumed.max(state.matched),&["','"]);} out } -fn b560_c(&mut self,mut state:State)->Step { +fn b588_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out.state=state.begin(); let mut count=0usize;loop {let mark=self.mark();let before=out.state; -let mut child=self.e561_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} +let mut child=self.e589_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} out.events=self.join(out.events,child.events);count+=1; if before.position::()==out.state.position::() {break;} } @@ -10124,170 +10624,170 @@ if false {out.ok=false;out.state=state;let d=self.diag_fail(state.position::Step { -let mut out=self.b561_c(state); +fn e589_c(&mut self,state:State)->Step { +let mut out=self.b589_c(state); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:true,text:false}); } else {self.display_failures(state.consumed.max(state.matched),&["','"]);} out } -fn b561_c(&mut self,mut state:State)->Step { +fn b589_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e562_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e590_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e563_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e591_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e562_c(&mut self,state:State)->Step { -let mut out=self.b562_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e590_c(&mut self,state:State)->Step { +let mut out=self.b590_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,562,70); +out.events=self.relabel_token(out.events,590,70); } else {self.display_failures(state.consumed.max(state.matched),&["','"]);} out } -fn b562_c(&mut self,mut state:State)->Step { +fn b590_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,",",true,8,false,","); if !out.ok {self.display_fail(state.consumed.max(state.matched),"','");} out } -fn e563_c(&mut self,state:State)->Step { -let mut out=self.b563_c(state); +fn e591_c(&mut self,state:State)->Step { +let mut out=self.b591_c(state); if out.ok { -out.events=self.event(Event::Capture {site:105,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:115,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b563_c(&mut self,mut state:State)->Step { +fn b591_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r89_c(out.state); out } -fn e564_c(&mut self,state:State)->Step { -let mut out=self.b564_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e592_c(&mut self,state:State)->Step { +let mut out=self.b592_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,564,70); +out.events=self.relabel_token(out.events,592,70); } else {self.display_failures(state.consumed.max(state.matched),&["')'"]);} out } -fn b564_c(&mut self,mut state:State)->Step { +fn b592_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,")",true,5,false,")"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"')'");} out } -fn e565_c(&mut self,state:State)->Step { +fn e593_c(&mut self,state:State)->Step { let mark=self.mark(); -let key=Key {expression:565,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} -self.display_enter(state.consumed.max(state.matched));let mut out=self.b565_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +let key=Key {expression:593,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} +self.display_enter(state.consumed.max(state.matched));let mut out=self.b593_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:false,text:false}); } else {self.restore(mark);self.display_failures(state.consumed.max(state.matched),&[]);} if (out.ok && true) || (!out.ok && true) {self.store(key,out,mark);}self.display_leave(); out } -fn b565_c(&mut self,mut state:State)->Step { +fn b593_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e566_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e594_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e567_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e595_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e568_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e596_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e569_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e597_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e570_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e598_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e571_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e599_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e575_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e603_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e566_c(&mut self,state:State)->Step { -let mut out=self.b566_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e594_c(&mut self,state:State)->Step { +let mut out=self.b594_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,566,71); +out.events=self.relabel_token(out.events,594,71); } else {self.display_failures(state.consumed.max(state.matched),&["'endsWith'"]);} out } -fn b566_c(&mut self,mut state:State)->Step { +fn b594_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"endsWith",true,56,false,"endsWith"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'endsWith'");} out } -fn e567_c(&mut self,state:State)->Step { -let mut out=self.b567_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e595_c(&mut self,state:State)->Step { +let mut out=self.b595_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,567,71); +out.events=self.relabel_token(out.events,595,71); } else {self.display_failures(state.consumed.max(state.matched),&["'('"]);} out } -fn b567_c(&mut self,mut state:State)->Step { +fn b595_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"(",true,4,false,"("); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'('");} out } -fn e568_c(&mut self,state:State)->Step { -let mut out=self.b568_c(state); +fn e596_c(&mut self,state:State)->Step { +let mut out=self.b596_c(state); if out.ok { -out.events=self.event(Event::Capture {site:106,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:116,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b568_c(&mut self,mut state:State)->Step { +fn b596_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r89_c(out.state); out } -fn e569_c(&mut self,state:State)->Step { -let mut out=self.b569_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e597_c(&mut self,state:State)->Step { +let mut out=self.b597_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,569,71); +out.events=self.relabel_token(out.events,597,71); } else {self.display_failures(state.consumed.max(state.matched),&["','"]);} out } -fn b569_c(&mut self,mut state:State)->Step { +fn b597_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,",",true,8,false,","); if !out.ok {self.display_fail(state.consumed.max(state.matched),"','");} out } -fn e570_c(&mut self,state:State)->Step { -let mut out=self.b570_c(state); +fn e598_c(&mut self,state:State)->Step { +let mut out=self.b598_c(state); if out.ok { -out.events=self.event(Event::Capture {site:107,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:117,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b570_c(&mut self,mut state:State)->Step { +fn b598_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r89_c(out.state); out } -fn e571_c(&mut self,state:State)->Step { -let mut out=self.b571_c(state); +fn e599_c(&mut self,state:State)->Step { +let mut out=self.b599_c(state); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:false,text:false}); } else {self.display_failures(state.consumed.max(state.matched),&["','"]);} out } -fn b571_c(&mut self,mut state:State)->Step { +fn b599_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out.state=state.begin(); let mut count=0usize;loop {let mark=self.mark();let before=out.state; -let mut child=self.e572_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} +let mut child=self.e600_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} out.events=self.join(out.events,child.events);count+=1; if before.position::()==out.state.position::() {break;} } @@ -10296,170 +10796,170 @@ if false {out.ok=false;out.state=state;let d=self.diag_fail(state.position::Step { -let mut out=self.b572_c(state); +fn e600_c(&mut self,state:State)->Step { +let mut out=self.b600_c(state); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:true,text:false}); } else {self.display_failures(state.consumed.max(state.matched),&["','"]);} out } -fn b572_c(&mut self,mut state:State)->Step { +fn b600_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e573_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e601_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e574_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e602_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e573_c(&mut self,state:State)->Step { -let mut out=self.b573_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e601_c(&mut self,state:State)->Step { +let mut out=self.b601_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,573,71); +out.events=self.relabel_token(out.events,601,71); } else {self.display_failures(state.consumed.max(state.matched),&["','"]);} out } -fn b573_c(&mut self,mut state:State)->Step { +fn b601_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,",",true,8,false,","); if !out.ok {self.display_fail(state.consumed.max(state.matched),"','");} out } -fn e574_c(&mut self,state:State)->Step { -let mut out=self.b574_c(state); +fn e602_c(&mut self,state:State)->Step { +let mut out=self.b602_c(state); if out.ok { -out.events=self.event(Event::Capture {site:108,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:118,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b574_c(&mut self,mut state:State)->Step { +fn b602_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r89_c(out.state); out } -fn e575_c(&mut self,state:State)->Step { -let mut out=self.b575_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e603_c(&mut self,state:State)->Step { +let mut out=self.b603_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,575,71); +out.events=self.relabel_token(out.events,603,71); } else {self.display_failures(state.consumed.max(state.matched),&["')'"]);} out } -fn b575_c(&mut self,mut state:State)->Step { +fn b603_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,")",true,5,false,")"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"')'");} out } -fn e576_c(&mut self,state:State)->Step { +fn e604_c(&mut self,state:State)->Step { let mark=self.mark(); -let key=Key {expression:576,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} -self.display_enter(state.consumed.max(state.matched));let mut out=self.b576_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +let key=Key {expression:604,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} +self.display_enter(state.consumed.max(state.matched));let mut out=self.b604_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:false,text:false}); } else {self.restore(mark);self.display_failures(state.consumed.max(state.matched),&[]);} if (out.ok && true) || (!out.ok && true) {self.store(key,out,mark);}self.display_leave(); out } -fn b576_c(&mut self,mut state:State)->Step { +fn b604_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e577_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e605_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e578_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e606_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e579_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e607_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e580_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e608_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e581_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e609_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e582_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e610_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e586_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e614_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e577_c(&mut self,state:State)->Step { -let mut out=self.b577_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e605_c(&mut self,state:State)->Step { +let mut out=self.b605_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,577,72); +out.events=self.relabel_token(out.events,605,72); } else {self.display_failures(state.consumed.max(state.matched),&["'contains'"]);} out } -fn b577_c(&mut self,mut state:State)->Step { +fn b605_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"contains",true,51,false,"contains"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'contains'");} out } -fn e578_c(&mut self,state:State)->Step { -let mut out=self.b578_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e606_c(&mut self,state:State)->Step { +let mut out=self.b606_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,578,72); +out.events=self.relabel_token(out.events,606,72); } else {self.display_failures(state.consumed.max(state.matched),&["'('"]);} out } -fn b578_c(&mut self,mut state:State)->Step { +fn b606_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"(",true,4,false,"("); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'('");} out } -fn e579_c(&mut self,state:State)->Step { -let mut out=self.b579_c(state); +fn e607_c(&mut self,state:State)->Step { +let mut out=self.b607_c(state); if out.ok { -out.events=self.event(Event::Capture {site:109,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:119,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b579_c(&mut self,mut state:State)->Step { +fn b607_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r89_c(out.state); out } -fn e580_c(&mut self,state:State)->Step { -let mut out=self.b580_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e608_c(&mut self,state:State)->Step { +let mut out=self.b608_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,580,72); +out.events=self.relabel_token(out.events,608,72); } else {self.display_failures(state.consumed.max(state.matched),&["','"]);} out } -fn b580_c(&mut self,mut state:State)->Step { +fn b608_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,",",true,8,false,","); if !out.ok {self.display_fail(state.consumed.max(state.matched),"','");} out } -fn e581_c(&mut self,state:State)->Step { -let mut out=self.b581_c(state); +fn e609_c(&mut self,state:State)->Step { +let mut out=self.b609_c(state); if out.ok { -out.events=self.event(Event::Capture {site:110,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:120,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b581_c(&mut self,mut state:State)->Step { +fn b609_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r89_c(out.state); out } -fn e582_c(&mut self,state:State)->Step { -let mut out=self.b582_c(state); +fn e610_c(&mut self,state:State)->Step { +let mut out=self.b610_c(state); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:false,text:false}); } else {self.display_failures(state.consumed.max(state.matched),&["','"]);} out } -fn b582_c(&mut self,mut state:State)->Step { +fn b610_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out.state=state.begin(); let mut count=0usize;loop {let mark=self.mark();let before=out.state; -let mut child=self.e583_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} +let mut child=self.e611_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} out.events=self.join(out.events,child.events);count+=1; if before.position::()==out.state.position::() {break;} } @@ -10468,155 +10968,155 @@ if false {out.ok=false;out.state=state;let d=self.diag_fail(state.position::Step { -let mut out=self.b583_c(state); +fn e611_c(&mut self,state:State)->Step { +let mut out=self.b611_c(state); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:true,text:false}); } else {self.display_failures(state.consumed.max(state.matched),&["','"]);} out } -fn b583_c(&mut self,mut state:State)->Step { +fn b611_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e584_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e612_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e585_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e613_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e584_c(&mut self,state:State)->Step { -let mut out=self.b584_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e612_c(&mut self,state:State)->Step { +let mut out=self.b612_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,584,72); +out.events=self.relabel_token(out.events,612,72); } else {self.display_failures(state.consumed.max(state.matched),&["','"]);} out } -fn b584_c(&mut self,mut state:State)->Step { +fn b612_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,",",true,8,false,","); if !out.ok {self.display_fail(state.consumed.max(state.matched),"','");} out } -fn e585_c(&mut self,state:State)->Step { -let mut out=self.b585_c(state); +fn e613_c(&mut self,state:State)->Step { +let mut out=self.b613_c(state); if out.ok { -out.events=self.event(Event::Capture {site:111,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:121,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b585_c(&mut self,mut state:State)->Step { +fn b613_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r89_c(out.state); out } -fn e586_c(&mut self,state:State)->Step { -let mut out=self.b586_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e614_c(&mut self,state:State)->Step { +let mut out=self.b614_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,586,72); +out.events=self.relabel_token(out.events,614,72); } else {self.display_failures(state.consumed.max(state.matched),&["')'"]);} out } -fn b586_c(&mut self,mut state:State)->Step { +fn b614_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,")",true,5,false,")"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"')'");} out } -fn e587_c(&mut self,state:State)->Step { +fn e615_c(&mut self,state:State)->Step { let mark=self.mark(); -let key=Key {expression:587,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} -self.display_enter(state.consumed.max(state.matched));let mut out=self.b587_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +let key=Key {expression:615,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} +self.display_enter(state.consumed.max(state.matched));let mut out=self.b615_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:false,text:false}); } else {self.restore(mark);self.display_failures(state.consumed.max(state.matched),&[]);} if (out.ok && true) || (!out.ok && true) {self.store(key,out,mark);}self.display_leave(); out } -fn b587_c(&mut self,mut state:State)->Step { +fn b615_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e588_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e616_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e589_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e617_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e590_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e618_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e591_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e619_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e592_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e620_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e596_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e624_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e588_c(&mut self,state:State)->Step { -let mut out=self.b588_c(state); +fn e616_c(&mut self,state:State)->Step { +let mut out=self.b616_c(state); if out.ok { -out.events=self.event(Event::Capture {site:112,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:122,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b588_c(&mut self,mut state:State)->Step { +fn b616_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r89_c(out.state); out } -fn e589_c(&mut self,state:State)->Step { -let mut out=self.b589_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e617_c(&mut self,state:State)->Step { +let mut out=self.b617_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,589,73); +out.events=self.relabel_token(out.events,617,73); } else {self.display_failures(state.consumed.max(state.matched),&["'.in'"]);} out } -fn b589_c(&mut self,mut state:State)->Step { +fn b617_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,".in",true,14,false,".in"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'.in'");} out } -fn e590_c(&mut self,state:State)->Step { -let mut out=self.b590_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e618_c(&mut self,state:State)->Step { +let mut out=self.b618_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,590,73); +out.events=self.relabel_token(out.events,618,73); } else {self.display_failures(state.consumed.max(state.matched),&["'('"]);} out } -fn b590_c(&mut self,mut state:State)->Step { +fn b618_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"(",true,4,false,"("); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'('");} out } -fn e591_c(&mut self,state:State)->Step { -let mut out=self.b591_c(state); +fn e619_c(&mut self,state:State)->Step { +let mut out=self.b619_c(state); if out.ok { -out.events=self.event(Event::Capture {site:113,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:123,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b591_c(&mut self,mut state:State)->Step { +fn b619_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r89_c(out.state); out } -fn e592_c(&mut self,state:State)->Step { -let mut out=self.b592_c(state); +fn e620_c(&mut self,state:State)->Step { +let mut out=self.b620_c(state); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:false,text:false}); } else {self.display_failures(state.consumed.max(state.matched),&["','"]);} out } -fn b592_c(&mut self,mut state:State)->Step { +fn b620_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out.state=state.begin(); let mut count=0usize;loop {let mark=self.mark();let before=out.state; -let mut child=self.e593_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} +let mut child=self.e621_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} out.events=self.join(out.events,child.events);count+=1; if before.position::()==out.state.position::() {break;} } @@ -10625,155 +11125,155 @@ if false {out.ok=false;out.state=state;let d=self.diag_fail(state.position::Step { -let mut out=self.b593_c(state); +fn e621_c(&mut self,state:State)->Step { +let mut out=self.b621_c(state); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:true,text:false}); } else {self.display_failures(state.consumed.max(state.matched),&["','"]);} out } -fn b593_c(&mut self,mut state:State)->Step { +fn b621_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e594_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e622_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e595_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e623_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e594_c(&mut self,state:State)->Step { -let mut out=self.b594_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e622_c(&mut self,state:State)->Step { +let mut out=self.b622_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,594,73); +out.events=self.relabel_token(out.events,622,73); } else {self.display_failures(state.consumed.max(state.matched),&["','"]);} out } -fn b594_c(&mut self,mut state:State)->Step { +fn b622_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,",",true,8,false,","); if !out.ok {self.display_fail(state.consumed.max(state.matched),"','");} out } -fn e595_c(&mut self,state:State)->Step { -let mut out=self.b595_c(state); +fn e623_c(&mut self,state:State)->Step { +let mut out=self.b623_c(state); if out.ok { -out.events=self.event(Event::Capture {site:114,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:124,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b595_c(&mut self,mut state:State)->Step { +fn b623_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r89_c(out.state); out } -fn e596_c(&mut self,state:State)->Step { -let mut out=self.b596_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e624_c(&mut self,state:State)->Step { +let mut out=self.b624_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,596,73); +out.events=self.relabel_token(out.events,624,73); } else {self.display_failures(state.consumed.max(state.matched),&["')'"]);} out } -fn b596_c(&mut self,mut state:State)->Step { +fn b624_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,")",true,5,false,")"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"')'");} out } -fn e597_c(&mut self,state:State)->Step { +fn e625_c(&mut self,state:State)->Step { let mark=self.mark(); -let key=Key {expression:597,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} -self.display_enter(state.consumed.max(state.matched));let mut out=self.b597_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +let key=Key {expression:625,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} +self.display_enter(state.consumed.max(state.matched));let mut out=self.b625_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:false,text:false}); } else {self.restore(mark);self.display_failures(state.consumed.max(state.matched),&[]);} if (out.ok && true) || (!out.ok && true) {self.store(key,out,mark);}self.display_leave(); out } -fn b597_c(&mut self,mut state:State)->Step { +fn b625_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e598_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e626_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e599_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e627_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e600_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e628_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e601_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e629_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e602_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e630_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e606_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e634_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e598_c(&mut self,state:State)->Step { -let mut out=self.b598_c(state); +fn e626_c(&mut self,state:State)->Step { +let mut out=self.b626_c(state); if out.ok { -out.events=self.event(Event::Capture {site:115,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:125,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b598_c(&mut self,mut state:State)->Step { +fn b626_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r77_c(out.state); out } -fn e599_c(&mut self,state:State)->Step { -let mut out=self.b599_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e627_c(&mut self,state:State)->Step { +let mut out=self.b627_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,599,74); +out.events=self.relabel_token(out.events,627,74); } else {self.display_failures(state.consumed.max(state.matched),&["'.startsWith'"]);} out } -fn b599_c(&mut self,mut state:State)->Step { +fn b627_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,".startsWith",true,16,false,".startsWith"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'.startsWith'");} out } -fn e600_c(&mut self,state:State)->Step { -let mut out=self.b600_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e628_c(&mut self,state:State)->Step { +let mut out=self.b628_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,600,74); +out.events=self.relabel_token(out.events,628,74); } else {self.display_failures(state.consumed.max(state.matched),&["'('"]);} out } -fn b600_c(&mut self,mut state:State)->Step { +fn b628_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"(",true,4,false,"("); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'('");} out } -fn e601_c(&mut self,state:State)->Step { -let mut out=self.b601_c(state); +fn e629_c(&mut self,state:State)->Step { +let mut out=self.b629_c(state); if out.ok { -out.events=self.event(Event::Capture {site:116,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:126,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b601_c(&mut self,mut state:State)->Step { +fn b629_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r89_c(out.state); out } -fn e602_c(&mut self,state:State)->Step { -let mut out=self.b602_c(state); +fn e630_c(&mut self,state:State)->Step { +let mut out=self.b630_c(state); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:false,text:false}); } else {self.display_failures(state.consumed.max(state.matched),&["','"]);} out } -fn b602_c(&mut self,mut state:State)->Step { +fn b630_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out.state=state.begin(); let mut count=0usize;loop {let mark=self.mark();let before=out.state; -let mut child=self.e603_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} +let mut child=self.e631_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} out.events=self.join(out.events,child.events);count+=1; if before.position::()==out.state.position::() {break;} } @@ -10782,155 +11282,155 @@ if false {out.ok=false;out.state=state;let d=self.diag_fail(state.position::Step { -let mut out=self.b603_c(state); +fn e631_c(&mut self,state:State)->Step { +let mut out=self.b631_c(state); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:true,text:false}); } else {self.display_failures(state.consumed.max(state.matched),&["','"]);} out } -fn b603_c(&mut self,mut state:State)->Step { +fn b631_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e604_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e632_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e605_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e633_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e604_c(&mut self,state:State)->Step { -let mut out=self.b604_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e632_c(&mut self,state:State)->Step { +let mut out=self.b632_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,604,74); +out.events=self.relabel_token(out.events,632,74); } else {self.display_failures(state.consumed.max(state.matched),&["','"]);} out } -fn b604_c(&mut self,mut state:State)->Step { +fn b632_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,",",true,8,false,","); if !out.ok {self.display_fail(state.consumed.max(state.matched),"','");} out } -fn e605_c(&mut self,state:State)->Step { -let mut out=self.b605_c(state); +fn e633_c(&mut self,state:State)->Step { +let mut out=self.b633_c(state); if out.ok { -out.events=self.event(Event::Capture {site:117,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:127,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b605_c(&mut self,mut state:State)->Step { +fn b633_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r89_c(out.state); out } -fn e606_c(&mut self,state:State)->Step { -let mut out=self.b606_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e634_c(&mut self,state:State)->Step { +let mut out=self.b634_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,606,74); +out.events=self.relabel_token(out.events,634,74); } else {self.display_failures(state.consumed.max(state.matched),&["')'"]);} out } -fn b606_c(&mut self,mut state:State)->Step { +fn b634_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,")",true,5,false,")"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"')'");} out } -fn e607_c(&mut self,state:State)->Step { +fn e635_c(&mut self,state:State)->Step { let mark=self.mark(); -let key=Key {expression:607,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} -self.display_enter(state.consumed.max(state.matched));let mut out=self.b607_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +let key=Key {expression:635,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} +self.display_enter(state.consumed.max(state.matched));let mut out=self.b635_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:false,text:false}); } else {self.restore(mark);self.display_failures(state.consumed.max(state.matched),&[]);} if (out.ok && true) || (!out.ok && true) {self.store(key,out,mark);}self.display_leave(); out } -fn b607_c(&mut self,mut state:State)->Step { +fn b635_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e608_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e636_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e609_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e637_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e610_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e638_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e611_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e639_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e612_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e640_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e616_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e644_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e608_c(&mut self,state:State)->Step { -let mut out=self.b608_c(state); +fn e636_c(&mut self,state:State)->Step { +let mut out=self.b636_c(state); if out.ok { -out.events=self.event(Event::Capture {site:118,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:128,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b608_c(&mut self,mut state:State)->Step { +fn b636_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r77_c(out.state); out } -fn e609_c(&mut self,state:State)->Step { -let mut out=self.b609_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e637_c(&mut self,state:State)->Step { +let mut out=self.b637_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,609,75); +out.events=self.relabel_token(out.events,637,75); } else {self.display_failures(state.consumed.max(state.matched),&["'.endsWith'"]);} out } -fn b609_c(&mut self,mut state:State)->Step { +fn b637_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,".endsWith",true,13,false,".endsWith"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'.endsWith'");} out } -fn e610_c(&mut self,state:State)->Step { -let mut out=self.b610_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e638_c(&mut self,state:State)->Step { +let mut out=self.b638_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,610,75); +out.events=self.relabel_token(out.events,638,75); } else {self.display_failures(state.consumed.max(state.matched),&["'('"]);} out } -fn b610_c(&mut self,mut state:State)->Step { +fn b638_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"(",true,4,false,"("); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'('");} out } -fn e611_c(&mut self,state:State)->Step { -let mut out=self.b611_c(state); +fn e639_c(&mut self,state:State)->Step { +let mut out=self.b639_c(state); if out.ok { -out.events=self.event(Event::Capture {site:119,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:129,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b611_c(&mut self,mut state:State)->Step { +fn b639_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r89_c(out.state); out } -fn e612_c(&mut self,state:State)->Step { -let mut out=self.b612_c(state); +fn e640_c(&mut self,state:State)->Step { +let mut out=self.b640_c(state); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:false,text:false}); } else {self.display_failures(state.consumed.max(state.matched),&["','"]);} out } -fn b612_c(&mut self,mut state:State)->Step { +fn b640_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out.state=state.begin(); let mut count=0usize;loop {let mark=self.mark();let before=out.state; -let mut child=self.e613_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} +let mut child=self.e641_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} out.events=self.join(out.events,child.events);count+=1; if before.position::()==out.state.position::() {break;} } @@ -10939,155 +11439,155 @@ if false {out.ok=false;out.state=state;let d=self.diag_fail(state.position::Step { -let mut out=self.b613_c(state); +fn e641_c(&mut self,state:State)->Step { +let mut out=self.b641_c(state); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:true,text:false}); } else {self.display_failures(state.consumed.max(state.matched),&["','"]);} out } -fn b613_c(&mut self,mut state:State)->Step { +fn b641_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e614_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e642_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e615_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e643_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e614_c(&mut self,state:State)->Step { -let mut out=self.b614_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e642_c(&mut self,state:State)->Step { +let mut out=self.b642_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,614,75); +out.events=self.relabel_token(out.events,642,75); } else {self.display_failures(state.consumed.max(state.matched),&["','"]);} out } -fn b614_c(&mut self,mut state:State)->Step { +fn b642_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,",",true,8,false,","); if !out.ok {self.display_fail(state.consumed.max(state.matched),"','");} out } -fn e615_c(&mut self,state:State)->Step { -let mut out=self.b615_c(state); +fn e643_c(&mut self,state:State)->Step { +let mut out=self.b643_c(state); if out.ok { -out.events=self.event(Event::Capture {site:120,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:130,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b615_c(&mut self,mut state:State)->Step { +fn b643_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r89_c(out.state); out } -fn e616_c(&mut self,state:State)->Step { -let mut out=self.b616_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e644_c(&mut self,state:State)->Step { +let mut out=self.b644_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,616,75); +out.events=self.relabel_token(out.events,644,75); } else {self.display_failures(state.consumed.max(state.matched),&["')'"]);} out } -fn b616_c(&mut self,mut state:State)->Step { +fn b644_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,")",true,5,false,")"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"')'");} out } -fn e617_c(&mut self,state:State)->Step { +fn e645_c(&mut self,state:State)->Step { let mark=self.mark(); -let key=Key {expression:617,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} -self.display_enter(state.consumed.max(state.matched));let mut out=self.b617_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +let key=Key {expression:645,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} +self.display_enter(state.consumed.max(state.matched));let mut out=self.b645_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:false,text:false}); } else {self.restore(mark);self.display_failures(state.consumed.max(state.matched),&[]);} if (out.ok && true) || (!out.ok && true) {self.store(key,out,mark);}self.display_leave(); out } -fn b617_c(&mut self,mut state:State)->Step { +fn b645_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e618_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e646_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e619_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e647_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e620_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e648_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e621_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e649_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e622_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e650_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e626_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e654_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e618_c(&mut self,state:State)->Step { -let mut out=self.b618_c(state); +fn e646_c(&mut self,state:State)->Step { +let mut out=self.b646_c(state); if out.ok { -out.events=self.event(Event::Capture {site:121,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:131,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b618_c(&mut self,mut state:State)->Step { +fn b646_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r77_c(out.state); out } -fn e619_c(&mut self,state:State)->Step { -let mut out=self.b619_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e647_c(&mut self,state:State)->Step { +let mut out=self.b647_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,619,76); +out.events=self.relabel_token(out.events,647,76); } else {self.display_failures(state.consumed.max(state.matched),&["'.contains'"]);} out } -fn b619_c(&mut self,mut state:State)->Step { +fn b647_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,".contains",true,12,false,".contains"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'.contains'");} out } -fn e620_c(&mut self,state:State)->Step { -let mut out=self.b620_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e648_c(&mut self,state:State)->Step { +let mut out=self.b648_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,620,76); +out.events=self.relabel_token(out.events,648,76); } else {self.display_failures(state.consumed.max(state.matched),&["'('"]);} out } -fn b620_c(&mut self,mut state:State)->Step { +fn b648_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"(",true,4,false,"("); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'('");} out } -fn e621_c(&mut self,state:State)->Step { -let mut out=self.b621_c(state); +fn e649_c(&mut self,state:State)->Step { +let mut out=self.b649_c(state); if out.ok { -out.events=self.event(Event::Capture {site:122,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:132,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b621_c(&mut self,mut state:State)->Step { +fn b649_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r89_c(out.state); out } -fn e622_c(&mut self,state:State)->Step { -let mut out=self.b622_c(state); +fn e650_c(&mut self,state:State)->Step { +let mut out=self.b650_c(state); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:false,text:false}); } else {self.display_failures(state.consumed.max(state.matched),&["','"]);} out } -fn b622_c(&mut self,mut state:State)->Step { +fn b650_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out.state=state.begin(); let mut count=0usize;loop {let mark=self.mark();let before=out.state; -let mut child=self.e623_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} +let mut child=self.e651_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} out.events=self.join(out.events,child.events);count+=1; if before.position::()==out.state.position::() {break;} } @@ -11096,922 +11596,922 @@ if false {out.ok=false;out.state=state;let d=self.diag_fail(state.position::Step { -let mut out=self.b623_c(state); +fn e651_c(&mut self,state:State)->Step { +let mut out=self.b651_c(state); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:true,text:false}); } else {self.display_failures(state.consumed.max(state.matched),&["','"]);} out } -fn b623_c(&mut self,mut state:State)->Step { +fn b651_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e624_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e652_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e625_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e653_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e624_c(&mut self,state:State)->Step { -let mut out=self.b624_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e652_c(&mut self,state:State)->Step { +let mut out=self.b652_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,624,76); +out.events=self.relabel_token(out.events,652,76); } else {self.display_failures(state.consumed.max(state.matched),&["','"]);} out } -fn b624_c(&mut self,mut state:State)->Step { +fn b652_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,",",true,8,false,","); if !out.ok {self.display_fail(state.consumed.max(state.matched),"','");} out } -fn e625_c(&mut self,state:State)->Step { -let mut out=self.b625_c(state); +fn e653_c(&mut self,state:State)->Step { +let mut out=self.b653_c(state); if out.ok { -out.events=self.event(Event::Capture {site:123,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:133,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b625_c(&mut self,mut state:State)->Step { +fn b653_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r89_c(out.state); out } -fn e626_c(&mut self,state:State)->Step { -let mut out=self.b626_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e654_c(&mut self,state:State)->Step { +let mut out=self.b654_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,626,76); +out.events=self.relabel_token(out.events,654,76); } else {self.display_failures(state.consumed.max(state.matched),&["')'"]);} out } -fn b626_c(&mut self,mut state:State)->Step { +fn b654_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,")",true,5,false,")"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"')'");} out } -fn e627_c(&mut self,state:State)->Step { +fn e655_c(&mut self,state:State)->Step { let mark=self.mark(); -let key=Key {expression:627,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} -self.display_enter(state.consumed.max(state.matched));let mut out=self.b627_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +let key=Key {expression:655,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} +self.display_enter(state.consumed.max(state.matched));let mut out=self.b655_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { } else {self.restore(mark);self.display_failures(state.consumed.max(state.matched),&[]);} if (out.ok && true) || (!out.ok && true) {self.store(key,out,mark);}self.display_leave(); out } -fn b627_c(&mut self,mut state:State)->Step { +fn b655_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out='choice: {let mark=self.mark();let mut diagnostic=Diag::NONE;let mut best:Option<(Step,[usize;2])>=None; let ct=self.input.cp_at(self.skip_0::(out.state.begin()).position::()).map(|(c,_)|c); -self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,116))) {self.guard_e628_c(out.state.begin())} else {self.e628_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,116))) {self.guard_e656_c(out.state.begin())} else {self.e656_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,116))) {self.guard_e629_c(out.state.begin())} else {self.e629_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,116))) {self.guard_e657_c(out.state.begin())} else {self.e657_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,116))) {self.guard_e630_c(out.state.begin())} else {self.e630_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,116))) {self.guard_e658_c(out.state.begin())} else {self.e658_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,36))) {self.guard_e631_c(out.state.begin())} else {self.e631_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,36))) {self.guard_e659_c(out.state.begin())} else {self.e659_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} self.restore(mark);break 'choice if let Some((mut child,effects))=best {self.replay_effects(effects);child.diag=diagnostic;child} else {out.ok=false;out.diag=diagnostic;out}; }; out } -fn e628_c(&mut self,state:State)->Step { -let mut out=self.b628_c(state); +fn e656_c(&mut self,state:State)->Step { +let mut out=self.b656_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b628_c(&mut self,mut state:State)->Step { +fn b656_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r62_c(out.state); out } -fn e629_c(&mut self,state:State)->Step { -let mut out=self.b629_c(state); +fn e657_c(&mut self,state:State)->Step { +let mut out=self.b657_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b629_c(&mut self,mut state:State)->Step { +fn b657_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r61_c(out.state); out } -fn e630_c(&mut self,state:State)->Step { -let mut out=self.b630_c(state); +fn e658_c(&mut self,state:State)->Step { +let mut out=self.b658_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b630_c(&mut self,mut state:State)->Step { +fn b658_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r63_c(out.state); out } -fn e631_c(&mut self,state:State)->Step { -let mut out=self.b631_c(state); +fn e659_c(&mut self,state:State)->Step { +let mut out=self.b659_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b631_c(&mut self,mut state:State)->Step { +fn b659_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r121_c(out.state); out } -fn e632_c(&mut self,state:State)->Step { +fn e660_c(&mut self,state:State)->Step { let mark=self.mark(); -let key=Key {expression:632,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} -self.display_enter(state.consumed.max(state.matched));let mut out=self.b632_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +let key=Key {expression:660,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} +self.display_enter(state.consumed.max(state.matched));let mut out=self.b660_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:true,text:false}); } else {self.restore(mark);self.display_failures(state.consumed.max(state.matched),&[]);} if (out.ok && true) || (!out.ok && true) {self.store(key,out,mark);}self.display_leave(); out } -fn b632_c(&mut self,mut state:State)->Step { +fn b660_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e633_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e661_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e634_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e662_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e635_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e663_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e636_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e664_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e633_c(&mut self,state:State)->Step { -let mut out=self.b633_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e661_c(&mut self,state:State)->Step { +let mut out=self.b661_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,633,78); +out.events=self.relabel_token(out.events,661,78); } else {self.display_failures(state.consumed.max(state.matched),&["'isPresent'"]);} out } -fn b633_c(&mut self,mut state:State)->Step { +fn b661_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"isPresent",true,68,false,"isPresent"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'isPresent'");} out } -fn e634_c(&mut self,state:State)->Step { -let mut out=self.b634_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e662_c(&mut self,state:State)->Step { +let mut out=self.b662_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,634,78); +out.events=self.relabel_token(out.events,662,78); } else {self.display_failures(state.consumed.max(state.matched),&["'('"]);} out } -fn b634_c(&mut self,mut state:State)->Step { +fn b662_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"(",true,4,false,"("); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'('");} out } -fn e635_c(&mut self,state:State)->Step { -let mut out=self.b635_c(state); +fn e663_c(&mut self,state:State)->Step { +let mut out=self.b663_c(state); if out.ok { -out.events=self.event(Event::Capture {site:124,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:134,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["'$'"]);} out } -fn b635_c(&mut self,mut state:State)->Step { +fn b663_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r121_c(out.state); out } -fn e636_c(&mut self,state:State)->Step { -let mut out=self.b636_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e664_c(&mut self,state:State)->Step { +let mut out=self.b664_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,636,78); +out.events=self.relabel_token(out.events,664,78); } else {self.display_failures(state.consumed.max(state.matched),&["')'"]);} out } -fn b636_c(&mut self,mut state:State)->Step { +fn b664_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,")",true,5,false,")"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"')'");} out } -fn e637_c(&mut self,state:State)->Step { +fn e665_c(&mut self,state:State)->Step { let mark=self.mark(); -let key=Key {expression:637,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} -self.display_enter(state.consumed.max(state.matched));let mut out=self.b637_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +let key=Key {expression:665,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} +self.display_enter(state.consumed.max(state.matched));let mut out=self.b665_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:false,text:false}); } else {self.restore(mark);self.display_failures(state.consumed.max(state.matched),&[]);} if (out.ok && true) || (!out.ok && true) {self.store(key,out,mark);}self.display_leave(); out } -fn b637_c(&mut self,mut state:State)->Step { +fn b665_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e638_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e666_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e639_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e667_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e640_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e668_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e641_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e669_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e642_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e670_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e643_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e671_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e638_c(&mut self,state:State)->Step { -let mut out=self.b638_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e666_c(&mut self,state:State)->Step { +let mut out=self.b666_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,638,79); +out.events=self.relabel_token(out.events,666,79); } else {self.display_failures(state.consumed.max(state.matched),&["'inTimeRange'"]);} out } -fn b638_c(&mut self,mut state:State)->Step { +fn b666_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"inTimeRange",true,66,false,"inTimeRange"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'inTimeRange'");} out } -fn e639_c(&mut self,state:State)->Step { -let mut out=self.b639_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e667_c(&mut self,state:State)->Step { +let mut out=self.b667_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,639,79); +out.events=self.relabel_token(out.events,667,79); } else {self.display_failures(state.consumed.max(state.matched),&["'('"]);} out } -fn b639_c(&mut self,mut state:State)->Step { +fn b667_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"(",true,4,false,"("); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'('");} out } -fn e640_c(&mut self,state:State)->Step { -let mut out=self.b640_c(state); +fn e668_c(&mut self,state:State)->Step { +let mut out=self.b668_c(state); if out.ok { -out.events=self.event(Event::Capture {site:125,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:135,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b640_c(&mut self,mut state:State)->Step { +fn b668_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r40_c(out.state); out } -fn e641_c(&mut self,state:State)->Step { -let mut out=self.b641_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e669_c(&mut self,state:State)->Step { +let mut out=self.b669_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,641,79); +out.events=self.relabel_token(out.events,669,79); } else {self.display_failures(state.consumed.max(state.matched),&["','"]);} out } -fn b641_c(&mut self,mut state:State)->Step { +fn b669_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,",",true,8,false,","); if !out.ok {self.display_fail(state.consumed.max(state.matched),"','");} out } -fn e642_c(&mut self,state:State)->Step { -let mut out=self.b642_c(state); +fn e670_c(&mut self,state:State)->Step { +let mut out=self.b670_c(state); if out.ok { -out.events=self.event(Event::Capture {site:126,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:136,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b642_c(&mut self,mut state:State)->Step { +fn b670_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r40_c(out.state); out } -fn e643_c(&mut self,state:State)->Step { -let mut out=self.b643_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e671_c(&mut self,state:State)->Step { +let mut out=self.b671_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,643,79); +out.events=self.relabel_token(out.events,671,79); } else {self.display_failures(state.consumed.max(state.matched),&["')'"]);} out } -fn b643_c(&mut self,mut state:State)->Step { +fn b671_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,")",true,5,false,")"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"')'");} out } -fn e644_c(&mut self,state:State)->Step { +fn e672_c(&mut self,state:State)->Step { let mark=self.mark(); -let key=Key {expression:644,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} -self.display_enter(state.consumed.max(state.matched));let mut out=self.b644_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +let key=Key {expression:672,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} +self.display_enter(state.consumed.max(state.matched));let mut out=self.b672_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:false,text:false}); } else {self.restore(mark);self.display_failures(state.consumed.max(state.matched),&[]);} if (out.ok && true) || (!out.ok && true) {self.store(key,out,mark);}self.display_leave(); out } -fn b644_c(&mut self,mut state:State)->Step { +fn b672_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e645_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e673_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e646_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e674_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e647_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e675_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e648_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e676_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e649_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e677_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e650_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e678_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e651_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e679_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e652_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e680_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e653_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e681_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e654_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e682_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e645_c(&mut self,state:State)->Step { -let mut out=self.b645_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e673_c(&mut self,state:State)->Step { +let mut out=self.b673_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,645,80); +out.events=self.relabel_token(out.events,673,80); } else {self.display_failures(state.consumed.max(state.matched),&["'inDayTimeRange'"]);} out } -fn b645_c(&mut self,mut state:State)->Step { +fn b673_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"inDayTimeRange",true,65,false,"inDayTimeRange"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'inDayTimeRange'");} out } -fn e646_c(&mut self,state:State)->Step { -let mut out=self.b646_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e674_c(&mut self,state:State)->Step { +let mut out=self.b674_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,646,80); +out.events=self.relabel_token(out.events,674,80); } else {self.display_failures(state.consumed.max(state.matched),&["'('"]);} out } -fn b646_c(&mut self,mut state:State)->Step { +fn b674_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"(",true,4,false,"("); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'('");} out } -fn e647_c(&mut self,state:State)->Step { -let mut out=self.b647_c(state); +fn e675_c(&mut self,state:State)->Step { +let mut out=self.b675_c(state); if out.ok { -out.events=self.event(Event::Capture {site:127,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:137,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["'FRIDAY'", "'MONDAY'", "'SATURDAY'", "'SUNDAY'", "'THURSDAY'", "'TUESDAY'", "'WEDNESDAY'"]);} out } -fn b647_c(&mut self,mut state:State)->Step { +fn b675_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r81_c(out.state); out } -fn e648_c(&mut self,state:State)->Step { -let mut out=self.b648_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e676_c(&mut self,state:State)->Step { +let mut out=self.b676_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,648,80); +out.events=self.relabel_token(out.events,676,80); } else {self.display_failures(state.consumed.max(state.matched),&["','"]);} out } -fn b648_c(&mut self,mut state:State)->Step { +fn b676_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,",",true,8,false,","); if !out.ok {self.display_fail(state.consumed.max(state.matched),"','");} out } -fn e649_c(&mut self,state:State)->Step { -let mut out=self.b649_c(state); +fn e677_c(&mut self,state:State)->Step { +let mut out=self.b677_c(state); if out.ok { -out.events=self.event(Event::Capture {site:128,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:138,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b649_c(&mut self,mut state:State)->Step { +fn b677_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r40_c(out.state); out } -fn e650_c(&mut self,state:State)->Step { -let mut out=self.b650_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e678_c(&mut self,state:State)->Step { +let mut out=self.b678_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,650,80); +out.events=self.relabel_token(out.events,678,80); } else {self.display_failures(state.consumed.max(state.matched),&["','"]);} out } -fn b650_c(&mut self,mut state:State)->Step { +fn b678_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,",",true,8,false,","); if !out.ok {self.display_fail(state.consumed.max(state.matched),"','");} out } -fn e651_c(&mut self,state:State)->Step { -let mut out=self.b651_c(state); +fn e679_c(&mut self,state:State)->Step { +let mut out=self.b679_c(state); if out.ok { -out.events=self.event(Event::Capture {site:129,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:139,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["'FRIDAY'", "'MONDAY'", "'SATURDAY'", "'SUNDAY'", "'THURSDAY'", "'TUESDAY'", "'WEDNESDAY'"]);} out } -fn b651_c(&mut self,mut state:State)->Step { +fn b679_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r81_c(out.state); out } -fn e652_c(&mut self,state:State)->Step { -let mut out=self.b652_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e680_c(&mut self,state:State)->Step { +let mut out=self.b680_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,652,80); +out.events=self.relabel_token(out.events,680,80); } else {self.display_failures(state.consumed.max(state.matched),&["','"]);} out } -fn b652_c(&mut self,mut state:State)->Step { +fn b680_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,",",true,8,false,","); if !out.ok {self.display_fail(state.consumed.max(state.matched),"','");} out } -fn e653_c(&mut self,state:State)->Step { -let mut out=self.b653_c(state); +fn e681_c(&mut self,state:State)->Step { +let mut out=self.b681_c(state); if out.ok { -out.events=self.event(Event::Capture {site:130,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:140,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b653_c(&mut self,mut state:State)->Step { +fn b681_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r40_c(out.state); out } -fn e654_c(&mut self,state:State)->Step { -let mut out=self.b654_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e682_c(&mut self,state:State)->Step { +let mut out=self.b682_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,654,80); +out.events=self.relabel_token(out.events,682,80); } else {self.display_failures(state.consumed.max(state.matched),&["')'"]);} out } -fn b654_c(&mut self,mut state:State)->Step { +fn b682_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,")",true,5,false,")"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"')'");} out } -fn e655_c(&mut self,state:State)->Step { -let mut out=self.b655_c(state); +fn e683_c(&mut self,state:State)->Step { +let mut out=self.b683_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b655_c(&mut self,mut state:State)->Step { +fn b683_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out='choice: {let mark=self.mark();let mut diagnostic=Diag::NONE;let mut best:Option<(Step,[usize;2])>=None; -self.restore(mark);let mut child=self.e656_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=self.e684_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=self.e657_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=self.e685_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=self.e658_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=self.e686_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=self.e659_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=self.e687_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=self.e660_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=self.e688_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=self.e661_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=self.e689_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=self.e662_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=self.e690_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} self.restore(mark);break 'choice if let Some((mut child,effects))=best {self.replay_effects(effects);child.diag=diagnostic;child} else {out.ok=false;out.diag=diagnostic;out}; }; out } -fn e656_c(&mut self,state:State)->Step { -let mut out=self.b656_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e684_c(&mut self,state:State)->Step { +let mut out=self.b684_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,656,81); +out.events=self.relabel_token(out.events,684,81); } else {self.display_failures(state.consumed.max(state.matched),&["'MONDAY'"]);} out } -fn b656_c(&mut self,mut state:State)->Step { +fn b684_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"MONDAY",true,34,false,"MONDAY"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'MONDAY'");} out } -fn e657_c(&mut self,state:State)->Step { -let mut out=self.b657_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e685_c(&mut self,state:State)->Step { +let mut out=self.b685_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,657,81); +out.events=self.relabel_token(out.events,685,81); } else {self.display_failures(state.consumed.max(state.matched),&["'TUESDAY'"]);} out } -fn b657_c(&mut self,mut state:State)->Step { +fn b685_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"TUESDAY",true,41,false,"TUESDAY"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'TUESDAY'");} out } -fn e658_c(&mut self,state:State)->Step { -let mut out=self.b658_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e686_c(&mut self,state:State)->Step { +let mut out=self.b686_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,658,81); +out.events=self.relabel_token(out.events,686,81); } else {self.display_failures(state.consumed.max(state.matched),&["'WEDNESDAY'"]);} out } -fn b658_c(&mut self,mut state:State)->Step { +fn b686_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"WEDNESDAY",true,42,false,"WEDNESDAY"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'WEDNESDAY'");} out } -fn e659_c(&mut self,state:State)->Step { -let mut out=self.b659_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e687_c(&mut self,state:State)->Step { +let mut out=self.b687_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,659,81); +out.events=self.relabel_token(out.events,687,81); } else {self.display_failures(state.consumed.max(state.matched),&["'THURSDAY'"]);} out } -fn b659_c(&mut self,mut state:State)->Step { +fn b687_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"THURSDAY",true,40,false,"THURSDAY"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'THURSDAY'");} out } -fn e660_c(&mut self,state:State)->Step { -let mut out=self.b660_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e688_c(&mut self,state:State)->Step { +let mut out=self.b688_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,660,81); +out.events=self.relabel_token(out.events,688,81); } else {self.display_failures(state.consumed.max(state.matched),&["'FRIDAY'"]);} out } -fn b660_c(&mut self,mut state:State)->Step { +fn b688_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"FRIDAY",true,32,false,"FRIDAY"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'FRIDAY'");} out } -fn e661_c(&mut self,state:State)->Step { -let mut out=self.b661_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e689_c(&mut self,state:State)->Step { +let mut out=self.b689_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,661,81); +out.events=self.relabel_token(out.events,689,81); } else {self.display_failures(state.consumed.max(state.matched),&["'SATURDAY'"]);} out } -fn b661_c(&mut self,mut state:State)->Step { +fn b689_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"SATURDAY",true,37,false,"SATURDAY"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'SATURDAY'");} out } -fn e662_c(&mut self,state:State)->Step { -let mut out=self.b662_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e690_c(&mut self,state:State)->Step { +let mut out=self.b690_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,662,81); +out.events=self.relabel_token(out.events,690,81); } else {self.display_failures(state.consumed.max(state.matched),&["'SUNDAY'"]);} out } -fn b662_c(&mut self,mut state:State)->Step { +fn b690_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"SUNDAY",true,38,false,"SUNDAY"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'SUNDAY'");} out } -fn e663_c(&mut self,state:State)->Step { +fn e691_c(&mut self,state:State)->Step { let mark=self.mark(); -let key=Key {expression:663,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} -self.display_enter(state.consumed.max(state.matched));let mut out=self.b663_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +let key=Key {expression:691,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} +self.display_enter(state.consumed.max(state.matched));let mut out=self.b691_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { } else {self.restore(mark);self.display_failures(state.consumed.max(state.matched),&[]);} if (out.ok && true) || (!out.ok && true) {self.store(key,out,mark);}self.display_leave(); out } -fn b663_c(&mut self,mut state:State)->Step { +fn b691_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out='choice: {let mark=self.mark();let mut diagnostic=Diag::NONE;let mut best:Option<(Step,[usize;2])>=None; let ct=self.input.cp_at(self.skip_0::(out.state.begin()).position::()).map(|(c,_)|c); -self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,101))) {self.guard_e664_c(out.state.begin())} else {self.e664_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,101))) {self.guard_e692_c(out.state.begin())} else {self.e692_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,40))) {self.guard_e665_c(out.state.begin())} else {self.e665_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,40))) {self.guard_e693_c(out.state.begin())} else {self.e693_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,40))) {self.guard_e669_c(out.state.begin())} else {self.e669_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,40))) {self.guard_e697_c(out.state.begin())} else {self.e697_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,116))) {self.guard_e670_c(out.state.begin())} else {self.e670_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,116))) {self.guard_e698_c(out.state.begin())} else {self.e698_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,116))) {self.guard_e671_c(out.state.begin())} else {self.e671_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,116))) {self.guard_e699_c(out.state.begin())} else {self.e699_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,116))) {self.guard_e672_c(out.state.begin())} else {self.e672_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,116))) {self.guard_e700_c(out.state.begin())} else {self.e700_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,36))) {self.guard_e673_c(out.state.begin())} else {self.e673_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,36))) {self.guard_e701_c(out.state.begin())} else {self.e701_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,36))) {self.guard_e674_c(out.state.begin())} else {self.e674_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,36))) {self.guard_e702_c(out.state.begin())} else {self.e702_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,36))) {self.guard_e675_c(out.state.begin())} else {self.e675_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,36))) {self.guard_e703_c(out.state.begin())} else {self.e703_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=self.e676_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=self.e704_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,36))) {self.guard_e677_c(out.state.begin())} else {self.e677_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,36))) {self.guard_e705_c(out.state.begin())} else {self.e705_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,99|105))) {self.guard_e678_c(out.state.begin())} else {self.e678_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,99|105))) {self.guard_e706_c(out.state.begin())} else {self.e706_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} self.restore(mark);break 'choice if let Some((mut child,effects))=best {self.replay_effects(effects);child.diag=diagnostic;child} else {out.ok=false;out.diag=diagnostic;out}; }; out } -fn e664_c(&mut self,state:State)->Step { -let mut out=self.b664_c(state); +fn e692_c(&mut self,state:State)->Step { +let mut out=self.b692_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b664_c(&mut self,mut state:State)->Step { +fn b692_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r33_c(out.state); out } -fn e665_c(&mut self,state:State)->Step { -let mut out=self.b665_c(state); +fn e693_c(&mut self,state:State)->Step { +let mut out=self.b693_c(state); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:true,text:false}); } else {self.display_failures(state.consumed.max(state.matched),&["'$'", "'('", "')'"]);} out } -fn b665_c(&mut self,mut state:State)->Step { +fn b693_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e666_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e694_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e667_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e695_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e668_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e696_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e666_c(&mut self,state:State)->Step { -let mut out=self.b666_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e694_c(&mut self,state:State)->Step { +let mut out=self.b694_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,666,82); +out.events=self.relabel_token(out.events,694,82); } else {self.display_failures(state.consumed.max(state.matched),&["'('"]);} out } -fn b666_c(&mut self,mut state:State)->Step { +fn b694_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"(",true,4,false,"("); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'('");} out } -fn e667_c(&mut self,state:State)->Step { -let mut out=self.b667_c(state); +fn e695_c(&mut self,state:State)->Step { +let mut out=self.b695_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b667_c(&mut self,mut state:State)->Step { +fn b695_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r121_c(out.state); out } -fn e668_c(&mut self,state:State)->Step { -let mut out=self.b668_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e696_c(&mut self,state:State)->Step { +let mut out=self.b696_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,668,82); +out.events=self.relabel_token(out.events,696,82); } else {self.display_failures(state.consumed.max(state.matched),&["')'"]);} out } -fn b668_c(&mut self,mut state:State)->Step { +fn b696_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,")",true,5,false,")"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"')'");} out } -fn e669_c(&mut self,state:State)->Step { -let mut out=self.b669_c(state); +fn e697_c(&mut self,state:State)->Step { +let mut out=self.b697_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b669_c(&mut self,mut state:State)->Step { +fn b697_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r90_c(out.state); out } -fn e670_c(&mut self,state:State)->Step { -let mut out=self.b670_c(state); +fn e698_c(&mut self,state:State)->Step { +let mut out=self.b698_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b670_c(&mut self,mut state:State)->Step { +fn b698_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r61_c(out.state); out } -fn e671_c(&mut self,state:State)->Step { -let mut out=self.b671_c(state); +fn e699_c(&mut self,state:State)->Step { +let mut out=self.b699_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b671_c(&mut self,mut state:State)->Step { +fn b699_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r62_c(out.state); out } -fn e672_c(&mut self,state:State)->Step { -let mut out=self.b672_c(state); +fn e700_c(&mut self,state:State)->Step { +let mut out=self.b700_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b672_c(&mut self,mut state:State)->Step { +fn b700_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r63_c(out.state); out } -fn e673_c(&mut self,state:State)->Step { -let mut out=self.b673_c(state); +fn e701_c(&mut self,state:State)->Step { +let mut out=self.b701_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b673_c(&mut self,mut state:State)->Step { +fn b701_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r66_c(out.state); out } -fn e674_c(&mut self,state:State)->Step { -let mut out=self.b674_c(state); +fn e702_c(&mut self,state:State)->Step { +let mut out=self.b702_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b674_c(&mut self,mut state:State)->Step { +fn b702_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r67_c(out.state); out } -fn e675_c(&mut self,state:State)->Step { -let mut out=self.b675_c(state); +fn e703_c(&mut self,state:State)->Step { +let mut out=self.b703_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b675_c(&mut self,mut state:State)->Step { +fn b703_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r68_c(out.state); out } -fn e676_c(&mut self,state:State)->Step { -let mut out=self.b676_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e704_c(&mut self,state:State)->Step { +let mut out=self.b704_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,676,82); +out.events=self.relabel_token(out.events,704,82); out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:false,text:true}); } else {self.display_failures(state.consumed.max(state.matched),&["STRINGParser"]);} out } -fn b676_c(&mut self,mut state:State)->Step { +fn b704_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.token_2::(out.state,"STRING","STRINGParser"); out } -fn e677_c(&mut self,state:State)->Step { -let mut out=self.b677_c(state); +fn e705_c(&mut self,state:State)->Step { +let mut out=self.b705_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b677_c(&mut self,mut state:State)->Step { +fn b705_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r121_c(out.state); out } -fn e678_c(&mut self,state:State)->Step { -let mut out=self.b678_c(state); +fn e706_c(&mut self,state:State)->Step { +let mut out=self.b706_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b678_c(&mut self,mut state:State)->Step { +fn b706_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r36_c(out.state); out } -fn e679_c(&mut self,state:State)->Step { +fn e707_c(&mut self,state:State)->Step { let mark=self.mark(); -let key=Key {expression:679,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} -self.display_enter(state.consumed.max(state.matched));let mut out=self.b679_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +let key=Key {expression:707,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} +self.display_enter(state.consumed.max(state.matched));let mut out=self.b707_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:true,text:false}); } else {self.restore(mark);self.display_failures(state.consumed.max(state.matched),&[]);} if (out.ok && true) || (!out.ok && true) {self.store(key,out,mark);}self.display_leave(); out } -fn b679_c(&mut self,mut state:State)->Step { +fn b707_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e680_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e708_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e680_c(&mut self,state:State)->Step { -let mut out=self.b680_c(state); +fn e708_c(&mut self,state:State)->Step { +let mut out=self.b708_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b680_c(&mut self,mut state:State)->Step { +fn b708_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r40_c(out.state); out } -fn e681_c(&mut self,state:State)->Step { +fn e709_c(&mut self,state:State)->Step { let mark=self.mark(); -let key=Key {expression:681,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} -self.display_enter(state.consumed.max(state.matched));let mut out=self.b681_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +let key=Key {expression:709,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} +self.display_enter(state.consumed.max(state.matched));let mut out=self.b709_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:true,text:false}); } else {self.restore(mark);self.display_failures(state.consumed.max(state.matched),&[]);} if (out.ok && true) || (!out.ok && true) {self.store(key,out,mark);}self.display_leave(); out } -fn b681_c(&mut self,mut state:State)->Step { +fn b709_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e682_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e710_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e682_c(&mut self,state:State)->Step { -let mut out=self.b682_c(state); +fn e710_c(&mut self,state:State)->Step { +let mut out=self.b710_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b682_c(&mut self,mut state:State)->Step { +fn b710_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r40_c(out.state); out } -fn e683_c(&mut self,state:State)->Step { +fn e711_c(&mut self,state:State)->Step { let mark=self.mark(); -let key=Key {expression:683,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} -self.display_enter(state.consumed.max(state.matched));let mut out=self.b683_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +let key=Key {expression:711,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} +self.display_enter(state.consumed.max(state.matched));let mut out=self.b711_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:true,text:false}); } else {self.restore(mark);self.display_failures(state.consumed.max(state.matched),&[]);} if (out.ok && true) || (!out.ok && true) {self.store(key,out,mark);}self.display_leave(); out } -fn b683_c(&mut self,mut state:State)->Step { +fn b711_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e684_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e712_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e684_c(&mut self,state:State)->Step { -let mut out=self.b684_c(state); +fn e712_c(&mut self,state:State)->Step { +let mut out=self.b712_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b684_c(&mut self,mut state:State)->Step { +fn b712_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r40_c(out.state); out } -fn e685_c(&mut self,state:State)->Step { +fn e713_c(&mut self,state:State)->Step { let mark=self.mark(); -let key=Key {expression:685,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} -self.display_enter(state.consumed.max(state.matched));let mut out=self.b685_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +let key=Key {expression:713,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} +self.display_enter(state.consumed.max(state.matched));let mut out=self.b713_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { } else {self.restore(mark);self.display_failures(state.consumed.max(state.matched),&[]);} if (out.ok && true) || (!out.ok && true) {self.store(key,out,mark);}self.display_leave(); out } -fn b685_c(&mut self,mut state:State)->Step { +fn b713_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out='choice: {let mark=self.mark();let mut diagnostic=Diag::NONE;let mut best:Option<(Step,[usize;2])>=None; if self.options.factor && !out.state.invert { @@ -12023,7 +12523,7 @@ st.reset=false; let mut cur=Step::yes(st); cur.state=st.begin(); let trivia=self.trivia_1::(cur.state);cur=self.combine(cur,trivia); -let p0=cur.state;let child=self.e687_c(cur.state);let ev0=child.events;let _=(p0,ev0);cur=self.combine(cur,child); +let p0=cur.state;let child=self.e715_c(cur.state);let ev0=child.events;let _=(p0,ev0);cur=self.combine(cur,child); if !cur.ok { self.display_failures(entry.consumed.max(entry.matched),&["':'", "'['", "']'"]); self.display_failures(p0.consumed.max(p0.matched),&["__CaptureSite"]); @@ -12031,7 +12531,7 @@ diagnostic=self.diag_join(diagnostic,cur.diag); } else { let trivia=self.trivia_1::(cur.state);cur=self.combine(cur,trivia); let p4=cur.state; -let child=self.e688_c(cur.state);let ev3=child.events;let _=(p4,ev3);cur=self.combine(cur,child); +let child=self.e716_c(cur.state);let ev3=child.events;let _=(p4,ev3);cur=self.combine(cur,child); if !cur.ok { self.display_failures(entry.consumed.max(entry.matched),&["':'", "'['", "']'"]); self.display_failures(p4.consumed.max(p4.matched),&["'['"]); @@ -12040,7 +12540,7 @@ diagnostic=self.diag_join(diagnostic,cur.diag); let trivia=self.trivia_1::(cur.state);cur=self.combine(cur,trivia); let m5=self.mark();let b6=cur; let p8=cur.state; -let child=self.e689_c(cur.state);let ev7=child.events;let _=(p8,ev7);cur=self.combine(cur,child); +let child=self.e717_c(cur.state);let ev7=child.events;let _=(p8,ev7);cur=self.combine(cur,child); if !cur.ok { self.display_failures(entry.consumed.max(entry.matched),&["':'", "'['", "']'"]); self.display_failures(p8.consumed.max(p8.matched),&["__CaptureSite"]); @@ -12048,7 +12548,7 @@ diagnostic=self.diag_join(diagnostic,cur.diag); } else { let trivia=self.trivia_1::(cur.state);cur=self.combine(cur,trivia); let p12=cur.state; -let child=self.e690_c(cur.state);let ev11=child.events;let _=(p12,ev11);cur=self.combine(cur,child); +let child=self.e718_c(cur.state);let ev11=child.events;let _=(p12,ev11);cur=self.combine(cur,child); if !cur.ok { self.display_failures(entry.consumed.max(entry.matched),&["':'", "'['", "']'"]); self.display_failures(p12.consumed.max(p12.matched),&["':'"]); @@ -12057,7 +12557,7 @@ diagnostic=self.diag_join(diagnostic,cur.diag); let trivia=self.trivia_1::(cur.state);cur=self.combine(cur,trivia); let m13=self.mark();let b14=cur; let p16=cur.state; -let child=self.e691_c(cur.state);let ev15=child.events;let _=(p16,ev15);cur=self.combine(cur,child); +let child=self.e719_c(cur.state);let ev15=child.events;let _=(p16,ev15);cur=self.combine(cur,child); if !cur.ok { self.display_failures(entry.consumed.max(entry.matched),&["':'", "'['", "']'"]); self.display_failures(p16.consumed.max(p16.matched),&["__CaptureSite"]); @@ -12066,11 +12566,11 @@ diagnostic=self.diag_join(diagnostic,cur.diag); let trivia=self.trivia_1::(cur.state);cur=self.combine(cur,trivia); let m17=self.mark();let b18=cur; 'f19: { -let child=self.e692_c(cur.state);cur=self.combine(cur,child);if !cur.ok {break 'f19;} +let child=self.e720_c(cur.state);cur=self.combine(cur,child);if !cur.ok {break 'f19;} let trivia=self.trivia_1::(cur.state);cur=self.combine(cur,trivia); -let child=self.e693_c(cur.state);cur=self.combine(cur,child);if !cur.ok {break 'f19;} +let child=self.e721_c(cur.state);cur=self.combine(cur,child);if !cur.ok {break 'f19;} let trivia=self.trivia_1::(cur.state);cur=self.combine(cur,trivia); -let child=self.e694_c(cur.state);cur=self.combine(cur,child);if !cur.ok {break 'f19;} +let child=self.e722_c(cur.state);cur=self.combine(cur,child);if !cur.ok {break 'f19;} let trivia=self.trivia_1::(cur.state);cur=self.combine(cur,trivia); cur.state=st.commit(cur.state); cur.events=self.event(Event::Values{span:[entry.consumed,cur.state.consumed],child:cur.events,wrap:false,text:false}); @@ -12080,15 +12580,15 @@ self.display_failures(entry.consumed.max(entry.matched),&["':'", "'['", "']'"]); diagnostic=self.diag_join(diagnostic,cur.diag); self.restore(m17);cur=b18; 'f20: { -let child=self.e701_c(cur.state);cur=self.combine(cur,child);if !cur.ok {break 'f20;} +let child=self.e729_c(cur.state);cur=self.combine(cur,child);if !cur.ok {break 'f20;} let trivia=self.trivia_1::(cur.state);cur=self.combine(cur,trivia); cur.state=st.commit(cur.state); cur.events=self.event(Event::Values{span:[entry.consumed,cur.state.consumed],child:cur.events,wrap:false,text:false}); -self.retag(ev0,Some(135),None); -self.retag(ev3,None,Some(697)); -self.retag(ev7,Some(136),None); -self.retag(ev11,None,Some(699)); -self.retag(ev15,Some(137),None); +self.retag(ev0,Some(145),None); +self.retag(ev3,None,Some(725)); +self.retag(ev7,Some(146),None); +self.retag(ev11,None,Some(727)); +self.retag(ev15,Some(147),None); diagnostic=self.diag_join(diagnostic,cur.diag);break 'factored cur; } self.display_failures(entry.consumed.max(entry.matched),&["':'", "'['", "']'"]); @@ -12096,32 +12596,32 @@ diagnostic=self.diag_join(diagnostic,cur.diag); } self.restore(m13);cur=b14; 'f21: { -let child=self.e707_c(cur.state);cur=self.combine(cur,child);if !cur.ok {break 'f21;} +let child=self.e735_c(cur.state);cur=self.combine(cur,child);if !cur.ok {break 'f21;} let trivia=self.trivia_1::(cur.state);cur=self.combine(cur,trivia); -let child=self.e708_c(cur.state);cur=self.combine(cur,child);if !cur.ok {break 'f21;} +let child=self.e736_c(cur.state);cur=self.combine(cur,child);if !cur.ok {break 'f21;} let trivia=self.trivia_1::(cur.state);cur=self.combine(cur,trivia); -let child=self.e709_c(cur.state);cur=self.combine(cur,child);if !cur.ok {break 'f21;} +let child=self.e737_c(cur.state);cur=self.combine(cur,child);if !cur.ok {break 'f21;} let trivia=self.trivia_1::(cur.state);cur=self.combine(cur,trivia); cur.state=st.commit(cur.state); cur.events=self.event(Event::Values{span:[entry.consumed,cur.state.consumed],child:cur.events,wrap:false,text:false}); -self.retag(ev0,Some(138),None); -self.retag(ev3,None,Some(704)); -self.retag(ev7,Some(139),None); -self.retag(ev11,None,Some(706)); +self.retag(ev0,Some(148),None); +self.retag(ev3,None,Some(732)); +self.retag(ev7,Some(149),None); +self.retag(ev11,None,Some(734)); diagnostic=self.diag_join(diagnostic,cur.diag);break 'factored cur; } self.display_failures(entry.consumed.max(entry.matched),&["':'", "'['", "']'"]); diagnostic=self.diag_join(diagnostic,cur.diag); self.restore(m13);cur=b14; 'f22: { -let child=self.e715_c(cur.state);cur=self.combine(cur,child);if !cur.ok {break 'f22;} +let child=self.e743_c(cur.state);cur=self.combine(cur,child);if !cur.ok {break 'f22;} let trivia=self.trivia_1::(cur.state);cur=self.combine(cur,trivia); cur.state=st.commit(cur.state); cur.events=self.event(Event::Values{span:[entry.consumed,cur.state.consumed],child:cur.events,wrap:false,text:false}); -self.retag(ev0,Some(141),None); -self.retag(ev3,None,Some(712)); -self.retag(ev7,Some(142),None); -self.retag(ev11,None,Some(714)); +self.retag(ev0,Some(151),None); +self.retag(ev3,None,Some(740)); +self.retag(ev7,Some(152),None); +self.retag(ev11,None,Some(742)); diagnostic=self.diag_join(diagnostic,cur.diag);break 'factored cur; } self.display_failures(entry.consumed.max(entry.matched),&["':'", "'['", "']'"]); @@ -12130,7 +12630,7 @@ diagnostic=self.diag_join(diagnostic,cur.diag); } self.restore(m5);cur=b6; let p24=cur.state; -let child=self.e719_c(cur.state);let ev23=child.events;let _=(p24,ev23);cur=self.combine(cur,child); +let child=self.e747_c(cur.state);let ev23=child.events;let _=(p24,ev23);cur=self.combine(cur,child); if !cur.ok { self.display_failures(entry.consumed.max(entry.matched),&["':'", "'['", "']'"]); self.display_failures(p24.consumed.max(p24.matched),&["':'"]); @@ -12139,7 +12639,7 @@ diagnostic=self.diag_join(diagnostic,cur.diag); let trivia=self.trivia_1::(cur.state);cur=self.combine(cur,trivia); let m25=self.mark();let b26=cur; let p28=cur.state; -let child=self.e720_c(cur.state);let ev27=child.events;let _=(p28,ev27);cur=self.combine(cur,child); +let child=self.e748_c(cur.state);let ev27=child.events;let _=(p28,ev27);cur=self.combine(cur,child); if !cur.ok { self.display_failures(entry.consumed.max(entry.matched),&["':'", "'['", "']'"]); self.display_failures(p28.consumed.max(p28.matched),&["__CaptureSite"]); @@ -12148,30 +12648,30 @@ diagnostic=self.diag_join(diagnostic,cur.diag); let trivia=self.trivia_1::(cur.state);cur=self.combine(cur,trivia); let m29=self.mark();let b30=cur; 'f31: { -let child=self.e721_c(cur.state);cur=self.combine(cur,child);if !cur.ok {break 'f31;} +let child=self.e749_c(cur.state);cur=self.combine(cur,child);if !cur.ok {break 'f31;} let trivia=self.trivia_1::(cur.state);cur=self.combine(cur,trivia); -let child=self.e722_c(cur.state);cur=self.combine(cur,child);if !cur.ok {break 'f31;} +let child=self.e750_c(cur.state);cur=self.combine(cur,child);if !cur.ok {break 'f31;} let trivia=self.trivia_1::(cur.state);cur=self.combine(cur,trivia); -let child=self.e723_c(cur.state);cur=self.combine(cur,child);if !cur.ok {break 'f31;} +let child=self.e751_c(cur.state);cur=self.combine(cur,child);if !cur.ok {break 'f31;} let trivia=self.trivia_1::(cur.state);cur=self.combine(cur,trivia); cur.state=st.commit(cur.state); cur.events=self.event(Event::Values{span:[entry.consumed,cur.state.consumed],child:cur.events,wrap:false,text:false}); -self.retag(ev0,Some(143),None); -self.retag(ev3,None,Some(718)); +self.retag(ev0,Some(153),None); +self.retag(ev3,None,Some(746)); diagnostic=self.diag_join(diagnostic,cur.diag);break 'factored cur; } self.display_failures(entry.consumed.max(entry.matched),&["':'", "'['", "']'"]); diagnostic=self.diag_join(diagnostic,cur.diag); self.restore(m29);cur=b30; 'f32: { -let child=self.e729_c(cur.state);cur=self.combine(cur,child);if !cur.ok {break 'f32;} +let child=self.e757_c(cur.state);cur=self.combine(cur,child);if !cur.ok {break 'f32;} let trivia=self.trivia_1::(cur.state);cur=self.combine(cur,trivia); cur.state=st.commit(cur.state); cur.events=self.event(Event::Values{span:[entry.consumed,cur.state.consumed],child:cur.events,wrap:false,text:false}); -self.retag(ev0,Some(146),None); -self.retag(ev3,None,Some(726)); -self.retag(ev23,None,Some(727)); -self.retag(ev27,Some(147),None); +self.retag(ev0,Some(156),None); +self.retag(ev3,None,Some(754)); +self.retag(ev23,None,Some(755)); +self.retag(ev27,Some(157),None); diagnostic=self.diag_join(diagnostic,cur.diag);break 'factored cur; } self.display_failures(entry.consumed.max(entry.matched),&["':'", "'['", "']'"]); @@ -12179,30 +12679,30 @@ diagnostic=self.diag_join(diagnostic,cur.diag); } self.restore(m25);cur=b26; 'f33: { -let child=self.e734_c(cur.state);cur=self.combine(cur,child);if !cur.ok {break 'f33;} +let child=self.e762_c(cur.state);cur=self.combine(cur,child);if !cur.ok {break 'f33;} let trivia=self.trivia_1::(cur.state);cur=self.combine(cur,trivia); -let child=self.e735_c(cur.state);cur=self.combine(cur,child);if !cur.ok {break 'f33;} +let child=self.e763_c(cur.state);cur=self.combine(cur,child);if !cur.ok {break 'f33;} let trivia=self.trivia_1::(cur.state);cur=self.combine(cur,trivia); -let child=self.e736_c(cur.state);cur=self.combine(cur,child);if !cur.ok {break 'f33;} +let child=self.e764_c(cur.state);cur=self.combine(cur,child);if !cur.ok {break 'f33;} let trivia=self.trivia_1::(cur.state);cur=self.combine(cur,trivia); cur.state=st.commit(cur.state); cur.events=self.event(Event::Values{span:[entry.consumed,cur.state.consumed],child:cur.events,wrap:false,text:false}); -self.retag(ev0,Some(148),None); -self.retag(ev3,None,Some(732)); -self.retag(ev23,None,Some(733)); +self.retag(ev0,Some(158),None); +self.retag(ev3,None,Some(760)); +self.retag(ev23,None,Some(761)); diagnostic=self.diag_join(diagnostic,cur.diag);break 'factored cur; } self.display_failures(entry.consumed.max(entry.matched),&["':'", "'['", "']'"]); diagnostic=self.diag_join(diagnostic,cur.diag); self.restore(m25);cur=b26; 'f34: { -let child=self.e741_c(cur.state);cur=self.combine(cur,child);if !cur.ok {break 'f34;} +let child=self.e769_c(cur.state);cur=self.combine(cur,child);if !cur.ok {break 'f34;} let trivia=self.trivia_1::(cur.state);cur=self.combine(cur,trivia); cur.state=st.commit(cur.state); cur.events=self.event(Event::Values{span:[entry.consumed,cur.state.consumed],child:cur.events,wrap:true,text:false}); -self.retag(ev0,Some(150),None); -self.retag(ev3,None,Some(739)); -self.retag(ev23,None,Some(740)); +self.retag(ev0,Some(160),None); +self.retag(ev3,None,Some(767)); +self.retag(ev23,None,Some(768)); diagnostic=self.diag_join(diagnostic,cur.diag);break 'factored cur; } self.display_failures(entry.consumed.max(entry.matched),&["':'", "'['", "']'"]); @@ -12216,856 +12716,856 @@ let _=entry;self.restore(mark);out.ok=false;out.diag=diagnostic;out if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} self.restore(mark);break 'choice child; } -self.restore(mark);let mut child=self.e686_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=self.e714_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=self.e695_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=self.e723_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=self.e702_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=self.e730_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=self.e710_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=self.e738_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=self.e716_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=self.e744_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=self.e724_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=self.e752_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=self.e730_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=self.e758_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=self.e737_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=self.e765_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} self.restore(mark);break 'choice if let Some((mut child,effects))=best {self.replay_effects(effects);child.diag=diagnostic;child} else {out.ok=false;out.diag=diagnostic;out}; }; out } -fn e686_c(&mut self,state:State)->Step { -let mut out=self.b686_c(state); +fn e714_c(&mut self,state:State)->Step { +let mut out=self.b714_c(state); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:false,text:false}); } else {self.display_failures(state.consumed.max(state.matched),&["':'", "'['", "']'"]);} out } -fn b686_c(&mut self,mut state:State)->Step { +fn b714_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e687_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e715_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e688_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e716_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e689_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e717_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e690_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e718_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e691_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e719_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e692_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e720_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e693_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e721_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e694_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e722_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e687_c(&mut self,state:State)->Step { -let mut out=self.b687_c(state); +fn e715_c(&mut self,state:State)->Step { +let mut out=self.b715_c(state); if out.ok { -out.events=self.event(Event::Capture {site:131,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:141,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b687_c(&mut self,mut state:State)->Step { +fn b715_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r82_c(out.state); out } -fn e688_c(&mut self,state:State)->Step { -let mut out=self.b688_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e716_c(&mut self,state:State)->Step { +let mut out=self.b716_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,688,86); +out.events=self.relabel_token(out.events,716,86); } else {self.display_failures(state.consumed.max(state.matched),&["'['"]);} out } -fn b688_c(&mut self,mut state:State)->Step { +fn b716_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"[",true,43,false,"["); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'['");} out } -fn e689_c(&mut self,state:State)->Step { -let mut out=self.b689_c(state); +fn e717_c(&mut self,state:State)->Step { +let mut out=self.b717_c(state); if out.ok { -out.events=self.event(Event::Capture {site:132,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:142,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b689_c(&mut self,mut state:State)->Step { +fn b717_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r83_c(out.state); out } -fn e690_c(&mut self,state:State)->Step { -let mut out=self.b690_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e718_c(&mut self,state:State)->Step { +let mut out=self.b718_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,690,86); +out.events=self.relabel_token(out.events,718,86); } else {self.display_failures(state.consumed.max(state.matched),&["':'"]);} out } -fn b690_c(&mut self,mut state:State)->Step { +fn b718_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,":",true,21,false,":"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"':'");} out } -fn e691_c(&mut self,state:State)->Step { -let mut out=self.b691_c(state); +fn e719_c(&mut self,state:State)->Step { +let mut out=self.b719_c(state); if out.ok { -out.events=self.event(Event::Capture {site:133,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:143,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b691_c(&mut self,mut state:State)->Step { +fn b719_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r84_c(out.state); out } -fn e692_c(&mut self,state:State)->Step { -let mut out=self.b692_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e720_c(&mut self,state:State)->Step { +let mut out=self.b720_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,692,86); +out.events=self.relabel_token(out.events,720,86); } else {self.display_failures(state.consumed.max(state.matched),&["':'"]);} out } -fn b692_c(&mut self,mut state:State)->Step { +fn b720_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,":",true,21,false,":"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"':'");} out } -fn e693_c(&mut self,state:State)->Step { -let mut out=self.b693_c(state); +fn e721_c(&mut self,state:State)->Step { +let mut out=self.b721_c(state); if out.ok { -out.events=self.event(Event::Capture {site:134,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:144,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b693_c(&mut self,mut state:State)->Step { +fn b721_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r85_c(out.state); out } -fn e694_c(&mut self,state:State)->Step { -let mut out=self.b694_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e722_c(&mut self,state:State)->Step { +let mut out=self.b722_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,694,86); +out.events=self.relabel_token(out.events,722,86); } else {self.display_failures(state.consumed.max(state.matched),&["']'"]);} out } -fn b694_c(&mut self,mut state:State)->Step { +fn b722_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"]",true,44,false,"]"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"']'");} out } -fn e695_c(&mut self,state:State)->Step { -let mut out=self.b695_c(state); +fn e723_c(&mut self,state:State)->Step { +let mut out=self.b723_c(state); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:false,text:false}); } else {self.display_failures(state.consumed.max(state.matched),&["':'", "'['", "']'"]);} out } -fn b695_c(&mut self,mut state:State)->Step { +fn b723_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e696_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e724_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e697_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e725_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e698_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e726_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e699_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e727_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e700_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e728_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e701_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e729_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e696_c(&mut self,state:State)->Step { -let mut out=self.b696_c(state); +fn e724_c(&mut self,state:State)->Step { +let mut out=self.b724_c(state); if out.ok { -out.events=self.event(Event::Capture {site:135,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:145,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b696_c(&mut self,mut state:State)->Step { +fn b724_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r82_c(out.state); out } -fn e697_c(&mut self,state:State)->Step { -let mut out=self.b697_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e725_c(&mut self,state:State)->Step { +let mut out=self.b725_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,697,86); +out.events=self.relabel_token(out.events,725,86); } else {self.display_failures(state.consumed.max(state.matched),&["'['"]);} out } -fn b697_c(&mut self,mut state:State)->Step { +fn b725_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"[",true,43,false,"["); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'['");} out } -fn e698_c(&mut self,state:State)->Step { -let mut out=self.b698_c(state); +fn e726_c(&mut self,state:State)->Step { +let mut out=self.b726_c(state); if out.ok { -out.events=self.event(Event::Capture {site:136,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:146,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b698_c(&mut self,mut state:State)->Step { +fn b726_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r83_c(out.state); out } -fn e699_c(&mut self,state:State)->Step { -let mut out=self.b699_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e727_c(&mut self,state:State)->Step { +let mut out=self.b727_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,699,86); +out.events=self.relabel_token(out.events,727,86); } else {self.display_failures(state.consumed.max(state.matched),&["':'"]);} out } -fn b699_c(&mut self,mut state:State)->Step { +fn b727_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,":",true,21,false,":"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"':'");} out } -fn e700_c(&mut self,state:State)->Step { -let mut out=self.b700_c(state); +fn e728_c(&mut self,state:State)->Step { +let mut out=self.b728_c(state); if out.ok { -out.events=self.event(Event::Capture {site:137,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:147,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b700_c(&mut self,mut state:State)->Step { +fn b728_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r84_c(out.state); out } -fn e701_c(&mut self,state:State)->Step { -let mut out=self.b701_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e729_c(&mut self,state:State)->Step { +let mut out=self.b729_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,701,86); +out.events=self.relabel_token(out.events,729,86); } else {self.display_failures(state.consumed.max(state.matched),&["']'"]);} out } -fn b701_c(&mut self,mut state:State)->Step { +fn b729_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"]",true,44,false,"]"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"']'");} out } -fn e702_c(&mut self,state:State)->Step { -let mut out=self.b702_c(state); +fn e730_c(&mut self,state:State)->Step { +let mut out=self.b730_c(state); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:false,text:false}); } else {self.display_failures(state.consumed.max(state.matched),&["':'", "'['", "']'"]);} out } -fn b702_c(&mut self,mut state:State)->Step { +fn b730_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e703_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e731_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e704_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e732_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e705_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e733_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e706_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e734_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e707_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e735_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e708_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e736_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e709_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e737_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e703_c(&mut self,state:State)->Step { -let mut out=self.b703_c(state); +fn e731_c(&mut self,state:State)->Step { +let mut out=self.b731_c(state); if out.ok { -out.events=self.event(Event::Capture {site:138,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:148,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b703_c(&mut self,mut state:State)->Step { +fn b731_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r82_c(out.state); out } -fn e704_c(&mut self,state:State)->Step { -let mut out=self.b704_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e732_c(&mut self,state:State)->Step { +let mut out=self.b732_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,704,86); +out.events=self.relabel_token(out.events,732,86); } else {self.display_failures(state.consumed.max(state.matched),&["'['"]);} out } -fn b704_c(&mut self,mut state:State)->Step { +fn b732_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"[",true,43,false,"["); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'['");} out } -fn e705_c(&mut self,state:State)->Step { -let mut out=self.b705_c(state); +fn e733_c(&mut self,state:State)->Step { +let mut out=self.b733_c(state); if out.ok { -out.events=self.event(Event::Capture {site:139,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:149,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b705_c(&mut self,mut state:State)->Step { +fn b733_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r83_c(out.state); out } -fn e706_c(&mut self,state:State)->Step { -let mut out=self.b706_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e734_c(&mut self,state:State)->Step { +let mut out=self.b734_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,706,86); +out.events=self.relabel_token(out.events,734,86); } else {self.display_failures(state.consumed.max(state.matched),&["':'"]);} out } -fn b706_c(&mut self,mut state:State)->Step { +fn b734_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,":",true,21,false,":"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"':'");} out } -fn e707_c(&mut self,state:State)->Step { -let mut out=self.b707_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e735_c(&mut self,state:State)->Step { +let mut out=self.b735_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,707,86); +out.events=self.relabel_token(out.events,735,86); } else {self.display_failures(state.consumed.max(state.matched),&["':'"]);} out } -fn b707_c(&mut self,mut state:State)->Step { +fn b735_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,":",true,21,false,":"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"':'");} out } -fn e708_c(&mut self,state:State)->Step { -let mut out=self.b708_c(state); +fn e736_c(&mut self,state:State)->Step { +let mut out=self.b736_c(state); if out.ok { -out.events=self.event(Event::Capture {site:140,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:150,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b708_c(&mut self,mut state:State)->Step { +fn b736_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r85_c(out.state); out } -fn e709_c(&mut self,state:State)->Step { -let mut out=self.b709_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e737_c(&mut self,state:State)->Step { +let mut out=self.b737_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,709,86); +out.events=self.relabel_token(out.events,737,86); } else {self.display_failures(state.consumed.max(state.matched),&["']'"]);} out } -fn b709_c(&mut self,mut state:State)->Step { +fn b737_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"]",true,44,false,"]"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"']'");} out } -fn e710_c(&mut self,state:State)->Step { -let mut out=self.b710_c(state); +fn e738_c(&mut self,state:State)->Step { +let mut out=self.b738_c(state); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:false,text:false}); } else {self.display_failures(state.consumed.max(state.matched),&["':'", "'['", "']'"]);} out } -fn b710_c(&mut self,mut state:State)->Step { +fn b738_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e711_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e739_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e712_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e740_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e713_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e741_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e714_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e742_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e715_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e743_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e711_c(&mut self,state:State)->Step { -let mut out=self.b711_c(state); +fn e739_c(&mut self,state:State)->Step { +let mut out=self.b739_c(state); if out.ok { -out.events=self.event(Event::Capture {site:141,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:151,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b711_c(&mut self,mut state:State)->Step { +fn b739_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r82_c(out.state); out } -fn e712_c(&mut self,state:State)->Step { -let mut out=self.b712_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e740_c(&mut self,state:State)->Step { +let mut out=self.b740_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,712,86); +out.events=self.relabel_token(out.events,740,86); } else {self.display_failures(state.consumed.max(state.matched),&["'['"]);} out } -fn b712_c(&mut self,mut state:State)->Step { +fn b740_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"[",true,43,false,"["); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'['");} out } -fn e713_c(&mut self,state:State)->Step { -let mut out=self.b713_c(state); +fn e741_c(&mut self,state:State)->Step { +let mut out=self.b741_c(state); if out.ok { -out.events=self.event(Event::Capture {site:142,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:152,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b713_c(&mut self,mut state:State)->Step { +fn b741_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r83_c(out.state); out } -fn e714_c(&mut self,state:State)->Step { -let mut out=self.b714_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e742_c(&mut self,state:State)->Step { +let mut out=self.b742_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,714,86); +out.events=self.relabel_token(out.events,742,86); } else {self.display_failures(state.consumed.max(state.matched),&["':'"]);} out } -fn b714_c(&mut self,mut state:State)->Step { +fn b742_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,":",true,21,false,":"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"':'");} out } -fn e715_c(&mut self,state:State)->Step { -let mut out=self.b715_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e743_c(&mut self,state:State)->Step { +let mut out=self.b743_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,715,86); +out.events=self.relabel_token(out.events,743,86); } else {self.display_failures(state.consumed.max(state.matched),&["']'"]);} out } -fn b715_c(&mut self,mut state:State)->Step { +fn b743_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"]",true,44,false,"]"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"']'");} out } -fn e716_c(&mut self,state:State)->Step { -let mut out=self.b716_c(state); +fn e744_c(&mut self,state:State)->Step { +let mut out=self.b744_c(state); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:false,text:false}); } else {self.display_failures(state.consumed.max(state.matched),&["':'", "'['", "']'"]);} out } -fn b716_c(&mut self,mut state:State)->Step { +fn b744_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e717_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e745_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e718_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e746_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e719_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e747_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e720_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e748_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e721_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e749_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e722_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e750_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e723_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e751_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e717_c(&mut self,state:State)->Step { -let mut out=self.b717_c(state); +fn e745_c(&mut self,state:State)->Step { +let mut out=self.b745_c(state); if out.ok { -out.events=self.event(Event::Capture {site:143,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:153,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b717_c(&mut self,mut state:State)->Step { +fn b745_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r82_c(out.state); out } -fn e718_c(&mut self,state:State)->Step { -let mut out=self.b718_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e746_c(&mut self,state:State)->Step { +let mut out=self.b746_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,718,86); +out.events=self.relabel_token(out.events,746,86); } else {self.display_failures(state.consumed.max(state.matched),&["'['"]);} out } -fn b718_c(&mut self,mut state:State)->Step { +fn b746_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"[",true,43,false,"["); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'['");} out } -fn e719_c(&mut self,state:State)->Step { -let mut out=self.b719_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e747_c(&mut self,state:State)->Step { +let mut out=self.b747_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,719,86); +out.events=self.relabel_token(out.events,747,86); } else {self.display_failures(state.consumed.max(state.matched),&["':'"]);} out } -fn b719_c(&mut self,mut state:State)->Step { +fn b747_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,":",true,21,false,":"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"':'");} out } -fn e720_c(&mut self,state:State)->Step { -let mut out=self.b720_c(state); +fn e748_c(&mut self,state:State)->Step { +let mut out=self.b748_c(state); if out.ok { -out.events=self.event(Event::Capture {site:144,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:154,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b720_c(&mut self,mut state:State)->Step { +fn b748_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r84_c(out.state); out } -fn e721_c(&mut self,state:State)->Step { -let mut out=self.b721_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e749_c(&mut self,state:State)->Step { +let mut out=self.b749_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,721,86); +out.events=self.relabel_token(out.events,749,86); } else {self.display_failures(state.consumed.max(state.matched),&["':'"]);} out } -fn b721_c(&mut self,mut state:State)->Step { +fn b749_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,":",true,21,false,":"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"':'");} out } -fn e722_c(&mut self,state:State)->Step { -let mut out=self.b722_c(state); +fn e750_c(&mut self,state:State)->Step { +let mut out=self.b750_c(state); if out.ok { -out.events=self.event(Event::Capture {site:145,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:155,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b722_c(&mut self,mut state:State)->Step { +fn b750_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r85_c(out.state); out } -fn e723_c(&mut self,state:State)->Step { -let mut out=self.b723_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e751_c(&mut self,state:State)->Step { +let mut out=self.b751_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,723,86); +out.events=self.relabel_token(out.events,751,86); } else {self.display_failures(state.consumed.max(state.matched),&["']'"]);} out } -fn b723_c(&mut self,mut state:State)->Step { +fn b751_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"]",true,44,false,"]"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"']'");} out } -fn e724_c(&mut self,state:State)->Step { -let mut out=self.b724_c(state); +fn e752_c(&mut self,state:State)->Step { +let mut out=self.b752_c(state); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:false,text:false}); } else {self.display_failures(state.consumed.max(state.matched),&["':'", "'['", "']'"]);} out } -fn b724_c(&mut self,mut state:State)->Step { +fn b752_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e725_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e753_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e726_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e754_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e727_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e755_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e728_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e756_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e729_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e757_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e725_c(&mut self,state:State)->Step { -let mut out=self.b725_c(state); +fn e753_c(&mut self,state:State)->Step { +let mut out=self.b753_c(state); if out.ok { -out.events=self.event(Event::Capture {site:146,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:156,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b725_c(&mut self,mut state:State)->Step { +fn b753_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r82_c(out.state); out } -fn e726_c(&mut self,state:State)->Step { -let mut out=self.b726_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e754_c(&mut self,state:State)->Step { +let mut out=self.b754_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,726,86); +out.events=self.relabel_token(out.events,754,86); } else {self.display_failures(state.consumed.max(state.matched),&["'['"]);} out } -fn b726_c(&mut self,mut state:State)->Step { +fn b754_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"[",true,43,false,"["); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'['");} out } -fn e727_c(&mut self,state:State)->Step { -let mut out=self.b727_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e755_c(&mut self,state:State)->Step { +let mut out=self.b755_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,727,86); +out.events=self.relabel_token(out.events,755,86); } else {self.display_failures(state.consumed.max(state.matched),&["':'"]);} out } -fn b727_c(&mut self,mut state:State)->Step { +fn b755_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,":",true,21,false,":"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"':'");} out } -fn e728_c(&mut self,state:State)->Step { -let mut out=self.b728_c(state); +fn e756_c(&mut self,state:State)->Step { +let mut out=self.b756_c(state); if out.ok { -out.events=self.event(Event::Capture {site:147,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:157,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b728_c(&mut self,mut state:State)->Step { +fn b756_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r84_c(out.state); out } -fn e729_c(&mut self,state:State)->Step { -let mut out=self.b729_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e757_c(&mut self,state:State)->Step { +let mut out=self.b757_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,729,86); +out.events=self.relabel_token(out.events,757,86); } else {self.display_failures(state.consumed.max(state.matched),&["']'"]);} out } -fn b729_c(&mut self,mut state:State)->Step { +fn b757_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"]",true,44,false,"]"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"']'");} out } -fn e730_c(&mut self,state:State)->Step { -let mut out=self.b730_c(state); +fn e758_c(&mut self,state:State)->Step { +let mut out=self.b758_c(state); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:false,text:false}); } else {self.display_failures(state.consumed.max(state.matched),&["':'", "'['", "']'"]);} out } -fn b730_c(&mut self,mut state:State)->Step { +fn b758_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e731_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e759_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e732_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e760_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e733_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e761_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e734_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e762_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e735_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e763_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e736_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e764_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e731_c(&mut self,state:State)->Step { -let mut out=self.b731_c(state); +fn e759_c(&mut self,state:State)->Step { +let mut out=self.b759_c(state); if out.ok { -out.events=self.event(Event::Capture {site:148,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:158,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b731_c(&mut self,mut state:State)->Step { +fn b759_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r82_c(out.state); out } -fn e732_c(&mut self,state:State)->Step { -let mut out=self.b732_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e760_c(&mut self,state:State)->Step { +let mut out=self.b760_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,732,86); +out.events=self.relabel_token(out.events,760,86); } else {self.display_failures(state.consumed.max(state.matched),&["'['"]);} out } -fn b732_c(&mut self,mut state:State)->Step { +fn b760_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"[",true,43,false,"["); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'['");} out } -fn e733_c(&mut self,state:State)->Step { -let mut out=self.b733_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e761_c(&mut self,state:State)->Step { +let mut out=self.b761_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,733,86); +out.events=self.relabel_token(out.events,761,86); } else {self.display_failures(state.consumed.max(state.matched),&["':'"]);} out } -fn b733_c(&mut self,mut state:State)->Step { +fn b761_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,":",true,21,false,":"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"':'");} out } -fn e734_c(&mut self,state:State)->Step { -let mut out=self.b734_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e762_c(&mut self,state:State)->Step { +let mut out=self.b762_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,734,86); +out.events=self.relabel_token(out.events,762,86); } else {self.display_failures(state.consumed.max(state.matched),&["':'"]);} out } -fn b734_c(&mut self,mut state:State)->Step { +fn b762_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,":",true,21,false,":"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"':'");} out } -fn e735_c(&mut self,state:State)->Step { -let mut out=self.b735_c(state); +fn e763_c(&mut self,state:State)->Step { +let mut out=self.b763_c(state); if out.ok { -out.events=self.event(Event::Capture {site:149,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:159,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b735_c(&mut self,mut state:State)->Step { +fn b763_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r85_c(out.state); out } -fn e736_c(&mut self,state:State)->Step { -let mut out=self.b736_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e764_c(&mut self,state:State)->Step { +let mut out=self.b764_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,736,86); +out.events=self.relabel_token(out.events,764,86); } else {self.display_failures(state.consumed.max(state.matched),&["']'"]);} out } -fn b736_c(&mut self,mut state:State)->Step { +fn b764_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"]",true,44,false,"]"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"']'");} out } -fn e737_c(&mut self,state:State)->Step { -let mut out=self.b737_c(state); +fn e765_c(&mut self,state:State)->Step { +let mut out=self.b765_c(state); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:true,text:false}); } else {self.display_failures(state.consumed.max(state.matched),&["':'", "'['", "']'"]);} out } -fn b737_c(&mut self,mut state:State)->Step { +fn b765_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e738_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e766_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e739_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e767_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e740_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e768_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e741_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e769_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e738_c(&mut self,state:State)->Step { -let mut out=self.b738_c(state); +fn e766_c(&mut self,state:State)->Step { +let mut out=self.b766_c(state); if out.ok { -out.events=self.event(Event::Capture {site:150,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:160,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b738_c(&mut self,mut state:State)->Step { +fn b766_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r82_c(out.state); out } -fn e739_c(&mut self,state:State)->Step { -let mut out=self.b739_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e767_c(&mut self,state:State)->Step { +let mut out=self.b767_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,739,86); +out.events=self.relabel_token(out.events,767,86); } else {self.display_failures(state.consumed.max(state.matched),&["'['"]);} out } -fn b739_c(&mut self,mut state:State)->Step { +fn b767_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"[",true,43,false,"["); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'['");} out } -fn e740_c(&mut self,state:State)->Step { -let mut out=self.b740_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e768_c(&mut self,state:State)->Step { +let mut out=self.b768_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,740,86); +out.events=self.relabel_token(out.events,768,86); } else {self.display_failures(state.consumed.max(state.matched),&["':'"]);} out } -fn b740_c(&mut self,mut state:State)->Step { +fn b768_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,":",true,21,false,":"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"':'");} out } -fn e741_c(&mut self,state:State)->Step { -let mut out=self.b741_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e769_c(&mut self,state:State)->Step { +let mut out=self.b769_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,741,86); +out.events=self.relabel_token(out.events,769,86); } else {self.display_failures(state.consumed.max(state.matched),&["']'"]);} out } -fn b741_c(&mut self,mut state:State)->Step { +fn b769_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"]",true,44,false,"]"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"']'");} out } -fn e742_c(&mut self,state:State)->Step { +fn e770_c(&mut self,state:State)->Step { let mark=self.mark(); -let key=Key {expression:742,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} -self.display_enter(state.consumed.max(state.matched));let mut out=self.b742_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +let key=Key {expression:770,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} +self.display_enter(state.consumed.max(state.matched));let mut out=self.b770_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { } else {self.restore(mark);self.display_failures(state.consumed.max(state.matched),&[]);} if (out.ok && true) || (!out.ok && true) {self.store(key,out,mark);}self.display_leave(); out } -fn b742_c(&mut self,mut state:State)->Step { +fn b770_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out='choice: {let mark=self.mark();let mut diagnostic=Diag::NONE;let mut best:Option<(Step,[usize;2])>=None; if self.options.factor && !out.state.invert { @@ -13077,7 +13577,7 @@ st.reset=false; let mut cur=Step::yes(st); cur.state=st.begin(); let trivia=self.trivia_1::(cur.state);cur=self.combine(cur,trivia); -let p0=cur.state;let child=self.e744_c(cur.state);let ev0=child.events;let _=(p0,ev0);cur=self.combine(cur,child); +let p0=cur.state;let child=self.e772_c(cur.state);let ev0=child.events;let _=(p0,ev0);cur=self.combine(cur,child); if !cur.ok { self.display_failures(entry.consumed.max(entry.matched),&["':'", "'['", "']'"]); self.display_failures(p0.consumed.max(p0.matched),&["__CaptureSite"]); @@ -13085,7 +13585,7 @@ diagnostic=self.diag_join(diagnostic,cur.diag); } else { let trivia=self.trivia_1::(cur.state);cur=self.combine(cur,trivia); let p4=cur.state; -let child=self.e745_c(cur.state);let ev3=child.events;let _=(p4,ev3);cur=self.combine(cur,child); +let child=self.e773_c(cur.state);let ev3=child.events;let _=(p4,ev3);cur=self.combine(cur,child); if !cur.ok { self.display_failures(entry.consumed.max(entry.matched),&["':'", "'['", "']'"]); self.display_failures(p4.consumed.max(p4.matched),&["'['"]); @@ -13094,7 +13594,7 @@ diagnostic=self.diag_join(diagnostic,cur.diag); let trivia=self.trivia_1::(cur.state);cur=self.combine(cur,trivia); let m5=self.mark();let b6=cur; let p8=cur.state; -let child=self.e746_c(cur.state);let ev7=child.events;let _=(p8,ev7);cur=self.combine(cur,child); +let child=self.e774_c(cur.state);let ev7=child.events;let _=(p8,ev7);cur=self.combine(cur,child); if !cur.ok { self.display_failures(entry.consumed.max(entry.matched),&["':'", "'['", "']'"]); self.display_failures(p8.consumed.max(p8.matched),&["__CaptureSite"]); @@ -13102,7 +13602,7 @@ diagnostic=self.diag_join(diagnostic,cur.diag); } else { let trivia=self.trivia_1::(cur.state);cur=self.combine(cur,trivia); let p12=cur.state; -let child=self.e747_c(cur.state);let ev11=child.events;let _=(p12,ev11);cur=self.combine(cur,child); +let child=self.e775_c(cur.state);let ev11=child.events;let _=(p12,ev11);cur=self.combine(cur,child); if !cur.ok { self.display_failures(entry.consumed.max(entry.matched),&["':'", "'['", "']'"]); self.display_failures(p12.consumed.max(p12.matched),&["':'"]); @@ -13111,7 +13611,7 @@ diagnostic=self.diag_join(diagnostic,cur.diag); let trivia=self.trivia_1::(cur.state);cur=self.combine(cur,trivia); let m13=self.mark();let b14=cur; let p16=cur.state; -let child=self.e748_c(cur.state);let ev15=child.events;let _=(p16,ev15);cur=self.combine(cur,child); +let child=self.e776_c(cur.state);let ev15=child.events;let _=(p16,ev15);cur=self.combine(cur,child); if !cur.ok { self.display_failures(entry.consumed.max(entry.matched),&["':'", "'['", "']'"]); self.display_failures(p16.consumed.max(p16.matched),&["__CaptureSite"]); @@ -13120,11 +13620,11 @@ diagnostic=self.diag_join(diagnostic,cur.diag); let trivia=self.trivia_1::(cur.state);cur=self.combine(cur,trivia); let m17=self.mark();let b18=cur; 'f19: { -let child=self.e749_c(cur.state);cur=self.combine(cur,child);if !cur.ok {break 'f19;} +let child=self.e777_c(cur.state);cur=self.combine(cur,child);if !cur.ok {break 'f19;} let trivia=self.trivia_1::(cur.state);cur=self.combine(cur,trivia); -let child=self.e750_c(cur.state);cur=self.combine(cur,child);if !cur.ok {break 'f19;} +let child=self.e778_c(cur.state);cur=self.combine(cur,child);if !cur.ok {break 'f19;} let trivia=self.trivia_1::(cur.state);cur=self.combine(cur,trivia); -let child=self.e751_c(cur.state);cur=self.combine(cur,child);if !cur.ok {break 'f19;} +let child=self.e779_c(cur.state);cur=self.combine(cur,child);if !cur.ok {break 'f19;} let trivia=self.trivia_1::(cur.state);cur=self.combine(cur,trivia); cur.state=st.commit(cur.state); cur.events=self.event(Event::Values{span:[entry.consumed,cur.state.consumed],child:cur.events,wrap:false,text:false}); @@ -13134,15 +13634,15 @@ self.display_failures(entry.consumed.max(entry.matched),&["':'", "'['", "']'"]); diagnostic=self.diag_join(diagnostic,cur.diag); self.restore(m17);cur=b18; 'f20: { -let child=self.e758_c(cur.state);cur=self.combine(cur,child);if !cur.ok {break 'f20;} +let child=self.e786_c(cur.state);cur=self.combine(cur,child);if !cur.ok {break 'f20;} let trivia=self.trivia_1::(cur.state);cur=self.combine(cur,trivia); cur.state=st.commit(cur.state); cur.events=self.event(Event::Values{span:[entry.consumed,cur.state.consumed],child:cur.events,wrap:false,text:false}); -self.retag(ev0,Some(155),None); -self.retag(ev3,None,Some(754)); -self.retag(ev7,Some(156),None); -self.retag(ev11,None,Some(756)); -self.retag(ev15,Some(157),None); +self.retag(ev0,Some(165),None); +self.retag(ev3,None,Some(782)); +self.retag(ev7,Some(166),None); +self.retag(ev11,None,Some(784)); +self.retag(ev15,Some(167),None); diagnostic=self.diag_join(diagnostic,cur.diag);break 'factored cur; } self.display_failures(entry.consumed.max(entry.matched),&["':'", "'['", "']'"]); @@ -13150,32 +13650,32 @@ diagnostic=self.diag_join(diagnostic,cur.diag); } self.restore(m13);cur=b14; 'f21: { -let child=self.e764_c(cur.state);cur=self.combine(cur,child);if !cur.ok {break 'f21;} +let child=self.e792_c(cur.state);cur=self.combine(cur,child);if !cur.ok {break 'f21;} let trivia=self.trivia_1::(cur.state);cur=self.combine(cur,trivia); -let child=self.e765_c(cur.state);cur=self.combine(cur,child);if !cur.ok {break 'f21;} +let child=self.e793_c(cur.state);cur=self.combine(cur,child);if !cur.ok {break 'f21;} let trivia=self.trivia_1::(cur.state);cur=self.combine(cur,trivia); -let child=self.e766_c(cur.state);cur=self.combine(cur,child);if !cur.ok {break 'f21;} +let child=self.e794_c(cur.state);cur=self.combine(cur,child);if !cur.ok {break 'f21;} let trivia=self.trivia_1::(cur.state);cur=self.combine(cur,trivia); cur.state=st.commit(cur.state); cur.events=self.event(Event::Values{span:[entry.consumed,cur.state.consumed],child:cur.events,wrap:false,text:false}); -self.retag(ev0,Some(158),None); -self.retag(ev3,None,Some(761)); -self.retag(ev7,Some(159),None); -self.retag(ev11,None,Some(763)); +self.retag(ev0,Some(168),None); +self.retag(ev3,None,Some(789)); +self.retag(ev7,Some(169),None); +self.retag(ev11,None,Some(791)); diagnostic=self.diag_join(diagnostic,cur.diag);break 'factored cur; } self.display_failures(entry.consumed.max(entry.matched),&["':'", "'['", "']'"]); diagnostic=self.diag_join(diagnostic,cur.diag); self.restore(m13);cur=b14; 'f22: { -let child=self.e772_c(cur.state);cur=self.combine(cur,child);if !cur.ok {break 'f22;} +let child=self.e800_c(cur.state);cur=self.combine(cur,child);if !cur.ok {break 'f22;} let trivia=self.trivia_1::(cur.state);cur=self.combine(cur,trivia); cur.state=st.commit(cur.state); cur.events=self.event(Event::Values{span:[entry.consumed,cur.state.consumed],child:cur.events,wrap:false,text:false}); -self.retag(ev0,Some(161),None); -self.retag(ev3,None,Some(769)); -self.retag(ev7,Some(162),None); -self.retag(ev11,None,Some(771)); +self.retag(ev0,Some(171),None); +self.retag(ev3,None,Some(797)); +self.retag(ev7,Some(172),None); +self.retag(ev11,None,Some(799)); diagnostic=self.diag_join(diagnostic,cur.diag);break 'factored cur; } self.display_failures(entry.consumed.max(entry.matched),&["':'", "'['", "']'"]); @@ -13184,7 +13684,7 @@ diagnostic=self.diag_join(diagnostic,cur.diag); } self.restore(m5);cur=b6; let p24=cur.state; -let child=self.e776_c(cur.state);let ev23=child.events;let _=(p24,ev23);cur=self.combine(cur,child); +let child=self.e804_c(cur.state);let ev23=child.events;let _=(p24,ev23);cur=self.combine(cur,child); if !cur.ok { self.display_failures(entry.consumed.max(entry.matched),&["':'", "'['", "']'"]); self.display_failures(p24.consumed.max(p24.matched),&["':'"]); @@ -13193,7 +13693,7 @@ diagnostic=self.diag_join(diagnostic,cur.diag); let trivia=self.trivia_1::(cur.state);cur=self.combine(cur,trivia); let m25=self.mark();let b26=cur; let p28=cur.state; -let child=self.e777_c(cur.state);let ev27=child.events;let _=(p28,ev27);cur=self.combine(cur,child); +let child=self.e805_c(cur.state);let ev27=child.events;let _=(p28,ev27);cur=self.combine(cur,child); if !cur.ok { self.display_failures(entry.consumed.max(entry.matched),&["':'", "'['", "']'"]); self.display_failures(p28.consumed.max(p28.matched),&["__CaptureSite"]); @@ -13202,30 +13702,30 @@ diagnostic=self.diag_join(diagnostic,cur.diag); let trivia=self.trivia_1::(cur.state);cur=self.combine(cur,trivia); let m29=self.mark();let b30=cur; 'f31: { -let child=self.e778_c(cur.state);cur=self.combine(cur,child);if !cur.ok {break 'f31;} +let child=self.e806_c(cur.state);cur=self.combine(cur,child);if !cur.ok {break 'f31;} let trivia=self.trivia_1::(cur.state);cur=self.combine(cur,trivia); -let child=self.e779_c(cur.state);cur=self.combine(cur,child);if !cur.ok {break 'f31;} +let child=self.e807_c(cur.state);cur=self.combine(cur,child);if !cur.ok {break 'f31;} let trivia=self.trivia_1::(cur.state);cur=self.combine(cur,trivia); -let child=self.e780_c(cur.state);cur=self.combine(cur,child);if !cur.ok {break 'f31;} +let child=self.e808_c(cur.state);cur=self.combine(cur,child);if !cur.ok {break 'f31;} let trivia=self.trivia_1::(cur.state);cur=self.combine(cur,trivia); cur.state=st.commit(cur.state); cur.events=self.event(Event::Values{span:[entry.consumed,cur.state.consumed],child:cur.events,wrap:false,text:false}); -self.retag(ev0,Some(163),None); -self.retag(ev3,None,Some(775)); +self.retag(ev0,Some(173),None); +self.retag(ev3,None,Some(803)); diagnostic=self.diag_join(diagnostic,cur.diag);break 'factored cur; } self.display_failures(entry.consumed.max(entry.matched),&["':'", "'['", "']'"]); diagnostic=self.diag_join(diagnostic,cur.diag); self.restore(m29);cur=b30; 'f32: { -let child=self.e786_c(cur.state);cur=self.combine(cur,child);if !cur.ok {break 'f32;} +let child=self.e814_c(cur.state);cur=self.combine(cur,child);if !cur.ok {break 'f32;} let trivia=self.trivia_1::(cur.state);cur=self.combine(cur,trivia); cur.state=st.commit(cur.state); cur.events=self.event(Event::Values{span:[entry.consumed,cur.state.consumed],child:cur.events,wrap:false,text:false}); -self.retag(ev0,Some(166),None); -self.retag(ev3,None,Some(783)); -self.retag(ev23,None,Some(784)); -self.retag(ev27,Some(167),None); +self.retag(ev0,Some(176),None); +self.retag(ev3,None,Some(811)); +self.retag(ev23,None,Some(812)); +self.retag(ev27,Some(177),None); diagnostic=self.diag_join(diagnostic,cur.diag);break 'factored cur; } self.display_failures(entry.consumed.max(entry.matched),&["':'", "'['", "']'"]); @@ -13233,30 +13733,30 @@ diagnostic=self.diag_join(diagnostic,cur.diag); } self.restore(m25);cur=b26; 'f33: { -let child=self.e791_c(cur.state);cur=self.combine(cur,child);if !cur.ok {break 'f33;} +let child=self.e819_c(cur.state);cur=self.combine(cur,child);if !cur.ok {break 'f33;} let trivia=self.trivia_1::(cur.state);cur=self.combine(cur,trivia); -let child=self.e792_c(cur.state);cur=self.combine(cur,child);if !cur.ok {break 'f33;} +let child=self.e820_c(cur.state);cur=self.combine(cur,child);if !cur.ok {break 'f33;} let trivia=self.trivia_1::(cur.state);cur=self.combine(cur,trivia); -let child=self.e793_c(cur.state);cur=self.combine(cur,child);if !cur.ok {break 'f33;} +let child=self.e821_c(cur.state);cur=self.combine(cur,child);if !cur.ok {break 'f33;} let trivia=self.trivia_1::(cur.state);cur=self.combine(cur,trivia); cur.state=st.commit(cur.state); cur.events=self.event(Event::Values{span:[entry.consumed,cur.state.consumed],child:cur.events,wrap:false,text:false}); -self.retag(ev0,Some(168),None); -self.retag(ev3,None,Some(789)); -self.retag(ev23,None,Some(790)); +self.retag(ev0,Some(178),None); +self.retag(ev3,None,Some(817)); +self.retag(ev23,None,Some(818)); diagnostic=self.diag_join(diagnostic,cur.diag);break 'factored cur; } self.display_failures(entry.consumed.max(entry.matched),&["':'", "'['", "']'"]); diagnostic=self.diag_join(diagnostic,cur.diag); self.restore(m25);cur=b26; 'f34: { -let child=self.e798_c(cur.state);cur=self.combine(cur,child);if !cur.ok {break 'f34;} +let child=self.e826_c(cur.state);cur=self.combine(cur,child);if !cur.ok {break 'f34;} let trivia=self.trivia_1::(cur.state);cur=self.combine(cur,trivia); cur.state=st.commit(cur.state); cur.events=self.event(Event::Values{span:[entry.consumed,cur.state.consumed],child:cur.events,wrap:true,text:false}); -self.retag(ev0,Some(170),None); -self.retag(ev3,None,Some(796)); -self.retag(ev23,None,Some(797)); +self.retag(ev0,Some(180),None); +self.retag(ev3,None,Some(824)); +self.retag(ev23,None,Some(825)); diagnostic=self.diag_join(diagnostic,cur.diag);break 'factored cur; } self.display_failures(entry.consumed.max(entry.matched),&["':'", "'['", "']'"]); @@ -13270,934 +13770,934 @@ let _=entry;self.restore(mark);out.ok=false;out.diag=diagnostic;out if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} self.restore(mark);break 'choice child; } -self.restore(mark);let mut child=self.e743_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=self.e771_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=self.e752_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=self.e780_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=self.e759_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=self.e787_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=self.e767_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=self.e795_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=self.e773_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=self.e801_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=self.e781_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=self.e809_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=self.e787_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=self.e815_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=self.e794_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=self.e822_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} self.restore(mark);break 'choice if let Some((mut child,effects))=best {self.replay_effects(effects);child.diag=diagnostic;child} else {out.ok=false;out.diag=diagnostic;out}; }; out } -fn e743_c(&mut self,state:State)->Step { -let mut out=self.b743_c(state); +fn e771_c(&mut self,state:State)->Step { +let mut out=self.b771_c(state); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:false,text:false}); } else {self.display_failures(state.consumed.max(state.matched),&["':'", "'['", "']'"]);} out } -fn b743_c(&mut self,mut state:State)->Step { +fn b771_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e744_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e772_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e745_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e773_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e746_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e774_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e747_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e775_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e748_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e776_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e749_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e777_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e750_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e778_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e751_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e779_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e744_c(&mut self,state:State)->Step { -let mut out=self.b744_c(state); +fn e772_c(&mut self,state:State)->Step { +let mut out=self.b772_c(state); if out.ok { -out.events=self.event(Event::Capture {site:151,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:161,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b744_c(&mut self,mut state:State)->Step { +fn b772_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r86_c(out.state); out } -fn e745_c(&mut self,state:State)->Step { -let mut out=self.b745_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e773_c(&mut self,state:State)->Step { +let mut out=self.b773_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,745,87); +out.events=self.relabel_token(out.events,773,87); } else {self.display_failures(state.consumed.max(state.matched),&["'['"]);} out } -fn b745_c(&mut self,mut state:State)->Step { +fn b773_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"[",true,43,false,"["); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'['");} out } -fn e746_c(&mut self,state:State)->Step { -let mut out=self.b746_c(state); +fn e774_c(&mut self,state:State)->Step { +let mut out=self.b774_c(state); if out.ok { -out.events=self.event(Event::Capture {site:152,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:162,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b746_c(&mut self,mut state:State)->Step { +fn b774_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r83_c(out.state); out } -fn e747_c(&mut self,state:State)->Step { -let mut out=self.b747_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e775_c(&mut self,state:State)->Step { +let mut out=self.b775_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,747,87); +out.events=self.relabel_token(out.events,775,87); } else {self.display_failures(state.consumed.max(state.matched),&["':'"]);} out } -fn b747_c(&mut self,mut state:State)->Step { +fn b775_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,":",true,21,false,":"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"':'");} out } -fn e748_c(&mut self,state:State)->Step { -let mut out=self.b748_c(state); +fn e776_c(&mut self,state:State)->Step { +let mut out=self.b776_c(state); if out.ok { -out.events=self.event(Event::Capture {site:153,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:163,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b748_c(&mut self,mut state:State)->Step { +fn b776_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r84_c(out.state); out } -fn e749_c(&mut self,state:State)->Step { -let mut out=self.b749_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e777_c(&mut self,state:State)->Step { +let mut out=self.b777_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,749,87); +out.events=self.relabel_token(out.events,777,87); } else {self.display_failures(state.consumed.max(state.matched),&["':'"]);} out } -fn b749_c(&mut self,mut state:State)->Step { +fn b777_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,":",true,21,false,":"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"':'");} out } -fn e750_c(&mut self,state:State)->Step { -let mut out=self.b750_c(state); +fn e778_c(&mut self,state:State)->Step { +let mut out=self.b778_c(state); if out.ok { -out.events=self.event(Event::Capture {site:154,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:164,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b750_c(&mut self,mut state:State)->Step { +fn b778_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r85_c(out.state); out } -fn e751_c(&mut self,state:State)->Step { -let mut out=self.b751_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e779_c(&mut self,state:State)->Step { +let mut out=self.b779_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,751,87); +out.events=self.relabel_token(out.events,779,87); } else {self.display_failures(state.consumed.max(state.matched),&["']'"]);} out } -fn b751_c(&mut self,mut state:State)->Step { +fn b779_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"]",true,44,false,"]"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"']'");} out } -fn e752_c(&mut self,state:State)->Step { -let mut out=self.b752_c(state); +fn e780_c(&mut self,state:State)->Step { +let mut out=self.b780_c(state); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:false,text:false}); } else {self.display_failures(state.consumed.max(state.matched),&["':'", "'['", "']'"]);} out } -fn b752_c(&mut self,mut state:State)->Step { +fn b780_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e753_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e781_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e754_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e782_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e755_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e783_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e756_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e784_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e757_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e785_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e758_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e786_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e753_c(&mut self,state:State)->Step { -let mut out=self.b753_c(state); +fn e781_c(&mut self,state:State)->Step { +let mut out=self.b781_c(state); if out.ok { -out.events=self.event(Event::Capture {site:155,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:165,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b753_c(&mut self,mut state:State)->Step { +fn b781_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r86_c(out.state); out } -fn e754_c(&mut self,state:State)->Step { -let mut out=self.b754_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e782_c(&mut self,state:State)->Step { +let mut out=self.b782_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,754,87); +out.events=self.relabel_token(out.events,782,87); } else {self.display_failures(state.consumed.max(state.matched),&["'['"]);} out } -fn b754_c(&mut self,mut state:State)->Step { +fn b782_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"[",true,43,false,"["); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'['");} out } -fn e755_c(&mut self,state:State)->Step { -let mut out=self.b755_c(state); +fn e783_c(&mut self,state:State)->Step { +let mut out=self.b783_c(state); if out.ok { -out.events=self.event(Event::Capture {site:156,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:166,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b755_c(&mut self,mut state:State)->Step { +fn b783_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r83_c(out.state); out } -fn e756_c(&mut self,state:State)->Step { -let mut out=self.b756_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e784_c(&mut self,state:State)->Step { +let mut out=self.b784_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,756,87); +out.events=self.relabel_token(out.events,784,87); } else {self.display_failures(state.consumed.max(state.matched),&["':'"]);} out } -fn b756_c(&mut self,mut state:State)->Step { +fn b784_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,":",true,21,false,":"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"':'");} out } -fn e757_c(&mut self,state:State)->Step { -let mut out=self.b757_c(state); +fn e785_c(&mut self,state:State)->Step { +let mut out=self.b785_c(state); if out.ok { -out.events=self.event(Event::Capture {site:157,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:167,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b757_c(&mut self,mut state:State)->Step { +fn b785_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r84_c(out.state); out } -fn e758_c(&mut self,state:State)->Step { -let mut out=self.b758_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e786_c(&mut self,state:State)->Step { +let mut out=self.b786_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,758,87); +out.events=self.relabel_token(out.events,786,87); } else {self.display_failures(state.consumed.max(state.matched),&["']'"]);} out } -fn b758_c(&mut self,mut state:State)->Step { +fn b786_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"]",true,44,false,"]"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"']'");} out } -fn e759_c(&mut self,state:State)->Step { -let mut out=self.b759_c(state); +fn e787_c(&mut self,state:State)->Step { +let mut out=self.b787_c(state); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:false,text:false}); } else {self.display_failures(state.consumed.max(state.matched),&["':'", "'['", "']'"]);} out } -fn b759_c(&mut self,mut state:State)->Step { +fn b787_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e760_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e788_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e761_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e789_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e762_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e790_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e763_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e791_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e764_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e792_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e765_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e793_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e766_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e794_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e760_c(&mut self,state:State)->Step { -let mut out=self.b760_c(state); +fn e788_c(&mut self,state:State)->Step { +let mut out=self.b788_c(state); if out.ok { -out.events=self.event(Event::Capture {site:158,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:168,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b760_c(&mut self,mut state:State)->Step { +fn b788_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r86_c(out.state); out } -fn e761_c(&mut self,state:State)->Step { -let mut out=self.b761_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e789_c(&mut self,state:State)->Step { +let mut out=self.b789_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,761,87); +out.events=self.relabel_token(out.events,789,87); } else {self.display_failures(state.consumed.max(state.matched),&["'['"]);} out } -fn b761_c(&mut self,mut state:State)->Step { +fn b789_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"[",true,43,false,"["); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'['");} out } -fn e762_c(&mut self,state:State)->Step { -let mut out=self.b762_c(state); +fn e790_c(&mut self,state:State)->Step { +let mut out=self.b790_c(state); if out.ok { -out.events=self.event(Event::Capture {site:159,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:169,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b762_c(&mut self,mut state:State)->Step { +fn b790_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r83_c(out.state); out } -fn e763_c(&mut self,state:State)->Step { -let mut out=self.b763_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e791_c(&mut self,state:State)->Step { +let mut out=self.b791_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,763,87); +out.events=self.relabel_token(out.events,791,87); } else {self.display_failures(state.consumed.max(state.matched),&["':'"]);} out } -fn b763_c(&mut self,mut state:State)->Step { +fn b791_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,":",true,21,false,":"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"':'");} out } -fn e764_c(&mut self,state:State)->Step { -let mut out=self.b764_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e792_c(&mut self,state:State)->Step { +let mut out=self.b792_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,764,87); +out.events=self.relabel_token(out.events,792,87); } else {self.display_failures(state.consumed.max(state.matched),&["':'"]);} out } -fn b764_c(&mut self,mut state:State)->Step { +fn b792_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,":",true,21,false,":"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"':'");} out } -fn e765_c(&mut self,state:State)->Step { -let mut out=self.b765_c(state); +fn e793_c(&mut self,state:State)->Step { +let mut out=self.b793_c(state); if out.ok { -out.events=self.event(Event::Capture {site:160,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:170,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b765_c(&mut self,mut state:State)->Step { +fn b793_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r85_c(out.state); out } -fn e766_c(&mut self,state:State)->Step { -let mut out=self.b766_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e794_c(&mut self,state:State)->Step { +let mut out=self.b794_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,766,87); +out.events=self.relabel_token(out.events,794,87); } else {self.display_failures(state.consumed.max(state.matched),&["']'"]);} out } -fn b766_c(&mut self,mut state:State)->Step { +fn b794_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"]",true,44,false,"]"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"']'");} out } -fn e767_c(&mut self,state:State)->Step { -let mut out=self.b767_c(state); +fn e795_c(&mut self,state:State)->Step { +let mut out=self.b795_c(state); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:false,text:false}); } else {self.display_failures(state.consumed.max(state.matched),&["':'", "'['", "']'"]);} out } -fn b767_c(&mut self,mut state:State)->Step { +fn b795_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e768_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e796_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e769_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e797_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e770_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e798_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e771_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e799_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e772_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e800_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e768_c(&mut self,state:State)->Step { -let mut out=self.b768_c(state); +fn e796_c(&mut self,state:State)->Step { +let mut out=self.b796_c(state); if out.ok { -out.events=self.event(Event::Capture {site:161,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:171,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b768_c(&mut self,mut state:State)->Step { +fn b796_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r86_c(out.state); out } -fn e769_c(&mut self,state:State)->Step { -let mut out=self.b769_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e797_c(&mut self,state:State)->Step { +let mut out=self.b797_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,769,87); +out.events=self.relabel_token(out.events,797,87); } else {self.display_failures(state.consumed.max(state.matched),&["'['"]);} out } -fn b769_c(&mut self,mut state:State)->Step { +fn b797_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"[",true,43,false,"["); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'['");} out } -fn e770_c(&mut self,state:State)->Step { -let mut out=self.b770_c(state); +fn e798_c(&mut self,state:State)->Step { +let mut out=self.b798_c(state); if out.ok { -out.events=self.event(Event::Capture {site:162,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:172,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b770_c(&mut self,mut state:State)->Step { +fn b798_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r83_c(out.state); out } -fn e771_c(&mut self,state:State)->Step { -let mut out=self.b771_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e799_c(&mut self,state:State)->Step { +let mut out=self.b799_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,771,87); +out.events=self.relabel_token(out.events,799,87); } else {self.display_failures(state.consumed.max(state.matched),&["':'"]);} out } -fn b771_c(&mut self,mut state:State)->Step { +fn b799_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,":",true,21,false,":"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"':'");} out } -fn e772_c(&mut self,state:State)->Step { -let mut out=self.b772_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e800_c(&mut self,state:State)->Step { +let mut out=self.b800_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,772,87); +out.events=self.relabel_token(out.events,800,87); } else {self.display_failures(state.consumed.max(state.matched),&["']'"]);} out } -fn b772_c(&mut self,mut state:State)->Step { +fn b800_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"]",true,44,false,"]"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"']'");} out } -fn e773_c(&mut self,state:State)->Step { -let mut out=self.b773_c(state); +fn e801_c(&mut self,state:State)->Step { +let mut out=self.b801_c(state); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:false,text:false}); } else {self.display_failures(state.consumed.max(state.matched),&["':'", "'['", "']'"]);} out } -fn b773_c(&mut self,mut state:State)->Step { +fn b801_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e774_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e802_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e775_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e803_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e776_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e804_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e777_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e805_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e778_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e806_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e779_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e807_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e780_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e808_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e774_c(&mut self,state:State)->Step { -let mut out=self.b774_c(state); +fn e802_c(&mut self,state:State)->Step { +let mut out=self.b802_c(state); if out.ok { -out.events=self.event(Event::Capture {site:163,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:173,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b774_c(&mut self,mut state:State)->Step { +fn b802_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r86_c(out.state); out } -fn e775_c(&mut self,state:State)->Step { -let mut out=self.b775_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e803_c(&mut self,state:State)->Step { +let mut out=self.b803_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,775,87); +out.events=self.relabel_token(out.events,803,87); } else {self.display_failures(state.consumed.max(state.matched),&["'['"]);} out } -fn b775_c(&mut self,mut state:State)->Step { +fn b803_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"[",true,43,false,"["); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'['");} out } -fn e776_c(&mut self,state:State)->Step { -let mut out=self.b776_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e804_c(&mut self,state:State)->Step { +let mut out=self.b804_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,776,87); +out.events=self.relabel_token(out.events,804,87); } else {self.display_failures(state.consumed.max(state.matched),&["':'"]);} out } -fn b776_c(&mut self,mut state:State)->Step { +fn b804_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,":",true,21,false,":"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"':'");} out } -fn e777_c(&mut self,state:State)->Step { -let mut out=self.b777_c(state); +fn e805_c(&mut self,state:State)->Step { +let mut out=self.b805_c(state); if out.ok { -out.events=self.event(Event::Capture {site:164,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:174,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b777_c(&mut self,mut state:State)->Step { +fn b805_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r84_c(out.state); out } -fn e778_c(&mut self,state:State)->Step { -let mut out=self.b778_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e806_c(&mut self,state:State)->Step { +let mut out=self.b806_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,778,87); +out.events=self.relabel_token(out.events,806,87); } else {self.display_failures(state.consumed.max(state.matched),&["':'"]);} out } -fn b778_c(&mut self,mut state:State)->Step { +fn b806_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,":",true,21,false,":"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"':'");} out } -fn e779_c(&mut self,state:State)->Step { -let mut out=self.b779_c(state); +fn e807_c(&mut self,state:State)->Step { +let mut out=self.b807_c(state); if out.ok { -out.events=self.event(Event::Capture {site:165,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:175,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b779_c(&mut self,mut state:State)->Step { +fn b807_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r85_c(out.state); out } -fn e780_c(&mut self,state:State)->Step { -let mut out=self.b780_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e808_c(&mut self,state:State)->Step { +let mut out=self.b808_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,780,87); +out.events=self.relabel_token(out.events,808,87); } else {self.display_failures(state.consumed.max(state.matched),&["']'"]);} out } -fn b780_c(&mut self,mut state:State)->Step { +fn b808_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"]",true,44,false,"]"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"']'");} out } -fn e781_c(&mut self,state:State)->Step { -let mut out=self.b781_c(state); +fn e809_c(&mut self,state:State)->Step { +let mut out=self.b809_c(state); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:false,text:false}); } else {self.display_failures(state.consumed.max(state.matched),&["':'", "'['", "']'"]);} out } -fn b781_c(&mut self,mut state:State)->Step { +fn b809_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e782_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e810_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e783_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e811_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e784_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e812_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e785_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e813_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e786_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e814_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e782_c(&mut self,state:State)->Step { -let mut out=self.b782_c(state); +fn e810_c(&mut self,state:State)->Step { +let mut out=self.b810_c(state); if out.ok { -out.events=self.event(Event::Capture {site:166,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:176,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b782_c(&mut self,mut state:State)->Step { +fn b810_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r86_c(out.state); out } -fn e783_c(&mut self,state:State)->Step { -let mut out=self.b783_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e811_c(&mut self,state:State)->Step { +let mut out=self.b811_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,783,87); +out.events=self.relabel_token(out.events,811,87); } else {self.display_failures(state.consumed.max(state.matched),&["'['"]);} out } -fn b783_c(&mut self,mut state:State)->Step { +fn b811_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"[",true,43,false,"["); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'['");} out } -fn e784_c(&mut self,state:State)->Step { -let mut out=self.b784_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e812_c(&mut self,state:State)->Step { +let mut out=self.b812_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,784,87); +out.events=self.relabel_token(out.events,812,87); } else {self.display_failures(state.consumed.max(state.matched),&["':'"]);} out } -fn b784_c(&mut self,mut state:State)->Step { +fn b812_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,":",true,21,false,":"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"':'");} out } -fn e785_c(&mut self,state:State)->Step { -let mut out=self.b785_c(state); +fn e813_c(&mut self,state:State)->Step { +let mut out=self.b813_c(state); if out.ok { -out.events=self.event(Event::Capture {site:167,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:177,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b785_c(&mut self,mut state:State)->Step { +fn b813_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r84_c(out.state); out } -fn e786_c(&mut self,state:State)->Step { -let mut out=self.b786_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e814_c(&mut self,state:State)->Step { +let mut out=self.b814_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,786,87); +out.events=self.relabel_token(out.events,814,87); } else {self.display_failures(state.consumed.max(state.matched),&["']'"]);} out } -fn b786_c(&mut self,mut state:State)->Step { +fn b814_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"]",true,44,false,"]"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"']'");} out } -fn e787_c(&mut self,state:State)->Step { -let mut out=self.b787_c(state); +fn e815_c(&mut self,state:State)->Step { +let mut out=self.b815_c(state); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:false,text:false}); } else {self.display_failures(state.consumed.max(state.matched),&["':'", "'['", "']'"]);} out } -fn b787_c(&mut self,mut state:State)->Step { +fn b815_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e788_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e816_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e789_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e817_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e790_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e818_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e791_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e819_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e792_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e820_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e793_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e821_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e788_c(&mut self,state:State)->Step { -let mut out=self.b788_c(state); +fn e816_c(&mut self,state:State)->Step { +let mut out=self.b816_c(state); if out.ok { -out.events=self.event(Event::Capture {site:168,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:178,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b788_c(&mut self,mut state:State)->Step { +fn b816_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r86_c(out.state); out } -fn e789_c(&mut self,state:State)->Step { -let mut out=self.b789_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e817_c(&mut self,state:State)->Step { +let mut out=self.b817_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,789,87); +out.events=self.relabel_token(out.events,817,87); } else {self.display_failures(state.consumed.max(state.matched),&["'['"]);} out } -fn b789_c(&mut self,mut state:State)->Step { +fn b817_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"[",true,43,false,"["); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'['");} out } -fn e790_c(&mut self,state:State)->Step { -let mut out=self.b790_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e818_c(&mut self,state:State)->Step { +let mut out=self.b818_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,790,87); +out.events=self.relabel_token(out.events,818,87); } else {self.display_failures(state.consumed.max(state.matched),&["':'"]);} out } -fn b790_c(&mut self,mut state:State)->Step { +fn b818_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,":",true,21,false,":"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"':'");} out } -fn e791_c(&mut self,state:State)->Step { -let mut out=self.b791_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e819_c(&mut self,state:State)->Step { +let mut out=self.b819_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,791,87); +out.events=self.relabel_token(out.events,819,87); } else {self.display_failures(state.consumed.max(state.matched),&["':'"]);} out } -fn b791_c(&mut self,mut state:State)->Step { +fn b819_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,":",true,21,false,":"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"':'");} out } -fn e792_c(&mut self,state:State)->Step { -let mut out=self.b792_c(state); +fn e820_c(&mut self,state:State)->Step { +let mut out=self.b820_c(state); if out.ok { -out.events=self.event(Event::Capture {site:169,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:179,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b792_c(&mut self,mut state:State)->Step { +fn b820_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r85_c(out.state); out } -fn e793_c(&mut self,state:State)->Step { -let mut out=self.b793_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e821_c(&mut self,state:State)->Step { +let mut out=self.b821_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,793,87); +out.events=self.relabel_token(out.events,821,87); } else {self.display_failures(state.consumed.max(state.matched),&["']'"]);} out } -fn b793_c(&mut self,mut state:State)->Step { +fn b821_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"]",true,44,false,"]"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"']'");} out } -fn e794_c(&mut self,state:State)->Step { -let mut out=self.b794_c(state); +fn e822_c(&mut self,state:State)->Step { +let mut out=self.b822_c(state); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:true,text:false}); } else {self.display_failures(state.consumed.max(state.matched),&["':'", "'['", "']'"]);} out } -fn b794_c(&mut self,mut state:State)->Step { +fn b822_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e795_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e823_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e796_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e824_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e797_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e825_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e798_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e826_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e795_c(&mut self,state:State)->Step { -let mut out=self.b795_c(state); +fn e823_c(&mut self,state:State)->Step { +let mut out=self.b823_c(state); if out.ok { -out.events=self.event(Event::Capture {site:170,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:180,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b795_c(&mut self,mut state:State)->Step { +fn b823_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r86_c(out.state); out } -fn e796_c(&mut self,state:State)->Step { -let mut out=self.b796_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e824_c(&mut self,state:State)->Step { +let mut out=self.b824_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,796,87); +out.events=self.relabel_token(out.events,824,87); } else {self.display_failures(state.consumed.max(state.matched),&["'['"]);} out } -fn b796_c(&mut self,mut state:State)->Step { +fn b824_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"[",true,43,false,"["); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'['");} out } -fn e797_c(&mut self,state:State)->Step { -let mut out=self.b797_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e825_c(&mut self,state:State)->Step { +let mut out=self.b825_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,797,87); +out.events=self.relabel_token(out.events,825,87); } else {self.display_failures(state.consumed.max(state.matched),&["':'"]);} out } -fn b797_c(&mut self,mut state:State)->Step { +fn b825_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,":",true,21,false,":"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"':'");} out } -fn e798_c(&mut self,state:State)->Step { -let mut out=self.b798_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e826_c(&mut self,state:State)->Step { +let mut out=self.b826_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,798,87); +out.events=self.relabel_token(out.events,826,87); } else {self.display_failures(state.consumed.max(state.matched),&["']'"]);} out } -fn b798_c(&mut self,mut state:State)->Step { +fn b826_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"]",true,44,false,"]"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"']'");} out } -fn e799_c(&mut self,state:State)->Step { +fn e827_c(&mut self,state:State)->Step { let mark=self.mark(); -let key=Key {expression:799,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} -self.display_enter(state.consumed.max(state.matched));let mut out=self.b799_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +let key=Key {expression:827,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} +self.display_enter(state.consumed.max(state.matched));let mut out=self.b827_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { } else {self.restore(mark);self.display_failures(state.consumed.max(state.matched),&[]);} if (out.ok && true) || (!out.ok && true) {self.store(key,out,mark);}self.display_leave(); out } -fn b799_c(&mut self,mut state:State)->Step { +fn b827_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out='choice: {let mark=self.mark();let mut diagnostic=Diag::NONE;let mut best:Option<(Step,[usize;2])>=None; -self.restore(mark);let mut child=self.e800_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=self.e828_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=self.e801_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=self.e829_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} self.restore(mark);break 'choice if let Some((mut child,effects))=best {self.replay_effects(effects);child.diag=diagnostic;child} else {out.ok=false;out.diag=diagnostic;out}; }; out } -fn e800_c(&mut self,state:State)->Step { -let mut out=self.b800_c(state); +fn e828_c(&mut self,state:State)->Step { +let mut out=self.b828_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b800_c(&mut self,mut state:State)->Step { +fn b828_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r87_c(out.state); out } -fn e801_c(&mut self,state:State)->Step { -let mut out=self.b801_c(state); +fn e829_c(&mut self,state:State)->Step { +let mut out=self.b829_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b801_c(&mut self,mut state:State)->Step { +fn b829_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r86_c(out.state); out } -fn e802_c(&mut self,state:State)->Step { +fn e830_c(&mut self,state:State)->Step { let mark=self.mark(); -let key=Key {expression:802,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} -self.display_enter(state.consumed.max(state.matched));let mut out=self.b802_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +let key=Key {expression:830,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} +self.display_enter(state.consumed.max(state.matched));let mut out=self.b830_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:false,text:false}); } else {self.restore(mark);self.display_failures(state.consumed.max(state.matched),&[]);} if (out.ok && true) || (!out.ok && true) {self.store(key,out,mark);}self.display_leave(); out } -fn b802_c(&mut self,mut state:State)->Step { +fn b830_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e803_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e831_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e804_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e832_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e803_c(&mut self,state:State)->Step { -let mut out=self.b803_c(state); +fn e831_c(&mut self,state:State)->Step { +let mut out=self.b831_c(state); if out.ok { -out.events=self.event(Event::Capture {site:171,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:181,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b803_c(&mut self,mut state:State)->Step { +fn b831_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r91_c(out.state); out } -fn e804_c(&mut self,state:State)->Step { -let mut out=self.b804_c(state); +fn e832_c(&mut self,state:State)->Step { +let mut out=self.b832_c(state); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:false,text:false}); } else {self.display_failures(state.consumed.max(state.matched),&["Repeat"]);} out } -fn b804_c(&mut self,mut state:State)->Step { +fn b832_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out.state=state.begin(); let mut count=0usize;loop {let mark=self.mark();let before=out.state; -let mut child=self.e805_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} +let mut child=self.e833_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} out.events=self.join(out.events,child.events);count+=1; if before.position::()==out.state.position::() {break;} } @@ -14206,630 +14706,630 @@ if false {out.ok=false;out.state=state;let d=self.diag_fail(state.position::Step { -let mut out=self.b805_c(state); +fn e833_c(&mut self,state:State)->Step { +let mut out=self.b833_c(state); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:true,text:false}); } else {self.display_failures(state.consumed.max(state.matched),&["'+'"]);} out } -fn b805_c(&mut self,mut state:State)->Step { +fn b833_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e806_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e834_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e807_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e835_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e806_c(&mut self,state:State)->Step { -let mut out=self.b806_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e834_c(&mut self,state:State)->Step { +let mut out=self.b834_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,806,89); -out.events=self.event(Event::Capture {site:172,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.relabel_token(out.events,834,89); +out.events=self.event(Event::Capture {site:182,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["'+'"]);} out } -fn b806_c(&mut self,mut state:State)->Step { +fn b834_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"+",true,7,false,"+"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'+'");} out } -fn e807_c(&mut self,state:State)->Step { -let mut out=self.b807_c(state); +fn e835_c(&mut self,state:State)->Step { +let mut out=self.b835_c(state); if out.ok { -out.events=self.event(Event::Capture {site:173,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:183,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b807_c(&mut self,mut state:State)->Step { +fn b835_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r91_c(out.state); out } -fn e808_c(&mut self,state:State)->Step { +fn e836_c(&mut self,state:State)->Step { let mark=self.mark(); -let key=Key {expression:808,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} -self.display_enter(state.consumed.max(state.matched));let mut out=self.b808_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +let key=Key {expression:836,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} +self.display_enter(state.consumed.max(state.matched));let mut out=self.b836_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:true,text:false}); } else {self.restore(mark);self.display_failures(state.consumed.max(state.matched),&[]);} if (out.ok && true) || (!out.ok && true) {self.store(key,out,mark);}self.display_leave(); out } -fn b808_c(&mut self,mut state:State)->Step { +fn b836_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e809_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e837_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e810_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e838_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e811_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e839_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e809_c(&mut self,state:State)->Step { -let mut out=self.b809_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e837_c(&mut self,state:State)->Step { +let mut out=self.b837_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,809,90); +out.events=self.relabel_token(out.events,837,90); } else {self.display_failures(state.consumed.max(state.matched),&["'('"]);} out } -fn b809_c(&mut self,mut state:State)->Step { +fn b837_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"(",true,4,false,"("); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'('");} out } -fn e810_c(&mut self,state:State)->Step { -let mut out=self.b810_c(state); +fn e838_c(&mut self,state:State)->Step { +let mut out=self.b838_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b810_c(&mut self,mut state:State)->Step { +fn b838_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r89_c(out.state); out } -fn e811_c(&mut self,state:State)->Step { -let mut out=self.b811_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e839_c(&mut self,state:State)->Step { +let mut out=self.b839_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,811,90); +out.events=self.relabel_token(out.events,839,90); } else {self.display_failures(state.consumed.max(state.matched),&["')'"]);} out } -fn b811_c(&mut self,mut state:State)->Step { +fn b839_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,")",true,5,false,")"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"')'");} out } -fn e812_c(&mut self,state:State)->Step { +fn e840_c(&mut self,state:State)->Step { let mark=self.mark(); -let key=Key {expression:812,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} -self.display_enter(state.consumed.max(state.matched));let mut out=self.b812_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +let key=Key {expression:840,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} +self.display_enter(state.consumed.max(state.matched));let mut out=self.b840_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { } else {self.restore(mark);self.display_failures(state.consumed.max(state.matched),&[]);} if (out.ok && true) || (!out.ok && true) {self.store(key,out,mark);}self.display_leave(); out } -fn b812_c(&mut self,mut state:State)->Step { +fn b840_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out='choice: {let mark=self.mark();let mut diagnostic=Diag::NONE;let mut best:Option<(Step,[usize;2])>=None; let ct=self.input.cp_at(self.skip_0::(out.state.begin()).position::()).map(|(c,_)|c); -self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,109))) {self.guard_e813_c(out.state.begin())} else {self.e813_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,109))) {self.guard_e841_c(out.state.begin())} else {self.e841_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,105))) {self.guard_e814_c(out.state.begin())} else {self.e814_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,105))) {self.guard_e842_c(out.state.begin())} else {self.e842_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,40))) {self.guard_e815_c(out.state.begin())} else {self.e815_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,40))) {self.guard_e843_c(out.state.begin())} else {self.e843_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,36))) {self.guard_e816_c(out.state.begin())} else {self.e816_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,36))) {self.guard_e844_c(out.state.begin())} else {self.e844_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=self.e817_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=self.e845_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,40))) {self.guard_e818_c(out.state.begin())} else {self.e818_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,40))) {self.guard_e846_c(out.state.begin())} else {self.e846_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,101))) {self.guard_e819_c(out.state.begin())} else {self.e819_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,101))) {self.guard_e847_c(out.state.begin())} else {self.e847_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,116))) {self.guard_e820_c(out.state.begin())} else {self.e820_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,116))) {self.guard_e848_c(out.state.begin())} else {self.e848_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,116))) {self.guard_e821_c(out.state.begin())} else {self.e821_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,116))) {self.guard_e849_c(out.state.begin())} else {self.e849_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,116))) {self.guard_e822_c(out.state.begin())} else {self.e822_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,116))) {self.guard_e850_c(out.state.begin())} else {self.e850_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,36))) {self.guard_e823_c(out.state.begin())} else {self.e823_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,36))) {self.guard_e851_c(out.state.begin())} else {self.e851_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,36))) {self.guard_e824_c(out.state.begin())} else {self.e824_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,36))) {self.guard_e852_c(out.state.begin())} else {self.e852_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,36))) {self.guard_e825_c(out.state.begin())} else {self.e825_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,36))) {self.guard_e853_c(out.state.begin())} else {self.e853_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=self.e826_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=self.e854_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,36))) {self.guard_e827_c(out.state.begin())} else {self.e827_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,36))) {self.guard_e855_c(out.state.begin())} else {self.e855_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,99|105))) {self.guard_e828_c(out.state.begin())} else {self.e828_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,99|105))) {self.guard_e856_c(out.state.begin())} else {self.e856_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} self.restore(mark);break 'choice if let Some((mut child,effects))=best {self.replay_effects(effects);child.diag=diagnostic;child} else {out.ok=false;out.diag=diagnostic;out}; }; out } -fn e813_c(&mut self,state:State)->Step { -let mut out=self.b813_c(state); +fn e841_c(&mut self,state:State)->Step { +let mut out=self.b841_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b813_c(&mut self,mut state:State)->Step { +fn b841_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r113_c(out.state); out } -fn e814_c(&mut self,state:State)->Step { -let mut out=self.b814_c(state); +fn e842_c(&mut self,state:State)->Step { +let mut out=self.b842_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b814_c(&mut self,mut state:State)->Step { +fn b842_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r106_c(out.state); out } -fn e815_c(&mut self,state:State)->Step { -let mut out=self.b815_c(state); +fn e843_c(&mut self,state:State)->Step { +let mut out=self.b843_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b815_c(&mut self,mut state:State)->Step { +fn b843_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r92_c(out.state); out } -fn e816_c(&mut self,state:State)->Step { -let mut out=self.b816_c(state); +fn e844_c(&mut self,state:State)->Step { +let mut out=self.b844_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b816_c(&mut self,mut state:State)->Step { +fn b844_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r93_c(out.state); out } -fn e817_c(&mut self,state:State)->Step { -let mut out=self.b817_c(state); +fn e845_c(&mut self,state:State)->Step { +let mut out=self.b845_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b817_c(&mut self,mut state:State)->Step { +fn b845_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r88_c(out.state); out } -fn e818_c(&mut self,state:State)->Step { -let mut out=self.b818_c(state); +fn e846_c(&mut self,state:State)->Step { +let mut out=self.b846_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b818_c(&mut self,mut state:State)->Step { +fn b846_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r90_c(out.state); out } -fn e819_c(&mut self,state:State)->Step { -let mut out=self.b819_c(state); +fn e847_c(&mut self,state:State)->Step { +let mut out=self.b847_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b819_c(&mut self,mut state:State)->Step { +fn b847_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r33_c(out.state); out } -fn e820_c(&mut self,state:State)->Step { -let mut out=self.b820_c(state); +fn e848_c(&mut self,state:State)->Step { +let mut out=self.b848_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b820_c(&mut self,mut state:State)->Step { +fn b848_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r61_c(out.state); out } -fn e821_c(&mut self,state:State)->Step { -let mut out=self.b821_c(state); +fn e849_c(&mut self,state:State)->Step { +let mut out=self.b849_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b821_c(&mut self,mut state:State)->Step { +fn b849_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r62_c(out.state); out } -fn e822_c(&mut self,state:State)->Step { -let mut out=self.b822_c(state); +fn e850_c(&mut self,state:State)->Step { +let mut out=self.b850_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b822_c(&mut self,mut state:State)->Step { +fn b850_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r63_c(out.state); out } -fn e823_c(&mut self,state:State)->Step { -let mut out=self.b823_c(state); +fn e851_c(&mut self,state:State)->Step { +let mut out=self.b851_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b823_c(&mut self,mut state:State)->Step { +fn b851_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r66_c(out.state); out } -fn e824_c(&mut self,state:State)->Step { -let mut out=self.b824_c(state); +fn e852_c(&mut self,state:State)->Step { +let mut out=self.b852_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b824_c(&mut self,mut state:State)->Step { +fn b852_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r67_c(out.state); out } -fn e825_c(&mut self,state:State)->Step { -let mut out=self.b825_c(state); +fn e853_c(&mut self,state:State)->Step { +let mut out=self.b853_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b825_c(&mut self,mut state:State)->Step { +fn b853_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r68_c(out.state); out } -fn e826_c(&mut self,state:State)->Step { -let mut out=self.b826_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e854_c(&mut self,state:State)->Step { +let mut out=self.b854_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,826,91); +out.events=self.relabel_token(out.events,854,91); out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:false,text:true}); } else {self.display_failures(state.consumed.max(state.matched),&["STRINGParser"]);} out } -fn b826_c(&mut self,mut state:State)->Step { +fn b854_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.token_2::(out.state,"STRING","STRINGParser"); out } -fn e827_c(&mut self,state:State)->Step { -let mut out=self.b827_c(state); +fn e855_c(&mut self,state:State)->Step { +let mut out=self.b855_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b827_c(&mut self,mut state:State)->Step { +fn b855_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r121_c(out.state); out } -fn e828_c(&mut self,state:State)->Step { -let mut out=self.b828_c(state); +fn e856_c(&mut self,state:State)->Step { +let mut out=self.b856_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b828_c(&mut self,mut state:State)->Step { +fn b856_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r36_c(out.state); out } -fn e829_c(&mut self,state:State)->Step { -let mut out=self.b829_c(state); +fn e857_c(&mut self,state:State)->Step { +let mut out=self.b857_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b829_c(&mut self,mut state:State)->Step { +fn b857_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e830_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e858_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e831_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e859_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e835_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e863_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e836_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e864_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e837_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e865_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e830_c(&mut self,state:State)->Step { -let mut out=self.b830_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e858_c(&mut self,state:State)->Step { +let mut out=self.b858_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,830,92); +out.events=self.relabel_token(out.events,858,92); } else {self.display_failures(state.consumed.max(state.matched),&["'('"]);} out } -fn b830_c(&mut self,mut state:State)->Step { +fn b858_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"(",true,4,false,"("); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'('");} out } -fn e831_c(&mut self,state:State)->Step { -let mut out=self.b831_c(state); +fn e859_c(&mut self,state:State)->Step { +let mut out=self.b859_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&["'String'", "'string'"]);} out } -fn b831_c(&mut self,mut state:State)->Step { +fn b859_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); -out=self.e832_c(out.state); +out=self.e860_c(out.state); out } -fn e832_c(&mut self,state:State)->Step { -let mut out=self.b832_c(state); +fn e860_c(&mut self,state:State)->Step { +let mut out=self.b860_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&["'String'", "'string'"]);} out } -fn b832_c(&mut self,mut state:State)->Step { +fn b860_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out='choice: {let mark=self.mark();let mut diagnostic=Diag::NONE;let mut best:Option<(Step,[usize;2])>=None; -self.restore(mark);let mut child=self.e833_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=self.e861_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=self.e834_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=self.e862_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} self.restore(mark);break 'choice if let Some((mut child,effects))=best {self.replay_effects(effects);child.diag=diagnostic;child} else {out.ok=false;out.diag=diagnostic;out}; }; out } -fn e833_c(&mut self,state:State)->Step { -let mut out=self.b833_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e861_c(&mut self,state:State)->Step { +let mut out=self.b861_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,833,92); +out.events=self.relabel_token(out.events,861,92); } else {self.display_failures(state.consumed.max(state.matched),&["'string'"]);} out } -fn b833_c(&mut self,mut state:State)->Step { +fn b861_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"string",true,86,false,"string"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'string'");} out } -fn e834_c(&mut self,state:State)->Step { -let mut out=self.b834_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e862_c(&mut self,state:State)->Step { +let mut out=self.b862_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,834,92); +out.events=self.relabel_token(out.events,862,92); } else {self.display_failures(state.consumed.max(state.matched),&["'String'"]);} out } -fn b834_c(&mut self,mut state:State)->Step { +fn b862_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"String",true,39,false,"String"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'String'");} out } -fn e835_c(&mut self,state:State)->Step { -let mut out=self.b835_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e863_c(&mut self,state:State)->Step { +let mut out=self.b863_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,835,92); +out.events=self.relabel_token(out.events,863,92); } else {self.display_failures(state.consumed.max(state.matched),&["')'"]);} out } -fn b835_c(&mut self,mut state:State)->Step { +fn b863_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,")",true,5,false,")"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"')'");} out } -fn e836_c(&mut self,state:State)->Step { -let mut out=self.b836_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e864_c(&mut self,state:State)->Step { +let mut out=self.b864_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,836,92); +out.events=self.relabel_token(out.events,864,92); } else {self.display_failures(state.consumed.max(state.matched),&["'$'"]);} out } -fn b836_c(&mut self,mut state:State)->Step { +fn b864_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"$",true,2,false,"$"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'$'");} out } -fn e837_c(&mut self,state:State)->Step { -let mut out=self.b837_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e865_c(&mut self,state:State)->Step { +let mut out=self.b865_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,837,92); -out.events=self.event(Event::Capture {site:174,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.relabel_token(out.events,865,92); +out.events=self.event(Event::Capture {site:184,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["IDENTIFIERParser", "__CaptureSite"]);} out } -fn b837_c(&mut self,mut state:State)->Step { +fn b865_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.token_1::(out.state,"IDENTIFIER","IDENTIFIERParser"); out } -fn e838_c(&mut self,state:State)->Step { -let mut out=self.b838_c(state); +fn e866_c(&mut self,state:State)->Step { +let mut out=self.b866_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b838_c(&mut self,mut state:State)->Step { +fn b866_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e839_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e867_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e840_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e868_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e841_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e869_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e842_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e870_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e839_c(&mut self,state:State)->Step { -let mut out=self.b839_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e867_c(&mut self,state:State)->Step { +let mut out=self.b867_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,839,93); +out.events=self.relabel_token(out.events,867,93); } else {self.display_failures(state.consumed.max(state.matched),&["'$'"]);} out } -fn b839_c(&mut self,mut state:State)->Step { +fn b867_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"$",true,2,false,"$"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'$'");} out } -fn e840_c(&mut self,state:State)->Step { -let mut out=self.b840_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e868_c(&mut self,state:State)->Step { +let mut out=self.b868_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,840,93); -out.events=self.event(Event::Capture {site:175,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.relabel_token(out.events,868,93); +out.events=self.event(Event::Capture {site:185,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["IDENTIFIERParser", "__CaptureSite"]);} out } -fn b840_c(&mut self,mut state:State)->Step { +fn b868_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.token_1::(out.state,"IDENTIFIER","IDENTIFIERParser"); out } -fn e841_c(&mut self,state:State)->Step { -let mut out=self.b841_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e869_c(&mut self,state:State)->Step { +let mut out=self.b869_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,841,93); +out.events=self.relabel_token(out.events,869,93); } else {self.display_failures(state.consumed.max(state.matched),&["'as'"]);} out } -fn b841_c(&mut self,mut state:State)->Step { +fn b869_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"as",true,47,false,"as"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'as'");} out } -fn e842_c(&mut self,state:State)->Step { -let mut out=self.b842_c(state); +fn e870_c(&mut self,state:State)->Step { +let mut out=self.b870_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&["'String'", "'string'"]);} out } -fn b842_c(&mut self,mut state:State)->Step { +fn b870_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); -out=self.e843_c(out.state); +out=self.e871_c(out.state); out } -fn e843_c(&mut self,state:State)->Step { -let mut out=self.b843_c(state); +fn e871_c(&mut self,state:State)->Step { +let mut out=self.b871_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&["'String'", "'string'"]);} out } -fn b843_c(&mut self,mut state:State)->Step { +fn b871_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out='choice: {let mark=self.mark();let mut diagnostic=Diag::NONE;let mut best:Option<(Step,[usize;2])>=None; -self.restore(mark);let mut child=self.e844_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=self.e872_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=self.e845_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=self.e873_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} self.restore(mark);break 'choice if let Some((mut child,effects))=best {self.replay_effects(effects);child.diag=diagnostic;child} else {out.ok=false;out.diag=diagnostic;out}; }; out } -fn e844_c(&mut self,state:State)->Step { -let mut out=self.b844_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e872_c(&mut self,state:State)->Step { +let mut out=self.b872_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,844,93); +out.events=self.relabel_token(out.events,872,93); } else {self.display_failures(state.consumed.max(state.matched),&["'string'"]);} out } -fn b844_c(&mut self,mut state:State)->Step { +fn b872_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"string",true,86,false,"string"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'string'");} out } -fn e845_c(&mut self,state:State)->Step { -let mut out=self.b845_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e873_c(&mut self,state:State)->Step { +let mut out=self.b873_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,845,93); +out.events=self.relabel_token(out.events,873,93); } else {self.display_failures(state.consumed.max(state.matched),&["'String'"]);} out } -fn b845_c(&mut self,mut state:State)->Step { +fn b873_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"String",true,39,false,"String"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'String'");} out } -fn e846_c(&mut self,state:State)->Step { +fn e874_c(&mut self,state:State)->Step { let mark=self.mark(); -let key=Key {expression:846,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} -self.display_enter(state.consumed.max(state.matched));let mut out=self.b846_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +let key=Key {expression:874,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} +self.display_enter(state.consumed.max(state.matched));let mut out=self.b874_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:false,text:false}); } else {self.restore(mark);self.display_failures(state.consumed.max(state.matched),&[]);} if (out.ok && true) || (!out.ok && true) {self.store(key,out,mark);}self.display_leave(); out } -fn b846_c(&mut self,mut state:State)->Step { +fn b874_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e847_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e875_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e848_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e876_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e847_c(&mut self,state:State)->Step { -let mut out=self.b847_c(state); +fn e875_c(&mut self,state:State)->Step { +let mut out=self.b875_c(state); if out.ok { -out.events=self.event(Event::Capture {site:176,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:186,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b847_c(&mut self,mut state:State)->Step { +fn b875_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r95_c(out.state); out } -fn e848_c(&mut self,state:State)->Step { -let mut out=self.b848_c(state); +fn e876_c(&mut self,state:State)->Step { +let mut out=self.b876_c(state); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:false,text:false}); } else {self.display_failures(state.consumed.max(state.matched),&["Repeat"]);} out } -fn b848_c(&mut self,mut state:State)->Step { +fn b876_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out.state=state.begin(); let mut count=0usize;loop {let mark=self.mark();let before=out.state; -let mut child=self.e849_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} +let mut child=self.e877_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} out.events=self.join(out.events,child.events);count+=1; if before.position::()==out.state.position::() {break;} } @@ -14838,97 +15338,97 @@ if false {out.ok=false;out.state=state;let d=self.diag_fail(state.position::Step { -let mut out=self.b849_c(state); +fn e877_c(&mut self,state:State)->Step { +let mut out=self.b877_c(state); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:true,text:false}); } else {self.display_failures(state.consumed.max(state.matched),&["'|'"]);} out } -fn b849_c(&mut self,mut state:State)->Step { +fn b877_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e850_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e878_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e851_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e879_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e850_c(&mut self,state:State)->Step { -let mut out=self.b850_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e878_c(&mut self,state:State)->Step { +let mut out=self.b878_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,850,94); -out.events=self.event(Event::Capture {site:177,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.relabel_token(out.events,878,94); +out.events=self.event(Event::Capture {site:187,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["'|'"]);} out } -fn b850_c(&mut self,mut state:State)->Step { +fn b878_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"|",true,96,false,"|"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'|'");} out } -fn e851_c(&mut self,state:State)->Step { -let mut out=self.b851_c(state); +fn e879_c(&mut self,state:State)->Step { +let mut out=self.b879_c(state); if out.ok { -out.events=self.event(Event::Capture {site:178,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:188,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b851_c(&mut self,mut state:State)->Step { +fn b879_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r95_c(out.state); out } -fn e852_c(&mut self,state:State)->Step { +fn e880_c(&mut self,state:State)->Step { let mark=self.mark(); -let key=Key {expression:852,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} -self.display_enter(state.consumed.max(state.matched));let mut out=self.b852_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +let key=Key {expression:880,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} +self.display_enter(state.consumed.max(state.matched));let mut out=self.b880_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:false,text:false}); } else {self.restore(mark);self.display_failures(state.consumed.max(state.matched),&[]);} if (out.ok && true) || (!out.ok && true) {self.store(key,out,mark);}self.display_leave(); out } -fn b852_c(&mut self,mut state:State)->Step { +fn b880_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e853_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e881_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e854_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e882_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e853_c(&mut self,state:State)->Step { -let mut out=self.b853_c(state); +fn e881_c(&mut self,state:State)->Step { +let mut out=self.b881_c(state); if out.ok { -out.events=self.event(Event::Capture {site:179,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:189,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b853_c(&mut self,mut state:State)->Step { +fn b881_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r96_c(out.state); out } -fn e854_c(&mut self,state:State)->Step { -let mut out=self.b854_c(state); +fn e882_c(&mut self,state:State)->Step { +let mut out=self.b882_c(state); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:false,text:false}); } else {self.display_failures(state.consumed.max(state.matched),&["Repeat"]);} out } -fn b854_c(&mut self,mut state:State)->Step { +fn b882_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out.state=state.begin(); let mut count=0usize;loop {let mark=self.mark();let before=out.state; -let mut child=self.e855_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} +let mut child=self.e883_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} out.events=self.join(out.events,child.events);count+=1; if before.position::()==out.state.position::() {break;} } @@ -14937,97 +15437,97 @@ if false {out.ok=false;out.state=state;let d=self.diag_fail(state.position::Step { -let mut out=self.b855_c(state); +fn e883_c(&mut self,state:State)->Step { +let mut out=self.b883_c(state); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:true,text:false}); } else {self.display_failures(state.consumed.max(state.matched),&["'&'"]);} out } -fn b855_c(&mut self,mut state:State)->Step { +fn b883_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e856_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e884_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e857_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e885_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e856_c(&mut self,state:State)->Step { -let mut out=self.b856_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e884_c(&mut self,state:State)->Step { +let mut out=self.b884_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,856,95); -out.events=self.event(Event::Capture {site:180,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.relabel_token(out.events,884,95); +out.events=self.event(Event::Capture {site:190,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["'&'"]);} out } -fn b856_c(&mut self,mut state:State)->Step { +fn b884_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"&",true,3,false,"&"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'&'");} out } -fn e857_c(&mut self,state:State)->Step { -let mut out=self.b857_c(state); +fn e885_c(&mut self,state:State)->Step { +let mut out=self.b885_c(state); if out.ok { -out.events=self.event(Event::Capture {site:181,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:191,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b857_c(&mut self,mut state:State)->Step { +fn b885_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r96_c(out.state); out } -fn e858_c(&mut self,state:State)->Step { +fn e886_c(&mut self,state:State)->Step { let mark=self.mark(); -let key=Key {expression:858,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} -self.display_enter(state.consumed.max(state.matched));let mut out=self.b858_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +let key=Key {expression:886,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} +self.display_enter(state.consumed.max(state.matched));let mut out=self.b886_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:false,text:false}); } else {self.restore(mark);self.display_failures(state.consumed.max(state.matched),&[]);} if (out.ok && true) || (!out.ok && true) {self.store(key,out,mark);}self.display_leave(); out } -fn b858_c(&mut self,mut state:State)->Step { +fn b886_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e859_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e887_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e860_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e888_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e859_c(&mut self,state:State)->Step { -let mut out=self.b859_c(state); +fn e887_c(&mut self,state:State)->Step { +let mut out=self.b887_c(state); if out.ok { -out.events=self.event(Event::Capture {site:182,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:192,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b859_c(&mut self,mut state:State)->Step { +fn b887_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r100_c(out.state); out } -fn e860_c(&mut self,state:State)->Step { -let mut out=self.b860_c(state); +fn e888_c(&mut self,state:State)->Step { +let mut out=self.b888_c(state); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:false,text:false}); } else {self.display_failures(state.consumed.max(state.matched),&["Repeat"]);} out } -fn b860_c(&mut self,mut state:State)->Step { +fn b888_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out.state=state.begin(); let mut count=0usize;loop {let mark=self.mark();let before=out.state; -let mut child=self.e861_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} +let mut child=self.e889_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} out.events=self.join(out.events,child.events);count+=1; if before.position::()==out.state.position::() {break;} } @@ -15036,1455 +15536,1455 @@ if false {out.ok=false;out.state=state;let d=self.diag_fail(state.position::Step { -let mut out=self.b861_c(state); +fn e889_c(&mut self,state:State)->Step { +let mut out=self.b889_c(state); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:true,text:false}); } else {self.display_failures(state.consumed.max(state.matched),&["'^'"]);} out } -fn b861_c(&mut self,mut state:State)->Step { +fn b889_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e862_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e890_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e863_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e891_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e862_c(&mut self,state:State)->Step { -let mut out=self.b862_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e890_c(&mut self,state:State)->Step { +let mut out=self.b890_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,862,96); -out.events=self.event(Event::Capture {site:183,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.relabel_token(out.events,890,96); +out.events=self.event(Event::Capture {site:193,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["'^'"]);} out } -fn b862_c(&mut self,mut state:State)->Step { +fn b890_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"^",true,45,false,"^"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'^'");} out } -fn e863_c(&mut self,state:State)->Step { -let mut out=self.b863_c(state); +fn e891_c(&mut self,state:State)->Step { +let mut out=self.b891_c(state); if out.ok { -out.events=self.event(Event::Capture {site:184,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:194,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b863_c(&mut self,mut state:State)->Step { +fn b891_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r100_c(out.state); out } -fn e864_c(&mut self,state:State)->Step { +fn e892_c(&mut self,state:State)->Step { let mark=self.mark(); -let key=Key {expression:864,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} -self.display_enter(state.consumed.max(state.matched));let mut out=self.b864_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +let key=Key {expression:892,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} +self.display_enter(state.consumed.max(state.matched));let mut out=self.b892_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:true,text:false}); } else {self.restore(mark);self.display_failures(state.consumed.max(state.matched),&[]);} if (out.ok && true) || (!out.ok && true) {self.store(key,out,mark);}self.display_leave(); out } -fn b864_c(&mut self,mut state:State)->Step { +fn b892_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e865_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e893_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e866_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e894_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e867_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e895_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e868_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e896_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e865_c(&mut self,state:State)->Step { -let mut out=self.b865_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e893_c(&mut self,state:State)->Step { +let mut out=self.b893_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,865,97); +out.events=self.relabel_token(out.events,893,97); } else {self.display_failures(state.consumed.max(state.matched),&["'not'"]);} out } -fn b865_c(&mut self,mut state:State)->Step { +fn b893_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"not",true,75,false,"not"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'not'");} out } -fn e866_c(&mut self,state:State)->Step { -let mut out=self.b866_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e894_c(&mut self,state:State)->Step { +let mut out=self.b894_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,866,97); +out.events=self.relabel_token(out.events,894,97); } else {self.display_failures(state.consumed.max(state.matched),&["'('"]);} out } -fn b866_c(&mut self,mut state:State)->Step { +fn b894_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"(",true,4,false,"("); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'('");} out } -fn e867_c(&mut self,state:State)->Step { -let mut out=self.b867_c(state); +fn e895_c(&mut self,state:State)->Step { +let mut out=self.b895_c(state); if out.ok { -out.events=self.event(Event::Capture {site:185,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:195,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b867_c(&mut self,mut state:State)->Step { +fn b895_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r94_c(out.state); out } -fn e868_c(&mut self,state:State)->Step { -let mut out=self.b868_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e896_c(&mut self,state:State)->Step { +let mut out=self.b896_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,868,97); +out.events=self.relabel_token(out.events,896,97); } else {self.display_failures(state.consumed.max(state.matched),&["')'"]);} out } -fn b868_c(&mut self,mut state:State)->Step { +fn b896_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,")",true,5,false,")"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"')'");} out } -fn e869_c(&mut self,state:State)->Step { +fn e897_c(&mut self,state:State)->Step { let mark=self.mark(); -let key=Key {expression:869,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} -self.display_enter(state.consumed.max(state.matched));let mut out=self.b869_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +let key=Key {expression:897,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} +self.display_enter(state.consumed.max(state.matched));let mut out=self.b897_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { } else {self.restore(mark);self.display_failures(state.consumed.max(state.matched),&[]);} if (out.ok && true) || (!out.ok && true) {self.store(key,out,mark);}self.display_leave(); out } -fn b869_c(&mut self,mut state:State)->Step { +fn b897_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out='choice: {let mark=self.mark();let mut diagnostic=Diag::NONE;let mut best:Option<(Step,[usize;2])>=None; let ct=self.input.cp_at(self.skip_0::(out.state.begin()).position::()).map(|(c,_)|c); -self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,110))) {self.guard_e870_c(out.state.begin())} else {self.e870_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,110))) {self.guard_e898_c(out.state.begin())} else {self.e898_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,105))) {self.guard_e871_c(out.state.begin())} else {self.e871_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,105))) {self.guard_e899_c(out.state.begin())} else {self.e899_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,109))) {self.guard_e872_c(out.state.begin())} else {self.e872_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,109))) {self.guard_e900_c(out.state.begin())} else {self.e900_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,101))) {self.guard_e873_c(out.state.begin())} else {self.e873_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,101))) {self.guard_e901_c(out.state.begin())} else {self.e901_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=self.e874_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=self.e902_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,36|116))) {self.guard_e875_c(out.state.begin())} else {self.e875_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,36|116))) {self.guard_e903_c(out.state.begin())} else {self.e903_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,36|116))) {self.guard_e876_c(out.state.begin())} else {self.e876_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,36|116))) {self.guard_e904_c(out.state.begin())} else {self.e904_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,36|116))) {self.guard_e877_c(out.state.begin())} else {self.e877_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,36|116))) {self.guard_e905_c(out.state.begin())} else {self.e905_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,115))) {self.guard_e878_c(out.state.begin())} else {self.e878_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,115))) {self.guard_e906_c(out.state.begin())} else {self.e906_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,101))) {self.guard_e879_c(out.state.begin())} else {self.e879_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,101))) {self.guard_e907_c(out.state.begin())} else {self.e907_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,99))) {self.guard_e880_c(out.state.begin())} else {self.e880_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,99))) {self.guard_e908_c(out.state.begin())} else {self.e908_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,105))) {self.guard_e881_c(out.state.begin())} else {self.e881_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,105))) {self.guard_e909_c(out.state.begin())} else {self.e909_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,105))) {self.guard_e882_c(out.state.begin())} else {self.e882_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,105))) {self.guard_e910_c(out.state.begin())} else {self.e910_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,105))) {self.guard_e883_c(out.state.begin())} else {self.e883_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,105))) {self.guard_e911_c(out.state.begin())} else {self.e911_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=self.e884_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=self.e912_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=self.e885_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=self.e913_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,36))) {self.guard_e886_c(out.state.begin())} else {self.e886_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,36))) {self.guard_e914_c(out.state.begin())} else {self.e914_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,99|105))) {self.guard_e887_c(out.state.begin())} else {self.e887_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,99|105))) {self.guard_e915_c(out.state.begin())} else {self.e915_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,40))) {self.guard_e888_c(out.state.begin())} else {self.e888_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,40))) {self.guard_e916_c(out.state.begin())} else {self.e916_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} self.restore(mark);break 'choice if let Some((mut child,effects))=best {self.replay_effects(effects);child.diag=diagnostic;child} else {out.ok=false;out.diag=diagnostic;out}; }; out } -fn e870_c(&mut self,state:State)->Step { -let mut out=self.b870_c(state); +fn e898_c(&mut self,state:State)->Step { +let mut out=self.b898_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b870_c(&mut self,mut state:State)->Step { +fn b898_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r97_c(out.state); out } -fn e871_c(&mut self,state:State)->Step { -let mut out=self.b871_c(state); +fn e899_c(&mut self,state:State)->Step { +let mut out=self.b899_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b871_c(&mut self,mut state:State)->Step { +fn b899_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r106_c(out.state); out } -fn e872_c(&mut self,state:State)->Step { -let mut out=self.b872_c(state); +fn e900_c(&mut self,state:State)->Step { +let mut out=self.b900_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b872_c(&mut self,mut state:State)->Step { +fn b900_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r117_c(out.state); out } -fn e873_c(&mut self,state:State)->Step { -let mut out=self.b873_c(state); +fn e901_c(&mut self,state:State)->Step { +let mut out=self.b901_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b873_c(&mut self,mut state:State)->Step { +fn b901_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r31_c(out.state); out } -fn e874_c(&mut self,state:State)->Step { -let mut out=self.b874_c(state); +fn e902_c(&mut self,state:State)->Step { +let mut out=self.b902_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b874_c(&mut self,mut state:State)->Step { +fn b902_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r73_c(out.state); out } -fn e875_c(&mut self,state:State)->Step { -let mut out=self.b875_c(state); +fn e903_c(&mut self,state:State)->Step { +let mut out=self.b903_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b875_c(&mut self,mut state:State)->Step { +fn b903_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r74_c(out.state); out } -fn e876_c(&mut self,state:State)->Step { -let mut out=self.b876_c(state); +fn e904_c(&mut self,state:State)->Step { +let mut out=self.b904_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b876_c(&mut self,mut state:State)->Step { +fn b904_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r75_c(out.state); out } -fn e877_c(&mut self,state:State)->Step { -let mut out=self.b877_c(state); +fn e905_c(&mut self,state:State)->Step { +let mut out=self.b905_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b877_c(&mut self,mut state:State)->Step { +fn b905_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r76_c(out.state); out } -fn e878_c(&mut self,state:State)->Step { -let mut out=self.b878_c(state); +fn e906_c(&mut self,state:State)->Step { +let mut out=self.b906_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b878_c(&mut self,mut state:State)->Step { +fn b906_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r70_c(out.state); out } -fn e879_c(&mut self,state:State)->Step { -let mut out=self.b879_c(state); +fn e907_c(&mut self,state:State)->Step { +let mut out=self.b907_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b879_c(&mut self,mut state:State)->Step { +fn b907_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r71_c(out.state); out } -fn e880_c(&mut self,state:State)->Step { -let mut out=self.b880_c(state); +fn e908_c(&mut self,state:State)->Step { +let mut out=self.b908_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b880_c(&mut self,mut state:State)->Step { +fn b908_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r72_c(out.state); out } -fn e881_c(&mut self,state:State)->Step { -let mut out=self.b881_c(state); +fn e909_c(&mut self,state:State)->Step { +let mut out=self.b909_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b881_c(&mut self,mut state:State)->Step { +fn b909_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r78_c(out.state); out } -fn e882_c(&mut self,state:State)->Step { -let mut out=self.b882_c(state); +fn e910_c(&mut self,state:State)->Step { +let mut out=self.b910_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b882_c(&mut self,mut state:State)->Step { +fn b910_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r79_c(out.state); out } -fn e883_c(&mut self,state:State)->Step { -let mut out=self.b883_c(state); +fn e911_c(&mut self,state:State)->Step { +let mut out=self.b911_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b883_c(&mut self,mut state:State)->Step { +fn b911_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r80_c(out.state); out } -fn e884_c(&mut self,state:State)->Step { -let mut out=self.b884_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e912_c(&mut self,state:State)->Step { +let mut out=self.b912_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,884,98); +out.events=self.relabel_token(out.events,912,98); out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:false,text:true}); } else {self.display_failures(state.consumed.max(state.matched),&["'true'"]);} out } -fn b884_c(&mut self,mut state:State)->Step { +fn b912_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"true",true,92,false,"true"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'true'");} out } -fn e885_c(&mut self,state:State)->Step { -let mut out=self.b885_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e913_c(&mut self,state:State)->Step { +let mut out=self.b913_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,885,98); +out.events=self.relabel_token(out.events,913,98); out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:false,text:true}); } else {self.display_failures(state.consumed.max(state.matched),&["'false'"]);} out } -fn b885_c(&mut self,mut state:State)->Step { +fn b913_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"false",true,60,false,"false"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'false'");} out } -fn e886_c(&mut self,state:State)->Step { -let mut out=self.b886_c(state); +fn e914_c(&mut self,state:State)->Step { +let mut out=self.b914_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b886_c(&mut self,mut state:State)->Step { +fn b914_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r121_c(out.state); out } -fn e887_c(&mut self,state:State)->Step { -let mut out=self.b887_c(state); +fn e915_c(&mut self,state:State)->Step { +let mut out=self.b915_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b887_c(&mut self,mut state:State)->Step { +fn b915_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r36_c(out.state); out } -fn e888_c(&mut self,state:State)->Step { -let mut out=self.b888_c(state); +fn e916_c(&mut self,state:State)->Step { +let mut out=self.b916_c(state); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:true,text:false}); } else {self.display_failures(state.consumed.max(state.matched),&["'('", "')'"]);} out } -fn b888_c(&mut self,mut state:State)->Step { +fn b916_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e889_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e917_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e890_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e918_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e891_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e919_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e889_c(&mut self,state:State)->Step { -let mut out=self.b889_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e917_c(&mut self,state:State)->Step { +let mut out=self.b917_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,889,98); +out.events=self.relabel_token(out.events,917,98); } else {self.display_failures(state.consumed.max(state.matched),&["'('"]);} out } -fn b889_c(&mut self,mut state:State)->Step { +fn b917_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"(",true,4,false,"("); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'('");} out } -fn e890_c(&mut self,state:State)->Step { -let mut out=self.b890_c(state); +fn e918_c(&mut self,state:State)->Step { +let mut out=self.b918_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b890_c(&mut self,mut state:State)->Step { +fn b918_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r94_c(out.state); out } -fn e891_c(&mut self,state:State)->Step { -let mut out=self.b891_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e919_c(&mut self,state:State)->Step { +let mut out=self.b919_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,891,98); +out.events=self.relabel_token(out.events,919,98); } else {self.display_failures(state.consumed.max(state.matched),&["')'"]);} out } -fn b891_c(&mut self,mut state:State)->Step { +fn b919_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,")",true,5,false,")"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"')'");} out } -fn e892_c(&mut self,state:State)->Step { +fn e920_c(&mut self,state:State)->Step { let mark=self.mark(); -let key=Key {expression:892,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} -self.display_enter(state.consumed.max(state.matched));let mut out=self.b892_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +let key=Key {expression:920,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} +self.display_enter(state.consumed.max(state.matched));let mut out=self.b920_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:false,text:false}); } else {self.restore(mark);self.display_failures(state.consumed.max(state.matched),&[]);} if (out.ok && true) || (!out.ok && true) {self.store(key,out,mark);}self.display_leave(); out } -fn b892_c(&mut self,mut state:State)->Step { +fn b920_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e893_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e921_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e894_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e922_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e895_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e923_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e893_c(&mut self,state:State)->Step { -let mut out=self.b893_c(state); +fn e921_c(&mut self,state:State)->Step { +let mut out=self.b921_c(state); if out.ok { -out.events=self.event(Event::Capture {site:186,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:196,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["'false'", "'true'"]);} out } -fn b893_c(&mut self,mut state:State)->Step { +fn b921_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r98_c(out.state); out } -fn e894_c(&mut self,state:State)->Step { -let mut out=self.b894_c(state); +fn e922_c(&mut self,state:State)->Step { +let mut out=self.b922_c(state); if out.ok { -out.events=self.event(Event::Capture {site:187,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:197,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["'!='", "'=='"]);} out } -fn b894_c(&mut self,mut state:State)->Step { +fn b922_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r102_c(out.state); out } -fn e895_c(&mut self,state:State)->Step { -let mut out=self.b895_c(state); +fn e923_c(&mut self,state:State)->Step { +let mut out=self.b923_c(state); if out.ok { -out.events=self.event(Event::Capture {site:188,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:198,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["'false'", "'true'"]);} out } -fn b895_c(&mut self,mut state:State)->Step { +fn b923_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r98_c(out.state); out } -fn e896_c(&mut self,state:State)->Step { +fn e924_c(&mut self,state:State)->Step { let mark=self.mark(); -let key=Key {expression:896,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} -self.display_enter(state.consumed.max(state.matched));let mut out=self.b896_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +let key=Key {expression:924,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} +self.display_enter(state.consumed.max(state.matched));let mut out=self.b924_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { } else {self.restore(mark);self.display_failures(state.consumed.max(state.matched),&[]);} if (out.ok && true) || (!out.ok && true) {self.store(key,out,mark);}self.display_leave(); out } -fn b896_c(&mut self,mut state:State)->Step { +fn b924_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out='choice: {let mark=self.mark();let mut diagnostic=Diag::NONE;let mut best:Option<(Step,[usize;2])>=None; -self.restore(mark);let mut child=self.e897_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=self.e925_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=self.e898_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=self.e926_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=self.e899_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=self.e927_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=self.e900_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=self.e928_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} self.restore(mark);break 'choice if let Some((mut child,effects))=best {self.replay_effects(effects);child.diag=diagnostic;child} else {out.ok=false;out.diag=diagnostic;out}; }; out } -fn e897_c(&mut self,state:State)->Step { -let mut out=self.b897_c(state); +fn e925_c(&mut self,state:State)->Step { +let mut out=self.b925_c(state); if out.ok { -out.events=self.event(Event::Capture {site:189,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:199,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b897_c(&mut self,mut state:State)->Step { +fn b925_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r99_c(out.state); out } -fn e898_c(&mut self,state:State)->Step { -let mut out=self.b898_c(state); +fn e926_c(&mut self,state:State)->Step { +let mut out=self.b926_c(state); if out.ok { -out.events=self.event(Event::Capture {site:190,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:200,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b898_c(&mut self,mut state:State)->Step { +fn b926_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r103_c(out.state); out } -fn e899_c(&mut self,state:State)->Step { -let mut out=self.b899_c(state); +fn e927_c(&mut self,state:State)->Step { +let mut out=self.b927_c(state); if out.ok { -out.events=self.event(Event::Capture {site:191,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:201,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b899_c(&mut self,mut state:State)->Step { +fn b927_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r101_c(out.state); out } -fn e900_c(&mut self,state:State)->Step { -let mut out=self.b900_c(state); +fn e928_c(&mut self,state:State)->Step { +let mut out=self.b928_c(state); if out.ok { -out.events=self.event(Event::Capture {site:192,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:202,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["'false'", "'true'"]);} out } -fn b900_c(&mut self,mut state:State)->Step { +fn b928_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r98_c(out.state); out } -fn e901_c(&mut self,state:State)->Step { +fn e929_c(&mut self,state:State)->Step { let mark=self.mark(); -let key=Key {expression:901,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} -self.display_enter(state.consumed.max(state.matched));let mut out=self.b901_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +let key=Key {expression:929,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} +self.display_enter(state.consumed.max(state.matched));let mut out=self.b929_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:false,text:false}); } else {self.restore(mark);self.display_failures(state.consumed.max(state.matched),&[]);} if (out.ok && true) || (!out.ok && true) {self.store(key,out,mark);}self.display_leave(); out } -fn b901_c(&mut self,mut state:State)->Step { +fn b929_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e902_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e930_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e903_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e931_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e904_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e932_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e902_c(&mut self,state:State)->Step { -let mut out=self.b902_c(state); +fn e930_c(&mut self,state:State)->Step { +let mut out=self.b930_c(state); if out.ok { -out.events=self.event(Event::Capture {site:193,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:203,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b902_c(&mut self,mut state:State)->Step { +fn b930_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r89_c(out.state); out } -fn e903_c(&mut self,state:State)->Step { -let mut out=self.b903_c(state); +fn e931_c(&mut self,state:State)->Step { +let mut out=self.b931_c(state); if out.ok { -out.events=self.event(Event::Capture {site:194,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:204,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["'!='", "'=='"]);} out } -fn b903_c(&mut self,mut state:State)->Step { +fn b931_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r102_c(out.state); out } -fn e904_c(&mut self,state:State)->Step { -let mut out=self.b904_c(state); +fn e932_c(&mut self,state:State)->Step { +let mut out=self.b932_c(state); if out.ok { -out.events=self.event(Event::Capture {site:195,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:205,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b904_c(&mut self,mut state:State)->Step { +fn b932_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r89_c(out.state); out } -fn e905_c(&mut self,state:State)->Step { -let mut out=self.b905_c(state); +fn e933_c(&mut self,state:State)->Step { +let mut out=self.b933_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b905_c(&mut self,mut state:State)->Step { +fn b933_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out='choice: {let mark=self.mark();let mut diagnostic=Diag::NONE;let mut best:Option<(Step,[usize;2])>=None; -self.restore(mark);let mut child=self.e906_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=self.e934_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=self.e907_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=self.e935_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} self.restore(mark);break 'choice if let Some((mut child,effects))=best {self.replay_effects(effects);child.diag=diagnostic;child} else {out.ok=false;out.diag=diagnostic;out}; }; out } -fn e906_c(&mut self,state:State)->Step { -let mut out=self.b906_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e934_c(&mut self,state:State)->Step { +let mut out=self.b934_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,906,102); +out.events=self.relabel_token(out.events,934,102); } else {self.display_failures(state.consumed.max(state.matched),&["'=='"]);} out } -fn b906_c(&mut self,mut state:State)->Step { +fn b934_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"==",true,26,false,"=="); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'=='");} out } -fn e907_c(&mut self,state:State)->Step { -let mut out=self.b907_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e935_c(&mut self,state:State)->Step { +let mut out=self.b935_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,907,102); +out.events=self.relabel_token(out.events,935,102); } else {self.display_failures(state.consumed.max(state.matched),&["'!='"]);} out } -fn b907_c(&mut self,mut state:State)->Step { +fn b935_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"!=",true,0,false,"!="); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'!='");} out } -fn e908_c(&mut self,state:State)->Step { +fn e936_c(&mut self,state:State)->Step { let mark=self.mark(); -let key=Key {expression:908,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} -self.display_enter(state.consumed.max(state.matched));let mut out=self.b908_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +let key=Key {expression:936,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} +self.display_enter(state.consumed.max(state.matched));let mut out=self.b936_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:false,text:false}); } else {self.restore(mark);self.display_failures(state.consumed.max(state.matched),&[]);} if (out.ok && true) || (!out.ok && true) {self.store(key,out,mark);}self.display_leave(); out } -fn b908_c(&mut self,mut state:State)->Step { +fn b936_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e909_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e937_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e910_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e938_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e911_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e939_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e909_c(&mut self,state:State)->Step { -let mut out=self.b909_c(state); +fn e937_c(&mut self,state:State)->Step { +let mut out=self.b937_c(state); if out.ok { -out.events=self.event(Event::Capture {site:196,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:206,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b909_c(&mut self,mut state:State)->Step { +fn b937_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r40_c(out.state); out } -fn e910_c(&mut self,state:State)->Step { -let mut out=self.b910_c(state); +fn e938_c(&mut self,state:State)->Step { +let mut out=self.b938_c(state); if out.ok { -out.events=self.event(Event::Capture {site:197,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:207,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["'!='", "'<'", "'<='", "'=='", "'>'", "'>='"]);} out } -fn b910_c(&mut self,mut state:State)->Step { +fn b938_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r104_c(out.state); out } -fn e911_c(&mut self,state:State)->Step { -let mut out=self.b911_c(state); +fn e939_c(&mut self,state:State)->Step { +let mut out=self.b939_c(state); if out.ok { -out.events=self.event(Event::Capture {site:198,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:208,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b911_c(&mut self,mut state:State)->Step { +fn b939_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r40_c(out.state); out } -fn e912_c(&mut self,state:State)->Step { -let mut out=self.b912_c(state); +fn e940_c(&mut self,state:State)->Step { +let mut out=self.b940_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b912_c(&mut self,mut state:State)->Step { +fn b940_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out='choice: {let mark=self.mark();let mut diagnostic=Diag::NONE;let mut best:Option<(Step,[usize;2])>=None; -self.restore(mark);let mut child=self.e913_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=self.e941_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=self.e914_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=self.e942_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=self.e915_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=self.e943_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=self.e916_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=self.e944_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=self.e917_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=self.e945_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=self.e918_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=self.e946_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} self.restore(mark);break 'choice if let Some((mut child,effects))=best {self.replay_effects(effects);child.diag=diagnostic;child} else {out.ok=false;out.diag=diagnostic;out}; }; out } -fn e913_c(&mut self,state:State)->Step { -let mut out=self.b913_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e941_c(&mut self,state:State)->Step { +let mut out=self.b941_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,913,104); +out.events=self.relabel_token(out.events,941,104); } else {self.display_failures(state.consumed.max(state.matched),&["'=='"]);} out } -fn b913_c(&mut self,mut state:State)->Step { +fn b941_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"==",true,26,false,"=="); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'=='");} out } -fn e914_c(&mut self,state:State)->Step { -let mut out=self.b914_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e942_c(&mut self,state:State)->Step { +let mut out=self.b942_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,914,104); +out.events=self.relabel_token(out.events,942,104); } else {self.display_failures(state.consumed.max(state.matched),&["'!='"]);} out } -fn b914_c(&mut self,mut state:State)->Step { +fn b942_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"!=",true,0,false,"!="); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'!='");} out } -fn e915_c(&mut self,state:State)->Step { -let mut out=self.b915_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e943_c(&mut self,state:State)->Step { +let mut out=self.b943_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,915,104); +out.events=self.relabel_token(out.events,943,104); } else {self.display_failures(state.consumed.max(state.matched),&["'<='"]);} out } -fn b915_c(&mut self,mut state:State)->Step { +fn b943_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"<=",true,24,false,"<="); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'<='");} out } -fn e916_c(&mut self,state:State)->Step { -let mut out=self.b916_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e944_c(&mut self,state:State)->Step { +let mut out=self.b944_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,916,104); +out.events=self.relabel_token(out.events,944,104); } else {self.display_failures(state.consumed.max(state.matched),&["'>='"]);} out } -fn b916_c(&mut self,mut state:State)->Step { +fn b944_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,">=",true,28,false,">="); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'>='");} out } -fn e917_c(&mut self,state:State)->Step { -let mut out=self.b917_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e945_c(&mut self,state:State)->Step { +let mut out=self.b945_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,917,104); +out.events=self.relabel_token(out.events,945,104); } else {self.display_failures(state.consumed.max(state.matched),&["'<'"]);} out } -fn b917_c(&mut self,mut state:State)->Step { +fn b945_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"<",true,23,false,"<"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'<'");} out } -fn e918_c(&mut self,state:State)->Step { -let mut out=self.b918_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e946_c(&mut self,state:State)->Step { +let mut out=self.b946_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,918,104); +out.events=self.relabel_token(out.events,946,104); } else {self.display_failures(state.consumed.max(state.matched),&["'>'"]);} out } -fn b918_c(&mut self,mut state:State)->Step { +fn b946_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,">",true,27,false,">"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'>'");} out } -fn e919_c(&mut self,state:State)->Step { +fn e947_c(&mut self,state:State)->Step { let mark=self.mark(); -let key=Key {expression:919,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} -self.display_enter(state.consumed.max(state.matched));let mut out=self.b919_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +let key=Key {expression:947,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} +self.display_enter(state.consumed.max(state.matched));let mut out=self.b947_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { } else {self.restore(mark);self.display_failures(state.consumed.max(state.matched),&[]);} if (out.ok && true) || (!out.ok && true) {self.store(key,out,mark);}self.display_leave(); out } -fn b919_c(&mut self,mut state:State)->Step { +fn b947_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out='choice: {let mark=self.mark();let mut diagnostic=Diag::NONE;let mut best:Option<(Step,[usize;2])>=None; let ct=self.input.cp_at(self.skip_0::(out.state.begin()).position::()).map(|(c,_)|c); -self.restore(mark);let mut child=self.e920_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=self.e948_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=self.e921_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=self.e949_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=self.e922_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=self.e950_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,101))) {self.guard_e923_c(out.state.begin())} else {self.e923_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,101))) {self.guard_e951_c(out.state.begin())} else {self.e951_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,36))) {self.guard_e924_c(out.state.begin())} else {self.e924_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,36))) {self.guard_e952_c(out.state.begin())} else {self.e952_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,99|105))) {self.guard_e925_c(out.state.begin())} else {self.e925_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,99|105))) {self.guard_e953_c(out.state.begin())} else {self.e953_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} self.restore(mark);break 'choice if let Some((mut child,effects))=best {self.replay_effects(effects);child.diag=diagnostic;child} else {out.ok=false;out.diag=diagnostic;out}; }; out } -fn e920_c(&mut self,state:State)->Step { -let mut out=self.b920_c(state); +fn e948_c(&mut self,state:State)->Step { +let mut out=self.b948_c(state); if out.ok { -out.events=self.event(Event::Capture {site:199,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:209,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b920_c(&mut self,mut state:State)->Step { +fn b948_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r40_c(out.state); out } -fn e921_c(&mut self,state:State)->Step { -let mut out=self.b921_c(state); +fn e949_c(&mut self,state:State)->Step { +let mut out=self.b949_c(state); if out.ok { -out.events=self.event(Event::Capture {site:200,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:210,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b921_c(&mut self,mut state:State)->Step { +fn b949_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r89_c(out.state); out } -fn e922_c(&mut self,state:State)->Step { -let mut out=self.b922_c(state); +fn e950_c(&mut self,state:State)->Step { +let mut out=self.b950_c(state); if out.ok { -out.events=self.event(Event::Capture {site:201,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:211,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b922_c(&mut self,mut state:State)->Step { +fn b950_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r94_c(out.state); out } -fn e923_c(&mut self,state:State)->Step { -let mut out=self.b923_c(state); +fn e951_c(&mut self,state:State)->Step { +let mut out=self.b951_c(state); if out.ok { -out.events=self.event(Event::Capture {site:202,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:212,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["'('", "')'", "'external'"]);} out } -fn b923_c(&mut self,mut state:State)->Step { +fn b951_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r34_c(out.state); out } -fn e924_c(&mut self,state:State)->Step { -let mut out=self.b924_c(state); +fn e952_c(&mut self,state:State)->Step { +let mut out=self.b952_c(state); if out.ok { -out.events=self.event(Event::Capture {site:203,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:213,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["'$'"]);} out } -fn b924_c(&mut self,mut state:State)->Step { +fn b952_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r121_c(out.state); out } -fn e925_c(&mut self,state:State)->Step { -let mut out=self.b925_c(state); +fn e953_c(&mut self,state:State)->Step { +let mut out=self.b953_c(state); if out.ok { -out.events=self.event(Event::Capture {site:204,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:214,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["'('", "')'"]);} out } -fn b925_c(&mut self,mut state:State)->Step { +fn b953_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r36_c(out.state); out } -fn e926_c(&mut self,state:State)->Step { +fn e954_c(&mut self,state:State)->Step { let mark=self.mark(); -let key=Key {expression:926,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} -self.display_enter(state.consumed.max(state.matched));let mut out=self.b926_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +let key=Key {expression:954,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} +self.display_enter(state.consumed.max(state.matched));let mut out=self.b954_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:false,text:false}); } else {self.restore(mark);self.display_failures(state.consumed.max(state.matched),&[]);} if (out.ok && true) || (!out.ok && true) {self.store(key,out,mark);}self.display_leave(); out } -fn b926_c(&mut self,mut state:State)->Step { +fn b954_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e927_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e955_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e928_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e956_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e929_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e957_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e930_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e958_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e931_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e959_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e932_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e960_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e933_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e961_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e934_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e962_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e935_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e963_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e936_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e964_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e937_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e965_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e927_c(&mut self,state:State)->Step { -let mut out=self.b927_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e955_c(&mut self,state:State)->Step { +let mut out=self.b955_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,927,106); +out.events=self.relabel_token(out.events,955,106); } else {self.display_failures(state.consumed.max(state.matched),&["'if'"]);} out } -fn b927_c(&mut self,mut state:State)->Step { +fn b955_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"if",true,63,false,"if"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'if'");} out } -fn e928_c(&mut self,state:State)->Step { -let mut out=self.b928_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e956_c(&mut self,state:State)->Step { +let mut out=self.b956_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,928,106); +out.events=self.relabel_token(out.events,956,106); } else {self.display_failures(state.consumed.max(state.matched),&["'('"]);} out } -fn b928_c(&mut self,mut state:State)->Step { +fn b956_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"(",true,4,false,"("); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'('");} out } -fn e929_c(&mut self,state:State)->Step { -let mut out=self.b929_c(state); +fn e957_c(&mut self,state:State)->Step { +let mut out=self.b957_c(state); if out.ok { -out.events=self.event(Event::Capture {site:205,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:215,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b929_c(&mut self,mut state:State)->Step { +fn b957_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r94_c(out.state); out } -fn e930_c(&mut self,state:State)->Step { -let mut out=self.b930_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e958_c(&mut self,state:State)->Step { +let mut out=self.b958_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,930,106); +out.events=self.relabel_token(out.events,958,106); } else {self.display_failures(state.consumed.max(state.matched),&["')'"]);} out } -fn b930_c(&mut self,mut state:State)->Step { +fn b958_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,")",true,5,false,")"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"')'");} out } -fn e931_c(&mut self,state:State)->Step { -let mut out=self.b931_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e959_c(&mut self,state:State)->Step { +let mut out=self.b959_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,931,106); +out.events=self.relabel_token(out.events,959,106); } else {self.display_failures(state.consumed.max(state.matched),&["'{'"]);} out } -fn b931_c(&mut self,mut state:State)->Step { +fn b959_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"{",true,95,false,"{"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'{'");} out } -fn e932_c(&mut self,state:State)->Step { -let mut out=self.b932_c(state); +fn e960_c(&mut self,state:State)->Step { +let mut out=self.b960_c(state); if out.ok { -out.events=self.event(Event::Capture {site:206,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:216,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b932_c(&mut self,mut state:State)->Step { +fn b960_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r107_c(out.state); out } -fn e933_c(&mut self,state:State)->Step { -let mut out=self.b933_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e961_c(&mut self,state:State)->Step { +let mut out=self.b961_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,933,106); +out.events=self.relabel_token(out.events,961,106); } else {self.display_failures(state.consumed.max(state.matched),&["'}'"]);} out } -fn b933_c(&mut self,mut state:State)->Step { +fn b961_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"}",true,97,false,"}"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'}'");} out } -fn e934_c(&mut self,state:State)->Step { -let mut out=self.b934_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e962_c(&mut self,state:State)->Step { +let mut out=self.b962_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,934,106); +out.events=self.relabel_token(out.events,962,106); } else {self.display_failures(state.consumed.max(state.matched),&["'else'"]);} out } -fn b934_c(&mut self,mut state:State)->Step { +fn b962_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"else",true,55,false,"else"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'else'");} out } -fn e935_c(&mut self,state:State)->Step { -let mut out=self.b935_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e963_c(&mut self,state:State)->Step { +let mut out=self.b963_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,935,106); +out.events=self.relabel_token(out.events,963,106); } else {self.display_failures(state.consumed.max(state.matched),&["'{'"]);} out } -fn b935_c(&mut self,mut state:State)->Step { +fn b963_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"{",true,95,false,"{"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'{'");} out } -fn e936_c(&mut self,state:State)->Step { -let mut out=self.b936_c(state); +fn e964_c(&mut self,state:State)->Step { +let mut out=self.b964_c(state); if out.ok { -out.events=self.event(Event::Capture {site:207,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:217,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b936_c(&mut self,mut state:State)->Step { +fn b964_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r107_c(out.state); out } -fn e937_c(&mut self,state:State)->Step { -let mut out=self.b937_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e965_c(&mut self,state:State)->Step { +let mut out=self.b965_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,937,106); +out.events=self.relabel_token(out.events,965,106); } else {self.display_failures(state.consumed.max(state.matched),&["'}'"]);} out } -fn b937_c(&mut self,mut state:State)->Step { +fn b965_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"}",true,97,false,"}"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'}'");} out } -fn e938_c(&mut self,state:State)->Step { +fn e966_c(&mut self,state:State)->Step { let mark=self.mark(); -let key=Key {expression:938,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} -self.display_enter(state.consumed.max(state.matched));let mut out=self.b938_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +let key=Key {expression:966,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} +self.display_enter(state.consumed.max(state.matched));let mut out=self.b966_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { } else {self.restore(mark);self.display_failures(state.consumed.max(state.matched),&[]);} if (out.ok && true) || (!out.ok && true) {self.store(key,out,mark);}self.display_leave(); out } -fn b938_c(&mut self,mut state:State)->Step { +fn b966_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out='choice: {let mark=self.mark();let mut diagnostic=Diag::NONE;let mut best:Option<(Step,[usize;2])>=None; let ct=self.input.cp_at(self.skip_0::(out.state.begin()).position::()).map(|(c,_)|c); -self.restore(mark);let mut child=self.e939_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=self.e967_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=self.e940_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=self.e968_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=self.e941_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=self.e969_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=self.e942_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=self.e970_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=self.e943_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=self.e971_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=self.e944_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=self.e972_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=self.e945_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=self.e973_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,99|105))) {self.guard_e946_c(out.state.begin())} else {self.e946_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,99|105))) {self.guard_e974_c(out.state.begin())} else {self.e974_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} self.restore(mark);break 'choice if let Some((mut child,effects))=best {self.replay_effects(effects);child.diag=diagnostic;child} else {out.ok=false;out.diag=diagnostic;out}; }; out } -fn e939_c(&mut self,state:State)->Step { -let mut out=self.b939_c(state); +fn e967_c(&mut self,state:State)->Step { +let mut out=self.b967_c(state); if out.ok { -out.events=self.event(Event::Capture {site:208,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:218,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b939_c(&mut self,mut state:State)->Step { +fn b967_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r103_c(out.state); out } -fn e940_c(&mut self,state:State)->Step { -let mut out=self.b940_c(state); +fn e968_c(&mut self,state:State)->Step { +let mut out=self.b968_c(state); if out.ok { -out.events=self.event(Event::Capture {site:209,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:219,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b940_c(&mut self,mut state:State)->Step { +fn b968_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r101_c(out.state); out } -fn e941_c(&mut self,state:State)->Step { -let mut out=self.b941_c(state); +fn e969_c(&mut self,state:State)->Step { +let mut out=self.b969_c(state); if out.ok { -out.events=self.event(Event::Capture {site:210,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:220,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b941_c(&mut self,mut state:State)->Step { +fn b969_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r99_c(out.state); out } -fn e942_c(&mut self,state:State)->Step { -let mut out=self.b942_c(state); +fn e970_c(&mut self,state:State)->Step { +let mut out=self.b970_c(state); if out.ok { -out.events=self.event(Event::Capture {site:211,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:221,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b942_c(&mut self,mut state:State)->Step { +fn b970_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r40_c(out.state); out } -fn e943_c(&mut self,state:State)->Step { -let mut out=self.b943_c(state); +fn e971_c(&mut self,state:State)->Step { +let mut out=self.b971_c(state); if out.ok { -out.events=self.event(Event::Capture {site:212,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:222,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b943_c(&mut self,mut state:State)->Step { +fn b971_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r94_c(out.state); out } -fn e944_c(&mut self,state:State)->Step { -let mut out=self.b944_c(state); +fn e972_c(&mut self,state:State)->Step { +let mut out=self.b972_c(state); if out.ok { -out.events=self.event(Event::Capture {site:213,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:223,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b944_c(&mut self,mut state:State)->Step { +fn b972_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r89_c(out.state); out } -fn e945_c(&mut self,state:State)->Step { -let mut out=self.b945_c(state); +fn e973_c(&mut self,state:State)->Step { +let mut out=self.b973_c(state); if out.ok { -out.events=self.event(Event::Capture {site:214,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:224,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b945_c(&mut self,mut state:State)->Step { +fn b973_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r105_c(out.state); out } -fn e946_c(&mut self,state:State)->Step { -let mut out=self.b946_c(state); +fn e974_c(&mut self,state:State)->Step { +let mut out=self.b974_c(state); if out.ok { -out.events=self.event(Event::Capture {site:215,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:225,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["'('", "')'"]);} out } -fn b946_c(&mut self,mut state:State)->Step { +fn b974_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r36_c(out.state); out } -fn e947_c(&mut self,state:State)->Step { +fn e975_c(&mut self,state:State)->Step { let mark=self.mark(); -let key=Key {expression:947,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} -self.display_enter(state.consumed.max(state.matched));let mut out=self.b947_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +let key=Key {expression:975,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} +self.display_enter(state.consumed.max(state.matched));let mut out=self.b975_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:false,text:false}); } else {self.restore(mark);self.display_failures(state.consumed.max(state.matched),&[]);} if (out.ok && true) || (!out.ok && true) {self.store(key,out,mark);}self.display_leave(); out } -fn b947_c(&mut self,mut state:State)->Step { +fn b975_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e948_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e976_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e949_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e977_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e950_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e978_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e951_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e979_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e952_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e980_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e953_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e981_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e954_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e982_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e948_c(&mut self,state:State)->Step { -let mut out=self.b948_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e976_c(&mut self,state:State)->Step { +let mut out=self.b976_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,948,108); +out.events=self.relabel_token(out.events,976,108); } else {self.display_failures(state.consumed.max(state.matched),&["'('"]);} out } -fn b948_c(&mut self,mut state:State)->Step { +fn b976_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"(",true,4,false,"("); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'('");} out } -fn e949_c(&mut self,state:State)->Step { -let mut out=self.b949_c(state); +fn e977_c(&mut self,state:State)->Step { +let mut out=self.b977_c(state); if out.ok { -out.events=self.event(Event::Capture {site:216,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:226,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b949_c(&mut self,mut state:State)->Step { +fn b977_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r94_c(out.state); out } -fn e950_c(&mut self,state:State)->Step { -let mut out=self.b950_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e978_c(&mut self,state:State)->Step { +let mut out=self.b978_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,950,108); +out.events=self.relabel_token(out.events,978,108); } else {self.display_failures(state.consumed.max(state.matched),&["'?'"]);} out } -fn b950_c(&mut self,mut state:State)->Step { +fn b978_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"?",true,29,false,"?"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'?'");} out } -fn e951_c(&mut self,state:State)->Step { -let mut out=self.b951_c(state); +fn e979_c(&mut self,state:State)->Step { +let mut out=self.b979_c(state); if out.ok { -out.events=self.event(Event::Capture {site:217,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:227,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b951_c(&mut self,mut state:State)->Step { +fn b979_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r107_c(out.state); out } -fn e952_c(&mut self,state:State)->Step { -let mut out=self.b952_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e980_c(&mut self,state:State)->Step { +let mut out=self.b980_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,952,108); +out.events=self.relabel_token(out.events,980,108); } else {self.display_failures(state.consumed.max(state.matched),&["':'"]);} out } -fn b952_c(&mut self,mut state:State)->Step { +fn b980_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,":",true,21,false,":"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"':'");} out } -fn e953_c(&mut self,state:State)->Step { -let mut out=self.b953_c(state); +fn e981_c(&mut self,state:State)->Step { +let mut out=self.b981_c(state); if out.ok { -out.events=self.event(Event::Capture {site:218,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:228,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b953_c(&mut self,mut state:State)->Step { +fn b981_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r107_c(out.state); out } -fn e954_c(&mut self,state:State)->Step { -let mut out=self.b954_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e982_c(&mut self,state:State)->Step { +let mut out=self.b982_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,954,108); +out.events=self.relabel_token(out.events,982,108); } else {self.display_failures(state.consumed.max(state.matched),&["')'"]);} out } -fn b954_c(&mut self,mut state:State)->Step { +fn b982_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,")",true,5,false,")"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"')'");} out } -fn e955_c(&mut self,state:State)->Step { +fn e983_c(&mut self,state:State)->Step { let mark=self.mark(); -let key=Key {expression:955,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} -self.display_enter(state.consumed.max(state.matched));let mut out=self.b955_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +let key=Key {expression:983,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} +self.display_enter(state.consumed.max(state.matched));let mut out=self.b983_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:false,text:false}); } else {self.restore(mark);self.display_failures(state.consumed.max(state.matched),&[]);} if (out.ok && true) || (!out.ok && true) {self.store(key,out,mark);}self.display_leave(); out } -fn b955_c(&mut self,mut state:State)->Step { +fn b983_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e956_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e984_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e957_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e985_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e958_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e986_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e959_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e987_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e963_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e991_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e964_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e992_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e965_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e993_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e956_c(&mut self,state:State)->Step { -let mut out=self.b956_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e984_c(&mut self,state:State)->Step { +let mut out=self.b984_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,956,109); +out.events=self.relabel_token(out.events,984,109); } else {self.display_failures(state.consumed.max(state.matched),&["'match'"]);} out } -fn b956_c(&mut self,mut state:State)->Step { +fn b984_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"match",true,72,false,"match"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'match'");} out } -fn e957_c(&mut self,state:State)->Step { -let mut out=self.b957_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e985_c(&mut self,state:State)->Step { +let mut out=self.b985_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,957,109); +out.events=self.relabel_token(out.events,985,109); } else {self.display_failures(state.consumed.max(state.matched),&["'{'"]);} out } -fn b957_c(&mut self,mut state:State)->Step { +fn b985_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"{",true,95,false,"{"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'{'");} out } -fn e958_c(&mut self,state:State)->Step { -let mut out=self.b958_c(state); +fn e986_c(&mut self,state:State)->Step { +let mut out=self.b986_c(state); if out.ok { -out.events=self.event(Event::Capture {site:219,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:229,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["'->'"]);} out } -fn b958_c(&mut self,mut state:State)->Step { +fn b986_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r110_c(out.state); out } -fn e959_c(&mut self,state:State)->Step { -let mut out=self.b959_c(state); +fn e987_c(&mut self,state:State)->Step { +let mut out=self.b987_c(state); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:false,text:false}); } else {self.display_failures(state.consumed.max(state.matched),&["','"]);} out } -fn b959_c(&mut self,mut state:State)->Step { +fn b987_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out.state=state.begin(); let mut count=0usize;loop {let mark=self.mark();let before=out.state; -let mut child=self.e960_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} +let mut child=self.e988_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} out.events=self.join(out.events,child.events);count+=1; if before.position::()==out.state.position::() {break;} } @@ -16493,325 +16993,325 @@ if false {out.ok=false;out.state=state;let d=self.diag_fail(state.position::Step { -let mut out=self.b960_c(state); +fn e988_c(&mut self,state:State)->Step { +let mut out=self.b988_c(state); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:true,text:false}); } else {self.display_failures(state.consumed.max(state.matched),&["','"]);} out } -fn b960_c(&mut self,mut state:State)->Step { +fn b988_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e961_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e989_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e962_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e990_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e961_c(&mut self,state:State)->Step { -let mut out=self.b961_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e989_c(&mut self,state:State)->Step { +let mut out=self.b989_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,961,109); +out.events=self.relabel_token(out.events,989,109); } else {self.display_failures(state.consumed.max(state.matched),&["','"]);} out } -fn b961_c(&mut self,mut state:State)->Step { +fn b989_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,",",true,8,false,","); if !out.ok {self.display_fail(state.consumed.max(state.matched),"','");} out } -fn e962_c(&mut self,state:State)->Step { -let mut out=self.b962_c(state); +fn e990_c(&mut self,state:State)->Step { +let mut out=self.b990_c(state); if out.ok { -out.events=self.event(Event::Capture {site:220,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:230,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["'->'"]);} out } -fn b962_c(&mut self,mut state:State)->Step { +fn b990_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r110_c(out.state); out } -fn e963_c(&mut self,state:State)->Step { -let mut out=self.b963_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e991_c(&mut self,state:State)->Step { +let mut out=self.b991_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,963,109); +out.events=self.relabel_token(out.events,991,109); } else {self.display_failures(state.consumed.max(state.matched),&["','"]);} out } -fn b963_c(&mut self,mut state:State)->Step { +fn b991_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,",",true,8,false,","); if !out.ok {self.display_fail(state.consumed.max(state.matched),"','");} out } -fn e964_c(&mut self,state:State)->Step { -let mut out=self.b964_c(state); +fn e992_c(&mut self,state:State)->Step { +let mut out=self.b992_c(state); if out.ok { -out.events=self.event(Event::Capture {site:221,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:231,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["'->'", "'default'"]);} out } -fn b964_c(&mut self,mut state:State)->Step { +fn b992_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r111_c(out.state); out } -fn e965_c(&mut self,state:State)->Step { -let mut out=self.b965_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e993_c(&mut self,state:State)->Step { +let mut out=self.b993_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,965,109); +out.events=self.relabel_token(out.events,993,109); } else {self.display_failures(state.consumed.max(state.matched),&["'}'"]);} out } -fn b965_c(&mut self,mut state:State)->Step { +fn b993_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"}",true,97,false,"}"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'}'");} out } -fn e966_c(&mut self,state:State)->Step { +fn e994_c(&mut self,state:State)->Step { let mark=self.mark(); -let key=Key {expression:966,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} -self.display_enter(state.consumed.max(state.matched));let mut out=self.b966_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +let key=Key {expression:994,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} +self.display_enter(state.consumed.max(state.matched));let mut out=self.b994_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:false,text:false}); } else {self.restore(mark);self.display_failures(state.consumed.max(state.matched),&[]);} if (out.ok && true) || (!out.ok && true) {self.store(key,out,mark);}self.display_leave(); out } -fn b966_c(&mut self,mut state:State)->Step { +fn b994_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e967_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e995_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e968_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e996_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e969_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e997_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e967_c(&mut self,state:State)->Step { -let mut out=self.b967_c(state); +fn e995_c(&mut self,state:State)->Step { +let mut out=self.b995_c(state); if out.ok { -out.events=self.event(Event::Capture {site:222,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:232,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b967_c(&mut self,mut state:State)->Step { +fn b995_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r94_c(out.state); out } -fn e968_c(&mut self,state:State)->Step { -let mut out=self.b968_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e996_c(&mut self,state:State)->Step { +let mut out=self.b996_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,968,110); +out.events=self.relabel_token(out.events,996,110); } else {self.display_failures(state.consumed.max(state.matched),&["'->'"]);} out } -fn b968_c(&mut self,mut state:State)->Step { +fn b996_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"->",true,10,false,"->"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'->'");} out } -fn e969_c(&mut self,state:State)->Step { -let mut out=self.b969_c(state); +fn e997_c(&mut self,state:State)->Step { +let mut out=self.b997_c(state); if out.ok { -out.events=self.event(Event::Capture {site:223,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:233,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b969_c(&mut self,mut state:State)->Step { +fn b997_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r112_c(out.state); out } -fn e970_c(&mut self,state:State)->Step { +fn e998_c(&mut self,state:State)->Step { let mark=self.mark(); -let key=Key {expression:970,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} -self.display_enter(state.consumed.max(state.matched));let mut out=self.b970_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +let key=Key {expression:998,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} +self.display_enter(state.consumed.max(state.matched));let mut out=self.b998_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:true,text:false}); } else {self.restore(mark);self.display_failures(state.consumed.max(state.matched),&[]);} if (out.ok && true) || (!out.ok && true) {self.store(key,out,mark);}self.display_leave(); out } -fn b970_c(&mut self,mut state:State)->Step { +fn b998_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e971_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e999_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e972_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e1000_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e973_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e1001_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e971_c(&mut self,state:State)->Step { -let mut out=self.b971_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e999_c(&mut self,state:State)->Step { +let mut out=self.b999_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,971,111); +out.events=self.relabel_token(out.events,999,111); } else {self.display_failures(state.consumed.max(state.matched),&["'default'"]);} out } -fn b971_c(&mut self,mut state:State)->Step { +fn b999_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"default",true,53,false,"default"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'default'");} out } -fn e972_c(&mut self,state:State)->Step { -let mut out=self.b972_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e1000_c(&mut self,state:State)->Step { +let mut out=self.b1000_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,972,111); +out.events=self.relabel_token(out.events,1000,111); } else {self.display_failures(state.consumed.max(state.matched),&["'->'"]);} out } -fn b972_c(&mut self,mut state:State)->Step { +fn b1000_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"->",true,10,false,"->"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'->'");} out } -fn e973_c(&mut self,state:State)->Step { -let mut out=self.b973_c(state); +fn e1001_c(&mut self,state:State)->Step { +let mut out=self.b1001_c(state); if out.ok { -out.events=self.event(Event::Capture {site:224,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:234,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b973_c(&mut self,mut state:State)->Step { +fn b1001_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r112_c(out.state); out } -fn e974_c(&mut self,state:State)->Step { +fn e1002_c(&mut self,state:State)->Step { let mark=self.mark(); -let key=Key {expression:974,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} -self.display_enter(state.consumed.max(state.matched));let mut out=self.b974_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +let key=Key {expression:1002,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} +self.display_enter(state.consumed.max(state.matched));let mut out=self.b1002_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:true,text:false}); } else {self.restore(mark);self.display_failures(state.consumed.max(state.matched),&[]);} if (out.ok && true) || (!out.ok && true) {self.store(key,out,mark);}self.display_leave(); out } -fn b974_c(&mut self,mut state:State)->Step { +fn b1002_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e975_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e1003_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e975_c(&mut self,state:State)->Step { -let mut out=self.b975_c(state); +fn e1003_c(&mut self,state:State)->Step { +let mut out=self.b1003_c(state); if out.ok { -out.events=self.event(Event::Capture {site:225,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:235,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b975_c(&mut self,mut state:State)->Step { +fn b1003_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r40_c(out.state); out } -fn e976_c(&mut self,state:State)->Step { +fn e1004_c(&mut self,state:State)->Step { let mark=self.mark(); -let key=Key {expression:976,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} -self.display_enter(state.consumed.max(state.matched));let mut out=self.b976_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +let key=Key {expression:1004,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} +self.display_enter(state.consumed.max(state.matched));let mut out=self.b1004_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:false,text:false}); } else {self.restore(mark);self.display_failures(state.consumed.max(state.matched),&[]);} if (out.ok && true) || (!out.ok && true) {self.store(key,out,mark);}self.display_leave(); out } -fn b976_c(&mut self,mut state:State)->Step { +fn b1004_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e977_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e1005_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e978_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e1006_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e979_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e1007_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e980_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e1008_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e984_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e1012_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e985_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e1013_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e986_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e1014_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e977_c(&mut self,state:State)->Step { -let mut out=self.b977_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e1005_c(&mut self,state:State)->Step { +let mut out=self.b1005_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,977,113); +out.events=self.relabel_token(out.events,1005,113); } else {self.display_failures(state.consumed.max(state.matched),&["'match'"]);} out } -fn b977_c(&mut self,mut state:State)->Step { +fn b1005_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"match",true,72,false,"match"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'match'");} out } -fn e978_c(&mut self,state:State)->Step { -let mut out=self.b978_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e1006_c(&mut self,state:State)->Step { +let mut out=self.b1006_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,978,113); +out.events=self.relabel_token(out.events,1006,113); } else {self.display_failures(state.consumed.max(state.matched),&["'{'"]);} out } -fn b978_c(&mut self,mut state:State)->Step { +fn b1006_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"{",true,95,false,"{"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'{'");} out } -fn e979_c(&mut self,state:State)->Step { -let mut out=self.b979_c(state); +fn e1007_c(&mut self,state:State)->Step { +let mut out=self.b1007_c(state); if out.ok { -out.events=self.event(Event::Capture {site:226,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:236,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["'->'"]);} out } -fn b979_c(&mut self,mut state:State)->Step { +fn b1007_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r114_c(out.state); out } -fn e980_c(&mut self,state:State)->Step { -let mut out=self.b980_c(state); +fn e1008_c(&mut self,state:State)->Step { +let mut out=self.b1008_c(state); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:false,text:false}); } else {self.display_failures(state.consumed.max(state.matched),&["','"]);} out } -fn b980_c(&mut self,mut state:State)->Step { +fn b1008_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out.state=state.begin(); let mut count=0usize;loop {let mark=self.mark();let before=out.state; -let mut child=self.e981_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} +let mut child=self.e1009_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} out.events=self.join(out.events,child.events);count+=1; if before.position::()==out.state.position::() {break;} } @@ -16820,325 +17320,325 @@ if false {out.ok=false;out.state=state;let d=self.diag_fail(state.position::Step { -let mut out=self.b981_c(state); +fn e1009_c(&mut self,state:State)->Step { +let mut out=self.b1009_c(state); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:true,text:false}); } else {self.display_failures(state.consumed.max(state.matched),&["','"]);} out } -fn b981_c(&mut self,mut state:State)->Step { +fn b1009_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e982_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e1010_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e983_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e1011_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e982_c(&mut self,state:State)->Step { -let mut out=self.b982_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e1010_c(&mut self,state:State)->Step { +let mut out=self.b1010_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,982,113); +out.events=self.relabel_token(out.events,1010,113); } else {self.display_failures(state.consumed.max(state.matched),&["','"]);} out } -fn b982_c(&mut self,mut state:State)->Step { +fn b1010_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,",",true,8,false,","); if !out.ok {self.display_fail(state.consumed.max(state.matched),"','");} out } -fn e983_c(&mut self,state:State)->Step { -let mut out=self.b983_c(state); +fn e1011_c(&mut self,state:State)->Step { +let mut out=self.b1011_c(state); if out.ok { -out.events=self.event(Event::Capture {site:227,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:237,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["'->'"]);} out } -fn b983_c(&mut self,mut state:State)->Step { +fn b1011_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r114_c(out.state); out } -fn e984_c(&mut self,state:State)->Step { -let mut out=self.b984_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e1012_c(&mut self,state:State)->Step { +let mut out=self.b1012_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,984,113); +out.events=self.relabel_token(out.events,1012,113); } else {self.display_failures(state.consumed.max(state.matched),&["','"]);} out } -fn b984_c(&mut self,mut state:State)->Step { +fn b1012_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,",",true,8,false,","); if !out.ok {self.display_fail(state.consumed.max(state.matched),"','");} out } -fn e985_c(&mut self,state:State)->Step { -let mut out=self.b985_c(state); +fn e1013_c(&mut self,state:State)->Step { +let mut out=self.b1013_c(state); if out.ok { -out.events=self.event(Event::Capture {site:228,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:238,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["'->'", "'default'"]);} out } -fn b985_c(&mut self,mut state:State)->Step { +fn b1013_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r115_c(out.state); out } -fn e986_c(&mut self,state:State)->Step { -let mut out=self.b986_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e1014_c(&mut self,state:State)->Step { +let mut out=self.b1014_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,986,113); +out.events=self.relabel_token(out.events,1014,113); } else {self.display_failures(state.consumed.max(state.matched),&["'}'"]);} out } -fn b986_c(&mut self,mut state:State)->Step { +fn b1014_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"}",true,97,false,"}"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'}'");} out } -fn e987_c(&mut self,state:State)->Step { +fn e1015_c(&mut self,state:State)->Step { let mark=self.mark(); -let key=Key {expression:987,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} -self.display_enter(state.consumed.max(state.matched));let mut out=self.b987_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +let key=Key {expression:1015,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} +self.display_enter(state.consumed.max(state.matched));let mut out=self.b1015_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:false,text:false}); } else {self.restore(mark);self.display_failures(state.consumed.max(state.matched),&[]);} if (out.ok && true) || (!out.ok && true) {self.store(key,out,mark);}self.display_leave(); out } -fn b987_c(&mut self,mut state:State)->Step { +fn b1015_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e988_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e1016_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e989_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e1017_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e990_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e1018_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e988_c(&mut self,state:State)->Step { -let mut out=self.b988_c(state); +fn e1016_c(&mut self,state:State)->Step { +let mut out=self.b1016_c(state); if out.ok { -out.events=self.event(Event::Capture {site:229,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:239,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b988_c(&mut self,mut state:State)->Step { +fn b1016_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r94_c(out.state); out } -fn e989_c(&mut self,state:State)->Step { -let mut out=self.b989_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e1017_c(&mut self,state:State)->Step { +let mut out=self.b1017_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,989,114); +out.events=self.relabel_token(out.events,1017,114); } else {self.display_failures(state.consumed.max(state.matched),&["'->'"]);} out } -fn b989_c(&mut self,mut state:State)->Step { +fn b1017_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"->",true,10,false,"->"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'->'");} out } -fn e990_c(&mut self,state:State)->Step { -let mut out=self.b990_c(state); +fn e1018_c(&mut self,state:State)->Step { +let mut out=self.b1018_c(state); if out.ok { -out.events=self.event(Event::Capture {site:230,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:240,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b990_c(&mut self,mut state:State)->Step { +fn b1018_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r116_c(out.state); out } -fn e991_c(&mut self,state:State)->Step { +fn e1019_c(&mut self,state:State)->Step { let mark=self.mark(); -let key=Key {expression:991,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} -self.display_enter(state.consumed.max(state.matched));let mut out=self.b991_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +let key=Key {expression:1019,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} +self.display_enter(state.consumed.max(state.matched));let mut out=self.b1019_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:true,text:false}); } else {self.restore(mark);self.display_failures(state.consumed.max(state.matched),&[]);} if (out.ok && true) || (!out.ok && true) {self.store(key,out,mark);}self.display_leave(); out } -fn b991_c(&mut self,mut state:State)->Step { +fn b1019_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e992_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e1020_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e993_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e1021_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e994_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e1022_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e992_c(&mut self,state:State)->Step { -let mut out=self.b992_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e1020_c(&mut self,state:State)->Step { +let mut out=self.b1020_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,992,115); +out.events=self.relabel_token(out.events,1020,115); } else {self.display_failures(state.consumed.max(state.matched),&["'default'"]);} out } -fn b992_c(&mut self,mut state:State)->Step { +fn b1020_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"default",true,53,false,"default"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'default'");} out } -fn e993_c(&mut self,state:State)->Step { -let mut out=self.b993_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e1021_c(&mut self,state:State)->Step { +let mut out=self.b1021_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,993,115); +out.events=self.relabel_token(out.events,1021,115); } else {self.display_failures(state.consumed.max(state.matched),&["'->'"]);} out } -fn b993_c(&mut self,mut state:State)->Step { +fn b1021_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"->",true,10,false,"->"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'->'");} out } -fn e994_c(&mut self,state:State)->Step { -let mut out=self.b994_c(state); +fn e1022_c(&mut self,state:State)->Step { +let mut out=self.b1022_c(state); if out.ok { -out.events=self.event(Event::Capture {site:231,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:241,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b994_c(&mut self,mut state:State)->Step { +fn b1022_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r116_c(out.state); out } -fn e995_c(&mut self,state:State)->Step { +fn e1023_c(&mut self,state:State)->Step { let mark=self.mark(); -let key=Key {expression:995,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} -self.display_enter(state.consumed.max(state.matched));let mut out=self.b995_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +let key=Key {expression:1023,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} +self.display_enter(state.consumed.max(state.matched));let mut out=self.b1023_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:true,text:false}); } else {self.restore(mark);self.display_failures(state.consumed.max(state.matched),&[]);} if (out.ok && true) || (!out.ok && true) {self.store(key,out,mark);}self.display_leave(); out } -fn b995_c(&mut self,mut state:State)->Step { +fn b1023_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e996_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e1024_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e996_c(&mut self,state:State)->Step { -let mut out=self.b996_c(state); +fn e1024_c(&mut self,state:State)->Step { +let mut out=self.b1024_c(state); if out.ok { -out.events=self.event(Event::Capture {site:232,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:242,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b996_c(&mut self,mut state:State)->Step { +fn b1024_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r89_c(out.state); out } -fn e997_c(&mut self,state:State)->Step { +fn e1025_c(&mut self,state:State)->Step { let mark=self.mark(); -let key=Key {expression:997,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} -self.display_enter(state.consumed.max(state.matched));let mut out=self.b997_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +let key=Key {expression:1025,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} +self.display_enter(state.consumed.max(state.matched));let mut out=self.b1025_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:false,text:false}); } else {self.restore(mark);self.display_failures(state.consumed.max(state.matched),&[]);} if (out.ok && true) || (!out.ok && true) {self.store(key,out,mark);}self.display_leave(); out } -fn b997_c(&mut self,mut state:State)->Step { +fn b1025_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e998_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e1026_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e999_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e1027_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e1000_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e1028_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e1001_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e1029_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e1005_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e1033_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e1006_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e1034_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e1007_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e1035_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e998_c(&mut self,state:State)->Step { -let mut out=self.b998_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e1026_c(&mut self,state:State)->Step { +let mut out=self.b1026_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,998,117); +out.events=self.relabel_token(out.events,1026,117); } else {self.display_failures(state.consumed.max(state.matched),&["'match'"]);} out } -fn b998_c(&mut self,mut state:State)->Step { +fn b1026_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"match",true,72,false,"match"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'match'");} out } -fn e999_c(&mut self,state:State)->Step { -let mut out=self.b999_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e1027_c(&mut self,state:State)->Step { +let mut out=self.b1027_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,999,117); +out.events=self.relabel_token(out.events,1027,117); } else {self.display_failures(state.consumed.max(state.matched),&["'{'"]);} out } -fn b999_c(&mut self,mut state:State)->Step { +fn b1027_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"{",true,95,false,"{"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'{'");} out } -fn e1000_c(&mut self,state:State)->Step { -let mut out=self.b1000_c(state); +fn e1028_c(&mut self,state:State)->Step { +let mut out=self.b1028_c(state); if out.ok { -out.events=self.event(Event::Capture {site:233,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:243,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["'->'"]);} out } -fn b1000_c(&mut self,mut state:State)->Step { +fn b1028_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r118_c(out.state); out } -fn e1001_c(&mut self,state:State)->Step { -let mut out=self.b1001_c(state); +fn e1029_c(&mut self,state:State)->Step { +let mut out=self.b1029_c(state); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:false,text:false}); } else {self.display_failures(state.consumed.max(state.matched),&["','"]);} out } -fn b1001_c(&mut self,mut state:State)->Step { +fn b1029_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out.state=state.begin(); let mut count=0usize;loop {let mark=self.mark();let before=out.state; -let mut child=self.e1002_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} +let mut child=self.e1030_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} out.events=self.join(out.events,child.events);count+=1; if before.position::()==out.state.position::() {break;} } @@ -17147,303 +17647,303 @@ if false {out.ok=false;out.state=state;let d=self.diag_fail(state.position::Step { -let mut out=self.b1002_c(state); +fn e1030_c(&mut self,state:State)->Step { +let mut out=self.b1030_c(state); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:true,text:false}); } else {self.display_failures(state.consumed.max(state.matched),&["','"]);} out } -fn b1002_c(&mut self,mut state:State)->Step { +fn b1030_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e1003_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e1031_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e1004_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e1032_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e1003_c(&mut self,state:State)->Step { -let mut out=self.b1003_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e1031_c(&mut self,state:State)->Step { +let mut out=self.b1031_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,1003,117); +out.events=self.relabel_token(out.events,1031,117); } else {self.display_failures(state.consumed.max(state.matched),&["','"]);} out } -fn b1003_c(&mut self,mut state:State)->Step { +fn b1031_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,",",true,8,false,","); if !out.ok {self.display_fail(state.consumed.max(state.matched),"','");} out } -fn e1004_c(&mut self,state:State)->Step { -let mut out=self.b1004_c(state); +fn e1032_c(&mut self,state:State)->Step { +let mut out=self.b1032_c(state); if out.ok { -out.events=self.event(Event::Capture {site:234,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:244,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["'->'"]);} out } -fn b1004_c(&mut self,mut state:State)->Step { +fn b1032_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r118_c(out.state); out } -fn e1005_c(&mut self,state:State)->Step { -let mut out=self.b1005_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e1033_c(&mut self,state:State)->Step { +let mut out=self.b1033_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,1005,117); +out.events=self.relabel_token(out.events,1033,117); } else {self.display_failures(state.consumed.max(state.matched),&["','"]);} out } -fn b1005_c(&mut self,mut state:State)->Step { +fn b1033_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,",",true,8,false,","); if !out.ok {self.display_fail(state.consumed.max(state.matched),"','");} out } -fn e1006_c(&mut self,state:State)->Step { -let mut out=self.b1006_c(state); +fn e1034_c(&mut self,state:State)->Step { +let mut out=self.b1034_c(state); if out.ok { -out.events=self.event(Event::Capture {site:235,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:245,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["'->'", "'default'"]);} out } -fn b1006_c(&mut self,mut state:State)->Step { +fn b1034_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r119_c(out.state); out } -fn e1007_c(&mut self,state:State)->Step { -let mut out=self.b1007_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e1035_c(&mut self,state:State)->Step { +let mut out=self.b1035_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,1007,117); +out.events=self.relabel_token(out.events,1035,117); } else {self.display_failures(state.consumed.max(state.matched),&["'}'"]);} out } -fn b1007_c(&mut self,mut state:State)->Step { +fn b1035_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"}",true,97,false,"}"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'}'");} out } -fn e1008_c(&mut self,state:State)->Step { +fn e1036_c(&mut self,state:State)->Step { let mark=self.mark(); -let key=Key {expression:1008,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} -self.display_enter(state.consumed.max(state.matched));let mut out=self.b1008_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +let key=Key {expression:1036,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} +self.display_enter(state.consumed.max(state.matched));let mut out=self.b1036_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:false,text:false}); } else {self.restore(mark);self.display_failures(state.consumed.max(state.matched),&[]);} if (out.ok && true) || (!out.ok && true) {self.store(key,out,mark);}self.display_leave(); out } -fn b1008_c(&mut self,mut state:State)->Step { +fn b1036_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e1009_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e1037_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e1010_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e1038_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e1011_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e1039_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e1009_c(&mut self,state:State)->Step { -let mut out=self.b1009_c(state); +fn e1037_c(&mut self,state:State)->Step { +let mut out=self.b1037_c(state); if out.ok { -out.events=self.event(Event::Capture {site:236,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:246,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b1009_c(&mut self,mut state:State)->Step { +fn b1037_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r94_c(out.state); out } -fn e1010_c(&mut self,state:State)->Step { -let mut out=self.b1010_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e1038_c(&mut self,state:State)->Step { +let mut out=self.b1038_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,1010,118); +out.events=self.relabel_token(out.events,1038,118); } else {self.display_failures(state.consumed.max(state.matched),&["'->'"]);} out } -fn b1010_c(&mut self,mut state:State)->Step { +fn b1038_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"->",true,10,false,"->"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'->'");} out } -fn e1011_c(&mut self,state:State)->Step { -let mut out=self.b1011_c(state); +fn e1039_c(&mut self,state:State)->Step { +let mut out=self.b1039_c(state); if out.ok { -out.events=self.event(Event::Capture {site:237,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:247,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b1011_c(&mut self,mut state:State)->Step { +fn b1039_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r120_c(out.state); out } -fn e1012_c(&mut self,state:State)->Step { +fn e1040_c(&mut self,state:State)->Step { let mark=self.mark(); -let key=Key {expression:1012,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} -self.display_enter(state.consumed.max(state.matched));let mut out=self.b1012_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +let key=Key {expression:1040,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} +self.display_enter(state.consumed.max(state.matched));let mut out=self.b1040_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:true,text:false}); } else {self.restore(mark);self.display_failures(state.consumed.max(state.matched),&[]);} if (out.ok && true) || (!out.ok && true) {self.store(key,out,mark);}self.display_leave(); out } -fn b1012_c(&mut self,mut state:State)->Step { +fn b1040_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e1013_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e1041_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e1014_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e1042_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e1015_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e1043_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e1013_c(&mut self,state:State)->Step { -let mut out=self.b1013_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e1041_c(&mut self,state:State)->Step { +let mut out=self.b1041_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,1013,119); +out.events=self.relabel_token(out.events,1041,119); } else {self.display_failures(state.consumed.max(state.matched),&["'default'"]);} out } -fn b1013_c(&mut self,mut state:State)->Step { +fn b1041_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"default",true,53,false,"default"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'default'");} out } -fn e1014_c(&mut self,state:State)->Step { -let mut out=self.b1014_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e1042_c(&mut self,state:State)->Step { +let mut out=self.b1042_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,1014,119); +out.events=self.relabel_token(out.events,1042,119); } else {self.display_failures(state.consumed.max(state.matched),&["'->'"]);} out } -fn b1014_c(&mut self,mut state:State)->Step { +fn b1042_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"->",true,10,false,"->"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'->'");} out } -fn e1015_c(&mut self,state:State)->Step { -let mut out=self.b1015_c(state); +fn e1043_c(&mut self,state:State)->Step { +let mut out=self.b1043_c(state); if out.ok { -out.events=self.event(Event::Capture {site:238,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:248,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b1015_c(&mut self,mut state:State)->Step { +fn b1043_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r120_c(out.state); out } -fn e1016_c(&mut self,state:State)->Step { +fn e1044_c(&mut self,state:State)->Step { let mark=self.mark(); -let key=Key {expression:1016,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} -self.display_enter(state.consumed.max(state.matched));let mut out=self.b1016_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +let key=Key {expression:1044,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} +self.display_enter(state.consumed.max(state.matched));let mut out=self.b1044_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:true,text:false}); } else {self.restore(mark);self.display_failures(state.consumed.max(state.matched),&[]);} if (out.ok && true) || (!out.ok && true) {self.store(key,out,mark);}self.display_leave(); out } -fn b1016_c(&mut self,mut state:State)->Step { +fn b1044_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e1017_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e1045_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e1017_c(&mut self,state:State)->Step { -let mut out=self.b1017_c(state); +fn e1045_c(&mut self,state:State)->Step { +let mut out=self.b1045_c(state); if out.ok { -out.events=self.event(Event::Capture {site:239,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:249,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b1017_c(&mut self,mut state:State)->Step { +fn b1045_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r94_c(out.state); out } -fn e1018_c(&mut self,state:State)->Step { +fn e1046_c(&mut self,state:State)->Step { let mark=self.mark(); -let key=Key {expression:1018,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} -self.display_enter(state.consumed.max(state.matched));let mut out=self.b1018_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +let key=Key {expression:1046,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} +self.display_enter(state.consumed.max(state.matched));let mut out=self.b1046_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { } else {self.restore(mark);self.display_failures(state.consumed.max(state.matched),&[]);} if (out.ok && true) || (!out.ok && true) {self.store(key,out,mark);}self.display_leave(); out } -fn b1018_c(&mut self,mut state:State)->Step { +fn b1046_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e1019_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e1047_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e1020_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e1048_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e1021_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e1049_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e1019_c(&mut self,state:State)->Step { -let mut out=self.b1019_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e1047_c(&mut self,state:State)->Step { +let mut out=self.b1047_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,1019,121); +out.events=self.relabel_token(out.events,1047,121); } else {self.display_failures(state.consumed.max(state.matched),&["'$'"]);} out } -fn b1019_c(&mut self,mut state:State)->Step { +fn b1047_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"$",true,2,false,"$"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'$'");} out } -fn e1020_c(&mut self,state:State)->Step { -let mut out=self.b1020_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e1048_c(&mut self,state:State)->Step { +let mut out=self.b1048_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,1020,121); -out.events=self.event(Event::Capture {site:240,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.relabel_token(out.events,1048,121); +out.events=self.event(Event::Capture {site:250,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["IDENTIFIERParser", "__CaptureSite"]);} out } -fn b1020_c(&mut self,mut state:State)->Step { +fn b1048_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.token_1::(out.state,"IDENTIFIER","IDENTIFIERParser"); out } -fn e1021_c(&mut self,state:State)->Step { -let mut out=self.b1021_c(state); +fn e1049_c(&mut self,state:State)->Step { +let mut out=self.b1049_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&["Optional"]);} out } -fn b1021_c(&mut self,mut state:State)->Step { +fn b1049_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out.state=state.begin(); let mut count=0usize;loop {let mark=self.mark();let before=out.state; -let mut child=self.e1022_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} +let mut child=self.e1050_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} out.events=self.join(out.events,child.events);count+=1; if before.position::()==out.state.position::() {break;} if count>=1 {break;} @@ -17453,35 +17953,35 @@ if count>1 {out.ok=false;out.state=state;let d=self.diag_fail(state.position::Step { -let mut out=self.b1022_c(state); +fn e1050_c(&mut self,state:State)->Step { +let mut out=self.b1050_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&["'as'"]);} out } -fn b1022_c(&mut self,mut state:State)->Step { +fn b1050_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e1023_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e1051_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e1025_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e1053_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e1023_c(&mut self,state:State)->Step { -let mut out=self.b1023_c(state); +fn e1051_c(&mut self,state:State)->Step { +let mut out=self.b1051_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&["'as'"]);} out } -fn b1023_c(&mut self,mut state:State)->Step { +fn b1051_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out.state=state.begin(); let mut count=0usize;loop {let mark=self.mark();let before=out.state; -let mut child=self.e1024_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} +let mut child=self.e1052_c(out.state);out.diag=self.diag_join(out.diag,child.diag);out.state=child.state;if !child.ok {self.restore(mark);break;} out.events=self.join(out.events,child.events);count+=1; if before.position::()==out.state.position::() {break;} if count>=1 {break;} @@ -17491,344 +17991,593 @@ if count>1 {out.ok=false;out.state=state;let d=self.diag_fail(state.position::Step { -let mut out=self.b1024_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e1052_c(&mut self,state:State)->Step { +let mut out=self.b1052_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,1024,121); +out.events=self.relabel_token(out.events,1052,121); } else {self.display_failures(state.consumed.max(state.matched),&["'as'"]);} out } -fn b1024_c(&mut self,mut state:State)->Step { +fn b1052_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"as",true,47,false,"as"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'as'");} out } -fn e1025_c(&mut self,state:State)->Step { -let mut out=self.b1025_c(state); +fn e1053_c(&mut self,state:State)->Step { +let mut out=self.b1053_c(state); if out.ok { -out.events=self.event(Event::Capture {site:241,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:251,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["'Boolean'", "'Float'", "'Number'", "'Object'", "'String'", "'boolean'", "'float'", "'number'", "'object'", "'string'"]);} out } -fn b1025_c(&mut self,mut state:State)->Step { +fn b1053_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r122_c(out.state); out } -fn e1026_c(&mut self,state:State)->Step { -let mut out=self.b1026_c(state); +fn e1054_c(&mut self,state:State)->Step { +let mut out=self.b1054_c(state); if out.ok { } else {self.display_failures(state.consumed.max(state.matched),&[]);} out } -fn b1026_c(&mut self,mut state:State)->Step { +fn b1054_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out='choice: {let mark=self.mark();let mut diagnostic=Diag::NONE;let mut best:Option<(Step,[usize;2])>=None; -self.restore(mark);let mut child=self.e1027_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=self.e1055_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=self.e1028_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=self.e1056_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=self.e1029_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=self.e1057_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=self.e1030_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=self.e1058_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=self.e1031_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=self.e1059_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=self.e1032_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=self.e1060_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=self.e1033_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=self.e1061_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=self.e1034_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=self.e1062_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=self.e1035_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=self.e1063_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=self.e1036_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=self.e1064_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} self.restore(mark);break 'choice if let Some((mut child,effects))=best {self.replay_effects(effects);child.diag=diagnostic;child} else {out.ok=false;out.diag=diagnostic;out}; }; out } -fn e1027_c(&mut self,state:State)->Step { -let mut out=self.b1027_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e1055_c(&mut self,state:State)->Step { +let mut out=self.b1055_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,1027,122); +out.events=self.relabel_token(out.events,1055,122); } else {self.display_failures(state.consumed.max(state.matched),&["'number'"]);} out } -fn b1027_c(&mut self,mut state:State)->Step { +fn b1055_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"number",true,76,false,"number"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'number'");} out } -fn e1028_c(&mut self,state:State)->Step { -let mut out=self.b1028_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e1056_c(&mut self,state:State)->Step { +let mut out=self.b1056_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,1028,122); +out.events=self.relabel_token(out.events,1056,122); } else {self.display_failures(state.consumed.max(state.matched),&["'Number'"]);} out } -fn b1028_c(&mut self,mut state:State)->Step { +fn b1056_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"Number",true,35,false,"Number"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'Number'");} out } -fn e1029_c(&mut self,state:State)->Step { -let mut out=self.b1029_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e1057_c(&mut self,state:State)->Step { +let mut out=self.b1057_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,1029,122); +out.events=self.relabel_token(out.events,1057,122); } else {self.display_failures(state.consumed.max(state.matched),&["'float'"]);} out } -fn b1029_c(&mut self,mut state:State)->Step { +fn b1057_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"float",true,61,false,"float"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'float'");} out } -fn e1030_c(&mut self,state:State)->Step { -let mut out=self.b1030_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e1058_c(&mut self,state:State)->Step { +let mut out=self.b1058_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,1030,122); +out.events=self.relabel_token(out.events,1058,122); } else {self.display_failures(state.consumed.max(state.matched),&["'Float'"]);} out } -fn b1030_c(&mut self,mut state:State)->Step { +fn b1058_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"Float",true,33,false,"Float"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'Float'");} out } -fn e1031_c(&mut self,state:State)->Step { -let mut out=self.b1031_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e1059_c(&mut self,state:State)->Step { +let mut out=self.b1059_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,1031,122); +out.events=self.relabel_token(out.events,1059,122); } else {self.display_failures(state.consumed.max(state.matched),&["'string'"]);} out } -fn b1031_c(&mut self,mut state:State)->Step { +fn b1059_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"string",true,86,false,"string"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'string'");} out } -fn e1032_c(&mut self,state:State)->Step { -let mut out=self.b1032_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e1060_c(&mut self,state:State)->Step { +let mut out=self.b1060_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,1032,122); +out.events=self.relabel_token(out.events,1060,122); } else {self.display_failures(state.consumed.max(state.matched),&["'String'"]);} out } -fn b1032_c(&mut self,mut state:State)->Step { +fn b1060_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"String",true,39,false,"String"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'String'");} out } -fn e1033_c(&mut self,state:State)->Step { -let mut out=self.b1033_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e1061_c(&mut self,state:State)->Step { +let mut out=self.b1061_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,1033,122); +out.events=self.relabel_token(out.events,1061,122); } else {self.display_failures(state.consumed.max(state.matched),&["'boolean'"]);} out } -fn b1033_c(&mut self,mut state:State)->Step { +fn b1061_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"boolean",true,48,false,"boolean"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'boolean'");} out } -fn e1034_c(&mut self,state:State)->Step { -let mut out=self.b1034_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e1062_c(&mut self,state:State)->Step { +let mut out=self.b1062_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,1034,122); +out.events=self.relabel_token(out.events,1062,122); } else {self.display_failures(state.consumed.max(state.matched),&["'Boolean'"]);} out } -fn b1034_c(&mut self,mut state:State)->Step { +fn b1062_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"Boolean",true,31,false,"Boolean"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'Boolean'");} out } -fn e1035_c(&mut self,state:State)->Step { -let mut out=self.b1035_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e1063_c(&mut self,state:State)->Step { +let mut out=self.b1063_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,1035,122); +out.events=self.relabel_token(out.events,1063,122); } else {self.display_failures(state.consumed.max(state.matched),&["'object'"]);} out } -fn b1035_c(&mut self,mut state:State)->Step { +fn b1063_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"object",true,77,false,"object"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'object'");} out } -fn e1036_c(&mut self,state:State)->Step { -let mut out=self.b1036_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e1064_c(&mut self,state:State)->Step { +let mut out=self.b1064_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,1036,122); +out.events=self.relabel_token(out.events,1064,122); } else {self.display_failures(state.consumed.max(state.matched),&["'Object'"]);} out } -fn b1036_c(&mut self,mut state:State)->Step { +fn b1064_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"Object",true,36,false,"Object"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'Object'");} out } -fn e1037_c(&mut self,state:State)->Step { +fn e1065_c(&mut self,state:State)->Step { let mark=self.mark(); -let key=Key {expression:1037,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} -self.display_enter(state.consumed.max(state.matched));let mut out=self.b1037_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +let key=Key {expression:1065,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} +self.display_enter(state.consumed.max(state.matched));let mut out=self.b1065_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { } else {self.restore(mark);self.display_failures(state.consumed.max(state.matched),&[]);} if (out.ok && true) || (!out.ok && true) {self.store(key,out,mark);}self.display_leave(); out } -fn b1037_c(&mut self,mut state:State)->Step { +fn b1065_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out='choice: {let mark=self.mark();let mut diagnostic=Diag::NONE;let mut best:Option<(Step,[usize;2])>=None; let ct=self.input.cp_at(self.skip_0::(out.state.begin()).position::()).map(|(c,_)|c); -self.restore(mark);let mut child=self.e1038_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=self.e1066_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=self.e1039_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=self.e1067_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=self.e1040_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=self.e1068_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=self.e1041_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=self.e1069_c(out.state.begin());diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,99|105))) {self.guard_e1042_c(out.state.begin())} else {self.e1042_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,99|105))) {self.guard_e1070_c(out.state.begin())} else {self.e1070_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} -self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,40))) {self.guard_e1043_c(out.state.begin())} else {self.e1043_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); +self.restore(mark);let mut child=if self.options.predict && !out.state.invert && !(ct.is_some_and(|c| matches!(c as u32,40))) {self.guard_e1071_c(out.state.begin())} else {self.e1071_c(out.state.begin())};diagnostic=self.diag_join(diagnostic,child.diag); if child.ok {child.state=out.state.commit(child.state);child.diag=diagnostic;break 'choice child;} self.restore(mark);break 'choice if let Some((mut child,effects))=best {self.replay_effects(effects);child.diag=diagnostic;child} else {out.ok=false;out.diag=diagnostic;out}; }; out } -fn e1038_c(&mut self,state:State)->Step { -let mut out=self.b1038_c(state); +fn e1066_c(&mut self,state:State)->Step { +let mut out=self.b1066_c(state); if out.ok { -out.events=self.event(Event::Capture {site:242,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:252,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b1038_c(&mut self,mut state:State)->Step { +fn b1066_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r40_c(out.state); out } -fn e1039_c(&mut self,state:State)->Step { -let mut out=self.b1039_c(state); +fn e1067_c(&mut self,state:State)->Step { +let mut out=self.b1067_c(state); if out.ok { -out.events=self.event(Event::Capture {site:243,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:253,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b1039_c(&mut self,mut state:State)->Step { +fn b1067_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r94_c(out.state); out } -fn e1040_c(&mut self,state:State)->Step { -let mut out=self.b1040_c(state); +fn e1068_c(&mut self,state:State)->Step { +let mut out=self.b1068_c(state); if out.ok { -out.events=self.event(Event::Capture {site:244,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:254,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b1040_c(&mut self,mut state:State)->Step { +fn b1068_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r89_c(out.state); out } -fn e1041_c(&mut self,state:State)->Step { -let mut out=self.b1041_c(state); +fn e1069_c(&mut self,state:State)->Step { +let mut out=self.b1069_c(state); if out.ok { -out.events=self.event(Event::Capture {site:245,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:255,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b1041_c(&mut self,mut state:State)->Step { +fn b1069_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r105_c(out.state); out } -fn e1042_c(&mut self,state:State)->Step { -let mut out=self.b1042_c(state); +fn e1070_c(&mut self,state:State)->Step { +let mut out=self.b1070_c(state); if out.ok { -out.events=self.event(Event::Capture {site:246,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:256,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["'('", "')'"]);} out } -fn b1042_c(&mut self,mut state:State)->Step { +fn b1070_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r36_c(out.state); out } -fn e1043_c(&mut self,state:State)->Step { -let mut out=self.b1043_c(state); +fn e1071_c(&mut self,state:State)->Step { +let mut out=self.b1071_c(state); if out.ok { out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:true,text:false}); } else {self.display_failures(state.consumed.max(state.matched),&["'('", "')'"]);} out } -fn b1043_c(&mut self,mut state:State)->Step { +fn b1071_c(&mut self,mut state:State)->Step { state.reset=false; let mut out=Step::yes(state); out.state=state.begin(); let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e1044_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e1072_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e1045_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e1073_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); -let child=self.e1046_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let child=self.e1074_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); out.state=if out.ok {state.commit(out.state)} else {state}; out } -fn e1044_c(&mut self,state:State)->Step { -let mut out=self.b1044_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e1072_c(&mut self,state:State)->Step { +let mut out=self.b1072_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,1044,123); +out.events=self.relabel_token(out.events,1072,123); } else {self.display_failures(state.consumed.max(state.matched),&["'('"]);} out } -fn b1044_c(&mut self,mut state:State)->Step { +fn b1072_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,"(",true,4,false,"("); if !out.ok {self.display_fail(state.consumed.max(state.matched),"'('");} out } -fn e1045_c(&mut self,state:State)->Step { -let mut out=self.b1045_c(state); +fn e1073_c(&mut self,state:State)->Step { +let mut out=self.b1073_c(state); if out.ok { -out.events=self.event(Event::Capture {site:247,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +out.events=self.event(Event::Capture {site:257,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); } else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} out } -fn b1045_c(&mut self,mut state:State)->Step { +fn b1073_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.r123_c(out.state); out } -fn e1046_c(&mut self,state:State)->Step { -let mut out=self.b1046_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +fn e1074_c(&mut self,state:State)->Step { +let mut out=self.b1074_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); if out.ok { -out.events=self.relabel_token(out.events,1046,123); +out.events=self.relabel_token(out.events,1074,123); } else {self.display_failures(state.consumed.max(state.matched),&["')'"]);} out } -fn b1046_c(&mut self,mut state:State)->Step { +fn b1074_c(&mut self,mut state:State)->Step { +let mut out=Step::yes(state); +out=self.literal::(out.state,")",true,5,false,")"); +if !out.ok {self.display_fail(state.consumed.max(state.matched),"')'");} +out +} +fn e1075_c(&mut self,state:State)->Step { +let mark=self.mark(); +let key=Key {expression:1075,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} +self.display_enter(state.consumed.max(state.matched));let mut out=self.b1075_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +if out.ok { +out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:true,text:false}); +} else {self.restore(mark);self.display_failures(state.consumed.max(state.matched),&[]);} +if (out.ok && true) || (!out.ok && true) {self.store(key,out,mark);}self.display_leave(); +out +} +fn b1075_c(&mut self,mut state:State)->Step { +state.reset=false; +let mut out=Step::yes(state); +out.state=state.begin(); +let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); +let child=self.e1076_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); +out.state=if out.ok {state.commit(out.state)} else {state}; +out +} +fn e1076_c(&mut self,state:State)->Step { +let mut out=self.b1076_c(state); +if out.ok { +out.events=self.event(Event::Capture {site:258,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +} else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} +out +} +fn b1076_c(&mut self,mut state:State)->Step { +let mut out=Step::yes(state); +out=self.r40_c(out.state); +out +} +fn e1077_c(&mut self,state:State)->Step { +let mark=self.mark(); +let key=Key {expression:1077,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} +self.display_enter(state.consumed.max(state.matched));let mut out=self.b1077_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +if out.ok { +out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:true,text:false}); +} else {self.restore(mark);self.display_failures(state.consumed.max(state.matched),&[]);} +if (out.ok && true) || (!out.ok && true) {self.store(key,out,mark);}self.display_leave(); +out +} +fn b1077_c(&mut self,mut state:State)->Step { +state.reset=false; +let mut out=Step::yes(state); +out.state=state.begin(); +let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); +let child=self.e1078_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); +out.state=if out.ok {state.commit(out.state)} else {state}; +out +} +fn e1078_c(&mut self,state:State)->Step { +let mut out=self.b1078_c(state); +if out.ok { +out.events=self.event(Event::Capture {site:259,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +} else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} +out +} +fn b1078_c(&mut self,mut state:State)->Step { +let mut out=Step::yes(state); +out=self.r94_c(out.state); +out +} +fn e1079_c(&mut self,state:State)->Step { +let mark=self.mark(); +let key=Key {expression:1079,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} +self.display_enter(state.consumed.max(state.matched));let mut out=self.b1079_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +if out.ok { +out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:true,text:false}); +} else {self.restore(mark);self.display_failures(state.consumed.max(state.matched),&[]);} +if (out.ok && true) || (!out.ok && true) {self.store(key,out,mark);}self.display_leave(); +out +} +fn b1079_c(&mut self,mut state:State)->Step { +state.reset=false; +let mut out=Step::yes(state); +out.state=state.begin(); +let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); +let child=self.e1080_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); +out.state=if out.ok {state.commit(out.state)} else {state}; +out +} +fn e1080_c(&mut self,state:State)->Step { +let mut out=self.b1080_c(state); +if out.ok { +out.events=self.event(Event::Capture {site:260,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +} else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} +out +} +fn b1080_c(&mut self,mut state:State)->Step { +let mut out=Step::yes(state); +out=self.r89_c(out.state); +out +} +fn e1081_c(&mut self,state:State)->Step { +let mark=self.mark(); +let key=Key {expression:1081,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} +self.display_enter(state.consumed.max(state.matched));let mut out=self.b1081_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +if out.ok { +out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:true,text:false}); +} else {self.restore(mark);self.display_failures(state.consumed.max(state.matched),&[]);} +if (out.ok && true) || (!out.ok && true) {self.store(key,out,mark);}self.display_leave(); +out +} +fn b1081_c(&mut self,mut state:State)->Step { +state.reset=false; +let mut out=Step::yes(state); +out.state=state.begin(); +let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); +let child=self.e1082_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); +out.state=if out.ok {state.commit(out.state)} else {state}; +out +} +fn e1082_c(&mut self,state:State)->Step { +let mut out=self.b1082_c(state); +if out.ok { +out.events=self.event(Event::Capture {site:261,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +} else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} +out +} +fn b1082_c(&mut self,mut state:State)->Step { +let mut out=Step::yes(state); +out=self.r105_c(out.state); +out +} +fn e1083_c(&mut self,state:State)->Step { +let mark=self.mark(); +let key=Key {expression:1083,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} +self.display_enter(state.consumed.max(state.matched));let mut out=self.b1083_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +if out.ok { +out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:true,text:false}); +} else {self.restore(mark);self.display_failures(state.consumed.max(state.matched),&[]);} +if (out.ok && true) || (!out.ok && true) {self.store(key,out,mark);}self.display_leave(); +out +} +fn b1083_c(&mut self,mut state:State)->Step { +state.reset=false; +let mut out=Step::yes(state); +out.state=state.begin(); +let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); +let child=self.e1084_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); +out.state=if out.ok {state.commit(out.state)} else {state}; +out +} +fn e1084_c(&mut self,state:State)->Step { +let mut out=self.b1084_c(state); +if out.ok { +out.events=self.event(Event::Capture {site:262,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +} else {self.display_failures(state.consumed.max(state.matched),&["'('", "')'"]);} +out +} +fn b1084_c(&mut self,mut state:State)->Step { +let mut out=Step::yes(state); +out=self.r36_c(out.state); +out +} +fn e1085_c(&mut self,state:State)->Step { +let mark=self.mark(); +let key=Key {expression:1085,state,matched_mode:false,version:self.scope.state_version()};if let Some(hit)=self.lookup(key) {return hit;} +self.display_enter(state.consumed.max(state.matched));let mut out=self.b1085_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +if out.ok { +out.events=self.event(Event::Values{span:[state.consumed,out.state.consumed],child:out.events,wrap:true,text:false}); +} else {self.restore(mark);self.display_failures(state.consumed.max(state.matched),&[]);} +if (out.ok && true) || (!out.ok && true) {self.store(key,out,mark);}self.display_leave(); +out +} +fn b1085_c(&mut self,mut state:State)->Step { +state.reset=false; +let mut out=Step::yes(state); +out.state=state.begin(); +let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); +let child=self.e1086_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); +let child=self.e1087_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); +let child=self.e1088_c(out.state);out=self.combine(out,child);if !out.ok {out.state=state;return out;} +let trivia=self.trivia_1::(out.state);out=self.combine(out,trivia); +out.state=if out.ok {state.commit(out.state)} else {state}; +out +} +fn e1086_c(&mut self,state:State)->Step { +let mut out=self.b1086_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +if out.ok { +out.events=self.relabel_token(out.events,1086,129); +} else {self.display_failures(state.consumed.max(state.matched),&["'('"]);} +out +} +fn b1086_c(&mut self,mut state:State)->Step { +let mut out=Step::yes(state); +out=self.literal::(out.state,"(",true,4,false,"("); +if !out.ok {self.display_fail(state.consumed.max(state.matched),"'('");} +out +} +fn e1087_c(&mut self,state:State)->Step { +let mut out=self.b1087_c(state); +if out.ok { +out.events=self.event(Event::Capture {site:263,span:[state.consumed,out.state.consumed],child:out.events,token_extent:false}); +} else {self.display_failures(state.consumed.max(state.matched),&["__CaptureSite"]);} +out +} +fn b1087_c(&mut self,mut state:State)->Step { +let mut out=Step::yes(state); +out=self.r123_c(out.state); +out +} +fn e1088_c(&mut self,state:State)->Step { +let mut out=self.b1088_c(state);self.display_reach(out.state.consumed.max(out.state.matched)); +if out.ok { +out.events=self.relabel_token(out.events,1088,129); +} else {self.display_failures(state.consumed.max(state.matched),&["')'"]);} +out +} +fn b1088_c(&mut self,mut state:State)->Step { let mut out=Step::yes(state); out=self.literal::(out.state,")",true,5,false,")"); if !out.ok {self.display_fail(state.consumed.max(state.matched),"')'");} out } -fn guard_e38_c(&mut self,state:State)->Step { -if !self.can_replay(1) {return self.e38_c(state);} +fn guard_e31_c(&mut self,state:State)->Step { +if !self.can_replay(3) {return self.e31_c(state);} +if !DIAG {return Step {ok:false,state,events:EventId(0),diag:Diag::NONE};} +self.display_reach(state.consumed.max(state.matched)); +let t1=self.trivia_0::(state.entered(true,true)).state; +let mut d2=Diag::NONE; +let d3=self.diag_fail(t1.position::(),"call"); +d2=self.diag_join(d2,d3); +let d4=self.diag_fail(t1.begin().position::(),"internal"); +d2=self.diag_join(d2,d4); +let d5=self.diag_rule(35,d2); +let d6=self.diag_rule(36,d5); +let d7=self.diag_rule(128,d6); +self.display_failures(t1.consumed.max(t1.matched),&["'call'", "'call'", "'call'", "'internal'", "'internal'", "'('", "')'", "'('", "')'", "MethodRootExpressionParser", "__CaptureSite"]); +if t1.begin().consumed.max(t1.begin().matched)==t1.consumed.max(t1.matched) {self.display_failures(t1.consumed.max(t1.matched),&["'call'", "'internal'", "'internal'", "'internal'"]);} +Step {ok:false,state,events:EventId(0),diag:d7} +} +fn guard_e36_c(&mut self,state:State)->Step { +if !self.can_replay(1) {return self.e36_c(state);} +if !DIAG {return Step {ok:false,state,events:EventId(0),diag:Diag::NONE};} +self.display_reach(state.consumed.max(state.matched)); +let t1=self.trivia_0::(state.entered(true,true)).state; +let d2=self.diag_fail(t1.position::(),"("); +let d3=self.diag_rule(129,d2); +self.display_failures(t1.consumed.max(t1.matched),&["'('", "'('", "'('", "')'", "'('", "')'"]); +Step {ok:false,state,events:EventId(0),diag:d3} +} +fn guard_e66_c(&mut self,state:State)->Step { +if !self.can_replay(1) {return self.e66_c(state);} if !DIAG {return Step {ok:false,state,events:EventId(0),diag:Diag::NONE};} self.display_reach(state.consumed.max(state.matched)); let t1=self.trivia_1::(state.entered(true,true)).state; @@ -17843,8 +18592,8 @@ if t1.begin().consumed.max(t1.begin().matched)==t1.consumed.max(t1.matched) {sel if state.consumed.max(state.matched)==t1.consumed.max(t1.matched) {self.display_failures(t1.consumed.max(t1.matched),&["'variable'", "'var'", "'$'", "';'"]);} Step {ok:false,state,events:EventId(0),diag:d5} } -fn guard_e39_c(&mut self,state:State)->Step { -if !self.can_replay(1) {return self.e39_c(state);} +fn guard_e67_c(&mut self,state:State)->Step { +if !self.can_replay(1) {return self.e67_c(state);} if !DIAG {return Step {ok:false,state,events:EventId(0),diag:Diag::NONE};} self.display_reach(state.consumed.max(state.matched)); let t1=self.trivia_1::(state.entered(true,true)).state; @@ -17859,8 +18608,8 @@ if t1.begin().consumed.max(t1.begin().matched)==t1.consumed.max(t1.matched) {sel if state.consumed.max(state.matched)==t1.consumed.max(t1.matched) {self.display_failures(t1.consumed.max(t1.matched),&["'variable'", "'var'", "'$'", "';'"]);} Step {ok:false,state,events:EventId(0),diag:d5} } -fn guard_e40_c(&mut self,state:State)->Step { -if !self.can_replay(1) {return self.e40_c(state);} +fn guard_e68_c(&mut self,state:State)->Step { +if !self.can_replay(1) {return self.e68_c(state);} if !DIAG {return Step {ok:false,state,events:EventId(0),diag:Diag::NONE};} self.display_reach(state.consumed.max(state.matched)); let t1=self.trivia_1::(state.entered(true,true)).state; @@ -17875,8 +18624,8 @@ if t1.begin().consumed.max(t1.begin().matched)==t1.consumed.max(t1.matched) {sel if state.consumed.max(state.matched)==t1.consumed.max(t1.matched) {self.display_failures(t1.consumed.max(t1.matched),&["'variable'", "'var'", "'$'", "';'"]);} Step {ok:false,state,events:EventId(0),diag:d5} } -fn guard_e41_c(&mut self,state:State)->Step { -if !self.can_replay(1) {return self.e41_c(state);} +fn guard_e69_c(&mut self,state:State)->Step { +if !self.can_replay(1) {return self.e69_c(state);} if !DIAG {return Step {ok:false,state,events:EventId(0),diag:Diag::NONE};} self.display_reach(state.consumed.max(state.matched)); let t1=self.trivia_1::(state.entered(true,true)).state; @@ -17891,8 +18640,8 @@ if t1.begin().consumed.max(t1.begin().matched)==t1.consumed.max(t1.matched) {sel if state.consumed.max(state.matched)==t1.consumed.max(t1.matched) {self.display_failures(t1.consumed.max(t1.matched),&["'variable'", "'var'", "'$'", "';'"]);} Step {ok:false,state,events:EventId(0),diag:d5} } -fn guard_e250_c(&mut self,state:State)->Step { -if !self.can_replay(1) {return self.e250_c(state);} +fn guard_e278_c(&mut self,state:State)->Step { +if !self.can_replay(1) {return self.e278_c(state);} if !DIAG {return Step {ok:false,state,events:EventId(0),diag:Diag::NONE};} self.display_reach(state.consumed.max(state.matched)); let mut d1=Diag::NONE; @@ -17905,8 +18654,8 @@ let d4=self.diag_rule(26,d1); self.display_failures(state.consumed.max(state.matched),&["'number'", "'float'"]); Step {ok:false,state,events:EventId(0),diag:d4} } -fn guard_e251_c(&mut self,state:State)->Step { -if !self.can_replay(1) {return self.e251_c(state);} +fn guard_e279_c(&mut self,state:State)->Step { +if !self.can_replay(1) {return self.e279_c(state);} if !DIAG {return Step {ok:false,state,events:EventId(0),diag:Diag::NONE};} self.display_reach(state.consumed.max(state.matched)); let t1=self.trivia_1::(state.entered(true,true)).state; @@ -17916,8 +18665,8 @@ self.display_failures(t1.consumed.max(t1.matched),&["'string'", "'string'"]); if state.consumed.max(state.matched)==t1.consumed.max(t1.matched) {self.display_failures(t1.consumed.max(t1.matched),&["'string'"]);} Step {ok:false,state,events:EventId(0),diag:d3} } -fn guard_e252_c(&mut self,state:State)->Step { -if !self.can_replay(1) {return self.e252_c(state);} +fn guard_e280_c(&mut self,state:State)->Step { +if !self.can_replay(1) {return self.e280_c(state);} if !DIAG {return Step {ok:false,state,events:EventId(0),diag:Diag::NONE};} self.display_reach(state.consumed.max(state.matched)); let t1=self.trivia_1::(state.entered(true,true)).state; @@ -17927,8 +18676,8 @@ self.display_failures(t1.consumed.max(t1.matched),&["'boolean'", "'boolean'"]); if state.consumed.max(state.matched)==t1.consumed.max(t1.matched) {self.display_failures(t1.consumed.max(t1.matched),&["'boolean'"]);} Step {ok:false,state,events:EventId(0),diag:d3} } -fn guard_e253_c(&mut self,state:State)->Step { -if !self.can_replay(1) {return self.e253_c(state);} +fn guard_e281_c(&mut self,state:State)->Step { +if !self.can_replay(1) {return self.e281_c(state);} if !DIAG {return Step {ok:false,state,events:EventId(0),diag:Diag::NONE};} self.display_reach(state.consumed.max(state.matched)); let t1=self.trivia_1::(state.entered(true,true)).state; @@ -17938,8 +18687,8 @@ self.display_failures(t1.consumed.max(t1.matched),&["'object'", "'object'"]); if state.consumed.max(state.matched)==t1.consumed.max(t1.matched) {self.display_failures(t1.consumed.max(t1.matched),&["'object'"]);} Step {ok:false,state,events:EventId(0),diag:d3} } -fn guard_e344_c(&mut self,state:State)->Step { -if !self.can_replay(0) {return self.e344_c(state);} +fn guard_e372_c(&mut self,state:State)->Step { +if !self.can_replay(0) {return self.e372_c(state);} if !DIAG {return Step {ok:false,state,events:EventId(0),diag:Diag::NONE};} self.display_reach(state.consumed.max(state.matched)); let t1=self.trivia_1::(state.entered(true,true)).state; @@ -17948,8 +18697,8 @@ self.display_failures(t1.consumed.max(t1.matched),&["'call'", "'call'"]); if state.consumed.max(state.matched)==t1.consumed.max(t1.matched) {self.display_failures(t1.consumed.max(t1.matched),&["'call'", "'internal'"]);} Step {ok:false,state,events:EventId(0),diag:d2} } -fn guard_e392_c(&mut self,state:State)->Step { -if !self.can_replay(1) {return self.e392_c(state);} +fn guard_e420_c(&mut self,state:State)->Step { +if !self.can_replay(1) {return self.e420_c(state);} if !DIAG {return Step {ok:false,state,events:EventId(0),diag:Diag::NONE};} self.display_reach(state.consumed.max(state.matched)); let t1=self.trivia_1::(state.entered(true,true)).state; @@ -17959,8 +18708,8 @@ self.display_failures(t1.consumed.max(t1.matched),&["'sin'", "'sin'"]); if state.consumed.max(state.matched)==t1.consumed.max(t1.matched) {self.display_failures(t1.consumed.max(t1.matched),&["'sin'", "'('", "')'"]);} Step {ok:false,state,events:EventId(0),diag:d3} } -fn guard_e393_c(&mut self,state:State)->Step { -if !self.can_replay(1) {return self.e393_c(state);} +fn guard_e421_c(&mut self,state:State)->Step { +if !self.can_replay(1) {return self.e421_c(state);} if !DIAG {return Step {ok:false,state,events:EventId(0),diag:Diag::NONE};} self.display_reach(state.consumed.max(state.matched)); let t1=self.trivia_1::(state.entered(true,true)).state; @@ -17970,8 +18719,8 @@ self.display_failures(t1.consumed.max(t1.matched),&["'cos'", "'cos'"]); if state.consumed.max(state.matched)==t1.consumed.max(t1.matched) {self.display_failures(t1.consumed.max(t1.matched),&["'cos'", "'('", "')'"]);} Step {ok:false,state,events:EventId(0),diag:d3} } -fn guard_e394_c(&mut self,state:State)->Step { -if !self.can_replay(1) {return self.e394_c(state);} +fn guard_e422_c(&mut self,state:State)->Step { +if !self.can_replay(1) {return self.e422_c(state);} if !DIAG {return Step {ok:false,state,events:EventId(0),diag:Diag::NONE};} self.display_reach(state.consumed.max(state.matched)); let t1=self.trivia_1::(state.entered(true,true)).state; @@ -17981,8 +18730,8 @@ self.display_failures(t1.consumed.max(t1.matched),&["'tan'", "'tan'"]); if state.consumed.max(state.matched)==t1.consumed.max(t1.matched) {self.display_failures(t1.consumed.max(t1.matched),&["'tan'", "'('", "')'"]);} Step {ok:false,state,events:EventId(0),diag:d3} } -fn guard_e395_c(&mut self,state:State)->Step { -if !self.can_replay(1) {return self.e395_c(state);} +fn guard_e423_c(&mut self,state:State)->Step { +if !self.can_replay(1) {return self.e423_c(state);} if !DIAG {return Step {ok:false,state,events:EventId(0),diag:Diag::NONE};} self.display_reach(state.consumed.max(state.matched)); let t1=self.trivia_1::(state.entered(true,true)).state; @@ -17992,8 +18741,8 @@ self.display_failures(t1.consumed.max(t1.matched),&["'sqrt'", "'sqrt'"]); if state.consumed.max(state.matched)==t1.consumed.max(t1.matched) {self.display_failures(t1.consumed.max(t1.matched),&["'sqrt'", "'('", "')'"]);} Step {ok:false,state,events:EventId(0),diag:d3} } -fn guard_e396_c(&mut self,state:State)->Step { -if !self.can_replay(1) {return self.e396_c(state);} +fn guard_e424_c(&mut self,state:State)->Step { +if !self.can_replay(1) {return self.e424_c(state);} if !DIAG {return Step {ok:false,state,events:EventId(0),diag:Diag::NONE};} self.display_reach(state.consumed.max(state.matched)); let t1=self.trivia_1::(state.entered(true,true)).state; @@ -18003,8 +18752,8 @@ self.display_failures(t1.consumed.max(t1.matched),&["'min'", "'min'"]); if state.consumed.max(state.matched)==t1.consumed.max(t1.matched) {self.display_failures(t1.consumed.max(t1.matched),&["'min'", "'('", "')'"]);} Step {ok:false,state,events:EventId(0),diag:d3} } -fn guard_e397_c(&mut self,state:State)->Step { -if !self.can_replay(1) {return self.e397_c(state);} +fn guard_e425_c(&mut self,state:State)->Step { +if !self.can_replay(1) {return self.e425_c(state);} if !DIAG {return Step {ok:false,state,events:EventId(0),diag:Diag::NONE};} self.display_reach(state.consumed.max(state.matched)); let t1=self.trivia_1::(state.entered(true,true)).state; @@ -18014,8 +18763,8 @@ self.display_failures(t1.consumed.max(t1.matched),&["'max'", "'max'"]); if state.consumed.max(state.matched)==t1.consumed.max(t1.matched) {self.display_failures(t1.consumed.max(t1.matched),&["'max'", "'('", "')'"]);} Step {ok:false,state,events:EventId(0),diag:d3} } -fn guard_e398_c(&mut self,state:State)->Step { -if !self.can_replay(1) {return self.e398_c(state);} +fn guard_e426_c(&mut self,state:State)->Step { +if !self.can_replay(1) {return self.e426_c(state);} if !DIAG {return Step {ok:false,state,events:EventId(0),diag:Diag::NONE};} self.display_reach(state.consumed.max(state.matched)); let t1=self.trivia_1::(state.entered(true,true)).state; @@ -18025,8 +18774,8 @@ self.display_failures(t1.consumed.max(t1.matched),&["'random'", "'random'"]); if state.consumed.max(state.matched)==t1.consumed.max(t1.matched) {self.display_failures(t1.consumed.max(t1.matched),&["'random'", "'('", "')'"]);} Step {ok:false,state,events:EventId(0),diag:d3} } -fn guard_e399_c(&mut self,state:State)->Step { -if !self.can_replay(1) {return self.e399_c(state);} +fn guard_e427_c(&mut self,state:State)->Step { +if !self.can_replay(1) {return self.e427_c(state);} if !DIAG {return Step {ok:false,state,events:EventId(0),diag:Diag::NONE};} self.display_reach(state.consumed.max(state.matched)); let t1=self.trivia_1::(state.entered(true,true)).state; @@ -18036,8 +18785,8 @@ self.display_failures(t1.consumed.max(t1.matched),&["'abs'", "'abs'"]); if state.consumed.max(state.matched)==t1.consumed.max(t1.matched) {self.display_failures(t1.consumed.max(t1.matched),&["'abs'", "'('", "')'"]);} Step {ok:false,state,events:EventId(0),diag:d3} } -fn guard_e400_c(&mut self,state:State)->Step { -if !self.can_replay(1) {return self.e400_c(state);} +fn guard_e428_c(&mut self,state:State)->Step { +if !self.can_replay(1) {return self.e428_c(state);} if !DIAG {return Step {ok:false,state,events:EventId(0),diag:Diag::NONE};} self.display_reach(state.consumed.max(state.matched)); let t1=self.trivia_1::(state.entered(true,true)).state; @@ -18047,8 +18796,8 @@ self.display_failures(t1.consumed.max(t1.matched),&["'round'", "'round'"]); if state.consumed.max(state.matched)==t1.consumed.max(t1.matched) {self.display_failures(t1.consumed.max(t1.matched),&["'round'", "'('", "')'"]);} Step {ok:false,state,events:EventId(0),diag:d3} } -fn guard_e401_c(&mut self,state:State)->Step { -if !self.can_replay(1) {return self.e401_c(state);} +fn guard_e429_c(&mut self,state:State)->Step { +if !self.can_replay(1) {return self.e429_c(state);} if !DIAG {return Step {ok:false,state,events:EventId(0),diag:Diag::NONE};} self.display_reach(state.consumed.max(state.matched)); let t1=self.trivia_1::(state.entered(true,true)).state; @@ -18058,8 +18807,8 @@ self.display_failures(t1.consumed.max(t1.matched),&["'ceil'", "'ceil'"]); if state.consumed.max(state.matched)==t1.consumed.max(t1.matched) {self.display_failures(t1.consumed.max(t1.matched),&["'ceil'", "'('", "')'"]);} Step {ok:false,state,events:EventId(0),diag:d3} } -fn guard_e402_c(&mut self,state:State)->Step { -if !self.can_replay(1) {return self.e402_c(state);} +fn guard_e430_c(&mut self,state:State)->Step { +if !self.can_replay(1) {return self.e430_c(state);} if !DIAG {return Step {ok:false,state,events:EventId(0),diag:Diag::NONE};} self.display_reach(state.consumed.max(state.matched)); let t1=self.trivia_1::(state.entered(true,true)).state; @@ -18069,8 +18818,8 @@ self.display_failures(t1.consumed.max(t1.matched),&["'floor'", "'floor'"]); if state.consumed.max(state.matched)==t1.consumed.max(t1.matched) {self.display_failures(t1.consumed.max(t1.matched),&["'floor'", "'('", "')'"]);} Step {ok:false,state,events:EventId(0),diag:d3} } -fn guard_e403_c(&mut self,state:State)->Step { -if !self.can_replay(1) {return self.e403_c(state);} +fn guard_e431_c(&mut self,state:State)->Step { +if !self.can_replay(1) {return self.e431_c(state);} if !DIAG {return Step {ok:false,state,events:EventId(0),diag:Diag::NONE};} self.display_reach(state.consumed.max(state.matched)); let t1=self.trivia_1::(state.entered(true,true)).state; @@ -18080,8 +18829,8 @@ self.display_failures(t1.consumed.max(t1.matched),&["'pow'", "'pow'"]); if state.consumed.max(state.matched)==t1.consumed.max(t1.matched) {self.display_failures(t1.consumed.max(t1.matched),&["'pow'", "'('", "','", "')'"]);} Step {ok:false,state,events:EventId(0),diag:d3} } -fn guard_e404_c(&mut self,state:State)->Step { -if !self.can_replay(1) {return self.e404_c(state);} +fn guard_e432_c(&mut self,state:State)->Step { +if !self.can_replay(1) {return self.e432_c(state);} if !DIAG {return Step {ok:false,state,events:EventId(0),diag:Diag::NONE};} self.display_reach(state.consumed.max(state.matched)); let t1=self.trivia_1::(state.entered(true,true)).state; @@ -18091,8 +18840,8 @@ self.display_failures(t1.consumed.max(t1.matched),&["'log'", "'log'"]); if state.consumed.max(state.matched)==t1.consumed.max(t1.matched) {self.display_failures(t1.consumed.max(t1.matched),&["'log'", "'('", "')'"]);} Step {ok:false,state,events:EventId(0),diag:d3} } -fn guard_e405_c(&mut self,state:State)->Step { -if !self.can_replay(1) {return self.e405_c(state);} +fn guard_e433_c(&mut self,state:State)->Step { +if !self.can_replay(1) {return self.e433_c(state);} if !DIAG {return Step {ok:false,state,events:EventId(0),diag:Diag::NONE};} self.display_reach(state.consumed.max(state.matched)); let t1=self.trivia_1::(state.entered(true,true)).state; @@ -18102,8 +18851,8 @@ self.display_failures(t1.consumed.max(t1.matched),&["'exp'", "'exp'"]); if state.consumed.max(state.matched)==t1.consumed.max(t1.matched) {self.display_failures(t1.consumed.max(t1.matched),&["'exp'", "'('", "')'"]);} Step {ok:false,state,events:EventId(0),diag:d3} } -fn guard_e493_c(&mut self,state:State)->Step { -if !self.can_replay(1) {return self.e493_c(state);} +fn guard_e521_c(&mut self,state:State)->Step { +if !self.can_replay(1) {return self.e521_c(state);} if !DIAG {return Step {ok:false,state,events:EventId(0),diag:Diag::NONE};} self.display_reach(state.consumed.max(state.matched)); let t1=self.trivia_1::(state.entered(true,true)).state; @@ -18113,8 +18862,8 @@ self.display_failures(t1.consumed.max(t1.matched),&["'('", "'('"]); if state.consumed.max(state.matched)==t1.consumed.max(t1.matched) {self.display_failures(t1.consumed.max(t1.matched),&["'('", "'?'", "':'", "')'"]);} Step {ok:false,state,events:EventId(0),diag:d3} } -fn guard_e494_c(&mut self,state:State)->Step { -if !self.can_replay(1) {return self.e494_c(state);} +fn guard_e522_c(&mut self,state:State)->Step { +if !self.can_replay(1) {return self.e522_c(state);} if !DIAG {return Step {ok:false,state,events:EventId(0),diag:Diag::NONE};} self.display_reach(state.consumed.max(state.matched)); let t1=self.trivia_1::(state.entered(true,true)).state; @@ -18124,8 +18873,8 @@ self.display_failures(t1.consumed.max(t1.matched),&["'match'", "'match'"]); if state.consumed.max(state.matched)==t1.consumed.max(t1.matched) {self.display_failures(t1.consumed.max(t1.matched),&["'match'", "'{'", "','", "'}'"]);} Step {ok:false,state,events:EventId(0),diag:d3} } -fn guard_e495_c(&mut self,state:State)->Step { -if !self.can_replay(1) {return self.e495_c(state);} +fn guard_e523_c(&mut self,state:State)->Step { +if !self.can_replay(1) {return self.e523_c(state);} if !DIAG {return Step {ok:false,state,events:EventId(0),diag:Diag::NONE};} self.display_reach(state.consumed.max(state.matched)); let t1=self.trivia_1::(state.entered(true,true)).state; @@ -18135,8 +18884,8 @@ self.display_failures(t1.consumed.max(t1.matched),&["'if'", "'if'"]); if state.consumed.max(state.matched)==t1.consumed.max(t1.matched) {self.display_failures(t1.consumed.max(t1.matched),&["'if'", "'('", "')'", "'{'", "'}'", "'else'"]);} Step {ok:false,state,events:EventId(0),diag:d3} } -fn guard_e496_c(&mut self,state:State)->Step { -if !self.can_replay(2) {return self.e496_c(state);} +fn guard_e524_c(&mut self,state:State)->Step { +if !self.can_replay(2) {return self.e524_c(state);} if !DIAG {return Step {ok:false,state,events:EventId(0),diag:Diag::NONE};} self.display_reach(state.consumed.max(state.matched)); let mut d1=Diag::NONE; @@ -18189,8 +18938,8 @@ if state.begin().consumed.max(state.begin().matched)==t2.consumed.max(t2.matched if state.consumed.max(state.matched)==t2.consumed.max(t2.matched) {self.display_failures(t2.consumed.max(t2.matched),&["'sin'", "'('", "')'", "'cos'", "'tan'", "'sqrt'", "'min'", "'max'", "'random'", "'abs'", "'round'", "'ceil'", "'floor'", "'pow'", "','", "'log'", "'exp'"]);} Step {ok:false,state,events:EventId(0),diag:d31} } -fn guard_e497_c(&mut self,state:State)->Step { -if !self.can_replay(1) {return self.e497_c(state);} +fn guard_e525_c(&mut self,state:State)->Step { +if !self.can_replay(1) {return self.e525_c(state);} if !DIAG {return Step {ok:false,state,events:EventId(0),diag:Diag::NONE};} self.display_reach(state.consumed.max(state.matched)); let t1=self.trivia_1::(state.entered(true,true)).state; @@ -18200,8 +18949,8 @@ self.display_failures(t1.consumed.max(t1.matched),&["'toNum'", "'toNum'"]); if state.consumed.max(state.matched)==t1.consumed.max(t1.matched) {self.display_failures(t1.consumed.max(t1.matched),&["'toNum'", "'('", "','", "')'"]);} Step {ok:false,state,events:EventId(0),diag:d3} } -fn guard_e498_c(&mut self,state:State)->Step { -if !self.can_replay(2) {return self.e498_c(state);} +fn guard_e526_c(&mut self,state:State)->Step { +if !self.can_replay(2) {return self.e526_c(state);} if !DIAG {return Step {ok:false,state,events:EventId(0),diag:Diag::NONE};} self.display_reach(state.consumed.max(state.matched)); let t1=self.trivia_1::(state.entered(true,true)).state; @@ -18212,8 +18961,8 @@ self.display_failures(t1.consumed.max(t1.matched),&["'$'", "'$'", "'$'", "'$'"]) if state.consumed.max(state.matched)==t1.consumed.max(t1.matched) {self.display_failures(t1.consumed.max(t1.matched),&["'.length'", "'('", "')'"]);} Step {ok:false,state,events:EventId(0),diag:d4} } -fn guard_e499_c(&mut self,state:State)->Step { -if !self.can_replay(1) {return self.e499_c(state);} +fn guard_e527_c(&mut self,state:State)->Step { +if !self.can_replay(1) {return self.e527_c(state);} if !DIAG {return Step {ok:false,state,events:EventId(0),diag:Diag::NONE};} self.display_reach(state.consumed.max(state.matched)); let t1=self.trivia_1::(state.entered(true,true)).state; @@ -18223,8 +18972,8 @@ self.display_failures(t1.consumed.max(t1.matched),&["'len'", "'len'"]); if state.consumed.max(state.matched)==t1.consumed.max(t1.matched) {self.display_failures(t1.consumed.max(t1.matched),&["'len'", "'('", "')'"]);} Step {ok:false,state,events:EventId(0),diag:d3} } -fn guard_e500_c(&mut self,state:State)->Step { -if !self.can_replay(1) {return self.e500_c(state);} +fn guard_e528_c(&mut self,state:State)->Step { +if !self.can_replay(1) {return self.e528_c(state);} if !DIAG {return Step {ok:false,state,events:EventId(0),diag:Diag::NONE};} self.display_reach(state.consumed.max(state.matched)); let t1=self.trivia_1::(state.entered(true,true)).state; @@ -18234,8 +18983,8 @@ self.display_failures(t1.consumed.max(t1.matched),&["'length'", "'length'"]); if state.consumed.max(state.matched)==t1.consumed.max(t1.matched) {self.display_failures(t1.consumed.max(t1.matched),&["'length'", "'('", "')'"]);} Step {ok:false,state,events:EventId(0),diag:d3} } -fn guard_e501_c(&mut self,state:State)->Step { -if !self.can_replay(1) {return self.e501_c(state);} +fn guard_e529_c(&mut self,state:State)->Step { +if !self.can_replay(1) {return self.e529_c(state);} if !DIAG {return Step {ok:false,state,events:EventId(0),diag:Diag::NONE};} self.display_reach(state.consumed.max(state.matched)); let t1=self.trivia_1::(state.entered(true,true)).state; @@ -18245,8 +18994,8 @@ self.display_failures(t1.consumed.max(t1.matched),&["'external'", "'external'"]) if state.consumed.max(state.matched)==t1.consumed.max(t1.matched) {self.display_failures(t1.consumed.max(t1.matched),&["'external'", "'('", "')'"]);} Step {ok:false,state,events:EventId(0),diag:d3} } -fn guard_e503_c(&mut self,state:State)->Step { -if !self.can_replay(1) {return self.e503_c(state);} +fn guard_e531_c(&mut self,state:State)->Step { +if !self.can_replay(1) {return self.e531_c(state);} if !DIAG {return Step {ok:false,state,events:EventId(0),diag:Diag::NONE};} self.display_reach(state.consumed.max(state.matched)); let t1=self.trivia_1::(state.entered(true,true)).state; @@ -18256,8 +19005,8 @@ self.display_failures(t1.consumed.max(t1.matched),&["'$'", "'$'"]); if state.consumed.max(state.matched)==t1.consumed.max(t1.matched) {self.display_failures(t1.consumed.max(t1.matched),&["'$'"]);} Step {ok:false,state,events:EventId(0),diag:d3} } -fn guard_e504_c(&mut self,state:State)->Step { -if !self.can_replay(2) {return self.e504_c(state);} +fn guard_e532_c(&mut self,state:State)->Step { +if !self.can_replay(2) {return self.e532_c(state);} if !DIAG {return Step {ok:false,state,events:EventId(0),diag:Diag::NONE};} self.display_reach(state.consumed.max(state.matched)); let t1=self.trivia_1::(state.entered(true,true)).state; @@ -18273,8 +19022,8 @@ if t1.begin().consumed.max(t1.begin().matched)==t1.consumed.max(t1.matched) {sel if state.consumed.max(state.matched)==t1.consumed.max(t1.matched) {self.display_failures(t1.consumed.max(t1.matched),&["'internal'", "'('", "')'"]);} Step {ok:false,state,events:EventId(0),diag:d6} } -fn guard_e505_c(&mut self,state:State)->Step { -if !self.can_replay(0) {return self.e505_c(state);} +fn guard_e533_c(&mut self,state:State)->Step { +if !self.can_replay(0) {return self.e533_c(state);} if !DIAG {return Step {ok:false,state,events:EventId(0),diag:Diag::NONE};} self.display_reach(state.consumed.max(state.matched)); let t1=self.trivia_1::(state.entered(true,true)).state; @@ -18283,8 +19032,8 @@ self.display_failures(t1.consumed.max(t1.matched),&["'('", "'('"]); if state.consumed.max(state.matched)==t1.consumed.max(t1.matched) {self.display_failures(t1.consumed.max(t1.matched),&["'('", "')'"]);} Step {ok:false,state,events:EventId(0),diag:d2} } -fn guard_e628_c(&mut self,state:State)->Step { -if !self.can_replay(1) {return self.e628_c(state);} +fn guard_e656_c(&mut self,state:State)->Step { +if !self.can_replay(1) {return self.e656_c(state);} if !DIAG {return Step {ok:false,state,events:EventId(0),diag:Diag::NONE};} self.display_reach(state.consumed.max(state.matched)); let t1=self.trivia_1::(state.entered(true,true)).state; @@ -18294,8 +19043,8 @@ self.display_failures(t1.consumed.max(t1.matched),&["'toLowerCase'", "'toLowerCa if state.consumed.max(state.matched)==t1.consumed.max(t1.matched) {self.display_failures(t1.consumed.max(t1.matched),&["'toLowerCase'", "'('", "')'"]);} Step {ok:false,state,events:EventId(0),diag:d3} } -fn guard_e629_c(&mut self,state:State)->Step { -if !self.can_replay(1) {return self.e629_c(state);} +fn guard_e657_c(&mut self,state:State)->Step { +if !self.can_replay(1) {return self.e657_c(state);} if !DIAG {return Step {ok:false,state,events:EventId(0),diag:Diag::NONE};} self.display_reach(state.consumed.max(state.matched)); let t1=self.trivia_1::(state.entered(true,true)).state; @@ -18305,8 +19054,8 @@ self.display_failures(t1.consumed.max(t1.matched),&["'toUpperCase'", "'toUpperCa if state.consumed.max(state.matched)==t1.consumed.max(t1.matched) {self.display_failures(t1.consumed.max(t1.matched),&["'toUpperCase'", "'('", "')'"]);} Step {ok:false,state,events:EventId(0),diag:d3} } -fn guard_e630_c(&mut self,state:State)->Step { -if !self.can_replay(1) {return self.e630_c(state);} +fn guard_e658_c(&mut self,state:State)->Step { +if !self.can_replay(1) {return self.e658_c(state);} if !DIAG {return Step {ok:false,state,events:EventId(0),diag:Diag::NONE};} self.display_reach(state.consumed.max(state.matched)); let t1=self.trivia_1::(state.entered(true,true)).state; @@ -18316,8 +19065,8 @@ self.display_failures(t1.consumed.max(t1.matched),&["'trim'", "'trim'"]); if state.consumed.max(state.matched)==t1.consumed.max(t1.matched) {self.display_failures(t1.consumed.max(t1.matched),&["'trim'", "'('", "')'"]);} Step {ok:false,state,events:EventId(0),diag:d3} } -fn guard_e631_c(&mut self,state:State)->Step { -if !self.can_replay(1) {return self.e631_c(state);} +fn guard_e659_c(&mut self,state:State)->Step { +if !self.can_replay(1) {return self.e659_c(state);} if !DIAG {return Step {ok:false,state,events:EventId(0),diag:Diag::NONE};} self.display_reach(state.consumed.max(state.matched)); let t1=self.trivia_1::(state.entered(true,true)).state; @@ -18327,8 +19076,8 @@ self.display_failures(t1.consumed.max(t1.matched),&["'$'", "'$'"]); if state.consumed.max(state.matched)==t1.consumed.max(t1.matched) {self.display_failures(t1.consumed.max(t1.matched),&["'$'"]);} Step {ok:false,state,events:EventId(0),diag:d3} } -fn guard_e664_c(&mut self,state:State)->Step { -if !self.can_replay(1) {return self.e664_c(state);} +fn guard_e692_c(&mut self,state:State)->Step { +if !self.can_replay(1) {return self.e692_c(state);} if !DIAG {return Step {ok:false,state,events:EventId(0),diag:Diag::NONE};} self.display_reach(state.consumed.max(state.matched)); let t1=self.trivia_1::(state.entered(true,true)).state; @@ -18338,8 +19087,8 @@ self.display_failures(t1.consumed.max(t1.matched),&["'external'", "'external'"]) if state.consumed.max(state.matched)==t1.consumed.max(t1.matched) {self.display_failures(t1.consumed.max(t1.matched),&["'external'", "'string'", "':'", "'('", "')'"]);} Step {ok:false,state,events:EventId(0),diag:d3} } -fn guard_e665_c(&mut self,state:State)->Step { -if !self.can_replay(0) {return self.e665_c(state);} +fn guard_e693_c(&mut self,state:State)->Step { +if !self.can_replay(0) {return self.e693_c(state);} if !DIAG {return Step {ok:false,state,events:EventId(0),diag:Diag::NONE};} self.display_reach(state.consumed.max(state.matched)); let t1=self.trivia_1::(state.entered(true,true)).state; @@ -18348,8 +19097,8 @@ self.display_failures(t1.consumed.max(t1.matched),&["'('", "'('"]); if state.consumed.max(state.matched)==t1.consumed.max(t1.matched) {self.display_failures(t1.consumed.max(t1.matched),&["'$'", "'('", "')'"]);} Step {ok:false,state,events:EventId(0),diag:d2} } -fn guard_e669_c(&mut self,state:State)->Step { -if !self.can_replay(1) {return self.e669_c(state);} +fn guard_e697_c(&mut self,state:State)->Step { +if !self.can_replay(1) {return self.e697_c(state);} if !DIAG {return Step {ok:false,state,events:EventId(0),diag:Diag::NONE};} self.display_reach(state.consumed.max(state.matched)); let t1=self.trivia_1::(state.entered(true,true)).state; @@ -18359,8 +19108,8 @@ self.display_failures(t1.consumed.max(t1.matched),&["'('", "'('"]); if state.consumed.max(state.matched)==t1.consumed.max(t1.matched) {self.display_failures(t1.consumed.max(t1.matched),&["'('", "')'"]);} Step {ok:false,state,events:EventId(0),diag:d3} } -fn guard_e670_c(&mut self,state:State)->Step { -if !self.can_replay(1) {return self.e670_c(state);} +fn guard_e698_c(&mut self,state:State)->Step { +if !self.can_replay(1) {return self.e698_c(state);} if !DIAG {return Step {ok:false,state,events:EventId(0),diag:Diag::NONE};} self.display_reach(state.consumed.max(state.matched)); let t1=self.trivia_1::(state.entered(true,true)).state; @@ -18370,8 +19119,8 @@ self.display_failures(t1.consumed.max(t1.matched),&["'toUpperCase'", "'toUpperCa if state.consumed.max(state.matched)==t1.consumed.max(t1.matched) {self.display_failures(t1.consumed.max(t1.matched),&["'toUpperCase'", "'('", "')'"]);} Step {ok:false,state,events:EventId(0),diag:d3} } -fn guard_e671_c(&mut self,state:State)->Step { -if !self.can_replay(1) {return self.e671_c(state);} +fn guard_e699_c(&mut self,state:State)->Step { +if !self.can_replay(1) {return self.e699_c(state);} if !DIAG {return Step {ok:false,state,events:EventId(0),diag:Diag::NONE};} self.display_reach(state.consumed.max(state.matched)); let t1=self.trivia_1::(state.entered(true,true)).state; @@ -18381,8 +19130,8 @@ self.display_failures(t1.consumed.max(t1.matched),&["'toLowerCase'", "'toLowerCa if state.consumed.max(state.matched)==t1.consumed.max(t1.matched) {self.display_failures(t1.consumed.max(t1.matched),&["'toLowerCase'", "'('", "')'"]);} Step {ok:false,state,events:EventId(0),diag:d3} } -fn guard_e672_c(&mut self,state:State)->Step { -if !self.can_replay(1) {return self.e672_c(state);} +fn guard_e700_c(&mut self,state:State)->Step { +if !self.can_replay(1) {return self.e700_c(state);} if !DIAG {return Step {ok:false,state,events:EventId(0),diag:Diag::NONE};} self.display_reach(state.consumed.max(state.matched)); let t1=self.trivia_1::(state.entered(true,true)).state; @@ -18392,8 +19141,8 @@ self.display_failures(t1.consumed.max(t1.matched),&["'trim'", "'trim'"]); if state.consumed.max(state.matched)==t1.consumed.max(t1.matched) {self.display_failures(t1.consumed.max(t1.matched),&["'trim'", "'('", "')'"]);} Step {ok:false,state,events:EventId(0),diag:d3} } -fn guard_e673_c(&mut self,state:State)->Step { -if !self.can_replay(2) {return self.e673_c(state);} +fn guard_e701_c(&mut self,state:State)->Step { +if !self.can_replay(2) {return self.e701_c(state);} if !DIAG {return Step {ok:false,state,events:EventId(0),diag:Diag::NONE};} self.display_reach(state.consumed.max(state.matched)); let t1=self.trivia_1::(state.entered(true,true)).state; @@ -18404,8 +19153,8 @@ self.display_failures(t1.consumed.max(t1.matched),&["'$'", "'$'", "'$'", "'$'"]) if state.consumed.max(state.matched)==t1.consumed.max(t1.matched) {self.display_failures(t1.consumed.max(t1.matched),&["'.toUpperCase'", "'('", "')'"]);} Step {ok:false,state,events:EventId(0),diag:d4} } -fn guard_e674_c(&mut self,state:State)->Step { -if !self.can_replay(2) {return self.e674_c(state);} +fn guard_e702_c(&mut self,state:State)->Step { +if !self.can_replay(2) {return self.e702_c(state);} if !DIAG {return Step {ok:false,state,events:EventId(0),diag:Diag::NONE};} self.display_reach(state.consumed.max(state.matched)); let t1=self.trivia_1::(state.entered(true,true)).state; @@ -18416,8 +19165,8 @@ self.display_failures(t1.consumed.max(t1.matched),&["'$'", "'$'", "'$'", "'$'"]) if state.consumed.max(state.matched)==t1.consumed.max(t1.matched) {self.display_failures(t1.consumed.max(t1.matched),&["'.toLowerCase'", "'('", "')'"]);} Step {ok:false,state,events:EventId(0),diag:d4} } -fn guard_e675_c(&mut self,state:State)->Step { -if !self.can_replay(2) {return self.e675_c(state);} +fn guard_e703_c(&mut self,state:State)->Step { +if !self.can_replay(2) {return self.e703_c(state);} if !DIAG {return Step {ok:false,state,events:EventId(0),diag:Diag::NONE};} self.display_reach(state.consumed.max(state.matched)); let t1=self.trivia_1::(state.entered(true,true)).state; @@ -18428,8 +19177,8 @@ self.display_failures(t1.consumed.max(t1.matched),&["'$'", "'$'", "'$'", "'$'"]) if state.consumed.max(state.matched)==t1.consumed.max(t1.matched) {self.display_failures(t1.consumed.max(t1.matched),&["'.trim'", "'('", "')'"]);} Step {ok:false,state,events:EventId(0),diag:d4} } -fn guard_e677_c(&mut self,state:State)->Step { -if !self.can_replay(1) {return self.e677_c(state);} +fn guard_e705_c(&mut self,state:State)->Step { +if !self.can_replay(1) {return self.e705_c(state);} if !DIAG {return Step {ok:false,state,events:EventId(0),diag:Diag::NONE};} self.display_reach(state.consumed.max(state.matched)); let t1=self.trivia_1::(state.entered(true,true)).state; @@ -18439,8 +19188,8 @@ self.display_failures(t1.consumed.max(t1.matched),&["'$'", "'$'"]); if state.consumed.max(state.matched)==t1.consumed.max(t1.matched) {self.display_failures(t1.consumed.max(t1.matched),&["'$'"]);} Step {ok:false,state,events:EventId(0),diag:d3} } -fn guard_e678_c(&mut self,state:State)->Step { -if !self.can_replay(2) {return self.e678_c(state);} +fn guard_e706_c(&mut self,state:State)->Step { +if !self.can_replay(2) {return self.e706_c(state);} if !DIAG {return Step {ok:false,state,events:EventId(0),diag:Diag::NONE};} self.display_reach(state.consumed.max(state.matched)); let t1=self.trivia_1::(state.entered(true,true)).state; @@ -18456,8 +19205,8 @@ if t1.begin().consumed.max(t1.begin().matched)==t1.consumed.max(t1.matched) {sel if state.consumed.max(state.matched)==t1.consumed.max(t1.matched) {self.display_failures(t1.consumed.max(t1.matched),&["'internal'", "'('", "')'"]);} Step {ok:false,state,events:EventId(0),diag:d6} } -fn guard_e813_c(&mut self,state:State)->Step { -if !self.can_replay(1) {return self.e813_c(state);} +fn guard_e841_c(&mut self,state:State)->Step { +if !self.can_replay(1) {return self.e841_c(state);} if !DIAG {return Step {ok:false,state,events:EventId(0),diag:Diag::NONE};} self.display_reach(state.consumed.max(state.matched)); let t1=self.trivia_1::(state.entered(true,true)).state; @@ -18467,8 +19216,8 @@ self.display_failures(t1.consumed.max(t1.matched),&["'match'", "'match'"]); if state.consumed.max(state.matched)==t1.consumed.max(t1.matched) {self.display_failures(t1.consumed.max(t1.matched),&["'match'", "'{'", "','", "'}'"]);} Step {ok:false,state,events:EventId(0),diag:d3} } -fn guard_e814_c(&mut self,state:State)->Step { -if !self.can_replay(1) {return self.e814_c(state);} +fn guard_e842_c(&mut self,state:State)->Step { +if !self.can_replay(1) {return self.e842_c(state);} if !DIAG {return Step {ok:false,state,events:EventId(0),diag:Diag::NONE};} self.display_reach(state.consumed.max(state.matched)); let t1=self.trivia_1::(state.entered(true,true)).state; @@ -18478,8 +19227,8 @@ self.display_failures(t1.consumed.max(t1.matched),&["'if'", "'if'"]); if state.consumed.max(state.matched)==t1.consumed.max(t1.matched) {self.display_failures(t1.consumed.max(t1.matched),&["'if'", "'('", "')'", "'{'", "'}'", "'else'"]);} Step {ok:false,state,events:EventId(0),diag:d3} } -fn guard_e815_c(&mut self,state:State)->Step { -if !self.can_replay(1) {return self.e815_c(state);} +fn guard_e843_c(&mut self,state:State)->Step { +if !self.can_replay(1) {return self.e843_c(state);} if !DIAG {return Step {ok:false,state,events:EventId(0),diag:Diag::NONE};} self.display_reach(state.consumed.max(state.matched)); let t1=self.trivia_1::(state.entered(true,true)).state; @@ -18489,8 +19238,8 @@ self.display_failures(t1.consumed.max(t1.matched),&["'('", "'('"]); if state.consumed.max(state.matched)==t1.consumed.max(t1.matched) {self.display_failures(t1.consumed.max(t1.matched),&["'('", "'string'", "'String'", "')'", "'$'"]);} Step {ok:false,state,events:EventId(0),diag:d3} } -fn guard_e816_c(&mut self,state:State)->Step { -if !self.can_replay(1) {return self.e816_c(state);} +fn guard_e844_c(&mut self,state:State)->Step { +if !self.can_replay(1) {return self.e844_c(state);} if !DIAG {return Step {ok:false,state,events:EventId(0),diag:Diag::NONE};} self.display_reach(state.consumed.max(state.matched)); let t1=self.trivia_1::(state.entered(true,true)).state; @@ -18500,8 +19249,8 @@ self.display_failures(t1.consumed.max(t1.matched),&["'$'", "'$'"]); if state.consumed.max(state.matched)==t1.consumed.max(t1.matched) {self.display_failures(t1.consumed.max(t1.matched),&["'$'", "'as'", "'string'", "'String'"]);} Step {ok:false,state,events:EventId(0),diag:d3} } -fn guard_e818_c(&mut self,state:State)->Step { -if !self.can_replay(1) {return self.e818_c(state);} +fn guard_e846_c(&mut self,state:State)->Step { +if !self.can_replay(1) {return self.e846_c(state);} if !DIAG {return Step {ok:false,state,events:EventId(0),diag:Diag::NONE};} self.display_reach(state.consumed.max(state.matched)); let t1=self.trivia_1::(state.entered(true,true)).state; @@ -18511,8 +19260,8 @@ self.display_failures(t1.consumed.max(t1.matched),&["'('", "'('"]); if state.consumed.max(state.matched)==t1.consumed.max(t1.matched) {self.display_failures(t1.consumed.max(t1.matched),&["'('", "')'"]);} Step {ok:false,state,events:EventId(0),diag:d3} } -fn guard_e819_c(&mut self,state:State)->Step { -if !self.can_replay(1) {return self.e819_c(state);} +fn guard_e847_c(&mut self,state:State)->Step { +if !self.can_replay(1) {return self.e847_c(state);} if !DIAG {return Step {ok:false,state,events:EventId(0),diag:Diag::NONE};} self.display_reach(state.consumed.max(state.matched)); let t1=self.trivia_1::(state.entered(true,true)).state; @@ -18522,8 +19271,8 @@ self.display_failures(t1.consumed.max(t1.matched),&["'external'", "'external'"]) if state.consumed.max(state.matched)==t1.consumed.max(t1.matched) {self.display_failures(t1.consumed.max(t1.matched),&["'external'", "'string'", "':'", "'('", "')'"]);} Step {ok:false,state,events:EventId(0),diag:d3} } -fn guard_e820_c(&mut self,state:State)->Step { -if !self.can_replay(1) {return self.e820_c(state);} +fn guard_e848_c(&mut self,state:State)->Step { +if !self.can_replay(1) {return self.e848_c(state);} if !DIAG {return Step {ok:false,state,events:EventId(0),diag:Diag::NONE};} self.display_reach(state.consumed.max(state.matched)); let t1=self.trivia_1::(state.entered(true,true)).state; @@ -18533,8 +19282,8 @@ self.display_failures(t1.consumed.max(t1.matched),&["'toUpperCase'", "'toUpperCa if state.consumed.max(state.matched)==t1.consumed.max(t1.matched) {self.display_failures(t1.consumed.max(t1.matched),&["'toUpperCase'", "'('", "')'"]);} Step {ok:false,state,events:EventId(0),diag:d3} } -fn guard_e821_c(&mut self,state:State)->Step { -if !self.can_replay(1) {return self.e821_c(state);} +fn guard_e849_c(&mut self,state:State)->Step { +if !self.can_replay(1) {return self.e849_c(state);} if !DIAG {return Step {ok:false,state,events:EventId(0),diag:Diag::NONE};} self.display_reach(state.consumed.max(state.matched)); let t1=self.trivia_1::(state.entered(true,true)).state; @@ -18544,8 +19293,8 @@ self.display_failures(t1.consumed.max(t1.matched),&["'toLowerCase'", "'toLowerCa if state.consumed.max(state.matched)==t1.consumed.max(t1.matched) {self.display_failures(t1.consumed.max(t1.matched),&["'toLowerCase'", "'('", "')'"]);} Step {ok:false,state,events:EventId(0),diag:d3} } -fn guard_e822_c(&mut self,state:State)->Step { -if !self.can_replay(1) {return self.e822_c(state);} +fn guard_e850_c(&mut self,state:State)->Step { +if !self.can_replay(1) {return self.e850_c(state);} if !DIAG {return Step {ok:false,state,events:EventId(0),diag:Diag::NONE};} self.display_reach(state.consumed.max(state.matched)); let t1=self.trivia_1::(state.entered(true,true)).state; @@ -18555,8 +19304,8 @@ self.display_failures(t1.consumed.max(t1.matched),&["'trim'", "'trim'"]); if state.consumed.max(state.matched)==t1.consumed.max(t1.matched) {self.display_failures(t1.consumed.max(t1.matched),&["'trim'", "'('", "')'"]);} Step {ok:false,state,events:EventId(0),diag:d3} } -fn guard_e823_c(&mut self,state:State)->Step { -if !self.can_replay(2) {return self.e823_c(state);} +fn guard_e851_c(&mut self,state:State)->Step { +if !self.can_replay(2) {return self.e851_c(state);} if !DIAG {return Step {ok:false,state,events:EventId(0),diag:Diag::NONE};} self.display_reach(state.consumed.max(state.matched)); let t1=self.trivia_1::(state.entered(true,true)).state; @@ -18567,8 +19316,8 @@ self.display_failures(t1.consumed.max(t1.matched),&["'$'", "'$'", "'$'", "'$'"]) if state.consumed.max(state.matched)==t1.consumed.max(t1.matched) {self.display_failures(t1.consumed.max(t1.matched),&["'.toUpperCase'", "'('", "')'"]);} Step {ok:false,state,events:EventId(0),diag:d4} } -fn guard_e824_c(&mut self,state:State)->Step { -if !self.can_replay(2) {return self.e824_c(state);} +fn guard_e852_c(&mut self,state:State)->Step { +if !self.can_replay(2) {return self.e852_c(state);} if !DIAG {return Step {ok:false,state,events:EventId(0),diag:Diag::NONE};} self.display_reach(state.consumed.max(state.matched)); let t1=self.trivia_1::(state.entered(true,true)).state; @@ -18579,8 +19328,8 @@ self.display_failures(t1.consumed.max(t1.matched),&["'$'", "'$'", "'$'", "'$'"]) if state.consumed.max(state.matched)==t1.consumed.max(t1.matched) {self.display_failures(t1.consumed.max(t1.matched),&["'.toLowerCase'", "'('", "')'"]);} Step {ok:false,state,events:EventId(0),diag:d4} } -fn guard_e825_c(&mut self,state:State)->Step { -if !self.can_replay(2) {return self.e825_c(state);} +fn guard_e853_c(&mut self,state:State)->Step { +if !self.can_replay(2) {return self.e853_c(state);} if !DIAG {return Step {ok:false,state,events:EventId(0),diag:Diag::NONE};} self.display_reach(state.consumed.max(state.matched)); let t1=self.trivia_1::(state.entered(true,true)).state; @@ -18591,8 +19340,8 @@ self.display_failures(t1.consumed.max(t1.matched),&["'$'", "'$'", "'$'", "'$'"]) if state.consumed.max(state.matched)==t1.consumed.max(t1.matched) {self.display_failures(t1.consumed.max(t1.matched),&["'.trim'", "'('", "')'"]);} Step {ok:false,state,events:EventId(0),diag:d4} } -fn guard_e827_c(&mut self,state:State)->Step { -if !self.can_replay(1) {return self.e827_c(state);} +fn guard_e855_c(&mut self,state:State)->Step { +if !self.can_replay(1) {return self.e855_c(state);} if !DIAG {return Step {ok:false,state,events:EventId(0),diag:Diag::NONE};} self.display_reach(state.consumed.max(state.matched)); let t1=self.trivia_1::(state.entered(true,true)).state; @@ -18602,8 +19351,8 @@ self.display_failures(t1.consumed.max(t1.matched),&["'$'", "'$'"]); if state.consumed.max(state.matched)==t1.consumed.max(t1.matched) {self.display_failures(t1.consumed.max(t1.matched),&["'$'"]);} Step {ok:false,state,events:EventId(0),diag:d3} } -fn guard_e828_c(&mut self,state:State)->Step { -if !self.can_replay(2) {return self.e828_c(state);} +fn guard_e856_c(&mut self,state:State)->Step { +if !self.can_replay(2) {return self.e856_c(state);} if !DIAG {return Step {ok:false,state,events:EventId(0),diag:Diag::NONE};} self.display_reach(state.consumed.max(state.matched)); let t1=self.trivia_1::(state.entered(true,true)).state; @@ -18619,8 +19368,8 @@ if t1.begin().consumed.max(t1.begin().matched)==t1.consumed.max(t1.matched) {sel if state.consumed.max(state.matched)==t1.consumed.max(t1.matched) {self.display_failures(t1.consumed.max(t1.matched),&["'internal'", "'('", "')'"]);} Step {ok:false,state,events:EventId(0),diag:d6} } -fn guard_e870_c(&mut self,state:State)->Step { -if !self.can_replay(1) {return self.e870_c(state);} +fn guard_e898_c(&mut self,state:State)->Step { +if !self.can_replay(1) {return self.e898_c(state);} if !DIAG {return Step {ok:false,state,events:EventId(0),diag:Diag::NONE};} self.display_reach(state.consumed.max(state.matched)); let t1=self.trivia_1::(state.entered(true,true)).state; @@ -18630,8 +19379,8 @@ self.display_failures(t1.consumed.max(t1.matched),&["'not'", "'not'"]); if state.consumed.max(state.matched)==t1.consumed.max(t1.matched) {self.display_failures(t1.consumed.max(t1.matched),&["'not'", "'('", "')'"]);} Step {ok:false,state,events:EventId(0),diag:d3} } -fn guard_e871_c(&mut self,state:State)->Step { -if !self.can_replay(1) {return self.e871_c(state);} +fn guard_e899_c(&mut self,state:State)->Step { +if !self.can_replay(1) {return self.e899_c(state);} if !DIAG {return Step {ok:false,state,events:EventId(0),diag:Diag::NONE};} self.display_reach(state.consumed.max(state.matched)); let t1=self.trivia_1::(state.entered(true,true)).state; @@ -18641,8 +19390,8 @@ self.display_failures(t1.consumed.max(t1.matched),&["'if'", "'if'"]); if state.consumed.max(state.matched)==t1.consumed.max(t1.matched) {self.display_failures(t1.consumed.max(t1.matched),&["'if'", "'('", "')'", "'{'", "'}'", "'else'"]);} Step {ok:false,state,events:EventId(0),diag:d3} } -fn guard_e872_c(&mut self,state:State)->Step { -if !self.can_replay(1) {return self.e872_c(state);} +fn guard_e900_c(&mut self,state:State)->Step { +if !self.can_replay(1) {return self.e900_c(state);} if !DIAG {return Step {ok:false,state,events:EventId(0),diag:Diag::NONE};} self.display_reach(state.consumed.max(state.matched)); let t1=self.trivia_1::(state.entered(true,true)).state; @@ -18652,8 +19401,8 @@ self.display_failures(t1.consumed.max(t1.matched),&["'match'", "'match'"]); if state.consumed.max(state.matched)==t1.consumed.max(t1.matched) {self.display_failures(t1.consumed.max(t1.matched),&["'match'", "'{'", "','", "'}'"]);} Step {ok:false,state,events:EventId(0),diag:d3} } -fn guard_e873_c(&mut self,state:State)->Step { -if !self.can_replay(1) {return self.e873_c(state);} +fn guard_e901_c(&mut self,state:State)->Step { +if !self.can_replay(1) {return self.e901_c(state);} if !DIAG {return Step {ok:false,state,events:EventId(0),diag:Diag::NONE};} self.display_reach(state.consumed.max(state.matched)); let t1=self.trivia_1::(state.entered(true,true)).state; @@ -18663,8 +19412,8 @@ self.display_failures(t1.consumed.max(t1.matched),&["'external'", "'external'"]) if state.consumed.max(state.matched)==t1.consumed.max(t1.matched) {self.display_failures(t1.consumed.max(t1.matched),&["'external'", "'boolean'", "':'", "'('", "')'"]);} Step {ok:false,state,events:EventId(0),diag:d3} } -fn guard_e875_c(&mut self,state:State)->Step { -if !self.can_replay(3) {return self.e875_c(state);} +fn guard_e903_c(&mut self,state:State)->Step { +if !self.can_replay(3) {return self.e903_c(state);} if !DIAG {return Step {ok:false,state,events:EventId(0),diag:Diag::NONE};} self.display_reach(state.consumed.max(state.matched)); let t1=self.trivia_1::(state.entered(true,true)).state; @@ -18688,8 +19437,8 @@ if t1.begin().consumed.max(t1.begin().matched)==t1.consumed.max(t1.matched) {sel if state.consumed.max(state.matched)==t1.consumed.max(t1.matched) {self.display_failures(t1.consumed.max(t1.matched),&["'.startsWith'", "'('", "')'"]);} Step {ok:false,state,events:EventId(0),diag:d12} } -fn guard_e876_c(&mut self,state:State)->Step { -if !self.can_replay(3) {return self.e876_c(state);} +fn guard_e904_c(&mut self,state:State)->Step { +if !self.can_replay(3) {return self.e904_c(state);} if !DIAG {return Step {ok:false,state,events:EventId(0),diag:Diag::NONE};} self.display_reach(state.consumed.max(state.matched)); let t1=self.trivia_1::(state.entered(true,true)).state; @@ -18713,8 +19462,8 @@ if t1.begin().consumed.max(t1.begin().matched)==t1.consumed.max(t1.matched) {sel if state.consumed.max(state.matched)==t1.consumed.max(t1.matched) {self.display_failures(t1.consumed.max(t1.matched),&["'.endsWith'", "'('", "')'"]);} Step {ok:false,state,events:EventId(0),diag:d12} } -fn guard_e877_c(&mut self,state:State)->Step { -if !self.can_replay(3) {return self.e877_c(state);} +fn guard_e905_c(&mut self,state:State)->Step { +if !self.can_replay(3) {return self.e905_c(state);} if !DIAG {return Step {ok:false,state,events:EventId(0),diag:Diag::NONE};} self.display_reach(state.consumed.max(state.matched)); let t1=self.trivia_1::(state.entered(true,true)).state; @@ -18738,8 +19487,8 @@ if t1.begin().consumed.max(t1.begin().matched)==t1.consumed.max(t1.matched) {sel if state.consumed.max(state.matched)==t1.consumed.max(t1.matched) {self.display_failures(t1.consumed.max(t1.matched),&["'.contains'", "'('", "')'"]);} Step {ok:false,state,events:EventId(0),diag:d12} } -fn guard_e878_c(&mut self,state:State)->Step { -if !self.can_replay(1) {return self.e878_c(state);} +fn guard_e906_c(&mut self,state:State)->Step { +if !self.can_replay(1) {return self.e906_c(state);} if !DIAG {return Step {ok:false,state,events:EventId(0),diag:Diag::NONE};} self.display_reach(state.consumed.max(state.matched)); let t1=self.trivia_1::(state.entered(true,true)).state; @@ -18749,8 +19498,8 @@ self.display_failures(t1.consumed.max(t1.matched),&["'startsWith'", "'startsWith if state.consumed.max(state.matched)==t1.consumed.max(t1.matched) {self.display_failures(t1.consumed.max(t1.matched),&["'startsWith'", "'('", "','", "')'"]);} Step {ok:false,state,events:EventId(0),diag:d3} } -fn guard_e879_c(&mut self,state:State)->Step { -if !self.can_replay(1) {return self.e879_c(state);} +fn guard_e907_c(&mut self,state:State)->Step { +if !self.can_replay(1) {return self.e907_c(state);} if !DIAG {return Step {ok:false,state,events:EventId(0),diag:Diag::NONE};} self.display_reach(state.consumed.max(state.matched)); let t1=self.trivia_1::(state.entered(true,true)).state; @@ -18760,8 +19509,8 @@ self.display_failures(t1.consumed.max(t1.matched),&["'endsWith'", "'endsWith'"]) if state.consumed.max(state.matched)==t1.consumed.max(t1.matched) {self.display_failures(t1.consumed.max(t1.matched),&["'endsWith'", "'('", "','", "')'"]);} Step {ok:false,state,events:EventId(0),diag:d3} } -fn guard_e880_c(&mut self,state:State)->Step { -if !self.can_replay(1) {return self.e880_c(state);} +fn guard_e908_c(&mut self,state:State)->Step { +if !self.can_replay(1) {return self.e908_c(state);} if !DIAG {return Step {ok:false,state,events:EventId(0),diag:Diag::NONE};} self.display_reach(state.consumed.max(state.matched)); let t1=self.trivia_1::(state.entered(true,true)).state; @@ -18771,8 +19520,8 @@ self.display_failures(t1.consumed.max(t1.matched),&["'contains'", "'contains'"]) if state.consumed.max(state.matched)==t1.consumed.max(t1.matched) {self.display_failures(t1.consumed.max(t1.matched),&["'contains'", "'('", "','", "')'"]);} Step {ok:false,state,events:EventId(0),diag:d3} } -fn guard_e881_c(&mut self,state:State)->Step { -if !self.can_replay(1) {return self.e881_c(state);} +fn guard_e909_c(&mut self,state:State)->Step { +if !self.can_replay(1) {return self.e909_c(state);} if !DIAG {return Step {ok:false,state,events:EventId(0),diag:Diag::NONE};} self.display_reach(state.consumed.max(state.matched)); let t1=self.trivia_1::(state.entered(true,true)).state; @@ -18782,8 +19531,8 @@ self.display_failures(t1.consumed.max(t1.matched),&["'isPresent'", "'isPresent'" if state.consumed.max(state.matched)==t1.consumed.max(t1.matched) {self.display_failures(t1.consumed.max(t1.matched),&["'isPresent'", "'('", "')'"]);} Step {ok:false,state,events:EventId(0),diag:d3} } -fn guard_e882_c(&mut self,state:State)->Step { -if !self.can_replay(1) {return self.e882_c(state);} +fn guard_e910_c(&mut self,state:State)->Step { +if !self.can_replay(1) {return self.e910_c(state);} if !DIAG {return Step {ok:false,state,events:EventId(0),diag:Diag::NONE};} self.display_reach(state.consumed.max(state.matched)); let t1=self.trivia_1::(state.entered(true,true)).state; @@ -18793,8 +19542,8 @@ self.display_failures(t1.consumed.max(t1.matched),&["'inTimeRange'", "'inTimeRan if state.consumed.max(state.matched)==t1.consumed.max(t1.matched) {self.display_failures(t1.consumed.max(t1.matched),&["'inTimeRange'", "'('", "','", "')'"]);} Step {ok:false,state,events:EventId(0),diag:d3} } -fn guard_e883_c(&mut self,state:State)->Step { -if !self.can_replay(1) {return self.e883_c(state);} +fn guard_e911_c(&mut self,state:State)->Step { +if !self.can_replay(1) {return self.e911_c(state);} if !DIAG {return Step {ok:false,state,events:EventId(0),diag:Diag::NONE};} self.display_reach(state.consumed.max(state.matched)); let t1=self.trivia_1::(state.entered(true,true)).state; @@ -18804,8 +19553,8 @@ self.display_failures(t1.consumed.max(t1.matched),&["'inDayTimeRange'", "'inDayT if state.consumed.max(state.matched)==t1.consumed.max(t1.matched) {self.display_failures(t1.consumed.max(t1.matched),&["'inDayTimeRange'", "'('", "','", "')'"]);} Step {ok:false,state,events:EventId(0),diag:d3} } -fn guard_e886_c(&mut self,state:State)->Step { -if !self.can_replay(1) {return self.e886_c(state);} +fn guard_e914_c(&mut self,state:State)->Step { +if !self.can_replay(1) {return self.e914_c(state);} if !DIAG {return Step {ok:false,state,events:EventId(0),diag:Diag::NONE};} self.display_reach(state.consumed.max(state.matched)); let t1=self.trivia_1::(state.entered(true,true)).state; @@ -18815,8 +19564,8 @@ self.display_failures(t1.consumed.max(t1.matched),&["'$'", "'$'"]); if state.consumed.max(state.matched)==t1.consumed.max(t1.matched) {self.display_failures(t1.consumed.max(t1.matched),&["'$'"]);} Step {ok:false,state,events:EventId(0),diag:d3} } -fn guard_e887_c(&mut self,state:State)->Step { -if !self.can_replay(2) {return self.e887_c(state);} +fn guard_e915_c(&mut self,state:State)->Step { +if !self.can_replay(2) {return self.e915_c(state);} if !DIAG {return Step {ok:false,state,events:EventId(0),diag:Diag::NONE};} self.display_reach(state.consumed.max(state.matched)); let t1=self.trivia_1::(state.entered(true,true)).state; @@ -18832,8 +19581,8 @@ if t1.begin().consumed.max(t1.begin().matched)==t1.consumed.max(t1.matched) {sel if state.consumed.max(state.matched)==t1.consumed.max(t1.matched) {self.display_failures(t1.consumed.max(t1.matched),&["'internal'", "'('", "')'"]);} Step {ok:false,state,events:EventId(0),diag:d6} } -fn guard_e888_c(&mut self,state:State)->Step { -if !self.can_replay(0) {return self.e888_c(state);} +fn guard_e916_c(&mut self,state:State)->Step { +if !self.can_replay(0) {return self.e916_c(state);} if !DIAG {return Step {ok:false,state,events:EventId(0),diag:Diag::NONE};} self.display_reach(state.consumed.max(state.matched)); let t1=self.trivia_1::(state.entered(true,true)).state; @@ -18842,8 +19591,8 @@ self.display_failures(t1.consumed.max(t1.matched),&["'('", "'('"]); if state.consumed.max(state.matched)==t1.consumed.max(t1.matched) {self.display_failures(t1.consumed.max(t1.matched),&["'('", "')'"]);} Step {ok:false,state,events:EventId(0),diag:d2} } -fn guard_e923_c(&mut self,state:State)->Step { -if !self.can_replay(1) {return self.e923_c(state);} +fn guard_e951_c(&mut self,state:State)->Step { +if !self.can_replay(1) {return self.e951_c(state);} if !DIAG {return Step {ok:false,state,events:EventId(0),diag:Diag::NONE};} self.display_reach(state.consumed.max(state.matched)); let t1=self.trivia_1::(state.entered(true,true)).state; @@ -18853,8 +19602,8 @@ self.display_failures(t1.consumed.max(t1.matched),&["'external'", "'external'"]) if state.consumed.max(state.matched)==t1.consumed.max(t1.matched) {self.display_failures(t1.consumed.max(t1.matched),&["'external'", "'object'", "':'", "'('", "')'", "'('", "')'", "'external'"]);} Step {ok:false,state,events:EventId(0),diag:d3} } -fn guard_e924_c(&mut self,state:State)->Step { -if !self.can_replay(1) {return self.e924_c(state);} +fn guard_e952_c(&mut self,state:State)->Step { +if !self.can_replay(1) {return self.e952_c(state);} if !DIAG {return Step {ok:false,state,events:EventId(0),diag:Diag::NONE};} self.display_reach(state.consumed.max(state.matched)); let t1=self.trivia_1::(state.entered(true,true)).state; @@ -18864,8 +19613,8 @@ self.display_failures(t1.consumed.max(t1.matched),&["'$'", "'$'"]); if state.consumed.max(state.matched)==t1.consumed.max(t1.matched) {self.display_failures(t1.consumed.max(t1.matched),&["'$'", "'$'"]);} Step {ok:false,state,events:EventId(0),diag:d3} } -fn guard_e925_c(&mut self,state:State)->Step { -if !self.can_replay(2) {return self.e925_c(state);} +fn guard_e953_c(&mut self,state:State)->Step { +if !self.can_replay(2) {return self.e953_c(state);} if !DIAG {return Step {ok:false,state,events:EventId(0),diag:Diag::NONE};} self.display_reach(state.consumed.max(state.matched)); let t1=self.trivia_1::(state.entered(true,true)).state; @@ -18881,8 +19630,8 @@ if t1.begin().consumed.max(t1.begin().matched)==t1.consumed.max(t1.matched) {sel if state.consumed.max(state.matched)==t1.consumed.max(t1.matched) {self.display_failures(t1.consumed.max(t1.matched),&["'internal'", "'('", "')'", "'('", "')'"]);} Step {ok:false,state,events:EventId(0),diag:d6} } -fn guard_e946_c(&mut self,state:State)->Step { -if !self.can_replay(2) {return self.e946_c(state);} +fn guard_e974_c(&mut self,state:State)->Step { +if !self.can_replay(2) {return self.e974_c(state);} if !DIAG {return Step {ok:false,state,events:EventId(0),diag:Diag::NONE};} self.display_reach(state.consumed.max(state.matched)); let t1=self.trivia_1::(state.entered(true,true)).state; @@ -18898,8 +19647,8 @@ if t1.begin().consumed.max(t1.begin().matched)==t1.consumed.max(t1.matched) {sel if state.consumed.max(state.matched)==t1.consumed.max(t1.matched) {self.display_failures(t1.consumed.max(t1.matched),&["'internal'", "'('", "')'", "'('", "')'"]);} Step {ok:false,state,events:EventId(0),diag:d6} } -fn guard_e1042_c(&mut self,state:State)->Step { -if !self.can_replay(2) {return self.e1042_c(state);} +fn guard_e1070_c(&mut self,state:State)->Step { +if !self.can_replay(2) {return self.e1070_c(state);} if !DIAG {return Step {ok:false,state,events:EventId(0),diag:Diag::NONE};} self.display_reach(state.consumed.max(state.matched)); let t1=self.trivia_1::(state.entered(true,true)).state; @@ -18915,8 +19664,8 @@ if t1.begin().consumed.max(t1.begin().matched)==t1.consumed.max(t1.matched) {sel if state.consumed.max(state.matched)==t1.consumed.max(t1.matched) {self.display_failures(t1.consumed.max(t1.matched),&["'internal'", "'('", "')'", "'('", "')'"]);} Step {ok:false,state,events:EventId(0),diag:d6} } -fn guard_e1043_c(&mut self,state:State)->Step { -if !self.can_replay(0) {return self.e1043_c(state);} +fn guard_e1071_c(&mut self,state:State)->Step { +if !self.can_replay(0) {return self.e1071_c(state);} if !DIAG {return Step {ok:false,state,events:EventId(0),diag:Diag::NONE};} self.display_reach(state.consumed.max(state.matched)); let t1=self.trivia_1::(state.entered(true,true)).state; diff --git a/rust/tinyexpression-rs/src/generated/ubnfc/runtime.rs b/rust/tinyexpression-rs/src/generated/ubnfc/runtime.rs index 77e0018e..3f37c4b5 100644 --- a/rust/tinyexpression-rs/src/generated/ubnfc/runtime.rs +++ b/rust/tinyexpression-rs/src/generated/ubnfc/runtime.rs @@ -3234,12 +3234,12 @@ use super::ast::*; const HAS_RECOVERY:bool=false; const SCOPE_MODES:&[&str]=&["lexical"]; const HAS_SCOPE:bool=true; -const RULES:&[&str]=&["TinyExpressionP4::Formula", "TinyExpressionP4::CodeBlock", "TinyExpressionP4::ImportDeclaration", "TinyExpressionP4::ClassName", "TinyExpressionP4::VariableDeclaration", "TinyExpressionP4::NumberVariableDeclaration", "TinyExpressionP4::StringVariableDeclaration", "TinyExpressionP4::BooleanVariableDeclaration", "TinyExpressionP4::ObjectVariableDeclaration", "TinyExpressionP4::TypeHint", "TinyExpressionP4::NumberTypeHint", "TinyExpressionP4::StringTypeHint", "TinyExpressionP4::BooleanTypeHint", "TinyExpressionP4::ObjectTypeHint", "TinyExpressionP4::OnlyIfAbsent", "TinyExpressionP4::Description", "TinyExpressionP4::Annotation", "TinyExpressionP4::AnnotationParameters", "TinyExpressionP4::AnnotationParameter", "TinyExpressionP4::MethodDeclaration", "TinyExpressionP4::NumberMethodDeclaration", "TinyExpressionP4::StringMethodDeclaration", "TinyExpressionP4::BooleanMethodDeclaration", "TinyExpressionP4::ObjectMethodDeclaration", "TinyExpressionP4::MethodParameters", "TinyExpressionP4::MethodParameter", "TinyExpressionP4::NumberReturnType", "TinyExpressionP4::StringReturnType", "TinyExpressionP4::BooleanReturnType", "TinyExpressionP4::ObjectReturnType", "TinyExpressionP4::ReturnType", "TinyExpressionP4::ExternalBooleanInvocation", "TinyExpressionP4::ExternalNumberInvocation", "TinyExpressionP4::ExternalStringInvocation", "TinyExpressionP4::ExternalObjectInvocation", "TinyExpressionP4::MethodInvocationHeader", "TinyExpressionP4::MethodInvocation", "TinyExpressionP4::ArgumentTernary", "TinyExpressionP4::ArgumentExpression", "TinyExpressionP4::Arguments", "TinyExpressionP4::NumberExpression", "TinyExpressionP4::NumberTerm", "TinyExpressionP4::AddOp", "TinyExpressionP4::MulOp", "TinyExpressionP4::MathFunction", "TinyExpressionP4::SinFunction", "TinyExpressionP4::CosFunction", "TinyExpressionP4::TanFunction", "TinyExpressionP4::SqrtFunction", "TinyExpressionP4::MinFunction", "TinyExpressionP4::MaxFunction", "TinyExpressionP4::RandomFunction", "TinyExpressionP4::AbsFunction", "TinyExpressionP4::RoundFunction", "TinyExpressionP4::CeilFunction", "TinyExpressionP4::FloorFunction", "TinyExpressionP4::PowFunction", "TinyExpressionP4::LogFunction", "TinyExpressionP4::ExpFunction", "TinyExpressionP4::ToNumFunction", "TinyExpressionP4::NumberFactor", "TinyExpressionP4::ToUpperCaseFunction", "TinyExpressionP4::ToLowerCaseFunction", "TinyExpressionP4::TrimFunction", "TinyExpressionP4::LengthFunction", "TinyExpressionP4::LenFunction", "TinyExpressionP4::ToUpperCaseDotMethod", "TinyExpressionP4::ToLowerCaseDotMethod", "TinyExpressionP4::TrimDotMethod", "TinyExpressionP4::LengthDotMethod", "TinyExpressionP4::StartsWithFunction", "TinyExpressionP4::EndsWithFunction", "TinyExpressionP4::ContainsFunction", "TinyExpressionP4::InMethod", "TinyExpressionP4::StartsWithDotMethod", "TinyExpressionP4::EndsWithDotMethod", "TinyExpressionP4::ContainsDotMethod", "TinyExpressionP4::StringPredicateReceiver", "TinyExpressionP4::IsPresentFunction", "TinyExpressionP4::InTimeRangeFunction", "TinyExpressionP4::InDayTimeRangeFunction", "TinyExpressionP4::DayOfWeek", "TinyExpressionP4::SliceBaseReceiver", "TinyExpressionP4::SliceStartIndex", "TinyExpressionP4::SliceEndIndex", "TinyExpressionP4::SliceStepIndex", "TinyExpressionP4::SliceBaseExpression", "TinyExpressionP4::SliceNestedExpression", "TinyExpressionP4::SliceExpression", "TinyExpressionP4::StringExpression", "TinyExpressionP4::ParenthesizedStringExpression", "TinyExpressionP4::StringTerm", "TinyExpressionP4::StringCastVariable", "TinyExpressionP4::StringTypedVariable", "TinyExpressionP4::BooleanExpression", "TinyExpressionP4::BooleanAndExpression", "TinyExpressionP4::BooleanXorExpression", "TinyExpressionP4::NotExpression", "TinyExpressionP4::BooleanComparable", "TinyExpressionP4::BooleanEqualityExpression", "TinyExpressionP4::BooleanFactor", "TinyExpressionP4::StringComparisonExpression", "TinyExpressionP4::EqualityOp", "TinyExpressionP4::ComparisonExpression", "TinyExpressionP4::CompareOp", "TinyExpressionP4::ObjectExpression", "TinyExpressionP4::IfExpression", "TinyExpressionP4::BranchExpression", "TinyExpressionP4::TernaryExpression", "TinyExpressionP4::NumberMatchExpression", "TinyExpressionP4::NumberCase", "TinyExpressionP4::NumberDefaultCase", "TinyExpressionP4::NumberCaseValue", "TinyExpressionP4::StringMatchExpression", "TinyExpressionP4::StringCase", "TinyExpressionP4::StringDefaultCase", "TinyExpressionP4::StringCaseValue", "TinyExpressionP4::BooleanMatchExpression", "TinyExpressionP4::BooleanCase", "TinyExpressionP4::BooleanDefaultCase", "TinyExpressionP4::BooleanCaseValue", "TinyExpressionP4::VariableRef", "TinyExpressionP4::TypeKeyword", "TinyExpressionP4::Expression"]; -const EXPRESSIONS:&[&str]=&["expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1007:1178:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1007:1032:body/0/repeat", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1009:1018:body/0/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1033:1063:body/1/repeat", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1035:1052:body/1/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1064:1101:body/2/repeat", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1066:1085:body/2/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1106:1120:body/3/repeat", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1108:1118:body/3/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1121:1131:body/4/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1144:1174:body/5/repeat", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1146:1163:body/5/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1175:1178:body/6/tokenRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1611:1662:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1611:1662:body/0/group", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1613:1660:body/0/0/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1613:1628:body/0/0/0/tokenRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1631:1660:body/0/0/1/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1631:1641:body/0/0/1/0/tokenRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1642:1651:body/0/0/1/1/tokenRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1652:1660:body/0/0/1/2/tokenRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2118:2201:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2118:2126:body/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2127:2136:body/1/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2148:2174:body/2/optional", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2150:2164:body/2/0/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2150:2153:body/2/0/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2154:2164:body/2/0/1/tokenRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2175:2179:body/3/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2180:2190:body/4/tokenRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2198:2201:body/5/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2272:2313:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2272:2282:body/0/tokenRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2289:2313:body/1/repeat", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2291:2305:body/1/0/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2291:2294:body/1/0/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2295:2305:body/1/0/1/tokenRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2464:2586:body/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2464:2489:body/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2496:2521:body/1/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2528:2554:body/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2561:2586:body/3/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2759:2935:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2759:2781:body/0/group", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2761:2779:body/0/0/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2761:2771:body/0/0/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2774:2779:body/0/0/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2786:2789:body/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2790:2800:body/2/tokenRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2814:2832:body/3/optional", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2816:2830:body/3/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2837:2901:body/4/optional", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2839:2892:body/4/0/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2839:2844:body/4/0/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2845:2875:body/4/0/1/optional", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2847:2859:body/4/0/1/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2876:2892:body/4/0/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2906:2927:body/5/optional", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2908:2919:body/5/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2932:2935:body/6/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3108:3284:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3108:3130:body/0/group", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3110:3128:body/0/0/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3110:3120:body/0/0/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3123:3128:body/0/0/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3135:3138:body/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3139:3149:body/2/tokenRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3163:3181:body/3/optional", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3165:3179:body/3/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3186:3250:body/4/optional", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3188:3241:body/4/0/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3188:3193:body/4/0/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3194:3224:body/4/0/1/optional", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3196:3208:body/4/0/1/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3225:3241:body/4/0/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3255:3276:body/5/optional", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3257:3268:body/5/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3281:3284:body/6/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3459:3637:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3459:3481:body/0/group", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3461:3479:body/0/0/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3461:3471:body/0/0/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3474:3479:body/0/0/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3486:3489:body/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3490:3500:body/2/tokenRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3514:3533:body/3/optional", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3516:3531:body/3/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3538:3603:body/4/optional", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3540:3594:body/4/0/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3540:3545:body/4/0/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3546:3576:body/4/0/1/optional", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3548:3560:body/4/0/1/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3577:3594:body/4/0/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3608:3629:body/5/optional", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3610:3621:body/5/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3634:3637:body/6/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3810:3986:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3810:3832:body/0/group", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3812:3830:body/0/0/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3812:3822:body/0/0/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3825:3830:body/0/0/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3837:3840:body/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3841:3851:body/2/tokenRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3865:3883:body/3/optional", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3867:3881:body/3/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3888:3952:body/4/optional", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3890:3943:body/4/0/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3890:3895:body/4/0/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3896:3926:body/4/0/1/optional", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3898:3910:body/4/0/1/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3927:3943:body/4/0/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3957:3978:body/5/optional", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3959:3970:body/5/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3983:3986:body/6/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4005:4109:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4005:4013:body/0/optional", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4007:4011:body/0/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4014:4109:body/1/group", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4016:4107:body/1/0/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4016:4024:body/1/0/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4027:4035:body/1/0/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4038:4046:body/1/0/2/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4049:4057:body/1/0/3/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4064:4073:body/1/0/4/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4076:4085:body/1/0/5/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4088:4096:body/1/0/6/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4099:4107:body/1/0/7/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4134:4186:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4134:4142:body/0/optional", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4136:4140:body/0/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4143:4186:body/1/group", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4145:4184:body/1/0/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4145:4153:body/1/0/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4156:4164:body/1/0/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4167:4174:body/1/0/2/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4177:4184:body/1/0/3/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4210:4242:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4210:4218:body/0/optional", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4212:4216:body/0/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4219:4242:body/1/group", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4221:4240:body/1/0/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4221:4229:body/1/0/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4232:4240:body/1/0/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4267:4301:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4267:4275:body/0/optional", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4269:4273:body/0/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4276:4301:body/1/group", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4278:4299:body/1/0/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4278:4287:body/1/0/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4290:4299:body/1/0/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4325:4357:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4325:4333:body/0/optional", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4327:4331:body/0/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4334:4357:body/1/group", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4336:4355:body/1/0/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4336:4344:body/1/0/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4347:4355:body/1/0/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4409:4428:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4409:4413:body/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4414:4419:body/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4420:4428:body/2/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4450:4474:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4450:4463:body/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4464:4467:body/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4468:4474:body/2/tokenRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4495:4542:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4495:4498:body/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4499:4509:body/1/tokenRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4510:4513:body/2/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4514:4538:body/3/optional", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4516:4536:body/3/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4539:4542:body/4/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4572:4619:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4572:4591:body/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4592:4619:body/1/repeat", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4594:4617:body/1/0/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4594:4597:body/1/0/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4598:4617:body/1/0/1/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4648:4673:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4648:4658:body/0/tokenRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4659:4662:body/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4663:4673:body/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4707:4821:body/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4707:4730:body/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4737:4760:body/1/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4767:4791:body/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4798:4821:body/3/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5002:5147:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5002:5018:body/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5019:5029:body/1/tokenRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5046:5049:body/2/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5056:5088:body/3/optional", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5058:5074:body/3/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5093:5096:body/4/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5101:5104:body/5/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5111:5127:body/6/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5144:5147:body/7/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5328:5473:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5328:5344:body/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5345:5355:body/1/tokenRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5372:5375:body/2/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5382:5414:body/3/optional", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5384:5400:body/3/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5419:5422:body/4/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5427:5430:body/5/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5437:5453:body/6/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5470:5473:body/7/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5656:5803:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5656:5673:body/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5674:5684:body/1/tokenRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5701:5704:body/2/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5711:5743:body/3/optional", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5713:5729:body/3/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5748:5751:body/4/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5756:5759:body/5/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5766:5783:body/6/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5800:5803:body/7/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5984:6129:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5984:6000:body/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6001:6011:body/1/tokenRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6028:6031:body/2/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6038:6070:body/3/optional", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6040:6056:body/3/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6075:6078:body/4/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6083:6086:body/5/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6093:6109:body/6/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6126:6129:body/7/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6206:6261:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6206:6221:body/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6230:6261:body/1/repeat", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6232:6251:body/1/0/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6232:6235:body/1/0/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6236:6251:body/1/0/1/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6375:6426:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6375:6378:body/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6379:6389:body/1/tokenRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6401:6426:body/2/optional", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6403:6418:body/2/0/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6403:6407:body/2/0/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6408:6418:body/2/0/1/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6453:6471:body/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6453:6461:body/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6464:6471:body/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6497:6505:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6497:6505:body/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6532:6541:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6532:6541:body/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6567:6575:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6567:6575:body/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6595:6669:body/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6595:6611:body/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6614:6630:body/1/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6633:6650:body/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6653:6669:body/3/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6995:7161:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6995:7005:body/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7006:7030:body/1/optional", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7008:7028:body/1/0/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7008:7019:body/1/0/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7020:7028:body/1/0/1/optional", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7022:7026:body/1/0/1/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7031:7048:body/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7053:7060:body/3/optional", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7055:7058:body/3/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7065:7129:body/4/group", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7067:7121:body/4/0/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7067:7102:body/4/0/0/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7067:7076:body/4/0/0/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7088:7091:body/4/0/0/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7092:7102:body/4/0/0/2/tokenRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7111:7121:body/4/0/1/tokenRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7134:7137:body/5/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7138:7157:body/6/optional", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7140:7149:body/6/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7158:7161:body/7/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7273:7452:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7273:7283:body/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7288:7351:body/1/group", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7290:7349:body/1/0/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7290:7339:body/1/0/0/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7290:7314:body/1/0/0/0/optional", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7292:7312:body/1/0/0/0/0/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7292:7303:body/1/0/0/0/0/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7304:7312:body/1/0/0/0/0/1/optional", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7306:7310:body/1/0/0/0/0/1/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7315:7331:body/1/0/0/1/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7332:7339:body/1/0/0/2/optional", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7334:7337:body/1/0/0/2/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7342:7349:body/1/0/1/optional", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7344:7347:body/1/0/1/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7356:7420:body/2/group", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7358:7412:body/2/0/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7358:7393:body/2/0/0/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7358:7367:body/2/0/0/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7379:7382:body/2/0/0/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7383:7393:body/2/0/0/2/tokenRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7402:7412:body/2/0/1/tokenRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7425:7428:body/3/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7429:7448:body/4/optional", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7431:7440:body/4/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7449:7452:body/5/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7564:7729:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7564:7574:body/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7575:7599:body/1/optional", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7577:7597:body/1/0/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7577:7588:body/1/0/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7589:7597:body/1/0/1/optional", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7591:7595:body/1/0/1/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7600:7616:body/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7621:7628:body/3/optional", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7623:7626:body/3/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7633:7697:body/4/group", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7635:7689:body/4/0/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7635:7670:body/4/0/0/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7635:7644:body/4/0/0/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7656:7659:body/4/0/0/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7660:7670:body/4/0/0/2/tokenRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7679:7689:body/4/0/1/tokenRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7702:7705:body/5/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7706:7725:body/6/optional", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7708:7717:body/6/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7726:7729:body/7/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7841:8006:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7841:7851:body/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7852:7876:body/1/optional", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7854:7874:body/1/0/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7854:7865:body/1/0/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7866:7874:body/1/0/1/optional", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7868:7872:body/1/0/1/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7877:7893:body/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7898:7905:body/3/optional", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7900:7903:body/3/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7910:7974:body/4/group", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7912:7966:body/4/0/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7912:7947:body/4/0/0/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7912:7921:body/4/0/0/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7933:7936:body/4/0/0/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7937:7947:body/4/0/0/2/tokenRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7956:7966:body/4/0/1/tokenRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7979:7982:body/5/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7983:8002:body/6/optional", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7985:7994:body/6/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8003:8006:body/7/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8211:8245:body/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8211:8232:body/0/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8211:8217:body/0/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8218:8232:body/0/1/optional", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8220:8230:body/0/1/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8235:8245:body/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8348:8415:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8348:8370:body/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8371:8381:body/1/tokenRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8388:8391:body/2/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8392:8411:body/3/optional", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8394:8403:body/3/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8412:8415:body/4/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8582:8662:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8582:8599:body/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8611:8614:body/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8615:8631:body/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8642:8645:body/3/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8646:8662:body/4/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8758:8871:body/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8758:8773:body/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8787:8807:body/1/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8821:8847:body/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8861:8871:body/3/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8941:9002:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8941:8959:body/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8968:9002:body/1/repeat", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8970:8992:body/1/0/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8970:8973:body/1/0/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8974:8992:body/1/0/1/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9197:9245:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9197:9207:body/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9214:9245:body/1/repeat", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9216:9236:body/1/0/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9216:9221:body/1/0/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9226:9236:body/1/0/1/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9352:9404:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9352:9364:body/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9371:9404:body/1/repeat", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9373:9395:body/1/0/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9373:9378:body/1/0/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9383:9395:body/1/0/1/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9420:9429:body/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9420:9423:body/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9426:9429:body/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9444:9453:body/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9444:9447:body/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9450:9453:body/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9561:9815:body/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9561:9572:body/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9579:9590:body/1/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9597:9608:body/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9615:9627:body/3/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9634:9645:body/4/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9652:9663:body/5/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9670:9684:body/6/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9691:9702:body/7/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9709:9722:body/8/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9729:9741:body/9/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9748:9761:body/10/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9768:9779:body/11/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9786:9797:body/12/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9804:9815:body/13/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9871:9908:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9871:9876:body/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9877:9880:body/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9881:9899:body/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9905:9908:body/3/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9964:10001:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9964:9969:body/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9970:9973:body/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9974:9992:body/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9998:10001:body/3/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10057:10094:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10057:10062:body/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10063:10066:body/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10067:10085:body/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10091:10094:body/3/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10152:10190:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10152:10158:body/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10159:10162:body/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10163:10181:body/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10187:10190:body/3/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10254:10326:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10254:10259:body/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10260:10263:body/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10264:10282:body/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10290:10322:body/3/repeat", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10292:10314:body/3/0/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10292:10295:body/3/0/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10296:10314:body/3/0/1/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10323:10326:body/4/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10390:10462:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10390:10395:body/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10396:10399:body/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10400:10418:body/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10426:10458:body/3/repeat", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10428:10450:body/3/0/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10428:10431:body/3/0/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10432:10450:body/3/0/1/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10459:10462:body/4/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10510:10526:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10510:10518:body/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10519:10522:body/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10523:10526:body/2/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10582:10619:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10582:10587:body/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10588:10591:body/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10592:10610:body/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10616:10619:body/3/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10679:10718:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10679:10686:body/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10687:10690:body/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10691:10709:body/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10715:10718:body/3/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10776:10814:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10776:10782:body/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10783:10786:body/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10787:10805:body/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10811:10814:body/3/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10874:10913:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10874:10881:body/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10882:10885:body/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10886:10904:body/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10910:10913:body/3/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10980:11051:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10980:10985:body/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10986:10989:body/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10990:11008:body/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11015:11018:body/3/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11019:11037:body/4/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11048:11051:body/5/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11107:11144:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11107:11112:body/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11113:11116:body/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11117:11135:body/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11141:11144:body/3/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11200:11237:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11200:11205:body/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11206:11209:body/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11210:11228:body/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11234:11237:body/3/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11391:11467:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11391:11398:body/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11399:11402:body/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11403:11419:body/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11427:11430:body/3/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11431:11449:body/4/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11464:11467:body/5/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11496:11776:body/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11496:11513:body/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11520:11541:body/1/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11548:11560:body/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11567:11579:body/3/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11586:11599:body/4/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11606:11621:body/5/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11628:11639:body/6/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11646:11660:body/7/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11667:11691:body/8/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11698:11704:body/9/tokenRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11711:11722:body/10/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11729:11745:body/11/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11752:11776:body/12/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11752:11755:body/12/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11756:11772:body/12/1/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11773:11776:body/12/2/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11929:11974:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11929:11942:body/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11943:11946:body/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11947:11963:body/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11971:11974:body/3/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12048:12093:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12048:12061:body/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12062:12065:body/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12066:12082:body/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12090:12093:body/3/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12153:12191:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12153:12159:body/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12160:12163:body/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12164:12180:body/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12188:12191:body/3/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12255:12295:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12255:12263:body/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12264:12267:body/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12268:12284:body/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12292:12295:body/3/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12356:12393:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12356:12361:body/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12362:12365:body/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12366:12382:body/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12390:12393:body/3/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12718:12759:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12718:12729:body/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12737:12751:body/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12752:12755:body/2/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12756:12759:body/3/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12837:12878:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12837:12848:body/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12856:12870:body/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12871:12874:body/2/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12875:12878:body/3/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12942:12976:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12942:12953:body/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12961:12968:body/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12969:12972:body/2/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12973:12976:body/3/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13044:13080:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13044:13055:body/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13063:13072:body/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13073:13076:body/2/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13077:13080:body/3/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13300:13414:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13300:13312:body/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13313:13316:body/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13317:13333:body/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13341:13344:body/3/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13345:13361:body/4/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13376:13410:body/5/repeat", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13378:13398:body/5/0/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13378:13381:body/5/0/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13382:13398:body/5/0/1/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13411:13414:body/6/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13492:13604:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13492:13502:body/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13503:13506:body/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13507:13523:body/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13531:13534:body/3/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13535:13551:body/4/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13566:13600:body/5/repeat", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13568:13588:body/5/0/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13568:13571:body/5/0/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13572:13588:body/5/0/1/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13601:13604:body/6/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13682:13794:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13682:13692:body/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13693:13696:body/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13697:13713:body/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13721:13724:body/3/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13725:13741:body/4/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13756:13790:body/5/repeat", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13758:13778:body/5/0/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13758:13761:body/5/0/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13762:13778:body/5/0/1/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13791:13794:body/6/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13860:13963:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13860:13876:body/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13884:13889:body/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13890:13893:body/2/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13894:13910:body/3/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13923:13959:body/4/repeat", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13925:13945:body/4/0/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13925:13928:body/4/0/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13929:13945:body/4/0/1/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13960:13963:body/5/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14128:14246:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14128:14151:body/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14159:14172:body/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14173:14176:body/2/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14177:14193:body/3/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14208:14242:body/4/repeat", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14210:14230:body/4/0/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14210:14213:body/4/0/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14214:14230:body/4/0/1/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14243:14246:body/5/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14328:14444:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14328:14351:body/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14359:14370:body/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14371:14374:body/2/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14375:14391:body/3/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14406:14440:body/4/repeat", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14408:14428:body/4/0/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14408:14411:body/4/0/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14412:14428:body/4/0/1/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14441:14444:body/5/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14526:14642:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14526:14549:body/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14557:14568:body/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14569:14572:body/2/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14573:14589:body/3/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14604:14638:body/4/repeat", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14606:14626:body/4/0/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14606:14609:body/4/0/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14610:14626:body/4/0/1/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14639:14642:body/5/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14676:14746:body/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14676:14695:body/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14698:14717:body/1/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14720:14732:body/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14735:14746:body/3/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14895:14933:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14895:14906:body/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14907:14910:body/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14911:14922:body/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14930:14933:body/3/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15097:15176:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15097:15110:body/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15111:15114:body/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15115:15131:body/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15143:15146:body/3/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15147:15163:body/4/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15173:15176:body/5/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15287:15415:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15287:15303:body/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15304:15307:body/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15308:15317:body/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15328:15331:body/3/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15332:15348:body/4/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15360:15363:body/5/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15364:15373:body/6/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15382:15385:body/7/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15386:15402:body/8/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15412:15415:body/9/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15435:15517:body/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15435:15443:body/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15446:15455:body/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15458:15469:body/2/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15472:15482:body/3/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15485:15493:body/4/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15496:15506:body/5/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15509:15517:body/6/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15685:15954:body/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15685:15709:body/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15716:15735:body/1/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15716:15719:body/1/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15720:15731:body/1/1/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15732:15735:body/1/2/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15742:15771:body/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15778:15797:body/3/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15800:15819:body/4/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15822:15834:body/5/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15841:15861:body/6/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15864:15884:body/7/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15887:15900:body/8/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15907:15913:body/9/tokenRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15920:15931:body/10/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15938:15954:body/11/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16470:16486:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16470:16486:body/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16511:16527:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16511:16527:body/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16552:16568:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16552:16568:body/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16660:17265:body/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16660:16763:body/0/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16660:16677:body/0/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16685:16688:body/0/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16689:16704:body/0/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16712:16715:body/0/3/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16716:16729:body/0/4/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16735:16738:body/0/5/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16739:16753:body/0/6/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16760:16763:body/0/7/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16770:16848:body/1/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16770:16787:body/1/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16795:16798:body/1/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16799:16814:body/1/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16822:16825:body/1/3/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16826:16839:body/1/4/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16845:16848:body/1/5/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16855:16939:body/2/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16855:16872:body/2/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16880:16883:body/2/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16884:16899:body/2/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16907:16910:body/2/3/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16911:16914:body/2/4/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16915:16929:body/2/5/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16936:16939:body/2/6/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16946:17005:body/3/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16946:16963:body/3/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16971:16974:body/3/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16975:16990:body/3/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16998:17001:body/3/3/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17002:17005:body/3/4/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17012:17092:body/4/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17012:17029:body/4/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17037:17040:body/4/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17041:17044:body/4/2/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17045:17058:body/4/3/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17064:17067:body/4/4/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17068:17082:body/4/5/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17089:17092:body/4/6/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17099:17154:body/5/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17099:17116:body/5/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17124:17127:body/5/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17128:17131:body/5/2/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17132:17145:body/5/3/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17151:17154:body/5/4/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17161:17222:body/6/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17161:17178:body/6/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17186:17189:body/6/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17190:17193:body/6/2/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17194:17197:body/6/3/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17198:17212:body/6/4/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17219:17222:body/6/5/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17229:17265:body/7/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17229:17246:body/7/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17254:17257:body/7/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17258:17261:body/7/2/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17262:17265:body/7/3/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17359:17980:body/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17359:17464:body/0/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17359:17378:body/0/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17386:17389:body/0/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17390:17405:body/0/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17413:17416:body/0/3/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17417:17430:body/0/4/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17436:17439:body/0/5/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17440:17454:body/0/6/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17461:17464:body/0/7/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17471:17551:body/1/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17471:17490:body/1/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17498:17501:body/1/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17502:17517:body/1/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17525:17528:body/1/3/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17529:17542:body/1/4/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17548:17551:body/1/5/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17558:17644:body/2/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17558:17577:body/2/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17585:17588:body/2/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17589:17604:body/2/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17612:17615:body/2/3/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17616:17619:body/2/4/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17620:17634:body/2/5/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17641:17644:body/2/6/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17651:17712:body/3/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17651:17670:body/3/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17678:17681:body/3/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17682:17697:body/3/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17705:17708:body/3/3/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17709:17712:body/3/4/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17719:17801:body/4/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17719:17738:body/4/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17746:17749:body/4/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17750:17753:body/4/2/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17754:17767:body/4/3/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17773:17776:body/4/4/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17777:17791:body/4/5/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17798:17801:body/4/6/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17808:17865:body/5/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17808:17827:body/5/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17835:17838:body/5/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17839:17842:body/5/2/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17843:17856:body/5/3/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17862:17865:body/5/4/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17872:17935:body/6/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17872:17891:body/6/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17899:17902:body/6/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17903:17906:body/6/2/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17907:17910:body/6/3/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17911:17925:body/6/4/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17932:17935:body/6/5/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17942:17980:body/7/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17942:17961:body/7/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17969:17972:body/7/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17973:17976:body/7/2/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17977:17980:body/7/3/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18006:18049:body/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18006:18027:body/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18030:18049:body/1/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18250:18296:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18250:18260:body/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18267:18296:body/1/repeat", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18269:18287:body/1/0/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18269:18272:body/1/0/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18277:18287:body/1/0/1/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18336:18360:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18336:18339:body/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18340:18356:body/1/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18357:18360:body/2/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18567:18930:body/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18567:18588:body/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18595:18607:body/1/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18614:18632:body/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18639:18658:body/3/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18665:18680:body/4/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18687:18716:body/5/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18723:18747:body/6/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18754:18773:body/7/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18776:18795:body/8/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18798:18810:body/9/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18817:18837:body/10/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18840:18860:body/11/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18863:18876:body/12/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18883:18889:body/13/tokenRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18896:18907:body/14/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18914:18930:body/15/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19012:19058:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19012:19015:body/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19016:19039:body/1/group", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19018:19037:body/1/0/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19018:19026:body/1/0/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19029:19037:body/1/0/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19040:19043:body/2/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19044:19047:body/3/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19048:19058:body/4/tokenRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19148:19197:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19148:19151:body/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19152:19162:body/1/tokenRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19169:19173:body/2/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19174:19197:body/3/group", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19176:19195:body/3/0/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19176:19184:body/3/0/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19187:19195:body/3/0/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19428:19494:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19428:19448:body/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19455:19494:body/1/repeat", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19457:19485:body/1/0/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19457:19460:body/1/0/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19465:19485:body/1/0/1/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19631:19697:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19631:19651:body/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19658:19697:body/1/repeat", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19660:19688:body/1/0/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19660:19663:body/1/0/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19668:19688:body/1/0/1/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19834:19886:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19834:19847:body/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19854:19886:body/1/repeat", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19856:19877:body/1/0/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19856:19859:body/1/0/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19864:19877:body/1/0/1/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20024:20062:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20024:20029:body/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20030:20033:body/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20034:20051:body/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20059:20062:body/3/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20096:20528:body/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20096:20109:body/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20116:20128:body/1/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20135:20157:body/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20164:20189:body/3/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20196:20204:body/4/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20211:20230:body/5/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20237:20254:body/6/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20261:20278:body/7/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20285:20303:body/8/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20310:20326:body/9/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20333:20349:body/10/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20356:20373:body/11/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20380:20399:body/12/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20406:20428:body/13/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20435:20441:body/14/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20448:20455:body/15/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20462:20473:body/16/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20480:20496:body/17/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20503:20528:body/18/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20503:20506:body/18/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20507:20524:body/18/1/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20525:20528:body/18/2/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20622:20678:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20622:20639:body/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20646:20656:body/1/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20661:20678:body/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20761:20891:body/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20761:20786:body/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20800:20820:body/1/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20834:20860:body/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20874:20891:body/3/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21155:21209:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21155:21171:body/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21178:21188:body/1/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21193:21209:body/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21236:21247:body/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21236:21240:body/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21243:21247:body/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21331:21384:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21331:21347:body/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21354:21363:body/1/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21368:21384:body/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21410:21447:body/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21410:21414:body/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21417:21421:body/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21424:21428:body/2/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21431:21435:body/3/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21438:21441:body/4/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21444:21447:body/5/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21601:21771:body/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21601:21617:body/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21631:21647:body/1/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21661:21678:body/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21692:21716:body/3/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21730:21741:body/4/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21755:21771:body/5/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21946:22076:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21946:21950:body/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21951:21954:body/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21955:21972:body/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21984:21987:body/3/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21992:21995:body/4/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21996:22012:body/5/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22023:22026:body/6/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22031:22037:body/7/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22042:22045:body/8/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22046:22062:body/9/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22073:22076:body/10/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22158:22408:body/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22158:22178:body/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22192:22218:body/1/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22232:22257:body/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22271:22287:body/3/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22301:22318:body/4/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22332:22348:body/5/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22362:22378:body/6/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22392:22408:body/7/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22583:22681:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22583:22586:body/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22587:22604:body/1/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22616:22619:body/2/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22620:22636:body/3/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22647:22650:body/4/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22651:22667:body/5/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22678:22681:body/6/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22871:22989:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22871:22878:body/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22879:22882:body/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22889:22899:body/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22911:22940:body/3/repeat", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22913:22927:body/3/0/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22913:22916:body/3/0/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22917:22927:body/3/0/1/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22947:22950:body/4/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22951:22968:body/5/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22986:22989:body/6/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23064:23113:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23064:23081:body/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23093:23097:body/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23098:23113:body/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23197:23227:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23197:23206:body/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23207:23211:body/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23212:23227:body/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23307:23323:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23307:23323:body/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23438:23556:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23438:23445:body/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23446:23449:body/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23456:23466:body/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23478:23507:body/3/repeat", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23480:23494:body/3/0/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23480:23483:body/3/0/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23484:23494:body/3/0/1/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23514:23517:body/4/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23518:23535:body/5/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23553:23556:body/6/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23631:23680:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23631:23648:body/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23660:23664:body/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23665:23680:body/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23764:23794:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23764:23773:body/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23774:23778:body/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23779:23794:body/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23874:23890:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23874:23890:body/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24007:24128:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24007:24014:body/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24015:24018:body/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24025:24036:body/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24048:24078:body/3/repeat", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24050:24065:body/3/0/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24050:24053:body/3/0/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24054:24065:body/3/0/1/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24085:24088:body/4/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24089:24107:body/5/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24125:24128:body/6/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24205:24255:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24205:24222:body/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24234:24238:body/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24239:24255:body/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24341:24372:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24341:24350:body/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24351:24355:body/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24356:24372:body/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24454:24471:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24454:24471:body/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24684:24735:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24684:24687:body/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24688:24698:body/1/tokenRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24705:24735:body/2/optional", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24707:24727:body/2/0/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24707:24715:body/2/0/0/optional", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24709:24713:body/2/0/0/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24716:24727:body/2/0/1/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24757:24868:body/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24757:24765:body/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24768:24776:body/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24779:24786:body/2/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24789:24796:body/3/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24803:24811:body/4/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24814:24822:body/5/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24825:24834:body/6/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24837:24846:body/7/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24849:24857:body/8/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24860:24868:body/9/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25187:25363:body/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25187:25203:body/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25217:25234:body/1/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25248:25264:body/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25278:25294:body/3/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25308:25324:body/4/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25338:25363:body/5/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25338:25341:body/5/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25342:25352:body/5/1/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25360:25363:body/5/2/literal"]; -const BODIES:&[&str]=&["expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1007:1178:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1611:1662:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2118:2201:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2272:2313:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2464:2586:body/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2759:2935:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3108:3284:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3459:3637:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3810:3986:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4005:4109:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4134:4186:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4210:4242:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4267:4301:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4325:4357:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4409:4428:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4450:4474:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4495:4542:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4572:4619:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4648:4673:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4707:4821:body/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5002:5147:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5328:5473:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5656:5803:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5984:6129:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6206:6261:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6375:6426:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6453:6471:body/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6497:6505:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6532:6541:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6567:6575:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6595:6669:body/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6995:7161:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7273:7452:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7564:7729:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7841:8006:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8211:8245:body/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8348:8415:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8582:8662:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8758:8871:body/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8941:9002:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9197:9245:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9352:9404:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9420:9429:body/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9444:9453:body/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9561:9815:body/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9871:9908:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9964:10001:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10057:10094:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10152:10190:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10254:10326:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10390:10462:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10510:10526:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10582:10619:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10679:10718:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10776:10814:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10874:10913:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10980:11051:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11107:11144:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11200:11237:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11391:11467:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11496:11776:body/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11929:11974:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12048:12093:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12153:12191:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12255:12295:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12356:12393:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12718:12759:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12837:12878:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12942:12976:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13044:13080:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13300:13414:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13492:13604:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13682:13794:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13860:13963:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14128:14246:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14328:14444:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14526:14642:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14676:14746:body/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14895:14933:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15097:15176:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15287:15415:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15435:15517:body/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15685:15954:body/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16470:16486:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16511:16527:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16552:16568:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16660:17265:body/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17359:17980:body/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18006:18049:body/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18250:18296:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18336:18360:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18567:18930:body/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19012:19058:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19148:19197:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19428:19494:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19631:19697:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19834:19886:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20024:20062:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20096:20528:body/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20622:20678:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20761:20891:body/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21155:21209:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21236:21247:body/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21331:21384:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21410:21447:body/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21601:21771:body/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21946:22076:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22158:22408:body/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22583:22681:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22871:22989:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23064:23113:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23197:23227:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23307:23323:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23438:23556:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23631:23680:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23764:23794:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23874:23890:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24007:24128:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24205:24255:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24341:24372:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24454:24471:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24684:24735:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24757:24868:body/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25187:25363:body/choice"]; -const RULE_NODE:&[bool]=&[true, true, true, true, false, true, true, true, true, false, false, false, false, false, true, false, false, false, false, false, true, true, true, true, true, true, false, false, false, false, false, true, true, true, true, false, true, true, true, true, true, true, false, false, false, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, false, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, false, true, true, true, false, false, false, false, false, true, true, false, true, false, false, true, true, true, true, true, true, false, true, true, true, false, true, false, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, false, true]; -const RULE_SLOTS:&[u32]=&[9, 1, 3, 3, 0, 4, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 2, 2, 0, 0, 0, 0, 0, 3, 3, 3, 3, 0, 2, 3, 1, 2, 5, 5, 0, 0, 0, 1, 1, 1, 1, 3, 3, 0, 1, 1, 1, 1, 2, 1, 1, 2, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 3, 3, 0, 1, 2, 4, 0, 0, 0, 0, 0, 4, 4, 0, 5, 0, 0, 1, 1, 5, 5, 5, 1, 0, 3, 1, 3, 0, 3, 0, 1, 3, 1, 3, 4, 2, 1, 1, 4, 2, 1, 1, 4, 2, 1, 1, 2, 0, 1]; -const SITES:&[(&str,&str)]=&[("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1009:1018:body/0/0/ruleRef/capture/0", "codeBlocks"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1035:1052:body/1/0/ruleRef/capture/0", "imports"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1066:1085:body/2/0/ruleRef/capture/0", "declarations"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1121:1131:body/4/ruleRef/capture/0", "expression"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1146:1163:body/5/0/ruleRef/capture/0", "methods"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1611:1662:body/0/group/capture/0", "source"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2127:2136:body/1/ruleRef/capture/0", "className"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2154:2164:body/2/0/1/tokenRef/capture/0", "method"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2180:2190:body/4/tokenRef/capture/0", "alias"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2272:2282:body/0/tokenRef/capture/0", "head"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2295:2305:body/1/0/1/tokenRef/capture/0", "tail"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2790:2800:body/2/tokenRef/capture/0", "varName"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2847:2859:body/4/0/1/0/ruleRef/capture/0", "onlyIfAbsent"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2876:2892:body/4/0/2/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2908:2919:body/5/0/ruleRef/capture/0", "desc"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3139:3149:body/2/tokenRef/capture/0", "varName"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3196:3208:body/4/0/1/0/ruleRef/capture/0", "onlyIfAbsent"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3225:3241:body/4/0/2/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3257:3268:body/5/0/ruleRef/capture/0", "desc"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3490:3500:body/2/tokenRef/capture/0", "varName"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3548:3560:body/4/0/1/0/ruleRef/capture/0", "onlyIfAbsent"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3577:3594:body/4/0/2/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3610:3621:body/5/0/ruleRef/capture/0", "desc"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3841:3851:body/2/tokenRef/capture/0", "varName"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3898:3910:body/4/0/1/0/ruleRef/capture/0", "onlyIfAbsent"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3927:3943:body/4/0/2/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3959:3970:body/5/0/ruleRef/capture/0", "desc"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5019:5029:body/1/tokenRef/capture/0", "methodName"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5058:5074:body/3/0/ruleRef/capture/0", "parameters"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5111:5127:body/6/ruleRef/capture/0", "expression"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5345:5355:body/1/tokenRef/capture/0", "methodName"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5384:5400:body/3/0/ruleRef/capture/0", "parameters"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5437:5453:body/6/ruleRef/capture/0", "expression"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5674:5684:body/1/tokenRef/capture/0", "methodName"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5713:5729:body/3/0/ruleRef/capture/0", "parameters"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5766:5783:body/6/ruleRef/capture/0", "expression"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6001:6011:body/1/tokenRef/capture/0", "methodName"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6040:6056:body/3/0/ruleRef/capture/0", "parameters"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6093:6109:body/6/ruleRef/capture/0", "expression"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6206:6221:body/0/ruleRef/capture/0", "values"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6236:6251:body/1/0/1/ruleRef/capture/0", "values"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6379:6389:body/1/tokenRef/capture/0", "paramName"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6408:6418:body/2/0/1/ruleRef/capture/0", "type"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7067:7076:body/4/0/0/0/ruleRef/capture/0", "className"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7092:7102:body/4/0/0/2/tokenRef/capture/0", "name"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7111:7121:body/4/0/1/tokenRef/capture/0", "name"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7140:7149:body/6/0/ruleRef/capture/0", "args"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7358:7367:body/2/0/0/0/ruleRef/capture/0", "className"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7383:7393:body/2/0/0/2/tokenRef/capture/0", "name"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7402:7412:body/2/0/1/tokenRef/capture/0", "name"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7431:7440:body/4/0/ruleRef/capture/0", "args"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7635:7644:body/4/0/0/0/ruleRef/capture/0", "className"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7660:7670:body/4/0/0/2/tokenRef/capture/0", "name"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7679:7689:body/4/0/1/tokenRef/capture/0", "name"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7708:7717:body/6/0/ruleRef/capture/0", "args"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7912:7921:body/4/0/0/0/ruleRef/capture/0", "className"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7937:7947:body/4/0/0/2/tokenRef/capture/0", "name"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7956:7966:body/4/0/1/tokenRef/capture/0", "name"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7985:7994:body/6/0/ruleRef/capture/0", "args"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8371:8381:body/1/tokenRef/capture/0", "name"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8394:8403:body/3/0/ruleRef/capture/0", "args"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8582:8599:body/0/ruleRef/capture/0", "condition"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8615:8631:body/2/ruleRef/capture/0", "thenExpr"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8646:8662:body/4/ruleRef/capture/0", "elseExpr"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8758:8773:body/0/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8787:8807:body/1/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8821:8847:body/2/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8861:8871:body/3/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8941:8959:body/0/ruleRef/capture/0", "values"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8974:8992:body/1/0/1/ruleRef/capture/0", "values"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9197:9207:body/0/ruleRef/capture/0", "left"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9216:9221:body/1/0/0/ruleRef/capture/0", "op"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9226:9236:body/1/0/1/ruleRef/capture/0", "right"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9352:9364:body/0/ruleRef/capture/0", "left"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9373:9378:body/1/0/0/ruleRef/capture/0", "op"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9383:9395:body/1/0/1/ruleRef/capture/0", "right"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9881:9899:body/2/ruleRef/capture/0", "arg"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9974:9992:body/2/ruleRef/capture/0", "arg"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10067:10085:body/2/ruleRef/capture/0", "arg"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10163:10181:body/2/ruleRef/capture/0", "arg"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10264:10282:body/2/ruleRef/capture/0", "first"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10296:10314:body/3/0/1/ruleRef/capture/0", "rest"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10400:10418:body/2/ruleRef/capture/0", "first"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10432:10450:body/3/0/1/ruleRef/capture/0", "rest"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10592:10610:body/2/ruleRef/capture/0", "arg"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10691:10709:body/2/ruleRef/capture/0", "arg"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10787:10805:body/2/ruleRef/capture/0", "arg"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10886:10904:body/2/ruleRef/capture/0", "arg"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10990:11008:body/2/ruleRef/capture/0", "base"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11019:11037:body/4/ruleRef/capture/0", "exponent"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11117:11135:body/2/ruleRef/capture/0", "arg"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11210:11228:body/2/ruleRef/capture/0", "arg"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11403:11419:body/2/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11431:11449:body/4/ruleRef/capture/0", "defaultValue"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11947:11963:body/2/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12066:12082:body/2/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12164:12180:body/2/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12268:12284:body/2/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12366:12382:body/2/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12718:12729:body/0/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12837:12848:body/0/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12942:12953:body/0/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13044:13055:body/0/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13317:13333:body/2/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13345:13361:body/4/ruleRef/capture/0", "patterns"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13382:13398:body/5/0/1/ruleRef/capture/0", "patterns"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13507:13523:body/2/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13535:13551:body/4/ruleRef/capture/0", "patterns"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13572:13588:body/5/0/1/ruleRef/capture/0", "patterns"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13697:13713:body/2/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13725:13741:body/4/ruleRef/capture/0", "patterns"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13762:13778:body/5/0/1/ruleRef/capture/0", "patterns"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13860:13876:body/0/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13894:13910:body/3/ruleRef/capture/0", "candidates"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13929:13945:body/4/0/1/ruleRef/capture/0", "candidates"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14128:14151:body/0/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14177:14193:body/3/ruleRef/capture/0", "patterns"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14214:14230:body/4/0/1/ruleRef/capture/0", "patterns"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14328:14351:body/0/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14375:14391:body/3/ruleRef/capture/0", "patterns"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14412:14428:body/4/0/1/ruleRef/capture/0", "patterns"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14526:14549:body/0/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14573:14589:body/3/ruleRef/capture/0", "patterns"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14610:14626:body/4/0/1/ruleRef/capture/0", "patterns"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14911:14922:body/2/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15115:15131:body/2/ruleRef/capture/0", "startHour"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15147:15163:body/4/ruleRef/capture/0", "endHour"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15308:15317:body/2/ruleRef/capture/0", "startDay"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15332:15348:body/4/ruleRef/capture/0", "startHour"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15364:15373:body/6/ruleRef/capture/0", "endDay"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15386:15402:body/8/ruleRef/capture/0", "endHour"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16660:16677:body/0/0/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16689:16704:body/0/2/ruleRef/capture/0", "start"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16716:16729:body/0/4/ruleRef/capture/0", "end"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16739:16753:body/0/6/ruleRef/capture/0", "step"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16770:16787:body/1/0/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16799:16814:body/1/2/ruleRef/capture/0", "start"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16826:16839:body/1/4/ruleRef/capture/0", "end"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16855:16872:body/2/0/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16884:16899:body/2/2/ruleRef/capture/0", "start"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16915:16929:body/2/5/ruleRef/capture/0", "step"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16946:16963:body/3/0/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16975:16990:body/3/2/ruleRef/capture/0", "start"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17012:17029:body/4/0/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17045:17058:body/4/3/ruleRef/capture/0", "end"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17068:17082:body/4/5/ruleRef/capture/0", "step"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17099:17116:body/5/0/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17132:17145:body/5/3/ruleRef/capture/0", "end"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17161:17178:body/6/0/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17198:17212:body/6/4/ruleRef/capture/0", "step"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17229:17246:body/7/0/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17359:17378:body/0/0/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17390:17405:body/0/2/ruleRef/capture/0", "start"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17417:17430:body/0/4/ruleRef/capture/0", "end"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17440:17454:body/0/6/ruleRef/capture/0", "step"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17471:17490:body/1/0/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17502:17517:body/1/2/ruleRef/capture/0", "start"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17529:17542:body/1/4/ruleRef/capture/0", "end"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17558:17577:body/2/0/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17589:17604:body/2/2/ruleRef/capture/0", "start"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17620:17634:body/2/5/ruleRef/capture/0", "step"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17651:17670:body/3/0/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17682:17697:body/3/2/ruleRef/capture/0", "start"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17719:17738:body/4/0/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17754:17767:body/4/3/ruleRef/capture/0", "end"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17777:17791:body/4/5/ruleRef/capture/0", "step"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17808:17827:body/5/0/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17843:17856:body/5/3/ruleRef/capture/0", "end"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17872:17891:body/6/0/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17911:17925:body/6/4/ruleRef/capture/0", "step"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17942:17961:body/7/0/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18250:18260:body/0/ruleRef/capture/0", "left"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18269:18272:body/1/0/0/literal/capture/0", "op"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18277:18287:body/1/0/1/ruleRef/capture/0", "right"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19048:19058:body/4/tokenRef/capture/0", "name"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19152:19162:body/1/tokenRef/capture/0", "name"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19428:19448:body/0/ruleRef/capture/0", "left"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19457:19460:body/1/0/0/literal/capture/0", "op"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19465:19485:body/1/0/1/ruleRef/capture/0", "right"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19631:19651:body/0/ruleRef/capture/0", "left"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19660:19663:body/1/0/0/literal/capture/0", "op"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19668:19688:body/1/0/1/ruleRef/capture/0", "right"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19834:19847:body/0/ruleRef/capture/0", "left"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19856:19859:body/1/0/0/literal/capture/0", "op"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19864:19877:body/1/0/1/ruleRef/capture/0", "right"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20034:20051:body/2/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20622:20639:body/0/ruleRef/capture/0", "left"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20646:20656:body/1/ruleRef/capture/0", "op"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20661:20678:body/2/ruleRef/capture/0", "right"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20761:20786:body/0/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20800:20820:body/1/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20834:20860:body/2/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20874:20891:body/3/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21155:21171:body/0/ruleRef/capture/0", "left"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21178:21188:body/1/ruleRef/capture/0", "op"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21193:21209:body/2/ruleRef/capture/0", "right"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21331:21347:body/0/ruleRef/capture/0", "left"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21354:21363:body/1/ruleRef/capture/0", "op"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21368:21384:body/2/ruleRef/capture/0", "right"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21601:21617:body/0/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21631:21647:body/1/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21661:21678:body/2/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21692:21716:body/3/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21730:21741:body/4/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21755:21771:body/5/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21955:21972:body/2/ruleRef/capture/0", "condition"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21996:22012:body/5/ruleRef/capture/0", "thenExpr"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22046:22062:body/9/ruleRef/capture/0", "elseExpr"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22158:22178:body/0/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22192:22218:body/1/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22232:22257:body/2/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22271:22287:body/3/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22301:22318:body/4/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22332:22348:body/5/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22362:22378:body/6/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22392:22408:body/7/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22587:22604:body/1/ruleRef/capture/0", "condition"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22620:22636:body/3/ruleRef/capture/0", "thenExpr"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22651:22667:body/5/ruleRef/capture/0", "elseExpr"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22889:22899:body/2/ruleRef/capture/0", "firstCase"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22917:22927:body/3/0/1/ruleRef/capture/0", "moreCases"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22951:22968:body/5/ruleRef/capture/0", "defaultCase"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23064:23081:body/0/ruleRef/capture/0", "condition"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23098:23113:body/2/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23212:23227:body/2/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23307:23323:body/0/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23456:23466:body/2/ruleRef/capture/0", "firstCase"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23484:23494:body/3/0/1/ruleRef/capture/0", "moreCases"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23518:23535:body/5/ruleRef/capture/0", "defaultCase"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23631:23648:body/0/ruleRef/capture/0", "condition"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23665:23680:body/2/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23779:23794:body/2/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23874:23890:body/0/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24025:24036:body/2/ruleRef/capture/0", "firstCase"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24054:24065:body/3/0/1/ruleRef/capture/0", "moreCases"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24089:24107:body/5/ruleRef/capture/0", "defaultCase"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24205:24222:body/0/ruleRef/capture/0", "condition"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24239:24255:body/2/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24356:24372:body/2/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24454:24471:body/0/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24688:24698:body/1/tokenRef/capture/0", "name"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24716:24727:body/2/0/1/ruleRef/capture/0", "type"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25187:25203:body/0/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25217:25234:body/1/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25248:25264:body/2/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25278:25294:body/3/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25308:25324:body/4/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25342:25352:body/5/1/ruleRef/capture/0", "value")]; +const RULES:&[&str]=&["TinyExpressionP4::Formula", "TinyExpressionP4::CodeBlock", "TinyExpressionP4::ImportDeclaration", "TinyExpressionP4::ClassName", "TinyExpressionP4::VariableDeclaration", "TinyExpressionP4::NumberVariableDeclaration", "TinyExpressionP4::StringVariableDeclaration", "TinyExpressionP4::BooleanVariableDeclaration", "TinyExpressionP4::ObjectVariableDeclaration", "TinyExpressionP4::TypeHint", "TinyExpressionP4::NumberTypeHint", "TinyExpressionP4::StringTypeHint", "TinyExpressionP4::BooleanTypeHint", "TinyExpressionP4::ObjectTypeHint", "TinyExpressionP4::OnlyIfAbsent", "TinyExpressionP4::Description", "TinyExpressionP4::Annotation", "TinyExpressionP4::AnnotationParameters", "TinyExpressionP4::AnnotationParameter", "TinyExpressionP4::MethodDeclaration", "TinyExpressionP4::NumberMethodDeclaration", "TinyExpressionP4::StringMethodDeclaration", "TinyExpressionP4::BooleanMethodDeclaration", "TinyExpressionP4::ObjectMethodDeclaration", "TinyExpressionP4::MethodParameters", "TinyExpressionP4::MethodParameter", "TinyExpressionP4::NumberReturnType", "TinyExpressionP4::StringReturnType", "TinyExpressionP4::BooleanReturnType", "TinyExpressionP4::ObjectReturnType", "TinyExpressionP4::ReturnType", "TinyExpressionP4::ExternalBooleanInvocation", "TinyExpressionP4::ExternalNumberInvocation", "TinyExpressionP4::ExternalStringInvocation", "TinyExpressionP4::ExternalObjectInvocation", "TinyExpressionP4::MethodInvocationHeader", "TinyExpressionP4::MethodInvocation", "TinyExpressionP4::ArgumentTernary", "TinyExpressionP4::ArgumentExpression", "TinyExpressionP4::Arguments", "TinyExpressionP4::NumberExpression", "TinyExpressionP4::NumberTerm", "TinyExpressionP4::AddOp", "TinyExpressionP4::MulOp", "TinyExpressionP4::MathFunction", "TinyExpressionP4::SinFunction", "TinyExpressionP4::CosFunction", "TinyExpressionP4::TanFunction", "TinyExpressionP4::SqrtFunction", "TinyExpressionP4::MinFunction", "TinyExpressionP4::MaxFunction", "TinyExpressionP4::RandomFunction", "TinyExpressionP4::AbsFunction", "TinyExpressionP4::RoundFunction", "TinyExpressionP4::CeilFunction", "TinyExpressionP4::FloorFunction", "TinyExpressionP4::PowFunction", "TinyExpressionP4::LogFunction", "TinyExpressionP4::ExpFunction", "TinyExpressionP4::ToNumFunction", "TinyExpressionP4::NumberFactor", "TinyExpressionP4::ToUpperCaseFunction", "TinyExpressionP4::ToLowerCaseFunction", "TinyExpressionP4::TrimFunction", "TinyExpressionP4::LengthFunction", "TinyExpressionP4::LenFunction", "TinyExpressionP4::ToUpperCaseDotMethod", "TinyExpressionP4::ToLowerCaseDotMethod", "TinyExpressionP4::TrimDotMethod", "TinyExpressionP4::LengthDotMethod", "TinyExpressionP4::StartsWithFunction", "TinyExpressionP4::EndsWithFunction", "TinyExpressionP4::ContainsFunction", "TinyExpressionP4::InMethod", "TinyExpressionP4::StartsWithDotMethod", "TinyExpressionP4::EndsWithDotMethod", "TinyExpressionP4::ContainsDotMethod", "TinyExpressionP4::StringPredicateReceiver", "TinyExpressionP4::IsPresentFunction", "TinyExpressionP4::InTimeRangeFunction", "TinyExpressionP4::InDayTimeRangeFunction", "TinyExpressionP4::DayOfWeek", "TinyExpressionP4::SliceBaseReceiver", "TinyExpressionP4::SliceStartIndex", "TinyExpressionP4::SliceEndIndex", "TinyExpressionP4::SliceStepIndex", "TinyExpressionP4::SliceBaseExpression", "TinyExpressionP4::SliceNestedExpression", "TinyExpressionP4::SliceExpression", "TinyExpressionP4::StringExpression", "TinyExpressionP4::ParenthesizedStringExpression", "TinyExpressionP4::StringTerm", "TinyExpressionP4::StringCastVariable", "TinyExpressionP4::StringTypedVariable", "TinyExpressionP4::BooleanExpression", "TinyExpressionP4::BooleanAndExpression", "TinyExpressionP4::BooleanXorExpression", "TinyExpressionP4::NotExpression", "TinyExpressionP4::BooleanComparable", "TinyExpressionP4::BooleanEqualityExpression", "TinyExpressionP4::BooleanFactor", "TinyExpressionP4::StringComparisonExpression", "TinyExpressionP4::EqualityOp", "TinyExpressionP4::ComparisonExpression", "TinyExpressionP4::CompareOp", "TinyExpressionP4::ObjectExpression", "TinyExpressionP4::IfExpression", "TinyExpressionP4::BranchExpression", "TinyExpressionP4::TernaryExpression", "TinyExpressionP4::NumberMatchExpression", "TinyExpressionP4::NumberCase", "TinyExpressionP4::NumberDefaultCase", "TinyExpressionP4::NumberCaseValue", "TinyExpressionP4::StringMatchExpression", "TinyExpressionP4::StringCase", "TinyExpressionP4::StringDefaultCase", "TinyExpressionP4::StringCaseValue", "TinyExpressionP4::BooleanMatchExpression", "TinyExpressionP4::BooleanCase", "TinyExpressionP4::BooleanDefaultCase", "TinyExpressionP4::BooleanCaseValue", "TinyExpressionP4::VariableRef", "TinyExpressionP4::TypeKeyword", "TinyExpressionP4::Expression", "TinyExpressionP4::NumberRootExpression", "TinyExpressionP4::BooleanRootExpression", "TinyExpressionP4::StringRootExpression", "TinyExpressionP4::ObjectRootExpression", "TinyExpressionP4::MethodRootExpression", "TinyExpressionP4::ParenthesizedRootExpression"]; +const EXPRESSIONS:&[&str]=&["expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1175:1742:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1175:1200:body/0/repeat", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1177:1186:body/0/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1201:1231:body/1/repeat", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1203:1220:body/1/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1232:1269:body/2/repeat", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1234:1253:body/2/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1274:1288:body/3/repeat", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1276:1286:body/3/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1293:1742:body/4/group", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1295:1740:body/4/0/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1295:1362:body/4/0/0/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1295:1315:body/4/0/0/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1328:1358:body/4/0/0/1/repeat", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1330:1347:body/4/0/0/1/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1359:1362:body/4/0/0/2/tokenRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1369:1437:body/4/0/1/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1369:1390:body/4/0/1/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1403:1433:body/4/0/1/1/repeat", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1405:1422:body/4/0/1/1/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1434:1437:body/4/0/1/2/tokenRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1444:1511:body/4/0/2/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1444:1464:body/4/0/2/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1477:1507:body/4/0/2/1/repeat", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1479:1496:body/4/0/2/1/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1508:1511:body/4/0/2/2/tokenRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1518:1585:body/4/0/3/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1518:1538:body/4/0/3/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1551:1581:body/4/0/3/1/repeat", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1553:1570:body/4/0/3/1/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1582:1585:body/4/0/3/2/tokenRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1592:1659:body/4/0/4/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1592:1612:body/4/0/4/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1625:1655:body/4/0/4/1/repeat", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1627:1644:body/4/0/4/1/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1656:1659:body/4/0/4/2/tokenRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1666:1740:body/4/0/5/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1666:1693:body/4/0/5/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1706:1736:body/4/0/5/1/repeat", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1708:1725:body/4/0/5/1/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1737:1740:body/4/0/5/2/tokenRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2175:2226:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2175:2226:body/0/group", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2177:2224:body/0/0/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2177:2192:body/0/0/0/tokenRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2195:2224:body/0/0/1/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2195:2205:body/0/0/1/0/tokenRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2206:2215:body/0/0/1/1/tokenRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2216:2224:body/0/0/1/2/tokenRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2682:2765:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2682:2690:body/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2691:2700:body/1/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2712:2738:body/2/optional", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2714:2728:body/2/0/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2714:2717:body/2/0/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2718:2728:body/2/0/1/tokenRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2739:2743:body/3/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2744:2754:body/4/tokenRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2762:2765:body/5/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2836:2877:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2836:2846:body/0/tokenRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2853:2877:body/1/repeat", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2855:2869:body/1/0/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2855:2858:body/1/0/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2859:2869:body/1/0/1/tokenRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3028:3150:body/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3028:3053:body/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3060:3085:body/1/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3092:3118:body/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3125:3150:body/3/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3323:3499:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3323:3345:body/0/group", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3325:3343:body/0/0/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3325:3335:body/0/0/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3338:3343:body/0/0/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3350:3353:body/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3354:3364:body/2/tokenRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3378:3396:body/3/optional", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3380:3394:body/3/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3401:3465:body/4/optional", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3403:3456:body/4/0/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3403:3408:body/4/0/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3409:3439:body/4/0/1/optional", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3411:3423:body/4/0/1/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3440:3456:body/4/0/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3470:3491:body/5/optional", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3472:3483:body/5/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3496:3499:body/6/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3672:3848:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3672:3694:body/0/group", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3674:3692:body/0/0/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3674:3684:body/0/0/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3687:3692:body/0/0/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3699:3702:body/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3703:3713:body/2/tokenRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3727:3745:body/3/optional", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3729:3743:body/3/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3750:3814:body/4/optional", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3752:3805:body/4/0/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3752:3757:body/4/0/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3758:3788:body/4/0/1/optional", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3760:3772:body/4/0/1/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3789:3805:body/4/0/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3819:3840:body/5/optional", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3821:3832:body/5/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3845:3848:body/6/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4023:4201:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4023:4045:body/0/group", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4025:4043:body/0/0/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4025:4035:body/0/0/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4038:4043:body/0/0/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4050:4053:body/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4054:4064:body/2/tokenRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4078:4097:body/3/optional", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4080:4095:body/3/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4102:4167:body/4/optional", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4104:4158:body/4/0/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4104:4109:body/4/0/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4110:4140:body/4/0/1/optional", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4112:4124:body/4/0/1/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4141:4158:body/4/0/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4172:4193:body/5/optional", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4174:4185:body/5/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4198:4201:body/6/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4374:4550:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4374:4396:body/0/group", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4376:4394:body/0/0/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4376:4386:body/0/0/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4389:4394:body/0/0/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4401:4404:body/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4405:4415:body/2/tokenRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4429:4447:body/3/optional", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4431:4445:body/3/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4452:4516:body/4/optional", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4454:4507:body/4/0/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4454:4459:body/4/0/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4460:4490:body/4/0/1/optional", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4462:4474:body/4/0/1/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4491:4507:body/4/0/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4521:4542:body/5/optional", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4523:4534:body/5/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4547:4550:body/6/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4569:4673:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4569:4577:body/0/optional", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4571:4575:body/0/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4578:4673:body/1/group", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4580:4671:body/1/0/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4580:4588:body/1/0/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4591:4599:body/1/0/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4602:4610:body/1/0/2/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4613:4621:body/1/0/3/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4628:4637:body/1/0/4/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4640:4649:body/1/0/5/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4652:4660:body/1/0/6/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4663:4671:body/1/0/7/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4698:4750:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4698:4706:body/0/optional", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4700:4704:body/0/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4707:4750:body/1/group", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4709:4748:body/1/0/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4709:4717:body/1/0/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4720:4728:body/1/0/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4731:4738:body/1/0/2/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4741:4748:body/1/0/3/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4774:4806:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4774:4782:body/0/optional", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4776:4780:body/0/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4783:4806:body/1/group", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4785:4804:body/1/0/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4785:4793:body/1/0/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4796:4804:body/1/0/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4831:4865:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4831:4839:body/0/optional", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4833:4837:body/0/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4840:4865:body/1/group", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4842:4863:body/1/0/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4842:4851:body/1/0/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4854:4863:body/1/0/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4889:4921:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4889:4897:body/0/optional", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4891:4895:body/0/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4898:4921:body/1/group", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4900:4919:body/1/0/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4900:4908:body/1/0/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4911:4919:body/1/0/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4973:4992:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4973:4977:body/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4978:4983:body/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4984:4992:body/2/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5014:5038:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5014:5027:body/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5028:5031:body/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5032:5038:body/2/tokenRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5059:5106:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5059:5062:body/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5063:5073:body/1/tokenRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5074:5077:body/2/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5078:5102:body/3/optional", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5080:5100:body/3/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5103:5106:body/4/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5136:5183:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5136:5155:body/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5156:5183:body/1/repeat", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5158:5181:body/1/0/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5158:5161:body/1/0/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5162:5181:body/1/0/1/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5212:5237:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5212:5222:body/0/tokenRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5223:5226:body/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5227:5237:body/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5271:5385:body/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5271:5294:body/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5301:5324:body/1/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5331:5355:body/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5362:5385:body/3/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5566:5711:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5566:5582:body/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5583:5593:body/1/tokenRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5610:5613:body/2/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5620:5652:body/3/optional", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5622:5638:body/3/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5657:5660:body/4/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5665:5668:body/5/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5675:5691:body/6/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5708:5711:body/7/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5892:6037:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5892:5908:body/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5909:5919:body/1/tokenRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5936:5939:body/2/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5946:5978:body/3/optional", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5948:5964:body/3/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5983:5986:body/4/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5991:5994:body/5/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6001:6017:body/6/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6034:6037:body/7/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6220:6367:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6220:6237:body/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6238:6248:body/1/tokenRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6265:6268:body/2/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6275:6307:body/3/optional", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6277:6293:body/3/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6312:6315:body/4/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6320:6323:body/5/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6330:6347:body/6/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6364:6367:body/7/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6548:6693:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6548:6564:body/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6565:6575:body/1/tokenRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6592:6595:body/2/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6602:6634:body/3/optional", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6604:6620:body/3/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6639:6642:body/4/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6647:6650:body/5/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6657:6673:body/6/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6690:6693:body/7/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6770:6825:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6770:6785:body/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6794:6825:body/1/repeat", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6796:6815:body/1/0/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6796:6799:body/1/0/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6800:6815:body/1/0/1/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6939:6990:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6939:6942:body/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6943:6953:body/1/tokenRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6965:6990:body/2/optional", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6967:6982:body/2/0/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6967:6971:body/2/0/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6972:6982:body/2/0/1/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7017:7035:body/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7017:7025:body/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7028:7035:body/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7061:7069:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7061:7069:body/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7096:7105:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7096:7105:body/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7131:7139:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7131:7139:body/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7159:7233:body/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7159:7175:body/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7178:7194:body/1/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7197:7214:body/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7217:7233:body/3/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7559:7725:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7559:7569:body/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7570:7594:body/1/optional", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7572:7592:body/1/0/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7572:7583:body/1/0/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7584:7592:body/1/0/1/optional", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7586:7590:body/1/0/1/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7595:7612:body/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7617:7624:body/3/optional", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7619:7622:body/3/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7629:7693:body/4/group", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7631:7685:body/4/0/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7631:7666:body/4/0/0/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7631:7640:body/4/0/0/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7652:7655:body/4/0/0/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7656:7666:body/4/0/0/2/tokenRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7675:7685:body/4/0/1/tokenRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7698:7701:body/5/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7702:7721:body/6/optional", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7704:7713:body/6/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7722:7725:body/7/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7837:8016:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7837:7847:body/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7852:7915:body/1/group", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7854:7913:body/1/0/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7854:7903:body/1/0/0/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7854:7878:body/1/0/0/0/optional", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7856:7876:body/1/0/0/0/0/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7856:7867:body/1/0/0/0/0/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7868:7876:body/1/0/0/0/0/1/optional", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7870:7874:body/1/0/0/0/0/1/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7879:7895:body/1/0/0/1/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7896:7903:body/1/0/0/2/optional", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7898:7901:body/1/0/0/2/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7906:7913:body/1/0/1/optional", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7908:7911:body/1/0/1/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7920:7984:body/2/group", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7922:7976:body/2/0/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7922:7957:body/2/0/0/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7922:7931:body/2/0/0/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7943:7946:body/2/0/0/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7947:7957:body/2/0/0/2/tokenRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7966:7976:body/2/0/1/tokenRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7989:7992:body/3/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7993:8012:body/4/optional", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7995:8004:body/4/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8013:8016:body/5/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8128:8293:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8128:8138:body/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8139:8163:body/1/optional", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8141:8161:body/1/0/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8141:8152:body/1/0/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8153:8161:body/1/0/1/optional", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8155:8159:body/1/0/1/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8164:8180:body/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8185:8192:body/3/optional", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8187:8190:body/3/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8197:8261:body/4/group", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8199:8253:body/4/0/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8199:8234:body/4/0/0/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8199:8208:body/4/0/0/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8220:8223:body/4/0/0/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8224:8234:body/4/0/0/2/tokenRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8243:8253:body/4/0/1/tokenRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8266:8269:body/5/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8270:8289:body/6/optional", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8272:8281:body/6/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8290:8293:body/7/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8405:8570:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8405:8415:body/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8416:8440:body/1/optional", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8418:8438:body/1/0/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8418:8429:body/1/0/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8430:8438:body/1/0/1/optional", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8432:8436:body/1/0/1/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8441:8457:body/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8462:8469:body/3/optional", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8464:8467:body/3/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8474:8538:body/4/group", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8476:8530:body/4/0/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8476:8511:body/4/0/0/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8476:8485:body/4/0/0/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8497:8500:body/4/0/0/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8501:8511:body/4/0/0/2/tokenRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8520:8530:body/4/0/1/tokenRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8543:8546:body/5/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8547:8566:body/6/optional", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8549:8558:body/6/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8567:8570:body/7/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8775:8809:body/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8775:8796:body/0/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8775:8781:body/0/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8782:8796:body/0/1/optional", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8784:8794:body/0/1/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8799:8809:body/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8912:8979:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8912:8934:body/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8935:8945:body/1/tokenRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8952:8955:body/2/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8956:8975:body/3/optional", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8958:8967:body/3/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8976:8979:body/4/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9146:9226:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9146:9163:body/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9175:9178:body/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9179:9195:body/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9206:9209:body/3/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9210:9226:body/4/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9322:9435:body/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9322:9337:body/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9351:9371:body/1/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9385:9411:body/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9425:9435:body/3/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9505:9566:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9505:9523:body/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9532:9566:body/1/repeat", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9534:9556:body/1/0/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9534:9537:body/1/0/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9538:9556:body/1/0/1/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9761:9809:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9761:9771:body/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9778:9809:body/1/repeat", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9780:9800:body/1/0/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9780:9785:body/1/0/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9790:9800:body/1/0/1/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9916:9968:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9916:9928:body/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9935:9968:body/1/repeat", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9937:9959:body/1/0/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9937:9942:body/1/0/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9947:9959:body/1/0/1/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9984:9993:body/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9984:9987:body/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9990:9993:body/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10008:10017:body/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10008:10011:body/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10014:10017:body/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10125:10379:body/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10125:10136:body/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10143:10154:body/1/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10161:10172:body/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10179:10191:body/3/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10198:10209:body/4/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10216:10227:body/5/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10234:10248:body/6/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10255:10266:body/7/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10273:10286:body/8/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10293:10305:body/9/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10312:10325:body/10/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10332:10343:body/11/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10350:10361:body/12/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10368:10379:body/13/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10435:10472:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10435:10440:body/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10441:10444:body/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10445:10463:body/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10469:10472:body/3/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10528:10565:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10528:10533:body/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10534:10537:body/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10538:10556:body/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10562:10565:body/3/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10621:10658:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10621:10626:body/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10627:10630:body/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10631:10649:body/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10655:10658:body/3/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10716:10754:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10716:10722:body/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10723:10726:body/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10727:10745:body/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10751:10754:body/3/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10818:10890:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10818:10823:body/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10824:10827:body/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10828:10846:body/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10854:10886:body/3/repeat", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10856:10878:body/3/0/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10856:10859:body/3/0/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10860:10878:body/3/0/1/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10887:10890:body/4/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10954:11026:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10954:10959:body/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10960:10963:body/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10964:10982:body/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10990:11022:body/3/repeat", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10992:11014:body/3/0/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10992:10995:body/3/0/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10996:11014:body/3/0/1/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11023:11026:body/4/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11074:11090:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11074:11082:body/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11083:11086:body/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11087:11090:body/2/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11146:11183:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11146:11151:body/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11152:11155:body/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11156:11174:body/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11180:11183:body/3/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11243:11282:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11243:11250:body/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11251:11254:body/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11255:11273:body/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11279:11282:body/3/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11340:11378:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11340:11346:body/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11347:11350:body/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11351:11369:body/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11375:11378:body/3/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11438:11477:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11438:11445:body/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11446:11449:body/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11450:11468:body/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11474:11477:body/3/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11544:11615:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11544:11549:body/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11550:11553:body/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11554:11572:body/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11579:11582:body/3/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11583:11601:body/4/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11612:11615:body/5/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11671:11708:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11671:11676:body/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11677:11680:body/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11681:11699:body/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11705:11708:body/3/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11764:11801:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11764:11769:body/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11770:11773:body/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11774:11792:body/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11798:11801:body/3/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11955:12031:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11955:11962:body/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11963:11966:body/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11967:11983:body/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11991:11994:body/3/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11995:12013:body/4/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12028:12031:body/5/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12060:12340:body/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12060:12077:body/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12084:12105:body/1/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12112:12124:body/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12131:12143:body/3/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12150:12163:body/4/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12170:12185:body/5/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12192:12203:body/6/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12210:12224:body/7/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12231:12255:body/8/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12262:12268:body/9/tokenRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12275:12286:body/10/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12293:12309:body/11/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12316:12340:body/12/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12316:12319:body/12/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12320:12336:body/12/1/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12337:12340:body/12/2/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12493:12538:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12493:12506:body/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12507:12510:body/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12511:12527:body/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12535:12538:body/3/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12612:12657:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12612:12625:body/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12626:12629:body/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12630:12646:body/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12654:12657:body/3/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12717:12755:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12717:12723:body/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12724:12727:body/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12728:12744:body/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12752:12755:body/3/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12819:12859:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12819:12827:body/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12828:12831:body/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12832:12848:body/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12856:12859:body/3/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12920:12957:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12920:12925:body/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12926:12929:body/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12930:12946:body/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12954:12957:body/3/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13282:13323:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13282:13293:body/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13301:13315:body/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13316:13319:body/2/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13320:13323:body/3/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13401:13442:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13401:13412:body/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13420:13434:body/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13435:13438:body/2/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13439:13442:body/3/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13506:13540:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13506:13517:body/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13525:13532:body/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13533:13536:body/2/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13537:13540:body/3/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13608:13644:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13608:13619:body/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13627:13636:body/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13637:13640:body/2/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13641:13644:body/3/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13864:13978:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13864:13876:body/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13877:13880:body/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13881:13897:body/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13905:13908:body/3/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13909:13925:body/4/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13940:13974:body/5/repeat", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13942:13962:body/5/0/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13942:13945:body/5/0/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13946:13962:body/5/0/1/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13975:13978:body/6/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14056:14168:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14056:14066:body/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14067:14070:body/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14071:14087:body/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14095:14098:body/3/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14099:14115:body/4/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14130:14164:body/5/repeat", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14132:14152:body/5/0/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14132:14135:body/5/0/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14136:14152:body/5/0/1/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14165:14168:body/6/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14246:14358:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14246:14256:body/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14257:14260:body/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14261:14277:body/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14285:14288:body/3/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14289:14305:body/4/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14320:14354:body/5/repeat", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14322:14342:body/5/0/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14322:14325:body/5/0/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14326:14342:body/5/0/1/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14355:14358:body/6/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14424:14527:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14424:14440:body/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14448:14453:body/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14454:14457:body/2/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14458:14474:body/3/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14487:14523:body/4/repeat", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14489:14509:body/4/0/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14489:14492:body/4/0/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14493:14509:body/4/0/1/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14524:14527:body/5/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14692:14810:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14692:14715:body/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14723:14736:body/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14737:14740:body/2/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14741:14757:body/3/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14772:14806:body/4/repeat", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14774:14794:body/4/0/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14774:14777:body/4/0/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14778:14794:body/4/0/1/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14807:14810:body/5/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14892:15008:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14892:14915:body/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14923:14934:body/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14935:14938:body/2/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14939:14955:body/3/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14970:15004:body/4/repeat", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14972:14992:body/4/0/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14972:14975:body/4/0/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14976:14992:body/4/0/1/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15005:15008:body/5/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15090:15206:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15090:15113:body/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15121:15132:body/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15133:15136:body/2/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15137:15153:body/3/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15168:15202:body/4/repeat", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15170:15190:body/4/0/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15170:15173:body/4/0/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15174:15190:body/4/0/1/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15203:15206:body/5/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15240:15310:body/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15240:15259:body/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15262:15281:body/1/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15284:15296:body/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15299:15310:body/3/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15459:15497:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15459:15470:body/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15471:15474:body/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15475:15486:body/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15494:15497:body/3/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15661:15740:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15661:15674:body/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15675:15678:body/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15679:15695:body/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15707:15710:body/3/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15711:15727:body/4/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15737:15740:body/5/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15851:15979:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15851:15867:body/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15868:15871:body/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15872:15881:body/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15892:15895:body/3/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15896:15912:body/4/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15924:15927:body/5/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15928:15937:body/6/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15946:15949:body/7/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15950:15966:body/8/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15976:15979:body/9/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15999:16081:body/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15999:16007:body/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16010:16019:body/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16022:16033:body/2/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16036:16046:body/3/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16049:16057:body/4/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16060:16070:body/5/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16073:16081:body/6/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16249:16518:body/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16249:16273:body/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16280:16299:body/1/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16280:16283:body/1/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16284:16295:body/1/1/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16296:16299:body/1/2/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16306:16335:body/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16342:16361:body/3/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16364:16383:body/4/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16386:16398:body/5/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16405:16425:body/6/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16428:16448:body/7/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16451:16464:body/8/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16471:16477:body/9/tokenRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16484:16495:body/10/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16502:16518:body/11/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17034:17050:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17034:17050:body/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17075:17091:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17075:17091:body/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17116:17132:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17116:17132:body/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17224:17829:body/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17224:17327:body/0/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17224:17241:body/0/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17249:17252:body/0/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17253:17268:body/0/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17276:17279:body/0/3/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17280:17293:body/0/4/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17299:17302:body/0/5/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17303:17317:body/0/6/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17324:17327:body/0/7/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17334:17412:body/1/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17334:17351:body/1/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17359:17362:body/1/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17363:17378:body/1/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17386:17389:body/1/3/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17390:17403:body/1/4/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17409:17412:body/1/5/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17419:17503:body/2/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17419:17436:body/2/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17444:17447:body/2/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17448:17463:body/2/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17471:17474:body/2/3/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17475:17478:body/2/4/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17479:17493:body/2/5/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17500:17503:body/2/6/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17510:17569:body/3/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17510:17527:body/3/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17535:17538:body/3/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17539:17554:body/3/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17562:17565:body/3/3/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17566:17569:body/3/4/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17576:17656:body/4/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17576:17593:body/4/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17601:17604:body/4/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17605:17608:body/4/2/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17609:17622:body/4/3/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17628:17631:body/4/4/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17632:17646:body/4/5/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17653:17656:body/4/6/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17663:17718:body/5/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17663:17680:body/5/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17688:17691:body/5/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17692:17695:body/5/2/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17696:17709:body/5/3/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17715:17718:body/5/4/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17725:17786:body/6/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17725:17742:body/6/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17750:17753:body/6/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17754:17757:body/6/2/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17758:17761:body/6/3/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17762:17776:body/6/4/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17783:17786:body/6/5/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17793:17829:body/7/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17793:17810:body/7/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17818:17821:body/7/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17822:17825:body/7/2/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17826:17829:body/7/3/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17923:18544:body/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17923:18028:body/0/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17923:17942:body/0/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17950:17953:body/0/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17954:17969:body/0/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17977:17980:body/0/3/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17981:17994:body/0/4/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18000:18003:body/0/5/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18004:18018:body/0/6/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18025:18028:body/0/7/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18035:18115:body/1/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18035:18054:body/1/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18062:18065:body/1/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18066:18081:body/1/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18089:18092:body/1/3/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18093:18106:body/1/4/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18112:18115:body/1/5/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18122:18208:body/2/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18122:18141:body/2/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18149:18152:body/2/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18153:18168:body/2/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18176:18179:body/2/3/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18180:18183:body/2/4/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18184:18198:body/2/5/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18205:18208:body/2/6/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18215:18276:body/3/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18215:18234:body/3/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18242:18245:body/3/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18246:18261:body/3/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18269:18272:body/3/3/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18273:18276:body/3/4/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18283:18365:body/4/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18283:18302:body/4/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18310:18313:body/4/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18314:18317:body/4/2/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18318:18331:body/4/3/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18337:18340:body/4/4/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18341:18355:body/4/5/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18362:18365:body/4/6/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18372:18429:body/5/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18372:18391:body/5/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18399:18402:body/5/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18403:18406:body/5/2/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18407:18420:body/5/3/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18426:18429:body/5/4/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18436:18499:body/6/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18436:18455:body/6/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18463:18466:body/6/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18467:18470:body/6/2/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18471:18474:body/6/3/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18475:18489:body/6/4/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18496:18499:body/6/5/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18506:18544:body/7/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18506:18525:body/7/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18533:18536:body/7/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18537:18540:body/7/2/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18541:18544:body/7/3/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18570:18613:body/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18570:18591:body/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18594:18613:body/1/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18814:18860:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18814:18824:body/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18831:18860:body/1/repeat", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18833:18851:body/1/0/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18833:18836:body/1/0/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18841:18851:body/1/0/1/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18900:18924:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18900:18903:body/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18904:18920:body/1/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18921:18924:body/2/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19131:19494:body/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19131:19152:body/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19159:19171:body/1/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19178:19196:body/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19203:19222:body/3/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19229:19244:body/4/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19251:19280:body/5/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19287:19311:body/6/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19318:19337:body/7/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19340:19359:body/8/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19362:19374:body/9/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19381:19401:body/10/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19404:19424:body/11/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19427:19440:body/12/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19447:19453:body/13/tokenRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19460:19471:body/14/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19478:19494:body/15/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19576:19622:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19576:19579:body/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19580:19603:body/1/group", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19582:19601:body/1/0/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19582:19590:body/1/0/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19593:19601:body/1/0/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19604:19607:body/2/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19608:19611:body/3/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19612:19622:body/4/tokenRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19712:19761:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19712:19715:body/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19716:19726:body/1/tokenRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19733:19737:body/2/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19738:19761:body/3/group", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19740:19759:body/3/0/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19740:19748:body/3/0/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19751:19759:body/3/0/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19992:20058:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19992:20012:body/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20019:20058:body/1/repeat", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20021:20049:body/1/0/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20021:20024:body/1/0/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20029:20049:body/1/0/1/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20195:20261:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20195:20215:body/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20222:20261:body/1/repeat", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20224:20252:body/1/0/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20224:20227:body/1/0/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20232:20252:body/1/0/1/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20398:20450:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20398:20411:body/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20418:20450:body/1/repeat", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20420:20441:body/1/0/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20420:20423:body/1/0/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20428:20441:body/1/0/1/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20588:20626:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20588:20593:body/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20594:20597:body/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20598:20615:body/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20623:20626:body/3/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20660:21092:body/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20660:20673:body/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20680:20692:body/1/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20699:20721:body/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20728:20753:body/3/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20760:20768:body/4/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20775:20794:body/5/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20801:20818:body/6/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20825:20842:body/7/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20849:20867:body/8/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20874:20890:body/9/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20897:20913:body/10/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20920:20937:body/11/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20944:20963:body/12/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20970:20992:body/13/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20999:21005:body/14/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21012:21019:body/15/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21026:21037:body/16/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21044:21060:body/17/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21067:21092:body/18/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21067:21070:body/18/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21071:21088:body/18/1/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21089:21092:body/18/2/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21186:21242:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21186:21203:body/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21210:21220:body/1/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21225:21242:body/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21325:21455:body/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21325:21350:body/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21364:21384:body/1/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21398:21424:body/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21438:21455:body/3/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21719:21773:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21719:21735:body/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21742:21752:body/1/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21757:21773:body/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21800:21811:body/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21800:21804:body/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21807:21811:body/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21895:21948:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21895:21911:body/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21918:21927:body/1/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21932:21948:body/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21974:22011:body/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21974:21978:body/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21981:21985:body/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21988:21992:body/2/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21995:21999:body/3/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22002:22005:body/4/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22008:22011:body/5/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22165:22335:body/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22165:22181:body/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22195:22211:body/1/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22225:22242:body/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22256:22280:body/3/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22294:22305:body/4/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22319:22335:body/5/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22510:22640:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22510:22514:body/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22515:22518:body/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22519:22536:body/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22548:22551:body/3/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22556:22559:body/4/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22560:22576:body/5/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22587:22590:body/6/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22595:22601:body/7/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22606:22609:body/8/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22610:22626:body/9/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22637:22640:body/10/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22722:22972:body/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22722:22742:body/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22756:22782:body/1/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22796:22821:body/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22835:22851:body/3/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22865:22882:body/4/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22896:22912:body/5/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22926:22942:body/6/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22956:22972:body/7/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23147:23245:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23147:23150:body/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23151:23168:body/1/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23180:23183:body/2/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23184:23200:body/3/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23211:23214:body/4/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23215:23231:body/5/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23242:23245:body/6/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23435:23553:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23435:23442:body/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23443:23446:body/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23453:23463:body/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23475:23504:body/3/repeat", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23477:23491:body/3/0/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23477:23480:body/3/0/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23481:23491:body/3/0/1/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23511:23514:body/4/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23515:23532:body/5/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23550:23553:body/6/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23628:23677:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23628:23645:body/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23657:23661:body/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23662:23677:body/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23761:23791:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23761:23770:body/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23771:23775:body/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23776:23791:body/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23871:23887:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23871:23887:body/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24002:24120:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24002:24009:body/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24010:24013:body/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24020:24030:body/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24042:24071:body/3/repeat", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24044:24058:body/3/0/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24044:24047:body/3/0/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24048:24058:body/3/0/1/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24078:24081:body/4/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24082:24099:body/5/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24117:24120:body/6/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24195:24244:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24195:24212:body/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24224:24228:body/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24229:24244:body/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24328:24358:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24328:24337:body/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24338:24342:body/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24343:24358:body/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24438:24454:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24438:24454:body/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24571:24692:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24571:24578:body/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24579:24582:body/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24589:24600:body/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24612:24642:body/3/repeat", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24614:24629:body/3/0/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24614:24617:body/3/0/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24618:24629:body/3/0/1/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24649:24652:body/4/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24653:24671:body/5/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24689:24692:body/6/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24769:24819:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24769:24786:body/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24798:24802:body/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24803:24819:body/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24905:24936:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24905:24914:body/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24915:24919:body/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24920:24936:body/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25018:25035:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25018:25035:body/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25248:25299:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25248:25251:body/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25252:25262:body/1/tokenRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25269:25299:body/2/optional", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25271:25291:body/2/0/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25271:25279:body/2/0/0/optional", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25273:25277:body/2/0/0/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25280:25291:body/2/0/1/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25321:25432:body/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25321:25329:body/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25332:25340:body/1/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25343:25350:body/2/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25353:25360:body/3/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25367:25375:body/4/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25378:25386:body/5/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25389:25398:body/6/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25401:25410:body/7/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25413:25421:body/8/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25424:25432:body/9/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25749:25925:body/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25749:25765:body/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25779:25796:body/1/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25810:25826:body/2/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25840:25856:body/3/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25870:25886:body/4/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25900:25925:body/5/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25900:25903:body/5/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25904:25914:body/5/1/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25922:25925:body/5/2/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:26172:26188:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:26172:26188:body/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:26270:26287:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:26270:26287:body/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:26368:26384:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:26368:26384:body/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:26465:26481:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:26465:26481:body/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:26562:26578:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:26562:26578:body/0/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:26666:26691:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:26666:26669:body/0/literal", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:26670:26680:body/1/ruleRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:26688:26691:body/2/literal"]; +const BODIES:&[&str]=&["expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1175:1742:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2175:2226:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2682:2765:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2836:2877:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3028:3150:body/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3323:3499:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3672:3848:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4023:4201:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4374:4550:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4569:4673:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4698:4750:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4774:4806:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4831:4865:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4889:4921:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4973:4992:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5014:5038:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5059:5106:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5136:5183:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5212:5237:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5271:5385:body/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5566:5711:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5892:6037:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6220:6367:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6548:6693:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6770:6825:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6939:6990:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7017:7035:body/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7061:7069:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7096:7105:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7131:7139:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7159:7233:body/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7559:7725:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7837:8016:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8128:8293:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8405:8570:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8775:8809:body/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8912:8979:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9146:9226:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9322:9435:body/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9505:9566:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9761:9809:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9916:9968:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9984:9993:body/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10008:10017:body/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10125:10379:body/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10435:10472:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10528:10565:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10621:10658:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10716:10754:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10818:10890:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10954:11026:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11074:11090:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11146:11183:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11243:11282:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11340:11378:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11438:11477:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11544:11615:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11671:11708:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11764:11801:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11955:12031:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12060:12340:body/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12493:12538:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12612:12657:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12717:12755:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12819:12859:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12920:12957:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13282:13323:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13401:13442:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13506:13540:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13608:13644:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13864:13978:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14056:14168:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14246:14358:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14424:14527:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14692:14810:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14892:15008:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15090:15206:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15240:15310:body/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15459:15497:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15661:15740:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15851:15979:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15999:16081:body/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16249:16518:body/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17034:17050:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17075:17091:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17116:17132:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17224:17829:body/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17923:18544:body/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18570:18613:body/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18814:18860:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18900:18924:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19131:19494:body/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19576:19622:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19712:19761:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19992:20058:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20195:20261:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20398:20450:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20588:20626:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20660:21092:body/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21186:21242:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21325:21455:body/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21719:21773:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21800:21811:body/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21895:21948:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21974:22011:body/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22165:22335:body/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22510:22640:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22722:22972:body/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23147:23245:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23435:23553:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23628:23677:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23761:23791:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23871:23887:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24002:24120:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24195:24244:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24328:24358:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24438:24454:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24571:24692:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24769:24819:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24905:24936:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25018:25035:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25248:25299:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25321:25432:body/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25749:25925:body/choice", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:26172:26188:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:26270:26287:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:26368:26384:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:26465:26481:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:26562:26578:body/seq", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:26666:26691:body/seq"]; +const RULE_NODE:&[bool]=&[true, true, true, true, false, true, true, true, true, false, false, false, false, false, true, false, false, false, false, false, true, true, true, true, true, true, false, false, false, false, false, true, true, true, true, false, true, true, true, true, true, true, false, false, false, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, false, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, false, true, true, true, false, false, false, false, false, true, true, false, true, false, false, true, true, true, true, true, true, false, true, true, true, false, true, false, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, false, true, true, true, true, true, true, true]; +const RULE_SLOTS:&[u32]=&[9, 1, 3, 3, 0, 4, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 2, 2, 0, 0, 0, 0, 0, 3, 3, 3, 3, 0, 2, 3, 1, 2, 5, 5, 0, 0, 0, 1, 1, 1, 1, 3, 3, 0, 1, 1, 1, 1, 2, 1, 1, 2, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 3, 3, 0, 1, 2, 4, 0, 0, 0, 0, 0, 4, 4, 0, 5, 0, 0, 1, 1, 5, 5, 5, 1, 0, 3, 1, 3, 0, 3, 0, 1, 3, 1, 3, 4, 2, 1, 1, 4, 2, 1, 1, 4, 2, 1, 1, 2, 0, 1, 1, 1, 1, 1, 1, 1]; +const SITES:&[(&str,&str)]=&[("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1177:1186:body/0/0/ruleRef/capture/0", "codeBlocks"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1203:1220:body/1/0/ruleRef/capture/0", "imports"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1234:1253:body/2/0/ruleRef/capture/0", "declarations"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1295:1315:body/4/0/0/0/ruleRef/capture/0", "expression"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1330:1347:body/4/0/0/1/0/ruleRef/capture/0", "methods"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1369:1390:body/4/0/1/0/ruleRef/capture/0", "expression"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1405:1422:body/4/0/1/1/0/ruleRef/capture/0", "methods"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1444:1464:body/4/0/2/0/ruleRef/capture/0", "expression"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1479:1496:body/4/0/2/1/0/ruleRef/capture/0", "methods"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1518:1538:body/4/0/3/0/ruleRef/capture/0", "expression"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1553:1570:body/4/0/3/1/0/ruleRef/capture/0", "methods"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1592:1612:body/4/0/4/0/ruleRef/capture/0", "expression"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1627:1644:body/4/0/4/1/0/ruleRef/capture/0", "methods"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1666:1693:body/4/0/5/0/ruleRef/capture/0", "expression"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1708:1725:body/4/0/5/1/0/ruleRef/capture/0", "methods"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2175:2226:body/0/group/capture/0", "source"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2691:2700:body/1/ruleRef/capture/0", "className"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2718:2728:body/2/0/1/tokenRef/capture/0", "method"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2744:2754:body/4/tokenRef/capture/0", "alias"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2836:2846:body/0/tokenRef/capture/0", "head"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2859:2869:body/1/0/1/tokenRef/capture/0", "tail"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3354:3364:body/2/tokenRef/capture/0", "varName"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3411:3423:body/4/0/1/0/ruleRef/capture/0", "onlyIfAbsent"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3440:3456:body/4/0/2/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3472:3483:body/5/0/ruleRef/capture/0", "desc"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3703:3713:body/2/tokenRef/capture/0", "varName"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3760:3772:body/4/0/1/0/ruleRef/capture/0", "onlyIfAbsent"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3789:3805:body/4/0/2/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3821:3832:body/5/0/ruleRef/capture/0", "desc"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4054:4064:body/2/tokenRef/capture/0", "varName"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4112:4124:body/4/0/1/0/ruleRef/capture/0", "onlyIfAbsent"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4141:4158:body/4/0/2/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4174:4185:body/5/0/ruleRef/capture/0", "desc"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4405:4415:body/2/tokenRef/capture/0", "varName"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4462:4474:body/4/0/1/0/ruleRef/capture/0", "onlyIfAbsent"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4491:4507:body/4/0/2/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4523:4534:body/5/0/ruleRef/capture/0", "desc"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5583:5593:body/1/tokenRef/capture/0", "methodName"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5622:5638:body/3/0/ruleRef/capture/0", "parameters"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5675:5691:body/6/ruleRef/capture/0", "expression"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5909:5919:body/1/tokenRef/capture/0", "methodName"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5948:5964:body/3/0/ruleRef/capture/0", "parameters"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6001:6017:body/6/ruleRef/capture/0", "expression"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6238:6248:body/1/tokenRef/capture/0", "methodName"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6277:6293:body/3/0/ruleRef/capture/0", "parameters"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6330:6347:body/6/ruleRef/capture/0", "expression"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6565:6575:body/1/tokenRef/capture/0", "methodName"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6604:6620:body/3/0/ruleRef/capture/0", "parameters"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6657:6673:body/6/ruleRef/capture/0", "expression"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6770:6785:body/0/ruleRef/capture/0", "values"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6800:6815:body/1/0/1/ruleRef/capture/0", "values"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6943:6953:body/1/tokenRef/capture/0", "paramName"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6972:6982:body/2/0/1/ruleRef/capture/0", "type"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7631:7640:body/4/0/0/0/ruleRef/capture/0", "className"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7656:7666:body/4/0/0/2/tokenRef/capture/0", "name"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7675:7685:body/4/0/1/tokenRef/capture/0", "name"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7704:7713:body/6/0/ruleRef/capture/0", "args"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7922:7931:body/2/0/0/0/ruleRef/capture/0", "className"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7947:7957:body/2/0/0/2/tokenRef/capture/0", "name"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7966:7976:body/2/0/1/tokenRef/capture/0", "name"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7995:8004:body/4/0/ruleRef/capture/0", "args"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8199:8208:body/4/0/0/0/ruleRef/capture/0", "className"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8224:8234:body/4/0/0/2/tokenRef/capture/0", "name"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8243:8253:body/4/0/1/tokenRef/capture/0", "name"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8272:8281:body/6/0/ruleRef/capture/0", "args"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8476:8485:body/4/0/0/0/ruleRef/capture/0", "className"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8501:8511:body/4/0/0/2/tokenRef/capture/0", "name"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8520:8530:body/4/0/1/tokenRef/capture/0", "name"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8549:8558:body/6/0/ruleRef/capture/0", "args"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8935:8945:body/1/tokenRef/capture/0", "name"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8958:8967:body/3/0/ruleRef/capture/0", "args"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9146:9163:body/0/ruleRef/capture/0", "condition"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9179:9195:body/2/ruleRef/capture/0", "thenExpr"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9210:9226:body/4/ruleRef/capture/0", "elseExpr"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9322:9337:body/0/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9351:9371:body/1/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9385:9411:body/2/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9425:9435:body/3/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9505:9523:body/0/ruleRef/capture/0", "values"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9538:9556:body/1/0/1/ruleRef/capture/0", "values"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9761:9771:body/0/ruleRef/capture/0", "left"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9780:9785:body/1/0/0/ruleRef/capture/0", "op"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9790:9800:body/1/0/1/ruleRef/capture/0", "right"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9916:9928:body/0/ruleRef/capture/0", "left"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9937:9942:body/1/0/0/ruleRef/capture/0", "op"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9947:9959:body/1/0/1/ruleRef/capture/0", "right"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10445:10463:body/2/ruleRef/capture/0", "arg"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10538:10556:body/2/ruleRef/capture/0", "arg"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10631:10649:body/2/ruleRef/capture/0", "arg"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10727:10745:body/2/ruleRef/capture/0", "arg"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10828:10846:body/2/ruleRef/capture/0", "first"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10860:10878:body/3/0/1/ruleRef/capture/0", "rest"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10964:10982:body/2/ruleRef/capture/0", "first"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10996:11014:body/3/0/1/ruleRef/capture/0", "rest"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11156:11174:body/2/ruleRef/capture/0", "arg"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11255:11273:body/2/ruleRef/capture/0", "arg"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11351:11369:body/2/ruleRef/capture/0", "arg"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11450:11468:body/2/ruleRef/capture/0", "arg"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11554:11572:body/2/ruleRef/capture/0", "base"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11583:11601:body/4/ruleRef/capture/0", "exponent"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11681:11699:body/2/ruleRef/capture/0", "arg"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11774:11792:body/2/ruleRef/capture/0", "arg"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11967:11983:body/2/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11995:12013:body/4/ruleRef/capture/0", "defaultValue"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12511:12527:body/2/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12630:12646:body/2/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12728:12744:body/2/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12832:12848:body/2/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12930:12946:body/2/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13282:13293:body/0/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13401:13412:body/0/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13506:13517:body/0/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13608:13619:body/0/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13881:13897:body/2/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13909:13925:body/4/ruleRef/capture/0", "patterns"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13946:13962:body/5/0/1/ruleRef/capture/0", "patterns"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14071:14087:body/2/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14099:14115:body/4/ruleRef/capture/0", "patterns"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14136:14152:body/5/0/1/ruleRef/capture/0", "patterns"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14261:14277:body/2/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14289:14305:body/4/ruleRef/capture/0", "patterns"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14326:14342:body/5/0/1/ruleRef/capture/0", "patterns"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14424:14440:body/0/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14458:14474:body/3/ruleRef/capture/0", "candidates"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14493:14509:body/4/0/1/ruleRef/capture/0", "candidates"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14692:14715:body/0/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14741:14757:body/3/ruleRef/capture/0", "patterns"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14778:14794:body/4/0/1/ruleRef/capture/0", "patterns"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14892:14915:body/0/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14939:14955:body/3/ruleRef/capture/0", "patterns"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14976:14992:body/4/0/1/ruleRef/capture/0", "patterns"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15090:15113:body/0/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15137:15153:body/3/ruleRef/capture/0", "patterns"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15174:15190:body/4/0/1/ruleRef/capture/0", "patterns"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15475:15486:body/2/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15679:15695:body/2/ruleRef/capture/0", "startHour"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15711:15727:body/4/ruleRef/capture/0", "endHour"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15872:15881:body/2/ruleRef/capture/0", "startDay"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15896:15912:body/4/ruleRef/capture/0", "startHour"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15928:15937:body/6/ruleRef/capture/0", "endDay"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15950:15966:body/8/ruleRef/capture/0", "endHour"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17224:17241:body/0/0/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17253:17268:body/0/2/ruleRef/capture/0", "start"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17280:17293:body/0/4/ruleRef/capture/0", "end"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17303:17317:body/0/6/ruleRef/capture/0", "step"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17334:17351:body/1/0/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17363:17378:body/1/2/ruleRef/capture/0", "start"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17390:17403:body/1/4/ruleRef/capture/0", "end"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17419:17436:body/2/0/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17448:17463:body/2/2/ruleRef/capture/0", "start"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17479:17493:body/2/5/ruleRef/capture/0", "step"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17510:17527:body/3/0/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17539:17554:body/3/2/ruleRef/capture/0", "start"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17576:17593:body/4/0/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17609:17622:body/4/3/ruleRef/capture/0", "end"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17632:17646:body/4/5/ruleRef/capture/0", "step"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17663:17680:body/5/0/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17696:17709:body/5/3/ruleRef/capture/0", "end"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17725:17742:body/6/0/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17762:17776:body/6/4/ruleRef/capture/0", "step"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17793:17810:body/7/0/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17923:17942:body/0/0/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17954:17969:body/0/2/ruleRef/capture/0", "start"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17981:17994:body/0/4/ruleRef/capture/0", "end"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18004:18018:body/0/6/ruleRef/capture/0", "step"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18035:18054:body/1/0/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18066:18081:body/1/2/ruleRef/capture/0", "start"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18093:18106:body/1/4/ruleRef/capture/0", "end"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18122:18141:body/2/0/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18153:18168:body/2/2/ruleRef/capture/0", "start"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18184:18198:body/2/5/ruleRef/capture/0", "step"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18215:18234:body/3/0/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18246:18261:body/3/2/ruleRef/capture/0", "start"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18283:18302:body/4/0/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18318:18331:body/4/3/ruleRef/capture/0", "end"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18341:18355:body/4/5/ruleRef/capture/0", "step"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18372:18391:body/5/0/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18407:18420:body/5/3/ruleRef/capture/0", "end"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18436:18455:body/6/0/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18475:18489:body/6/4/ruleRef/capture/0", "step"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18506:18525:body/7/0/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18814:18824:body/0/ruleRef/capture/0", "left"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18833:18836:body/1/0/0/literal/capture/0", "op"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18841:18851:body/1/0/1/ruleRef/capture/0", "right"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19612:19622:body/4/tokenRef/capture/0", "name"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19716:19726:body/1/tokenRef/capture/0", "name"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19992:20012:body/0/ruleRef/capture/0", "left"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20021:20024:body/1/0/0/literal/capture/0", "op"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20029:20049:body/1/0/1/ruleRef/capture/0", "right"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20195:20215:body/0/ruleRef/capture/0", "left"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20224:20227:body/1/0/0/literal/capture/0", "op"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20232:20252:body/1/0/1/ruleRef/capture/0", "right"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20398:20411:body/0/ruleRef/capture/0", "left"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20420:20423:body/1/0/0/literal/capture/0", "op"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20428:20441:body/1/0/1/ruleRef/capture/0", "right"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20598:20615:body/2/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21186:21203:body/0/ruleRef/capture/0", "left"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21210:21220:body/1/ruleRef/capture/0", "op"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21225:21242:body/2/ruleRef/capture/0", "right"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21325:21350:body/0/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21364:21384:body/1/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21398:21424:body/2/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21438:21455:body/3/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21719:21735:body/0/ruleRef/capture/0", "left"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21742:21752:body/1/ruleRef/capture/0", "op"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21757:21773:body/2/ruleRef/capture/0", "right"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21895:21911:body/0/ruleRef/capture/0", "left"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21918:21927:body/1/ruleRef/capture/0", "op"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21932:21948:body/2/ruleRef/capture/0", "right"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22165:22181:body/0/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22195:22211:body/1/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22225:22242:body/2/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22256:22280:body/3/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22294:22305:body/4/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22319:22335:body/5/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22519:22536:body/2/ruleRef/capture/0", "condition"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22560:22576:body/5/ruleRef/capture/0", "thenExpr"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22610:22626:body/9/ruleRef/capture/0", "elseExpr"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22722:22742:body/0/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22756:22782:body/1/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22796:22821:body/2/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22835:22851:body/3/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22865:22882:body/4/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22896:22912:body/5/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22926:22942:body/6/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22956:22972:body/7/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23151:23168:body/1/ruleRef/capture/0", "condition"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23184:23200:body/3/ruleRef/capture/0", "thenExpr"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23215:23231:body/5/ruleRef/capture/0", "elseExpr"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23453:23463:body/2/ruleRef/capture/0", "firstCase"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23481:23491:body/3/0/1/ruleRef/capture/0", "moreCases"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23515:23532:body/5/ruleRef/capture/0", "defaultCase"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23628:23645:body/0/ruleRef/capture/0", "condition"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23662:23677:body/2/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23776:23791:body/2/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23871:23887:body/0/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24020:24030:body/2/ruleRef/capture/0", "firstCase"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24048:24058:body/3/0/1/ruleRef/capture/0", "moreCases"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24082:24099:body/5/ruleRef/capture/0", "defaultCase"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24195:24212:body/0/ruleRef/capture/0", "condition"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24229:24244:body/2/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24343:24358:body/2/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24438:24454:body/0/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24589:24600:body/2/ruleRef/capture/0", "firstCase"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24618:24629:body/3/0/1/ruleRef/capture/0", "moreCases"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24653:24671:body/5/ruleRef/capture/0", "defaultCase"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24769:24786:body/0/ruleRef/capture/0", "condition"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24803:24819:body/2/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24920:24936:body/2/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25018:25035:body/0/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25252:25262:body/1/tokenRef/capture/0", "name"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25280:25291:body/2/0/1/ruleRef/capture/0", "type"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25749:25765:body/0/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25779:25796:body/1/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25810:25826:body/2/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25840:25856:body/3/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25870:25886:body/4/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25904:25914:body/5/1/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:26172:26188:body/0/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:26270:26287:body/0/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:26368:26384:body/0/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:26465:26481:body/0/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:26562:26578:body/0/ruleRef/capture/0", "value"), ("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:26670:26680:body/1/ruleRef/capture/0", "value")]; impl Session<'_, DIAG> { fn build_values(&mut self,root:EventId)->Result,String> {let mut out=Vec::new();self.build_values_into(root,&mut out)?;Ok(out)} #[inline(never)] fn build_values_into(&mut self,root:EventId,out:&mut Vec)->Result<(),String> {let frame=0u8;let address=std::ptr::addr_of!(frame) as usize;let anchor=*self.mapping_anchor.get_or_insert(address);if self.mapping_depth>=self.options.limits.mapping_depth || anchor.abs_diff(address)>256*1024 {return Err("maximum mapping depth exceeded".into());}self.mapping_depth+=1;let result=self.build_values_inner(root,out);self.mapping_depth-=1;result} @@ -3381,6 +3381,12 @@ fn build_rule(&mut self,rule:usize,caps:(u32,u32),span:Span,child:EventId,out:&m 121=>{let outer=std::mem::take(&mut self.value_region);let built=self.map_rule_121(caps,span,child,out);self.value_region=outer;built}, 122=>self.map_rule_122(caps,span,child,out), 123=>{let outer=std::mem::take(&mut self.value_region);let built=self.map_rule_123(caps,span,child,out);self.value_region=outer;built}, +124=>{let outer=std::mem::take(&mut self.value_region);let built=self.map_rule_124(caps,span,child,out);self.value_region=outer;built}, +125=>{let outer=std::mem::take(&mut self.value_region);let built=self.map_rule_125(caps,span,child,out);self.value_region=outer;built}, +126=>{let outer=std::mem::take(&mut self.value_region);let built=self.map_rule_126(caps,span,child,out);self.value_region=outer;built}, +127=>{let outer=std::mem::take(&mut self.value_region);let built=self.map_rule_127(caps,span,child,out);self.value_region=outer;built}, +128=>{let outer=std::mem::take(&mut self.value_region);let built=self.map_rule_128(caps,span,child,out);self.value_region=outer;built}, +129=>{let outer=std::mem::take(&mut self.value_region);let built=self.map_rule_129(caps,span,child,out);self.value_region=outer;built}, _=>Err(format!("unknown rule {rule}"))}} fn map_rule_0(&mut self,caps:(u32,u32),span:Span,child:EventId,out:&mut Vec)->Result<(),String> {let _=(caps,span,child,&out);{let mut slots=self.take_captures();self.rule_captures(caps,&mut slots);let caps=slots; let mut f0=self.take_values();self.node_values(&caps,&[1],&[],None,&mut f0)?; @@ -3389,12 +3395,12 @@ let f0:Vec=f0; let mut f1=self.take_values();self.node_values(&caps,&[2],&[],None,&mut f1)?; if !f1.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_BooleanVariableDeclarationExpr || k==tree::K_g_TinyExpressionP4AST_2e_NumberVariableDeclarationExpr || k==tree::K_g_TinyExpressionP4AST_2e_ObjectVariableDeclarationExpr || k==tree::K_g_TinyExpressionP4AST_2e_StringVariableDeclarationExpr}) {return Err("declarations: mapped value type mismatch".into());} let f1:Vec=f1; -let mut v2=self.take_values();self.node_values(&caps,&[3],&[],None,&mut v2)?; +let mut v2=self.take_values();self.node_values(&caps,&[3, 5, 7, 9, 11, 13],&[],None,&mut v2)?; if !v2.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_ExpressionExpr}) {return Err("expression: mapped value type mismatch".into());} -if v2.is_empty() && self.missing_field(&caps,&[3]) {return Ok(());} +if v2.is_empty() && self.missing_field(&caps,&[3, 5, 7, 9, 11, 13]) {return Ok(());} if v2.len()!=1 {return Err("expression requires one node".into());}let f2=v2.pop().unwrap();self.give_values(v2); let f2:u32=f2; -let mut f3=self.take_values();self.node_values(&caps,&[4],&[],None,&mut f3)?; +let mut f3=self.take_values();self.node_values(&caps,&[4, 6, 8, 10, 12, 14],&[],None,&mut f3)?; if !f3.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_BooleanMethodDeclarationExpr || k==tree::K_g_TinyExpressionP4AST_2e_NumberMethodDeclarationExpr || k==tree::K_g_TinyExpressionP4AST_2e_ObjectMethodDeclarationExpr || k==tree::K_g_TinyExpressionP4AST_2e_StringMethodDeclarationExpr}) {return Err("methods: mapped value type mismatch".into());} let f3:Vec=f3; let mut f4=self.take_values();self.node_values(&caps,&[0],&[],None,&mut f4)?; @@ -3402,88 +3408,88 @@ if !f4.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressi let f4:Vec=f4; self.give_captures(caps);let span=self.span(span);let l0=self.tree.list(&f0);self.give_values(f0);let l1=self.tree.list(&f1);self.give_values(f1);let l3=self.tree.list(&f3);self.give_values(f3);let l4=self.tree.list(&f4);self.give_values(f4);let node=self.tree.record(tree::K_g_TinyExpressionP4AST_2e_FormulaExpr,0,span,&[l0[0],l0[1],l1[0],l1[1],f2,l3[0],l3[1],l4[0],l4[1]]);out.push(node);Ok(())}} fn map_rule_1(&mut self,caps:(u32,u32),span:Span,child:EventId,out:&mut Vec)->Result<(),String> {let _=(caps,span,child,&out);{let mut slots=self.take_captures();self.rule_captures(caps,&mut slots);let caps=slots; -let mut t0=self.take_values();self.text_values(&caps,&[5],&mut t0);if t0.is_empty() && self.missing_field(&caps,&[5]) {return Ok(());} +let mut t0=self.take_values();self.text_values(&caps,&[15],&mut t0);if t0.is_empty() && self.missing_field(&caps,&[15]) {return Ok(());} if t0.len()!=1 {return Err("source requires one value".into());}let f0=t0.pop().unwrap();self.give_values(t0); let f0:u32=f0; self.give_captures(caps);let span=self.span(span);let node=self.tree.record(tree::K_g_TinyExpressionP4AST_2e_CodeBlockExpr,1,span,&[f0]);out.push(node);Ok(())}} fn map_rule_2(&mut self,caps:(u32,u32),span:Span,child:EventId,out:&mut Vec)->Result<(),String> {let _=(caps,span,child,&out);{let mut slots=self.take_captures();self.rule_captures(caps,&mut slots);let caps=slots; -let mut v0=self.take_values();self.node_values(&caps,&[6],&[],None,&mut v0)?; +let mut v0=self.take_values();self.node_values(&caps,&[16],&[],None,&mut v0)?; if !v0.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_QualifiedNameExpr}) {return Err("className: mapped value type mismatch".into());} -if v0.is_empty() && self.missing_field(&caps,&[6]) {return Ok(());} +if v0.is_empty() && self.missing_field(&caps,&[16]) {return Ok(());} if v0.len()!=1 {return Err("className requires one node".into());}let f0=v0.pop().unwrap();self.give_values(v0); let f0:u32=f0; -let mut t1=self.take_values();self.text_values(&caps,&[7],&mut t1);if t1.len()>1 {return Err("method requires at most one value".into());}let f1=t1.pop();self.give_values(t1); +let mut t1=self.take_values();self.text_values(&caps,&[17],&mut t1);if t1.len()>1 {return Err("method requires at most one value".into());}let f1=t1.pop();self.give_values(t1); let f1:Option=f1; -let mut t2=self.take_values();self.text_values(&caps,&[8],&mut t2);if t2.is_empty() && self.missing_field(&caps,&[8]) {return Ok(());} +let mut t2=self.take_values();self.text_values(&caps,&[18],&mut t2);if t2.is_empty() && self.missing_field(&caps,&[18]) {return Ok(());} if t2.len()!=1 {return Err("alias requires one value".into());}let f2=t2.pop().unwrap();self.give_values(t2); let f2:u32=f2; self.give_captures(caps);let span=self.span(span);let node=self.tree.record(tree::K_g_TinyExpressionP4AST_2e_ImportDeclarationExpr,2,span,&[f0,f1.unwrap_or(tree::NONE),f2]);out.push(node);Ok(())}} fn map_rule_3(&mut self,caps:(u32,u32),span:Span,child:EventId,out:&mut Vec)->Result<(),String> {let _=(caps,span,child,&out);{let mut slots=self.take_captures();self.rule_captures(caps,&mut slots);let caps=slots; -let mut t0=self.take_values();self.text_values(&caps,&[9],&mut t0);if t0.is_empty() && self.missing_field(&caps,&[9]) {return Ok(());} +let mut t0=self.take_values();self.text_values(&caps,&[19],&mut t0);if t0.is_empty() && self.missing_field(&caps,&[19]) {return Ok(());} if t0.len()!=1 {return Err("head requires one value".into());}let f0=t0.pop().unwrap();self.give_values(t0); let f0:u32=f0; -let mut f1=self.take_values();self.text_values(&caps,&[10],&mut f1); +let mut f1=self.take_values();self.text_values(&caps,&[20],&mut f1); let f1:Vec=f1; self.give_captures(caps);let span=self.span(span);let l1=self.tree.list(&f1);self.give_values(f1);let node=self.tree.record(tree::K_g_TinyExpressionP4AST_2e_QualifiedNameExpr,3,span,&[f0,l1[0],l1[1]]);out.push(node);Ok(())}} fn map_rule_4(&mut self,caps:(u32,u32),span:Span,child:EventId,out:&mut Vec)->Result<(),String> {let _=(caps,span,child,&out);{let start=out.len();self.build_values_into(child,out)?;if out.len()==start && !self.has_recovery(child) && !self.has_value_group(child) {let text=self.semantic_text(child,span);out.push(text);}Ok(())}} fn map_rule_5(&mut self,caps:(u32,u32),span:Span,child:EventId,out:&mut Vec)->Result<(),String> {let _=(caps,span,child,&out);{let mut slots=self.take_captures();self.rule_captures(caps,&mut slots);let caps=slots; -let mut t0=self.take_values();self.text_values(&caps,&[11],&mut t0);if t0.is_empty() && self.missing_field(&caps,&[11]) {return Ok(());} +let mut t0=self.take_values();self.text_values(&caps,&[21],&mut t0);if t0.is_empty() && self.missing_field(&caps,&[21]) {return Ok(());} if t0.len()!=1 {return Err("varName requires one value".into());}let f0=t0.pop().unwrap();self.give_values(t0); let f0:u32=f0; -let mut v1=self.take_values();self.node_values(&caps,&[12],&[],None,&mut v1)?; +let mut v1=self.take_values();self.node_values(&caps,&[22],&[],None,&mut v1)?; if !v1.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_OnlyIfAbsentExpr}) {return Err("onlyIfAbsent: mapped value type mismatch".into());} if v1.len()>1 {return Err("onlyIfAbsent requires at most one node".into());}let f1=v1.pop();self.give_values(v1); let f1:Option=f1; -let mut v2=self.take_values();self.node_values(&caps,&[13],&[],None,&mut v2)?; +let mut v2=self.take_values();self.node_values(&caps,&[23],&[],None,&mut v2)?; if !v2.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_BinaryExpr}) {return Err("value: mapped value type mismatch".into());} if v2.len()>1 {return Err("value requires at most one node".into());}let f2=v2.pop();self.give_values(v2); let f2:Option=f2; -let mut t3=self.take_values();self.text_values(&caps,&[14],&mut t3);if t3.len()>1 {return Err("desc requires at most one value".into());}let f3=t3.pop();self.give_values(t3); +let mut t3=self.take_values();self.text_values(&caps,&[24],&mut t3);if t3.len()>1 {return Err("desc requires at most one value".into());}let f3=t3.pop();self.give_values(t3); let f3:Option=f3; self.give_captures(caps);let span=self.span(span);let node=self.tree.record(tree::K_g_TinyExpressionP4AST_2e_NumberVariableDeclarationExpr,5,span,&[f0,f1.unwrap_or(tree::NONE),f2.unwrap_or(tree::NONE),f3.unwrap_or(tree::NONE)]);out.push(node);Ok(())}} fn map_rule_6(&mut self,caps:(u32,u32),span:Span,child:EventId,out:&mut Vec)->Result<(),String> {let _=(caps,span,child,&out);{let mut slots=self.take_captures();self.rule_captures(caps,&mut slots);let caps=slots; -let mut t0=self.take_values();self.text_values(&caps,&[15],&mut t0);if t0.is_empty() && self.missing_field(&caps,&[15]) {return Ok(());} +let mut t0=self.take_values();self.text_values(&caps,&[25],&mut t0);if t0.is_empty() && self.missing_field(&caps,&[25]) {return Ok(());} if t0.len()!=1 {return Err("varName requires one value".into());}let f0=t0.pop().unwrap();self.give_values(t0); let f0:u32=f0; -let mut v1=self.take_values();self.node_values(&caps,&[16],&[],None,&mut v1)?; +let mut v1=self.take_values();self.node_values(&caps,&[26],&[],None,&mut v1)?; if !v1.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_OnlyIfAbsentExpr}) {return Err("onlyIfAbsent: mapped value type mismatch".into());} if v1.len()>1 {return Err("onlyIfAbsent requires at most one node".into());}let f1=v1.pop();self.give_values(v1); let f1:Option=f1; -let mut v2=self.take_values();self.node_values(&caps,&[17],&[],None,&mut v2)?; +let mut v2=self.take_values();self.node_values(&caps,&[27],&[],None,&mut v2)?; if !v2.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_StringConcatExpr}) {return Err("value: mapped value type mismatch".into());} if v2.len()>1 {return Err("value requires at most one node".into());}let f2=v2.pop();self.give_values(v2); let f2:Option=f2; -let mut t3=self.take_values();self.text_values(&caps,&[18],&mut t3);if t3.len()>1 {return Err("desc requires at most one value".into());}let f3=t3.pop();self.give_values(t3); +let mut t3=self.take_values();self.text_values(&caps,&[28],&mut t3);if t3.len()>1 {return Err("desc requires at most one value".into());}let f3=t3.pop();self.give_values(t3); let f3:Option=f3; self.give_captures(caps);let span=self.span(span);let node=self.tree.record(tree::K_g_TinyExpressionP4AST_2e_StringVariableDeclarationExpr,6,span,&[f0,f1.unwrap_or(tree::NONE),f2.unwrap_or(tree::NONE),f3.unwrap_or(tree::NONE)]);out.push(node);Ok(())}} fn map_rule_7(&mut self,caps:(u32,u32),span:Span,child:EventId,out:&mut Vec)->Result<(),String> {let _=(caps,span,child,&out);{let mut slots=self.take_captures();self.rule_captures(caps,&mut slots);let caps=slots; -let mut t0=self.take_values();self.text_values(&caps,&[19],&mut t0);if t0.is_empty() && self.missing_field(&caps,&[19]) {return Ok(());} +let mut t0=self.take_values();self.text_values(&caps,&[29],&mut t0);if t0.is_empty() && self.missing_field(&caps,&[29]) {return Ok(());} if t0.len()!=1 {return Err("varName requires one value".into());}let f0=t0.pop().unwrap();self.give_values(t0); let f0:u32=f0; -let mut v1=self.take_values();self.node_values(&caps,&[20],&[],None,&mut v1)?; +let mut v1=self.take_values();self.node_values(&caps,&[30],&[],None,&mut v1)?; if !v1.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_OnlyIfAbsentExpr}) {return Err("onlyIfAbsent: mapped value type mismatch".into());} if v1.len()>1 {return Err("onlyIfAbsent requires at most one node".into());}let f1=v1.pop();self.give_values(v1); let f1:Option=f1; -let mut v2=self.take_values();self.node_values(&caps,&[21],&[],None,&mut v2)?; +let mut v2=self.take_values();self.node_values(&caps,&[31],&[],None,&mut v2)?; if !v2.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_BooleanOrExpr}) {return Err("value: mapped value type mismatch".into());} if v2.len()>1 {return Err("value requires at most one node".into());}let f2=v2.pop();self.give_values(v2); let f2:Option=f2; -let mut t3=self.take_values();self.text_values(&caps,&[22],&mut t3);if t3.len()>1 {return Err("desc requires at most one value".into());}let f3=t3.pop();self.give_values(t3); +let mut t3=self.take_values();self.text_values(&caps,&[32],&mut t3);if t3.len()>1 {return Err("desc requires at most one value".into());}let f3=t3.pop();self.give_values(t3); let f3:Option=f3; self.give_captures(caps);let span=self.span(span);let node=self.tree.record(tree::K_g_TinyExpressionP4AST_2e_BooleanVariableDeclarationExpr,7,span,&[f0,f1.unwrap_or(tree::NONE),f2.unwrap_or(tree::NONE),f3.unwrap_or(tree::NONE)]);out.push(node);Ok(())}} fn map_rule_8(&mut self,caps:(u32,u32),span:Span,child:EventId,out:&mut Vec)->Result<(),String> {let _=(caps,span,child,&out);{let mut slots=self.take_captures();self.rule_captures(caps,&mut slots);let caps=slots; -let mut t0=self.take_values();self.text_values(&caps,&[23],&mut t0);if t0.is_empty() && self.missing_field(&caps,&[23]) {return Ok(());} +let mut t0=self.take_values();self.text_values(&caps,&[33],&mut t0);if t0.is_empty() && self.missing_field(&caps,&[33]) {return Ok(());} if t0.len()!=1 {return Err("varName requires one value".into());}let f0=t0.pop().unwrap();self.give_values(t0); let f0:u32=f0; -let mut v1=self.take_values();self.node_values(&caps,&[24],&[],None,&mut v1)?; +let mut v1=self.take_values();self.node_values(&caps,&[34],&[],None,&mut v1)?; if !v1.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_OnlyIfAbsentExpr}) {return Err("onlyIfAbsent: mapped value type mismatch".into());} if v1.len()>1 {return Err("onlyIfAbsent requires at most one node".into());}let f1=v1.pop();self.give_values(v1); let f1:Option=f1; -let mut v2=self.take_values();self.node_values(&caps,&[25],&[],None,&mut v2)?; +let mut v2=self.take_values();self.node_values(&caps,&[35],&[],None,&mut v2)?; if !v2.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_ObjectExpr}) {return Err("value: mapped value type mismatch".into());} if v2.len()>1 {return Err("value requires at most one node".into());}let f2=v2.pop();self.give_values(v2); let f2:Option=f2; -let mut t3=self.take_values();self.text_values(&caps,&[26],&mut t3);if t3.len()>1 {return Err("desc requires at most one value".into());}let f3=t3.pop();self.give_values(t3); +let mut t3=self.take_values();self.text_values(&caps,&[36],&mut t3);if t3.len()>1 {return Err("desc requires at most one value".into());}let f3=t3.pop();self.give_values(t3); let f3:Option=f3; self.give_captures(caps);let span=self.span(span);let node=self.tree.record(tree::K_g_TinyExpressionP4AST_2e_ObjectVariableDeclarationExpr,8,span,&[f0,f1.unwrap_or(tree::NONE),f2.unwrap_or(tree::NONE),f3.unwrap_or(tree::NONE)]);out.push(node);Ok(())}} fn map_rule_9(&mut self,caps:(u32,u32),span:Span,child:EventId,out:&mut Vec)->Result<(),String> {let _=(caps,span,child,&out);{if self.value_region>0 {return Ok(());}let start=out.len();self.build_values_into(child,out)?;if out.len()==start && !self.has_recovery(child) && !self.has_value_group(child) {let text=self.semantic_text(child,span);out.push(text);}Ok(())}} @@ -3499,71 +3505,71 @@ fn map_rule_17(&mut self,caps:(u32,u32),span:Span,child:EventId,out:&mut Vec)->Result<(),String> {let _=(caps,span,child,&out);{let start=out.len();self.build_values_into(child,out)?;if out.len()==start && !self.has_recovery(child) && !self.has_value_group(child) {let text=self.semantic_text(child,span);out.push(text);}Ok(())}} fn map_rule_19(&mut self,caps:(u32,u32),span:Span,child:EventId,out:&mut Vec)->Result<(),String> {let _=(caps,span,child,&out);{let start=out.len();self.build_values_into(child,out)?;if out.len()==start && !self.has_recovery(child) && !self.has_value_group(child) {let text=self.semantic_text(child,span);out.push(text);}Ok(())}} fn map_rule_20(&mut self,caps:(u32,u32),span:Span,child:EventId,out:&mut Vec)->Result<(),String> {let _=(caps,span,child,&out);{let mut slots=self.take_captures();self.rule_captures(caps,&mut slots);let caps=slots; -let mut t0=self.take_values();self.text_values(&caps,&[27],&mut t0);if t0.is_empty() && self.missing_field(&caps,&[27]) {return Ok(());} +let mut t0=self.take_values();self.text_values(&caps,&[37],&mut t0);if t0.is_empty() && self.missing_field(&caps,&[37]) {return Ok(());} if t0.len()!=1 {return Err("methodName requires one value".into());}let f0=t0.pop().unwrap();self.give_values(t0); let f0:u32=f0; -let mut v1=self.take_values();self.node_values(&caps,&[28],&[],None,&mut v1)?; +let mut v1=self.take_values();self.node_values(&caps,&[38],&[],None,&mut v1)?; if !v1.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_MethodParametersExpr}) {return Err("parameters: mapped value type mismatch".into());} if v1.len()>1 {return Err("parameters requires at most one node".into());}let f1=v1.pop();self.give_values(v1); let f1:Option=f1; -let mut v2=self.take_values();self.node_values(&caps,&[29],&[],None,&mut v2)?; +let mut v2=self.take_values();self.node_values(&caps,&[39],&[],None,&mut v2)?; if !v2.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_BinaryExpr}) {return Err("expression: mapped value type mismatch".into());} -if v2.is_empty() && self.missing_field(&caps,&[29]) {return Ok(());} +if v2.is_empty() && self.missing_field(&caps,&[39]) {return Ok(());} if v2.len()!=1 {return Err("expression requires one node".into());}let f2=v2.pop().unwrap();self.give_values(v2); let f2:u32=f2; self.give_captures(caps);let span=self.span(span);let node=self.tree.record(tree::K_g_TinyExpressionP4AST_2e_NumberMethodDeclarationExpr,20,span,&[f0,f1.unwrap_or(tree::NONE),f2]);out.push(node);Ok(())}} fn map_rule_21(&mut self,caps:(u32,u32),span:Span,child:EventId,out:&mut Vec)->Result<(),String> {let _=(caps,span,child,&out);{let mut slots=self.take_captures();self.rule_captures(caps,&mut slots);let caps=slots; -let mut t0=self.take_values();self.text_values(&caps,&[30],&mut t0);if t0.is_empty() && self.missing_field(&caps,&[30]) {return Ok(());} +let mut t0=self.take_values();self.text_values(&caps,&[40],&mut t0);if t0.is_empty() && self.missing_field(&caps,&[40]) {return Ok(());} if t0.len()!=1 {return Err("methodName requires one value".into());}let f0=t0.pop().unwrap();self.give_values(t0); let f0:u32=f0; -let mut v1=self.take_values();self.node_values(&caps,&[31],&[],None,&mut v1)?; +let mut v1=self.take_values();self.node_values(&caps,&[41],&[],None,&mut v1)?; if !v1.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_MethodParametersExpr}) {return Err("parameters: mapped value type mismatch".into());} if v1.len()>1 {return Err("parameters requires at most one node".into());}let f1=v1.pop();self.give_values(v1); let f1:Option=f1; -let mut v2=self.take_values();self.node_values(&caps,&[32],&[],None,&mut v2)?; +let mut v2=self.take_values();self.node_values(&caps,&[42],&[],None,&mut v2)?; if !v2.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_StringConcatExpr}) {return Err("expression: mapped value type mismatch".into());} -if v2.is_empty() && self.missing_field(&caps,&[32]) {return Ok(());} +if v2.is_empty() && self.missing_field(&caps,&[42]) {return Ok(());} if v2.len()!=1 {return Err("expression requires one node".into());}let f2=v2.pop().unwrap();self.give_values(v2); let f2:u32=f2; self.give_captures(caps);let span=self.span(span);let node=self.tree.record(tree::K_g_TinyExpressionP4AST_2e_StringMethodDeclarationExpr,21,span,&[f0,f1.unwrap_or(tree::NONE),f2]);out.push(node);Ok(())}} fn map_rule_22(&mut self,caps:(u32,u32),span:Span,child:EventId,out:&mut Vec)->Result<(),String> {let _=(caps,span,child,&out);{let mut slots=self.take_captures();self.rule_captures(caps,&mut slots);let caps=slots; -let mut t0=self.take_values();self.text_values(&caps,&[33],&mut t0);if t0.is_empty() && self.missing_field(&caps,&[33]) {return Ok(());} +let mut t0=self.take_values();self.text_values(&caps,&[43],&mut t0);if t0.is_empty() && self.missing_field(&caps,&[43]) {return Ok(());} if t0.len()!=1 {return Err("methodName requires one value".into());}let f0=t0.pop().unwrap();self.give_values(t0); let f0:u32=f0; -let mut v1=self.take_values();self.node_values(&caps,&[34],&[],None,&mut v1)?; +let mut v1=self.take_values();self.node_values(&caps,&[44],&[],None,&mut v1)?; if !v1.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_MethodParametersExpr}) {return Err("parameters: mapped value type mismatch".into());} if v1.len()>1 {return Err("parameters requires at most one node".into());}let f1=v1.pop();self.give_values(v1); let f1:Option=f1; -let mut v2=self.take_values();self.node_values(&caps,&[35],&[],None,&mut v2)?; +let mut v2=self.take_values();self.node_values(&caps,&[45],&[],None,&mut v2)?; if !v2.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_BooleanOrExpr}) {return Err("expression: mapped value type mismatch".into());} -if v2.is_empty() && self.missing_field(&caps,&[35]) {return Ok(());} +if v2.is_empty() && self.missing_field(&caps,&[45]) {return Ok(());} if v2.len()!=1 {return Err("expression requires one node".into());}let f2=v2.pop().unwrap();self.give_values(v2); let f2:u32=f2; self.give_captures(caps);let span=self.span(span);let node=self.tree.record(tree::K_g_TinyExpressionP4AST_2e_BooleanMethodDeclarationExpr,22,span,&[f0,f1.unwrap_or(tree::NONE),f2]);out.push(node);Ok(())}} fn map_rule_23(&mut self,caps:(u32,u32),span:Span,child:EventId,out:&mut Vec)->Result<(),String> {let _=(caps,span,child,&out);{let mut slots=self.take_captures();self.rule_captures(caps,&mut slots);let caps=slots; -let mut t0=self.take_values();self.text_values(&caps,&[36],&mut t0);if t0.is_empty() && self.missing_field(&caps,&[36]) {return Ok(());} +let mut t0=self.take_values();self.text_values(&caps,&[46],&mut t0);if t0.is_empty() && self.missing_field(&caps,&[46]) {return Ok(());} if t0.len()!=1 {return Err("methodName requires one value".into());}let f0=t0.pop().unwrap();self.give_values(t0); let f0:u32=f0; -let mut v1=self.take_values();self.node_values(&caps,&[37],&[],None,&mut v1)?; +let mut v1=self.take_values();self.node_values(&caps,&[47],&[],None,&mut v1)?; if !v1.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_MethodParametersExpr}) {return Err("parameters: mapped value type mismatch".into());} if v1.len()>1 {return Err("parameters requires at most one node".into());}let f1=v1.pop();self.give_values(v1); let f1:Option=f1; -let mut v2=self.take_values();self.node_values(&caps,&[38],&[],None,&mut v2)?; +let mut v2=self.take_values();self.node_values(&caps,&[48],&[],None,&mut v2)?; if !v2.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_ObjectExpr}) {return Err("expression: mapped value type mismatch".into());} -if v2.is_empty() && self.missing_field(&caps,&[38]) {return Ok(());} +if v2.is_empty() && self.missing_field(&caps,&[48]) {return Ok(());} if v2.len()!=1 {return Err("expression requires one node".into());}let f2=v2.pop().unwrap();self.give_values(v2); let f2:u32=f2; self.give_captures(caps);let span=self.span(span);let node=self.tree.record(tree::K_g_TinyExpressionP4AST_2e_ObjectMethodDeclarationExpr,23,span,&[f0,f1.unwrap_or(tree::NONE),f2]);out.push(node);Ok(())}} fn map_rule_24(&mut self,caps:(u32,u32),span:Span,child:EventId,out:&mut Vec)->Result<(),String> {let _=(caps,span,child,&out);{let mut slots=self.take_captures();self.rule_captures(caps,&mut slots);let caps=slots; -let mut f0=self.take_values();self.node_values(&caps,&[39, 40],&[],None,&mut f0)?; +let mut f0=self.take_values();self.node_values(&caps,&[49, 50],&[],None,&mut f0)?; if !f0.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_MethodParameterExpr}) {return Err("values: mapped value type mismatch".into());} let f0:Vec=f0; self.give_captures(caps);let span=self.span(span);let l0=self.tree.list(&f0);self.give_values(f0);let node=self.tree.record(tree::K_g_TinyExpressionP4AST_2e_MethodParametersExpr,24,span,&[l0[0],l0[1]]);out.push(node);Ok(())}} fn map_rule_25(&mut self,caps:(u32,u32),span:Span,child:EventId,out:&mut Vec)->Result<(),String> {let _=(caps,span,child,&out);{let mut slots=self.take_captures();self.rule_captures(caps,&mut slots);let caps=slots; -let mut t0=self.take_values();self.text_values(&caps,&[41],&mut t0);if t0.is_empty() && self.missing_field(&caps,&[41]) {return Ok(());} +let mut t0=self.take_values();self.text_values(&caps,&[51],&mut t0);if t0.is_empty() && self.missing_field(&caps,&[51]) {return Ok(());} if t0.len()!=1 {return Err("paramName requires one value".into());}let f0=t0.pop().unwrap();self.give_values(t0); let f0:u32=f0; -let mut t1=self.take_values();self.text_values(&caps,&[42],&mut t1);if t1.len()>1 {return Err("type requires at most one value".into());}let f1=t1.pop();self.give_values(t1); +let mut t1=self.take_values();self.text_values(&caps,&[52],&mut t1);if t1.len()>1 {return Err("type requires at most one value".into());}let f1=t1.pop();self.give_values(t1); let f1:Option=f1; self.give_captures(caps);let span=self.span(span);let node=self.tree.record(tree::K_g_TinyExpressionP4AST_2e_MethodParameterExpr,25,span,&[f0,f1.unwrap_or(tree::NONE)]);out.push(node);Ok(())}} fn map_rule_26(&mut self,caps:(u32,u32),span:Span,child:EventId,out:&mut Vec)->Result<(),String> {let _=(caps,span,child,&out);{if self.value_region>0 {return Ok(());}let start=out.len();self.build_values_into(child,out)?;if out.len()==start && !self.has_recovery(child) && !self.has_value_group(child) {let text=self.semantic_text(child,span);out.push(text);}Ok(())}} @@ -3572,115 +3578,115 @@ fn map_rule_28(&mut self,caps:(u32,u32),span:Span,child:EventId,out:&mut Vec)->Result<(),String> {let _=(caps,span,child,&out);{if self.value_region>0 {return Ok(());}let start=out.len();self.build_values_into(child,out)?;if out.len()==start && !self.has_recovery(child) && !self.has_value_group(child) {let text=self.semantic_text(child,span);out.push(text);}Ok(())}} fn map_rule_30(&mut self,caps:(u32,u32),span:Span,child:EventId,out:&mut Vec)->Result<(),String> {let _=(caps,span,child,&out);{if self.value_region>0 {return Ok(());}let start=out.len();self.build_values_into(child,out)?;if out.len()==start && !self.has_recovery(child) && !self.has_value_group(child) {let text=self.semantic_text(child,span);out.push(text);}Ok(())}} fn map_rule_31(&mut self,caps:(u32,u32),span:Span,child:EventId,out:&mut Vec)->Result<(),String> {let _=(caps,span,child,&out);{let mut slots=self.take_captures();self.rule_captures(caps,&mut slots);let caps=slots; -let mut v0=self.take_values();self.node_values(&caps,&[43],&[],None,&mut v0)?; +let mut v0=self.take_values();self.node_values(&caps,&[53],&[],None,&mut v0)?; if !v0.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_QualifiedNameExpr}) {return Err("className: mapped value type mismatch".into());} if v0.len()>1 {return Err("className requires at most one node".into());}let f0=v0.pop();self.give_values(v0); let f0:Option=f0; -let mut t1=self.take_values();self.text_values(&caps,&[44, 45],&mut t1);if t1.is_empty() && self.missing_field(&caps,&[44, 45]) {return Ok(());} +let mut t1=self.take_values();self.text_values(&caps,&[54, 55],&mut t1);if t1.is_empty() && self.missing_field(&caps,&[54, 55]) {return Ok(());} if t1.len()!=1 {return Err("name requires one value".into());}let f1=t1.pop().unwrap();self.give_values(t1); let f1:u32=f1; -let mut v2=self.take_values();self.node_values(&caps,&[46],&[],None,&mut v2)?; +let mut v2=self.take_values();self.node_values(&caps,&[56],&[],None,&mut v2)?; if !v2.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_ArgumentsExpr}) {return Err("args: mapped value type mismatch".into());} if v2.len()>1 {return Err("args requires at most one node".into());}let f2=v2.pop();self.give_values(v2); let f2:Option=f2; self.give_captures(caps);let span=self.span(span);let node=self.tree.record(tree::K_g_TinyExpressionP4AST_2e_ExternalBooleanInvocationExpr,31,span,&[f0.unwrap_or(tree::NONE),f1,f2.unwrap_or(tree::NONE)]);out.push(node);Ok(())}} fn map_rule_32(&mut self,caps:(u32,u32),span:Span,child:EventId,out:&mut Vec)->Result<(),String> {let _=(caps,span,child,&out);{let mut slots=self.take_captures();self.rule_captures(caps,&mut slots);let caps=slots; -let mut v0=self.take_values();self.node_values(&caps,&[47],&[],None,&mut v0)?; +let mut v0=self.take_values();self.node_values(&caps,&[57],&[],None,&mut v0)?; if !v0.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_QualifiedNameExpr}) {return Err("className: mapped value type mismatch".into());} if v0.len()>1 {return Err("className requires at most one node".into());}let f0=v0.pop();self.give_values(v0); let f0:Option=f0; -let mut t1=self.take_values();self.text_values(&caps,&[48, 49],&mut t1);if t1.is_empty() && self.missing_field(&caps,&[48, 49]) {return Ok(());} +let mut t1=self.take_values();self.text_values(&caps,&[58, 59],&mut t1);if t1.is_empty() && self.missing_field(&caps,&[58, 59]) {return Ok(());} if t1.len()!=1 {return Err("name requires one value".into());}let f1=t1.pop().unwrap();self.give_values(t1); let f1:u32=f1; -let mut v2=self.take_values();self.node_values(&caps,&[50],&[],None,&mut v2)?; +let mut v2=self.take_values();self.node_values(&caps,&[60],&[],None,&mut v2)?; if !v2.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_ArgumentsExpr}) {return Err("args: mapped value type mismatch".into());} if v2.len()>1 {return Err("args requires at most one node".into());}let f2=v2.pop();self.give_values(v2); let f2:Option=f2; self.give_captures(caps);let span=self.span(span);let node=self.tree.record(tree::K_g_TinyExpressionP4AST_2e_ExternalNumberInvocationExpr,32,span,&[f0.unwrap_or(tree::NONE),f1,f2.unwrap_or(tree::NONE)]);out.push(node);Ok(())}} fn map_rule_33(&mut self,caps:(u32,u32),span:Span,child:EventId,out:&mut Vec)->Result<(),String> {let _=(caps,span,child,&out);{let mut slots=self.take_captures();self.rule_captures(caps,&mut slots);let caps=slots; -let mut v0=self.take_values();self.node_values(&caps,&[51],&[],None,&mut v0)?; +let mut v0=self.take_values();self.node_values(&caps,&[61],&[],None,&mut v0)?; if !v0.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_QualifiedNameExpr}) {return Err("className: mapped value type mismatch".into());} if v0.len()>1 {return Err("className requires at most one node".into());}let f0=v0.pop();self.give_values(v0); let f0:Option=f0; -let mut t1=self.take_values();self.text_values(&caps,&[52, 53],&mut t1);if t1.is_empty() && self.missing_field(&caps,&[52, 53]) {return Ok(());} +let mut t1=self.take_values();self.text_values(&caps,&[62, 63],&mut t1);if t1.is_empty() && self.missing_field(&caps,&[62, 63]) {return Ok(());} if t1.len()!=1 {return Err("name requires one value".into());}let f1=t1.pop().unwrap();self.give_values(t1); let f1:u32=f1; -let mut v2=self.take_values();self.node_values(&caps,&[54],&[],None,&mut v2)?; +let mut v2=self.take_values();self.node_values(&caps,&[64],&[],None,&mut v2)?; if !v2.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_ArgumentsExpr}) {return Err("args: mapped value type mismatch".into());} if v2.len()>1 {return Err("args requires at most one node".into());}let f2=v2.pop();self.give_values(v2); let f2:Option=f2; self.give_captures(caps);let span=self.span(span);let node=self.tree.record(tree::K_g_TinyExpressionP4AST_2e_ExternalStringInvocationExpr,33,span,&[f0.unwrap_or(tree::NONE),f1,f2.unwrap_or(tree::NONE)]);out.push(node);Ok(())}} fn map_rule_34(&mut self,caps:(u32,u32),span:Span,child:EventId,out:&mut Vec)->Result<(),String> {let _=(caps,span,child,&out);{let mut slots=self.take_captures();self.rule_captures(caps,&mut slots);let caps=slots; -let mut v0=self.take_values();self.node_values(&caps,&[55],&[],None,&mut v0)?; +let mut v0=self.take_values();self.node_values(&caps,&[65],&[],None,&mut v0)?; if !v0.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_QualifiedNameExpr}) {return Err("className: mapped value type mismatch".into());} if v0.len()>1 {return Err("className requires at most one node".into());}let f0=v0.pop();self.give_values(v0); let f0:Option=f0; -let mut t1=self.take_values();self.text_values(&caps,&[56, 57],&mut t1);if t1.is_empty() && self.missing_field(&caps,&[56, 57]) {return Ok(());} +let mut t1=self.take_values();self.text_values(&caps,&[66, 67],&mut t1);if t1.is_empty() && self.missing_field(&caps,&[66, 67]) {return Ok(());} if t1.len()!=1 {return Err("name requires one value".into());}let f1=t1.pop().unwrap();self.give_values(t1); let f1:u32=f1; -let mut v2=self.take_values();self.node_values(&caps,&[58],&[],None,&mut v2)?; +let mut v2=self.take_values();self.node_values(&caps,&[68],&[],None,&mut v2)?; if !v2.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_ArgumentsExpr}) {return Err("args: mapped value type mismatch".into());} if v2.len()>1 {return Err("args requires at most one node".into());}let f2=v2.pop();self.give_values(v2); let f2:Option=f2; self.give_captures(caps);let span=self.span(span);let node=self.tree.record(tree::K_g_TinyExpressionP4AST_2e_ExternalObjectInvocationExpr,34,span,&[f0.unwrap_or(tree::NONE),f1,f2.unwrap_or(tree::NONE)]);out.push(node);Ok(())}} fn map_rule_35(&mut self,caps:(u32,u32),span:Span,child:EventId,out:&mut Vec)->Result<(),String> {let _=(caps,span,child,&out);{if self.value_region>0 {return Ok(());}let start=out.len();self.build_values_into(child,out)?;if out.len()==start && !self.has_recovery(child) && !self.has_value_group(child) {let text=self.semantic_text(child,span);out.push(text);}Ok(())}} fn map_rule_36(&mut self,caps:(u32,u32),span:Span,child:EventId,out:&mut Vec)->Result<(),String> {let _=(caps,span,child,&out);{let mut slots=self.take_captures();self.rule_captures(caps,&mut slots);let caps=slots; -let mut t0=self.take_values();self.text_values(&caps,&[59],&mut t0);if t0.is_empty() && self.missing_field(&caps,&[59]) {return Ok(());} +let mut t0=self.take_values();self.text_values(&caps,&[69],&mut t0);if t0.is_empty() && self.missing_field(&caps,&[69]) {return Ok(());} if t0.len()!=1 {return Err("name requires one value".into());}let f0=t0.pop().unwrap();self.give_values(t0); let f0:u32=f0; -let mut v1=self.take_values();self.node_values(&caps,&[60],&[],None,&mut v1)?; +let mut v1=self.take_values();self.node_values(&caps,&[70],&[],None,&mut v1)?; if !v1.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_ArgumentsExpr}) {return Err("args: mapped value type mismatch".into());} if v1.len()>1 {return Err("args requires at most one node".into());}let f1=v1.pop();self.give_values(v1); let f1:Option=f1; self.give_captures(caps);let span=self.span(span);let node=self.tree.record(tree::K_g_TinyExpressionP4AST_2e_MethodInvocationExpr,36,span,&[f0,f1.unwrap_or(tree::NONE)]);out.push(node);Ok(())}} fn map_rule_37(&mut self,caps:(u32,u32),span:Span,child:EventId,out:&mut Vec)->Result<(),String> {let _=(caps,span,child,&out);{let mut slots=self.take_captures();self.rule_captures(caps,&mut slots);let caps=slots; -let mut v0=self.take_values();self.node_values(&caps,&[61],&[],None,&mut v0)?; +let mut v0=self.take_values();self.node_values(&caps,&[71],&[],None,&mut v0)?; if !v0.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_BooleanOrExpr}) {return Err("condition: mapped value type mismatch".into());} -if v0.is_empty() && self.missing_field(&caps,&[61]) {return Ok(());} +if v0.is_empty() && self.missing_field(&caps,&[71]) {return Ok(());} if v0.len()!=1 {return Err("condition requires one node".into());}let f0=v0.pop().unwrap();self.give_values(v0); let f0:u32=f0; -let mut v1=self.take_values();self.node_values(&caps,&[62],&[],None,&mut v1)?; +let mut v1=self.take_values();self.node_values(&caps,&[72],&[],None,&mut v1)?; if !v1.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_BranchExpressionExpr}) {return Err("thenExpr: mapped value type mismatch".into());} -if v1.is_empty() && self.missing_field(&caps,&[62]) {return Ok(());} +if v1.is_empty() && self.missing_field(&caps,&[72]) {return Ok(());} if v1.len()!=1 {return Err("thenExpr requires one node".into());}let f1=v1.pop().unwrap();self.give_values(v1); let f1:u32=f1; -let mut v2=self.take_values();self.node_values(&caps,&[63],&[],None,&mut v2)?; +let mut v2=self.take_values();self.node_values(&caps,&[73],&[],None,&mut v2)?; if !v2.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_BranchExpressionExpr}) {return Err("elseExpr: mapped value type mismatch".into());} -if v2.is_empty() && self.missing_field(&caps,&[63]) {return Ok(());} +if v2.is_empty() && self.missing_field(&caps,&[73]) {return Ok(());} if v2.len()!=1 {return Err("elseExpr requires one node".into());}let f2=v2.pop().unwrap();self.give_values(v2); let f2:u32=f2; self.give_captures(caps);let span=self.span(span);let node=self.tree.record(tree::K_g_TinyExpressionP4AST_2e_TernaryExpr,37,span,&[f0,f1,f2]);out.push(node);Ok(())}} fn map_rule_38(&mut self,caps:(u32,u32),span:Span,child:EventId,out:&mut Vec)->Result<(),String> {let _=(caps,span,child,&out);{let mut slots=self.take_captures();self.rule_captures(caps,&mut slots);let caps=slots; -let mut v0=self.take_values();self.node_values(&caps,&[64, 65, 66, 67],&[],None,&mut v0)?; +let mut v0=self.take_values();self.node_values(&caps,&[74, 75, 76, 77],&[],None,&mut v0)?; if !v0.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_ComparisonExpr || k==tree::K_g_TinyExpressionP4AST_2e_ExpressionExpr || k==tree::K_g_TinyExpressionP4AST_2e_StringComparisonExpr || k==tree::K_g_TinyExpressionP4AST_2e_TernaryExpr}) {return Err("value: mapped value type mismatch".into());} -if v0.is_empty() && self.missing_field(&caps,&[64, 65, 66, 67]) {return Ok(());} +if v0.is_empty() && self.missing_field(&caps,&[74, 75, 76, 77]) {return Ok(());} if v0.len()!=1 {return Err("value requires one node".into());}let f0=v0.pop().unwrap();self.give_values(v0); let f0:u32=f0; self.give_captures(caps);let span=self.span(span);let node=self.tree.record(tree::K_g_TinyExpressionP4AST_2e_ArgumentExpressionExpr,38,span,&[f0]);out.push(node);Ok(())}} fn map_rule_39(&mut self,caps:(u32,u32),span:Span,child:EventId,out:&mut Vec)->Result<(),String> {let _=(caps,span,child,&out);{let mut slots=self.take_captures();self.rule_captures(caps,&mut slots);let caps=slots; -let mut f0=self.take_values();self.node_values(&caps,&[68, 69],&[],None,&mut f0)?; +let mut f0=self.take_values();self.node_values(&caps,&[78, 79],&[],None,&mut f0)?; if !f0.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_ArgumentExpressionExpr}) {return Err("values: mapped value type mismatch".into());} let f0:Vec=f0; self.give_captures(caps);let span=self.span(span);let l0=self.tree.list(&f0);self.give_values(f0);let node=self.tree.record(tree::K_g_TinyExpressionP4AST_2e_ArgumentsExpr,39,span,&[l0[0],l0[1]]);out.push(node);Ok(())}} fn map_rule_40(&mut self,caps:(u32,u32),span:Span,child:EventId,out:&mut Vec)->Result<(),String> {let _=(caps,span,child,&out);{let mut slots=self.take_captures();self.rule_captures(caps,&mut slots);let caps=slots; -let mut v0=self.take_values();self.node_values(&caps,&[70],&[],Some(24),&mut v0)?; +let mut v0=self.take_values();self.node_values(&caps,&[80],&[],Some(24),&mut v0)?; if !v0.iter().all(|value|{let k=self.tree.kind(*value);k==tree::KIND_NULL || k==tree::K_g_TinyExpressionP4AST_2e_AbsExpr || k==tree::K_g_TinyExpressionP4AST_2e_ArgumentExpressionExpr || k==tree::K_g_TinyExpressionP4AST_2e_ArgumentsExpr || k==tree::K_g_TinyExpressionP4AST_2e_BinaryExpr || k==tree::K_g_TinyExpressionP4AST_2e_BooleanAndExpr || k==tree::K_g_TinyExpressionP4AST_2e_BooleanCaseExpr || k==tree::K_g_TinyExpressionP4AST_2e_BooleanCaseValueExpr || k==tree::K_g_TinyExpressionP4AST_2e_BooleanDefaultCaseExpr || k==tree::K_g_TinyExpressionP4AST_2e_BooleanEqualityExpr || k==tree::K_g_TinyExpressionP4AST_2e_BooleanFactorExpr || k==tree::K_g_TinyExpressionP4AST_2e_BooleanMatchExpr || k==tree::K_g_TinyExpressionP4AST_2e_BooleanMethodDeclarationExpr || k==tree::K_g_TinyExpressionP4AST_2e_BooleanOrExpr || k==tree::K_g_TinyExpressionP4AST_2e_BooleanVariableDeclarationExpr || k==tree::K_g_TinyExpressionP4AST_2e_BooleanXorExpr || k==tree::K_g_TinyExpressionP4AST_2e_BranchExpressionExpr || k==tree::K_g_TinyExpressionP4AST_2e_CeilExpr || k==tree::K_g_TinyExpressionP4AST_2e_CodeBlockExpr || k==tree::K_g_TinyExpressionP4AST_2e_ComparisonExpr || k==tree::K_g_TinyExpressionP4AST_2e_ContainsDotExpr || k==tree::K_g_TinyExpressionP4AST_2e_ContainsExpr || k==tree::K_g_TinyExpressionP4AST_2e_CosExpr || k==tree::K_g_TinyExpressionP4AST_2e_EndsWithDotExpr || k==tree::K_g_TinyExpressionP4AST_2e_EndsWithExpr || k==tree::K_g_TinyExpressionP4AST_2e_ExpExpr || k==tree::K_g_TinyExpressionP4AST_2e_ExpressionExpr || k==tree::K_g_TinyExpressionP4AST_2e_ExternalBooleanInvocationExpr || k==tree::K_g_TinyExpressionP4AST_2e_ExternalNumberInvocationExpr || k==tree::K_g_TinyExpressionP4AST_2e_ExternalObjectInvocationExpr || k==tree::K_g_TinyExpressionP4AST_2e_ExternalStringInvocationExpr || k==tree::K_g_TinyExpressionP4AST_2e_FloorExpr || k==tree::K_g_TinyExpressionP4AST_2e_FormulaExpr || k==tree::K_g_TinyExpressionP4AST_2e_IfExpr || k==tree::K_g_TinyExpressionP4AST_2e_ImportDeclarationExpr || k==tree::K_g_TinyExpressionP4AST_2e_InDayTimeRangeExpr || k==tree::K_g_TinyExpressionP4AST_2e_InExpr || k==tree::K_g_TinyExpressionP4AST_2e_InTimeRangeExpr || k==tree::K_g_TinyExpressionP4AST_2e_IsPresentExpr || k==tree::K_g_TinyExpressionP4AST_2e_LengthDotExpr || k==tree::K_g_TinyExpressionP4AST_2e_LengthExpr || k==tree::K_g_TinyExpressionP4AST_2e_LogExpr || k==tree::K_g_TinyExpressionP4AST_2e_MaxExpr || k==tree::K_g_TinyExpressionP4AST_2e_MethodInvocationExpr || k==tree::K_g_TinyExpressionP4AST_2e_MethodParameterExpr || k==tree::K_g_TinyExpressionP4AST_2e_MethodParametersExpr || k==tree::K_g_TinyExpressionP4AST_2e_MinExpr || k==tree::K_g_TinyExpressionP4AST_2e_NotExpr || k==tree::K_g_TinyExpressionP4AST_2e_NumberCaseExpr || k==tree::K_g_TinyExpressionP4AST_2e_NumberCaseValueExpr || k==tree::K_g_TinyExpressionP4AST_2e_NumberDefaultCaseExpr || k==tree::K_g_TinyExpressionP4AST_2e_NumberMatchExpr || k==tree::K_g_TinyExpressionP4AST_2e_NumberMethodDeclarationExpr || k==tree::K_g_TinyExpressionP4AST_2e_NumberVariableDeclarationExpr || k==tree::K_g_TinyExpressionP4AST_2e_ObjectExpr || k==tree::K_g_TinyExpressionP4AST_2e_ObjectMethodDeclarationExpr || k==tree::K_g_TinyExpressionP4AST_2e_ObjectVariableDeclarationExpr || k==tree::K_g_TinyExpressionP4AST_2e_OnlyIfAbsentExpr || k==tree::K_g_TinyExpressionP4AST_2e_PowExpr || k==tree::K_g_TinyExpressionP4AST_2e_QualifiedNameExpr || k==tree::K_g_TinyExpressionP4AST_2e_RandomExpr || k==tree::K_g_TinyExpressionP4AST_2e_RoundExpr || k==tree::K_g_TinyExpressionP4AST_2e_SinExpr || k==tree::K_g_TinyExpressionP4AST_2e_SliceExpr || k==tree::K_g_TinyExpressionP4AST_2e_SqrtExpr || k==tree::K_g_TinyExpressionP4AST_2e_StartsWithDotExpr || k==tree::K_g_TinyExpressionP4AST_2e_StartsWithExpr || k==tree::K_g_TinyExpressionP4AST_2e_StringCaseExpr || k==tree::K_g_TinyExpressionP4AST_2e_StringCaseValueExpr || k==tree::K_g_TinyExpressionP4AST_2e_StringCastVariableRefExpr || k==tree::K_g_TinyExpressionP4AST_2e_StringComparisonExpr || k==tree::K_g_TinyExpressionP4AST_2e_StringConcatExpr || k==tree::K_g_TinyExpressionP4AST_2e_StringDefaultCaseExpr || k==tree::K_g_TinyExpressionP4AST_2e_StringMatchExpr || k==tree::K_g_TinyExpressionP4AST_2e_StringMethodDeclarationExpr || k==tree::K_g_TinyExpressionP4AST_2e_StringTypedVariableRefExpr || k==tree::K_g_TinyExpressionP4AST_2e_StringVariableDeclarationExpr || k==tree::K_g_TinyExpressionP4AST_2e_TanExpr || k==tree::K_g_TinyExpressionP4AST_2e_TernaryExpr || k==tree::K_g_TinyExpressionP4AST_2e_ToLowerCaseDotExpr || k==tree::K_g_TinyExpressionP4AST_2e_ToLowerCaseExpr || k==tree::K_g_TinyExpressionP4AST_2e_ToNumExpr || k==tree::K_g_TinyExpressionP4AST_2e_ToUpperCaseDotExpr || k==tree::K_g_TinyExpressionP4AST_2e_ToUpperCaseExpr || k==tree::K_g_TinyExpressionP4AST_2e_TrimDotExpr || k==tree::K_g_TinyExpressionP4AST_2e_TrimExpr || k==tree::K_g_TinyExpressionP4AST_2e_VariableRefExpr}) {return Err("left: mapped value type mismatch".into());} if v0.len()>1 {return Err("left requires at most one node".into());}let f0=v0.pop();self.give_values(v0); let f0:Option=f0; -let mut f1=self.take_values();self.text_values(&caps,&[71],&mut f1); +let mut f1=self.take_values();self.text_values(&caps,&[81],&mut f1); let f1:Vec=f1; -let mut f2=self.take_values();self.node_values(&caps,&[72],&[],Some(24),&mut f2)?; +let mut f2=self.take_values();self.node_values(&caps,&[82],&[],Some(24),&mut f2)?; if !f2.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_AbsExpr || k==tree::K_g_TinyExpressionP4AST_2e_ArgumentExpressionExpr || k==tree::K_g_TinyExpressionP4AST_2e_ArgumentsExpr || k==tree::K_g_TinyExpressionP4AST_2e_BinaryExpr || k==tree::K_g_TinyExpressionP4AST_2e_BooleanAndExpr || k==tree::K_g_TinyExpressionP4AST_2e_BooleanCaseExpr || k==tree::K_g_TinyExpressionP4AST_2e_BooleanCaseValueExpr || k==tree::K_g_TinyExpressionP4AST_2e_BooleanDefaultCaseExpr || k==tree::K_g_TinyExpressionP4AST_2e_BooleanEqualityExpr || k==tree::K_g_TinyExpressionP4AST_2e_BooleanFactorExpr || k==tree::K_g_TinyExpressionP4AST_2e_BooleanMatchExpr || k==tree::K_g_TinyExpressionP4AST_2e_BooleanMethodDeclarationExpr || k==tree::K_g_TinyExpressionP4AST_2e_BooleanOrExpr || k==tree::K_g_TinyExpressionP4AST_2e_BooleanVariableDeclarationExpr || k==tree::K_g_TinyExpressionP4AST_2e_BooleanXorExpr || k==tree::K_g_TinyExpressionP4AST_2e_BranchExpressionExpr || k==tree::K_g_TinyExpressionP4AST_2e_CeilExpr || k==tree::K_g_TinyExpressionP4AST_2e_CodeBlockExpr || k==tree::K_g_TinyExpressionP4AST_2e_ComparisonExpr || k==tree::K_g_TinyExpressionP4AST_2e_ContainsDotExpr || k==tree::K_g_TinyExpressionP4AST_2e_ContainsExpr || k==tree::K_g_TinyExpressionP4AST_2e_CosExpr || k==tree::K_g_TinyExpressionP4AST_2e_EndsWithDotExpr || k==tree::K_g_TinyExpressionP4AST_2e_EndsWithExpr || k==tree::K_g_TinyExpressionP4AST_2e_ExpExpr || k==tree::K_g_TinyExpressionP4AST_2e_ExpressionExpr || k==tree::K_g_TinyExpressionP4AST_2e_ExternalBooleanInvocationExpr || k==tree::K_g_TinyExpressionP4AST_2e_ExternalNumberInvocationExpr || k==tree::K_g_TinyExpressionP4AST_2e_ExternalObjectInvocationExpr || k==tree::K_g_TinyExpressionP4AST_2e_ExternalStringInvocationExpr || k==tree::K_g_TinyExpressionP4AST_2e_FloorExpr || k==tree::K_g_TinyExpressionP4AST_2e_FormulaExpr || k==tree::K_g_TinyExpressionP4AST_2e_IfExpr || k==tree::K_g_TinyExpressionP4AST_2e_ImportDeclarationExpr || k==tree::K_g_TinyExpressionP4AST_2e_InDayTimeRangeExpr || k==tree::K_g_TinyExpressionP4AST_2e_InExpr || k==tree::K_g_TinyExpressionP4AST_2e_InTimeRangeExpr || k==tree::K_g_TinyExpressionP4AST_2e_IsPresentExpr || k==tree::K_g_TinyExpressionP4AST_2e_LengthDotExpr || k==tree::K_g_TinyExpressionP4AST_2e_LengthExpr || k==tree::K_g_TinyExpressionP4AST_2e_LogExpr || k==tree::K_g_TinyExpressionP4AST_2e_MaxExpr || k==tree::K_g_TinyExpressionP4AST_2e_MethodInvocationExpr || k==tree::K_g_TinyExpressionP4AST_2e_MethodParameterExpr || k==tree::K_g_TinyExpressionP4AST_2e_MethodParametersExpr || k==tree::K_g_TinyExpressionP4AST_2e_MinExpr || k==tree::K_g_TinyExpressionP4AST_2e_NotExpr || k==tree::K_g_TinyExpressionP4AST_2e_NumberCaseExpr || k==tree::K_g_TinyExpressionP4AST_2e_NumberCaseValueExpr || k==tree::K_g_TinyExpressionP4AST_2e_NumberDefaultCaseExpr || k==tree::K_g_TinyExpressionP4AST_2e_NumberMatchExpr || k==tree::K_g_TinyExpressionP4AST_2e_NumberMethodDeclarationExpr || k==tree::K_g_TinyExpressionP4AST_2e_NumberVariableDeclarationExpr || k==tree::K_g_TinyExpressionP4AST_2e_ObjectExpr || k==tree::K_g_TinyExpressionP4AST_2e_ObjectMethodDeclarationExpr || k==tree::K_g_TinyExpressionP4AST_2e_ObjectVariableDeclarationExpr || k==tree::K_g_TinyExpressionP4AST_2e_OnlyIfAbsentExpr || k==tree::K_g_TinyExpressionP4AST_2e_PowExpr || k==tree::K_g_TinyExpressionP4AST_2e_QualifiedNameExpr || k==tree::K_g_TinyExpressionP4AST_2e_RandomExpr || k==tree::K_g_TinyExpressionP4AST_2e_RoundExpr || k==tree::K_g_TinyExpressionP4AST_2e_SinExpr || k==tree::K_g_TinyExpressionP4AST_2e_SliceExpr || k==tree::K_g_TinyExpressionP4AST_2e_SqrtExpr || k==tree::K_g_TinyExpressionP4AST_2e_StartsWithDotExpr || k==tree::K_g_TinyExpressionP4AST_2e_StartsWithExpr || k==tree::K_g_TinyExpressionP4AST_2e_StringCaseExpr || k==tree::K_g_TinyExpressionP4AST_2e_StringCaseValueExpr || k==tree::K_g_TinyExpressionP4AST_2e_StringCastVariableRefExpr || k==tree::K_g_TinyExpressionP4AST_2e_StringComparisonExpr || k==tree::K_g_TinyExpressionP4AST_2e_StringConcatExpr || k==tree::K_g_TinyExpressionP4AST_2e_StringDefaultCaseExpr || k==tree::K_g_TinyExpressionP4AST_2e_StringMatchExpr || k==tree::K_g_TinyExpressionP4AST_2e_StringMethodDeclarationExpr || k==tree::K_g_TinyExpressionP4AST_2e_StringTypedVariableRefExpr || k==tree::K_g_TinyExpressionP4AST_2e_StringVariableDeclarationExpr || k==tree::K_g_TinyExpressionP4AST_2e_TanExpr || k==tree::K_g_TinyExpressionP4AST_2e_TernaryExpr || k==tree::K_g_TinyExpressionP4AST_2e_ToLowerCaseDotExpr || k==tree::K_g_TinyExpressionP4AST_2e_ToLowerCaseExpr || k==tree::K_g_TinyExpressionP4AST_2e_ToNumExpr || k==tree::K_g_TinyExpressionP4AST_2e_ToUpperCaseDotExpr || k==tree::K_g_TinyExpressionP4AST_2e_ToUpperCaseExpr || k==tree::K_g_TinyExpressionP4AST_2e_TrimDotExpr || k==tree::K_g_TinyExpressionP4AST_2e_TrimExpr || k==tree::K_g_TinyExpressionP4AST_2e_VariableRefExpr}) {return Err("right: mapped value type mismatch".into());} let f2:Vec=f2; self.give_captures(caps);let span=self.span(span);let l1=self.tree.list(&f1);self.give_values(f1);let l2=self.tree.list(&f2);self.give_values(f2);let node=self.tree.record(tree::K_g_TinyExpressionP4AST_2e_BinaryExpr,40,span,&[f0.unwrap_or(tree::NONE),l1[0],l1[1],l2[0],l2[1]]);out.push(node);Ok(())}} fn map_rule_41(&mut self,caps:(u32,u32),span:Span,child:EventId,out:&mut Vec)->Result<(),String> {let _=(caps,span,child,&out);{let mut slots=self.take_captures();self.rule_captures(caps,&mut slots);let caps=slots; -let mut v0=self.take_values();self.node_values(&caps,&[73],&[],Some(24),&mut v0)?; +let mut v0=self.take_values();self.node_values(&caps,&[83],&[],Some(24),&mut v0)?; if !v0.iter().all(|value|{let k=self.tree.kind(*value);k==tree::KIND_NULL || k==tree::K_g_TinyExpressionP4AST_2e_AbsExpr || k==tree::K_g_TinyExpressionP4AST_2e_ArgumentExpressionExpr || k==tree::K_g_TinyExpressionP4AST_2e_ArgumentsExpr || k==tree::K_g_TinyExpressionP4AST_2e_BinaryExpr || k==tree::K_g_TinyExpressionP4AST_2e_BooleanAndExpr || k==tree::K_g_TinyExpressionP4AST_2e_BooleanCaseExpr || k==tree::K_g_TinyExpressionP4AST_2e_BooleanCaseValueExpr || k==tree::K_g_TinyExpressionP4AST_2e_BooleanDefaultCaseExpr || k==tree::K_g_TinyExpressionP4AST_2e_BooleanEqualityExpr || k==tree::K_g_TinyExpressionP4AST_2e_BooleanFactorExpr || k==tree::K_g_TinyExpressionP4AST_2e_BooleanMatchExpr || k==tree::K_g_TinyExpressionP4AST_2e_BooleanMethodDeclarationExpr || k==tree::K_g_TinyExpressionP4AST_2e_BooleanOrExpr || k==tree::K_g_TinyExpressionP4AST_2e_BooleanVariableDeclarationExpr || k==tree::K_g_TinyExpressionP4AST_2e_BooleanXorExpr || k==tree::K_g_TinyExpressionP4AST_2e_BranchExpressionExpr || k==tree::K_g_TinyExpressionP4AST_2e_CeilExpr || k==tree::K_g_TinyExpressionP4AST_2e_CodeBlockExpr || k==tree::K_g_TinyExpressionP4AST_2e_ComparisonExpr || k==tree::K_g_TinyExpressionP4AST_2e_ContainsDotExpr || k==tree::K_g_TinyExpressionP4AST_2e_ContainsExpr || k==tree::K_g_TinyExpressionP4AST_2e_CosExpr || k==tree::K_g_TinyExpressionP4AST_2e_EndsWithDotExpr || k==tree::K_g_TinyExpressionP4AST_2e_EndsWithExpr || k==tree::K_g_TinyExpressionP4AST_2e_ExpExpr || k==tree::K_g_TinyExpressionP4AST_2e_ExpressionExpr || k==tree::K_g_TinyExpressionP4AST_2e_ExternalBooleanInvocationExpr || k==tree::K_g_TinyExpressionP4AST_2e_ExternalNumberInvocationExpr || k==tree::K_g_TinyExpressionP4AST_2e_ExternalObjectInvocationExpr || k==tree::K_g_TinyExpressionP4AST_2e_ExternalStringInvocationExpr || k==tree::K_g_TinyExpressionP4AST_2e_FloorExpr || k==tree::K_g_TinyExpressionP4AST_2e_FormulaExpr || k==tree::K_g_TinyExpressionP4AST_2e_IfExpr || k==tree::K_g_TinyExpressionP4AST_2e_ImportDeclarationExpr || k==tree::K_g_TinyExpressionP4AST_2e_InDayTimeRangeExpr || k==tree::K_g_TinyExpressionP4AST_2e_InExpr || k==tree::K_g_TinyExpressionP4AST_2e_InTimeRangeExpr || k==tree::K_g_TinyExpressionP4AST_2e_IsPresentExpr || k==tree::K_g_TinyExpressionP4AST_2e_LengthDotExpr || k==tree::K_g_TinyExpressionP4AST_2e_LengthExpr || k==tree::K_g_TinyExpressionP4AST_2e_LogExpr || k==tree::K_g_TinyExpressionP4AST_2e_MaxExpr || k==tree::K_g_TinyExpressionP4AST_2e_MethodInvocationExpr || k==tree::K_g_TinyExpressionP4AST_2e_MethodParameterExpr || k==tree::K_g_TinyExpressionP4AST_2e_MethodParametersExpr || k==tree::K_g_TinyExpressionP4AST_2e_MinExpr || k==tree::K_g_TinyExpressionP4AST_2e_NotExpr || k==tree::K_g_TinyExpressionP4AST_2e_NumberCaseExpr || k==tree::K_g_TinyExpressionP4AST_2e_NumberCaseValueExpr || k==tree::K_g_TinyExpressionP4AST_2e_NumberDefaultCaseExpr || k==tree::K_g_TinyExpressionP4AST_2e_NumberMatchExpr || k==tree::K_g_TinyExpressionP4AST_2e_NumberMethodDeclarationExpr || k==tree::K_g_TinyExpressionP4AST_2e_NumberVariableDeclarationExpr || k==tree::K_g_TinyExpressionP4AST_2e_ObjectExpr || k==tree::K_g_TinyExpressionP4AST_2e_ObjectMethodDeclarationExpr || k==tree::K_g_TinyExpressionP4AST_2e_ObjectVariableDeclarationExpr || k==tree::K_g_TinyExpressionP4AST_2e_OnlyIfAbsentExpr || k==tree::K_g_TinyExpressionP4AST_2e_PowExpr || k==tree::K_g_TinyExpressionP4AST_2e_QualifiedNameExpr || k==tree::K_g_TinyExpressionP4AST_2e_RandomExpr || k==tree::K_g_TinyExpressionP4AST_2e_RoundExpr || k==tree::K_g_TinyExpressionP4AST_2e_SinExpr || k==tree::K_g_TinyExpressionP4AST_2e_SliceExpr || k==tree::K_g_TinyExpressionP4AST_2e_SqrtExpr || k==tree::K_g_TinyExpressionP4AST_2e_StartsWithDotExpr || k==tree::K_g_TinyExpressionP4AST_2e_StartsWithExpr || k==tree::K_g_TinyExpressionP4AST_2e_StringCaseExpr || k==tree::K_g_TinyExpressionP4AST_2e_StringCaseValueExpr || k==tree::K_g_TinyExpressionP4AST_2e_StringCastVariableRefExpr || k==tree::K_g_TinyExpressionP4AST_2e_StringComparisonExpr || k==tree::K_g_TinyExpressionP4AST_2e_StringConcatExpr || k==tree::K_g_TinyExpressionP4AST_2e_StringDefaultCaseExpr || k==tree::K_g_TinyExpressionP4AST_2e_StringMatchExpr || k==tree::K_g_TinyExpressionP4AST_2e_StringMethodDeclarationExpr || k==tree::K_g_TinyExpressionP4AST_2e_StringTypedVariableRefExpr || k==tree::K_g_TinyExpressionP4AST_2e_StringVariableDeclarationExpr || k==tree::K_g_TinyExpressionP4AST_2e_TanExpr || k==tree::K_g_TinyExpressionP4AST_2e_TernaryExpr || k==tree::K_g_TinyExpressionP4AST_2e_ToLowerCaseDotExpr || k==tree::K_g_TinyExpressionP4AST_2e_ToLowerCaseExpr || k==tree::K_g_TinyExpressionP4AST_2e_ToNumExpr || k==tree::K_g_TinyExpressionP4AST_2e_ToUpperCaseDotExpr || k==tree::K_g_TinyExpressionP4AST_2e_ToUpperCaseExpr || k==tree::K_g_TinyExpressionP4AST_2e_TrimDotExpr || k==tree::K_g_TinyExpressionP4AST_2e_TrimExpr || k==tree::K_g_TinyExpressionP4AST_2e_VariableRefExpr}) {return Err("left: mapped value type mismatch".into());} if v0.len()>1 {return Err("left requires at most one node".into());}let f0=v0.pop();self.give_values(v0); let f0:Option=f0; -let mut f1=self.take_values();self.text_values(&caps,&[74],&mut f1); +let mut f1=self.take_values();self.text_values(&caps,&[84],&mut f1); let f1:Vec=f1; -let mut f2=self.take_values();self.node_values(&caps,&[75],&[],Some(24),&mut f2)?; +let mut f2=self.take_values();self.node_values(&caps,&[85],&[],Some(24),&mut f2)?; if !f2.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_AbsExpr || k==tree::K_g_TinyExpressionP4AST_2e_ArgumentExpressionExpr || k==tree::K_g_TinyExpressionP4AST_2e_ArgumentsExpr || k==tree::K_g_TinyExpressionP4AST_2e_BinaryExpr || k==tree::K_g_TinyExpressionP4AST_2e_BooleanAndExpr || k==tree::K_g_TinyExpressionP4AST_2e_BooleanCaseExpr || k==tree::K_g_TinyExpressionP4AST_2e_BooleanCaseValueExpr || k==tree::K_g_TinyExpressionP4AST_2e_BooleanDefaultCaseExpr || k==tree::K_g_TinyExpressionP4AST_2e_BooleanEqualityExpr || k==tree::K_g_TinyExpressionP4AST_2e_BooleanFactorExpr || k==tree::K_g_TinyExpressionP4AST_2e_BooleanMatchExpr || k==tree::K_g_TinyExpressionP4AST_2e_BooleanMethodDeclarationExpr || k==tree::K_g_TinyExpressionP4AST_2e_BooleanOrExpr || k==tree::K_g_TinyExpressionP4AST_2e_BooleanVariableDeclarationExpr || k==tree::K_g_TinyExpressionP4AST_2e_BooleanXorExpr || k==tree::K_g_TinyExpressionP4AST_2e_BranchExpressionExpr || k==tree::K_g_TinyExpressionP4AST_2e_CeilExpr || k==tree::K_g_TinyExpressionP4AST_2e_CodeBlockExpr || k==tree::K_g_TinyExpressionP4AST_2e_ComparisonExpr || k==tree::K_g_TinyExpressionP4AST_2e_ContainsDotExpr || k==tree::K_g_TinyExpressionP4AST_2e_ContainsExpr || k==tree::K_g_TinyExpressionP4AST_2e_CosExpr || k==tree::K_g_TinyExpressionP4AST_2e_EndsWithDotExpr || k==tree::K_g_TinyExpressionP4AST_2e_EndsWithExpr || k==tree::K_g_TinyExpressionP4AST_2e_ExpExpr || k==tree::K_g_TinyExpressionP4AST_2e_ExpressionExpr || k==tree::K_g_TinyExpressionP4AST_2e_ExternalBooleanInvocationExpr || k==tree::K_g_TinyExpressionP4AST_2e_ExternalNumberInvocationExpr || k==tree::K_g_TinyExpressionP4AST_2e_ExternalObjectInvocationExpr || k==tree::K_g_TinyExpressionP4AST_2e_ExternalStringInvocationExpr || k==tree::K_g_TinyExpressionP4AST_2e_FloorExpr || k==tree::K_g_TinyExpressionP4AST_2e_FormulaExpr || k==tree::K_g_TinyExpressionP4AST_2e_IfExpr || k==tree::K_g_TinyExpressionP4AST_2e_ImportDeclarationExpr || k==tree::K_g_TinyExpressionP4AST_2e_InDayTimeRangeExpr || k==tree::K_g_TinyExpressionP4AST_2e_InExpr || k==tree::K_g_TinyExpressionP4AST_2e_InTimeRangeExpr || k==tree::K_g_TinyExpressionP4AST_2e_IsPresentExpr || k==tree::K_g_TinyExpressionP4AST_2e_LengthDotExpr || k==tree::K_g_TinyExpressionP4AST_2e_LengthExpr || k==tree::K_g_TinyExpressionP4AST_2e_LogExpr || k==tree::K_g_TinyExpressionP4AST_2e_MaxExpr || k==tree::K_g_TinyExpressionP4AST_2e_MethodInvocationExpr || k==tree::K_g_TinyExpressionP4AST_2e_MethodParameterExpr || k==tree::K_g_TinyExpressionP4AST_2e_MethodParametersExpr || k==tree::K_g_TinyExpressionP4AST_2e_MinExpr || k==tree::K_g_TinyExpressionP4AST_2e_NotExpr || k==tree::K_g_TinyExpressionP4AST_2e_NumberCaseExpr || k==tree::K_g_TinyExpressionP4AST_2e_NumberCaseValueExpr || k==tree::K_g_TinyExpressionP4AST_2e_NumberDefaultCaseExpr || k==tree::K_g_TinyExpressionP4AST_2e_NumberMatchExpr || k==tree::K_g_TinyExpressionP4AST_2e_NumberMethodDeclarationExpr || k==tree::K_g_TinyExpressionP4AST_2e_NumberVariableDeclarationExpr || k==tree::K_g_TinyExpressionP4AST_2e_ObjectExpr || k==tree::K_g_TinyExpressionP4AST_2e_ObjectMethodDeclarationExpr || k==tree::K_g_TinyExpressionP4AST_2e_ObjectVariableDeclarationExpr || k==tree::K_g_TinyExpressionP4AST_2e_OnlyIfAbsentExpr || k==tree::K_g_TinyExpressionP4AST_2e_PowExpr || k==tree::K_g_TinyExpressionP4AST_2e_QualifiedNameExpr || k==tree::K_g_TinyExpressionP4AST_2e_RandomExpr || k==tree::K_g_TinyExpressionP4AST_2e_RoundExpr || k==tree::K_g_TinyExpressionP4AST_2e_SinExpr || k==tree::K_g_TinyExpressionP4AST_2e_SliceExpr || k==tree::K_g_TinyExpressionP4AST_2e_SqrtExpr || k==tree::K_g_TinyExpressionP4AST_2e_StartsWithDotExpr || k==tree::K_g_TinyExpressionP4AST_2e_StartsWithExpr || k==tree::K_g_TinyExpressionP4AST_2e_StringCaseExpr || k==tree::K_g_TinyExpressionP4AST_2e_StringCaseValueExpr || k==tree::K_g_TinyExpressionP4AST_2e_StringCastVariableRefExpr || k==tree::K_g_TinyExpressionP4AST_2e_StringComparisonExpr || k==tree::K_g_TinyExpressionP4AST_2e_StringConcatExpr || k==tree::K_g_TinyExpressionP4AST_2e_StringDefaultCaseExpr || k==tree::K_g_TinyExpressionP4AST_2e_StringMatchExpr || k==tree::K_g_TinyExpressionP4AST_2e_StringMethodDeclarationExpr || k==tree::K_g_TinyExpressionP4AST_2e_StringTypedVariableRefExpr || k==tree::K_g_TinyExpressionP4AST_2e_StringVariableDeclarationExpr || k==tree::K_g_TinyExpressionP4AST_2e_TanExpr || k==tree::K_g_TinyExpressionP4AST_2e_TernaryExpr || k==tree::K_g_TinyExpressionP4AST_2e_ToLowerCaseDotExpr || k==tree::K_g_TinyExpressionP4AST_2e_ToLowerCaseExpr || k==tree::K_g_TinyExpressionP4AST_2e_ToNumExpr || k==tree::K_g_TinyExpressionP4AST_2e_ToUpperCaseDotExpr || k==tree::K_g_TinyExpressionP4AST_2e_ToUpperCaseExpr || k==tree::K_g_TinyExpressionP4AST_2e_TrimDotExpr || k==tree::K_g_TinyExpressionP4AST_2e_TrimExpr || k==tree::K_g_TinyExpressionP4AST_2e_VariableRefExpr}) {return Err("right: mapped value type mismatch".into());} let f2:Vec=f2; self.give_captures(caps);let span=self.span(span);let l1=self.tree.list(&f1);self.give_values(f1);let l2=self.tree.list(&f2);self.give_values(f2);let node=self.tree.record(tree::K_g_TinyExpressionP4AST_2e_BinaryExpr,41,span,&[f0.unwrap_or(tree::NONE),l1[0],l1[1],l2[0],l2[1]]);out.push(node);Ok(())}} @@ -3688,290 +3694,290 @@ fn map_rule_42(&mut self,caps:(u32,u32),span:Span,child:EventId,out:&mut Vec)->Result<(),String> {let _=(caps,span,child,&out);{if self.value_region>0 {return Ok(());}let start=out.len();self.build_values_into(child,out)?;if out.len()==start && !self.has_recovery(child) && !self.has_value_group(child) {let text=self.semantic_text(child,span);out.push(text);}Ok(())}} fn map_rule_44(&mut self,caps:(u32,u32),span:Span,child:EventId,out:&mut Vec)->Result<(),String> {let _=(caps,span,child,&out);{let start=out.len();self.build_values_into(child,out)?;if out.len()==start && !self.has_recovery(child) && !self.has_value_group(child) {let text=self.semantic_text(child,span);out.push(text);}Ok(())}} fn map_rule_45(&mut self,caps:(u32,u32),span:Span,child:EventId,out:&mut Vec)->Result<(),String> {let _=(caps,span,child,&out);{let mut slots=self.take_captures();self.rule_captures(caps,&mut slots);let caps=slots; -let mut v0=self.take_values();self.node_values(&caps,&[76],&[],None,&mut v0)?; +let mut v0=self.take_values();self.node_values(&caps,&[86],&[],None,&mut v0)?; if !v0.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_ArgumentExpressionExpr}) {return Err("arg: mapped value type mismatch".into());} -if v0.is_empty() && self.missing_field(&caps,&[76]) {return Ok(());} +if v0.is_empty() && self.missing_field(&caps,&[86]) {return Ok(());} if v0.len()!=1 {return Err("arg requires one node".into());}let f0=v0.pop().unwrap();self.give_values(v0); let f0:u32=f0; self.give_captures(caps);let span=self.span(span);let node=self.tree.record(tree::K_g_TinyExpressionP4AST_2e_SinExpr,45,span,&[f0]);out.push(node);Ok(())}} fn map_rule_46(&mut self,caps:(u32,u32),span:Span,child:EventId,out:&mut Vec)->Result<(),String> {let _=(caps,span,child,&out);{let mut slots=self.take_captures();self.rule_captures(caps,&mut slots);let caps=slots; -let mut v0=self.take_values();self.node_values(&caps,&[77],&[],None,&mut v0)?; +let mut v0=self.take_values();self.node_values(&caps,&[87],&[],None,&mut v0)?; if !v0.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_ArgumentExpressionExpr}) {return Err("arg: mapped value type mismatch".into());} -if v0.is_empty() && self.missing_field(&caps,&[77]) {return Ok(());} +if v0.is_empty() && self.missing_field(&caps,&[87]) {return Ok(());} if v0.len()!=1 {return Err("arg requires one node".into());}let f0=v0.pop().unwrap();self.give_values(v0); let f0:u32=f0; self.give_captures(caps);let span=self.span(span);let node=self.tree.record(tree::K_g_TinyExpressionP4AST_2e_CosExpr,46,span,&[f0]);out.push(node);Ok(())}} fn map_rule_47(&mut self,caps:(u32,u32),span:Span,child:EventId,out:&mut Vec)->Result<(),String> {let _=(caps,span,child,&out);{let mut slots=self.take_captures();self.rule_captures(caps,&mut slots);let caps=slots; -let mut v0=self.take_values();self.node_values(&caps,&[78],&[],None,&mut v0)?; +let mut v0=self.take_values();self.node_values(&caps,&[88],&[],None,&mut v0)?; if !v0.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_ArgumentExpressionExpr}) {return Err("arg: mapped value type mismatch".into());} -if v0.is_empty() && self.missing_field(&caps,&[78]) {return Ok(());} +if v0.is_empty() && self.missing_field(&caps,&[88]) {return Ok(());} if v0.len()!=1 {return Err("arg requires one node".into());}let f0=v0.pop().unwrap();self.give_values(v0); let f0:u32=f0; self.give_captures(caps);let span=self.span(span);let node=self.tree.record(tree::K_g_TinyExpressionP4AST_2e_TanExpr,47,span,&[f0]);out.push(node);Ok(())}} fn map_rule_48(&mut self,caps:(u32,u32),span:Span,child:EventId,out:&mut Vec)->Result<(),String> {let _=(caps,span,child,&out);{let mut slots=self.take_captures();self.rule_captures(caps,&mut slots);let caps=slots; -let mut v0=self.take_values();self.node_values(&caps,&[79],&[],None,&mut v0)?; +let mut v0=self.take_values();self.node_values(&caps,&[89],&[],None,&mut v0)?; if !v0.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_ArgumentExpressionExpr}) {return Err("arg: mapped value type mismatch".into());} -if v0.is_empty() && self.missing_field(&caps,&[79]) {return Ok(());} +if v0.is_empty() && self.missing_field(&caps,&[89]) {return Ok(());} if v0.len()!=1 {return Err("arg requires one node".into());}let f0=v0.pop().unwrap();self.give_values(v0); let f0:u32=f0; self.give_captures(caps);let span=self.span(span);let node=self.tree.record(tree::K_g_TinyExpressionP4AST_2e_SqrtExpr,48,span,&[f0]);out.push(node);Ok(())}} fn map_rule_49(&mut self,caps:(u32,u32),span:Span,child:EventId,out:&mut Vec)->Result<(),String> {let _=(caps,span,child,&out);{let mut slots=self.take_captures();self.rule_captures(caps,&mut slots);let caps=slots; -let mut v0=self.take_values();self.node_values(&caps,&[80],&[],None,&mut v0)?; +let mut v0=self.take_values();self.node_values(&caps,&[90],&[],None,&mut v0)?; if !v0.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_ArgumentExpressionExpr}) {return Err("first: mapped value type mismatch".into());} -if v0.is_empty() && self.missing_field(&caps,&[80]) {return Ok(());} +if v0.is_empty() && self.missing_field(&caps,&[90]) {return Ok(());} if v0.len()!=1 {return Err("first requires one node".into());}let f0=v0.pop().unwrap();self.give_values(v0); let f0:u32=f0; -let mut f1=self.take_values();self.node_values(&caps,&[81],&[],None,&mut f1)?; +let mut f1=self.take_values();self.node_values(&caps,&[91],&[],None,&mut f1)?; if !f1.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_ArgumentExpressionExpr}) {return Err("rest: mapped value type mismatch".into());} let f1:Vec=f1; self.give_captures(caps);let span=self.span(span);let l1=self.tree.list(&f1);self.give_values(f1);let node=self.tree.record(tree::K_g_TinyExpressionP4AST_2e_MinExpr,49,span,&[f0,l1[0],l1[1]]);out.push(node);Ok(())}} fn map_rule_50(&mut self,caps:(u32,u32),span:Span,child:EventId,out:&mut Vec)->Result<(),String> {let _=(caps,span,child,&out);{let mut slots=self.take_captures();self.rule_captures(caps,&mut slots);let caps=slots; -let mut v0=self.take_values();self.node_values(&caps,&[82],&[],None,&mut v0)?; +let mut v0=self.take_values();self.node_values(&caps,&[92],&[],None,&mut v0)?; if !v0.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_ArgumentExpressionExpr}) {return Err("first: mapped value type mismatch".into());} -if v0.is_empty() && self.missing_field(&caps,&[82]) {return Ok(());} +if v0.is_empty() && self.missing_field(&caps,&[92]) {return Ok(());} if v0.len()!=1 {return Err("first requires one node".into());}let f0=v0.pop().unwrap();self.give_values(v0); let f0:u32=f0; -let mut f1=self.take_values();self.node_values(&caps,&[83],&[],None,&mut f1)?; +let mut f1=self.take_values();self.node_values(&caps,&[93],&[],None,&mut f1)?; if !f1.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_ArgumentExpressionExpr}) {return Err("rest: mapped value type mismatch".into());} let f1:Vec=f1; self.give_captures(caps);let span=self.span(span);let l1=self.tree.list(&f1);self.give_values(f1);let node=self.tree.record(tree::K_g_TinyExpressionP4AST_2e_MaxExpr,50,span,&[f0,l1[0],l1[1]]);out.push(node);Ok(())}} fn map_rule_51(&mut self,caps:(u32,u32),span:Span,child:EventId,out:&mut Vec)->Result<(),String> {let _=(caps,span,child,&out);{let mut slots=self.take_captures();self.rule_captures(caps,&mut slots);let caps=slots; self.give_captures(caps);let span=self.span(span);let node=self.tree.record(tree::K_g_TinyExpressionP4AST_2e_RandomExpr,51,span,&[]);out.push(node);Ok(())}} fn map_rule_52(&mut self,caps:(u32,u32),span:Span,child:EventId,out:&mut Vec)->Result<(),String> {let _=(caps,span,child,&out);{let mut slots=self.take_captures();self.rule_captures(caps,&mut slots);let caps=slots; -let mut v0=self.take_values();self.node_values(&caps,&[84],&[],None,&mut v0)?; +let mut v0=self.take_values();self.node_values(&caps,&[94],&[],None,&mut v0)?; if !v0.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_ArgumentExpressionExpr}) {return Err("arg: mapped value type mismatch".into());} -if v0.is_empty() && self.missing_field(&caps,&[84]) {return Ok(());} +if v0.is_empty() && self.missing_field(&caps,&[94]) {return Ok(());} if v0.len()!=1 {return Err("arg requires one node".into());}let f0=v0.pop().unwrap();self.give_values(v0); let f0:u32=f0; self.give_captures(caps);let span=self.span(span);let node=self.tree.record(tree::K_g_TinyExpressionP4AST_2e_AbsExpr,52,span,&[f0]);out.push(node);Ok(())}} fn map_rule_53(&mut self,caps:(u32,u32),span:Span,child:EventId,out:&mut Vec)->Result<(),String> {let _=(caps,span,child,&out);{let mut slots=self.take_captures();self.rule_captures(caps,&mut slots);let caps=slots; -let mut v0=self.take_values();self.node_values(&caps,&[85],&[],None,&mut v0)?; +let mut v0=self.take_values();self.node_values(&caps,&[95],&[],None,&mut v0)?; if !v0.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_ArgumentExpressionExpr}) {return Err("arg: mapped value type mismatch".into());} -if v0.is_empty() && self.missing_field(&caps,&[85]) {return Ok(());} +if v0.is_empty() && self.missing_field(&caps,&[95]) {return Ok(());} if v0.len()!=1 {return Err("arg requires one node".into());}let f0=v0.pop().unwrap();self.give_values(v0); let f0:u32=f0; self.give_captures(caps);let span=self.span(span);let node=self.tree.record(tree::K_g_TinyExpressionP4AST_2e_RoundExpr,53,span,&[f0]);out.push(node);Ok(())}} fn map_rule_54(&mut self,caps:(u32,u32),span:Span,child:EventId,out:&mut Vec)->Result<(),String> {let _=(caps,span,child,&out);{let mut slots=self.take_captures();self.rule_captures(caps,&mut slots);let caps=slots; -let mut v0=self.take_values();self.node_values(&caps,&[86],&[],None,&mut v0)?; +let mut v0=self.take_values();self.node_values(&caps,&[96],&[],None,&mut v0)?; if !v0.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_ArgumentExpressionExpr}) {return Err("arg: mapped value type mismatch".into());} -if v0.is_empty() && self.missing_field(&caps,&[86]) {return Ok(());} +if v0.is_empty() && self.missing_field(&caps,&[96]) {return Ok(());} if v0.len()!=1 {return Err("arg requires one node".into());}let f0=v0.pop().unwrap();self.give_values(v0); let f0:u32=f0; self.give_captures(caps);let span=self.span(span);let node=self.tree.record(tree::K_g_TinyExpressionP4AST_2e_CeilExpr,54,span,&[f0]);out.push(node);Ok(())}} fn map_rule_55(&mut self,caps:(u32,u32),span:Span,child:EventId,out:&mut Vec)->Result<(),String> {let _=(caps,span,child,&out);{let mut slots=self.take_captures();self.rule_captures(caps,&mut slots);let caps=slots; -let mut v0=self.take_values();self.node_values(&caps,&[87],&[],None,&mut v0)?; +let mut v0=self.take_values();self.node_values(&caps,&[97],&[],None,&mut v0)?; if !v0.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_ArgumentExpressionExpr}) {return Err("arg: mapped value type mismatch".into());} -if v0.is_empty() && self.missing_field(&caps,&[87]) {return Ok(());} +if v0.is_empty() && self.missing_field(&caps,&[97]) {return Ok(());} if v0.len()!=1 {return Err("arg requires one node".into());}let f0=v0.pop().unwrap();self.give_values(v0); let f0:u32=f0; self.give_captures(caps);let span=self.span(span);let node=self.tree.record(tree::K_g_TinyExpressionP4AST_2e_FloorExpr,55,span,&[f0]);out.push(node);Ok(())}} fn map_rule_56(&mut self,caps:(u32,u32),span:Span,child:EventId,out:&mut Vec)->Result<(),String> {let _=(caps,span,child,&out);{let mut slots=self.take_captures();self.rule_captures(caps,&mut slots);let caps=slots; -let mut v0=self.take_values();self.node_values(&caps,&[88],&[],None,&mut v0)?; +let mut v0=self.take_values();self.node_values(&caps,&[98],&[],None,&mut v0)?; if !v0.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_ArgumentExpressionExpr}) {return Err("base: mapped value type mismatch".into());} -if v0.is_empty() && self.missing_field(&caps,&[88]) {return Ok(());} +if v0.is_empty() && self.missing_field(&caps,&[98]) {return Ok(());} if v0.len()!=1 {return Err("base requires one node".into());}let f0=v0.pop().unwrap();self.give_values(v0); let f0:u32=f0; -let mut v1=self.take_values();self.node_values(&caps,&[89],&[],None,&mut v1)?; +let mut v1=self.take_values();self.node_values(&caps,&[99],&[],None,&mut v1)?; if !v1.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_ArgumentExpressionExpr}) {return Err("exponent: mapped value type mismatch".into());} -if v1.is_empty() && self.missing_field(&caps,&[89]) {return Ok(());} +if v1.is_empty() && self.missing_field(&caps,&[99]) {return Ok(());} if v1.len()!=1 {return Err("exponent requires one node".into());}let f1=v1.pop().unwrap();self.give_values(v1); let f1:u32=f1; self.give_captures(caps);let span=self.span(span);let node=self.tree.record(tree::K_g_TinyExpressionP4AST_2e_PowExpr,56,span,&[f0,f1]);out.push(node);Ok(())}} fn map_rule_57(&mut self,caps:(u32,u32),span:Span,child:EventId,out:&mut Vec)->Result<(),String> {let _=(caps,span,child,&out);{let mut slots=self.take_captures();self.rule_captures(caps,&mut slots);let caps=slots; -let mut v0=self.take_values();self.node_values(&caps,&[90],&[],None,&mut v0)?; +let mut v0=self.take_values();self.node_values(&caps,&[100],&[],None,&mut v0)?; if !v0.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_ArgumentExpressionExpr}) {return Err("arg: mapped value type mismatch".into());} -if v0.is_empty() && self.missing_field(&caps,&[90]) {return Ok(());} +if v0.is_empty() && self.missing_field(&caps,&[100]) {return Ok(());} if v0.len()!=1 {return Err("arg requires one node".into());}let f0=v0.pop().unwrap();self.give_values(v0); let f0:u32=f0; self.give_captures(caps);let span=self.span(span);let node=self.tree.record(tree::K_g_TinyExpressionP4AST_2e_LogExpr,57,span,&[f0]);out.push(node);Ok(())}} fn map_rule_58(&mut self,caps:(u32,u32),span:Span,child:EventId,out:&mut Vec)->Result<(),String> {let _=(caps,span,child,&out);{let mut slots=self.take_captures();self.rule_captures(caps,&mut slots);let caps=slots; -let mut v0=self.take_values();self.node_values(&caps,&[91],&[],None,&mut v0)?; +let mut v0=self.take_values();self.node_values(&caps,&[101],&[],None,&mut v0)?; if !v0.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_ArgumentExpressionExpr}) {return Err("arg: mapped value type mismatch".into());} -if v0.is_empty() && self.missing_field(&caps,&[91]) {return Ok(());} +if v0.is_empty() && self.missing_field(&caps,&[101]) {return Ok(());} if v0.len()!=1 {return Err("arg requires one node".into());}let f0=v0.pop().unwrap();self.give_values(v0); let f0:u32=f0; self.give_captures(caps);let span=self.span(span);let node=self.tree.record(tree::K_g_TinyExpressionP4AST_2e_ExpExpr,58,span,&[f0]);out.push(node);Ok(())}} fn map_rule_59(&mut self,caps:(u32,u32),span:Span,child:EventId,out:&mut Vec)->Result<(),String> {let _=(caps,span,child,&out);{let mut slots=self.take_captures();self.rule_captures(caps,&mut slots);let caps=slots; -let mut v0=self.take_values();self.node_values(&caps,&[92],&[],None,&mut v0)?; +let mut v0=self.take_values();self.node_values(&caps,&[102],&[],None,&mut v0)?; if !v0.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_StringConcatExpr}) {return Err("value: mapped value type mismatch".into());} -if v0.is_empty() && self.missing_field(&caps,&[92]) {return Ok(());} +if v0.is_empty() && self.missing_field(&caps,&[102]) {return Ok(());} if v0.len()!=1 {return Err("value requires one node".into());}let f0=v0.pop().unwrap();self.give_values(v0); let f0:u32=f0; -let mut v1=self.take_values();self.node_values(&caps,&[93],&[],None,&mut v1)?; +let mut v1=self.take_values();self.node_values(&caps,&[103],&[],None,&mut v1)?; if !v1.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_ArgumentExpressionExpr}) {return Err("defaultValue: mapped value type mismatch".into());} -if v1.is_empty() && self.missing_field(&caps,&[93]) {return Ok(());} +if v1.is_empty() && self.missing_field(&caps,&[103]) {return Ok(());} if v1.len()!=1 {return Err("defaultValue requires one node".into());}let f1=v1.pop().unwrap();self.give_values(v1); let f1:u32=f1; self.give_captures(caps);let span=self.span(span);let node=self.tree.record(tree::K_g_TinyExpressionP4AST_2e_ToNumExpr,59,span,&[f0,f1]);out.push(node);Ok(())}} fn map_rule_60(&mut self,caps:(u32,u32),span:Span,child:EventId,out:&mut Vec)->Result<(),String> {let _=(caps,span,child,&out);{let start=out.len();self.build_values_into(child,out)?;if out.len()==start && !self.has_recovery(child) && !self.has_value_group(child) {let text=self.semantic_text(child,span);out.push(text);}Ok(())}} fn map_rule_61(&mut self,caps:(u32,u32),span:Span,child:EventId,out:&mut Vec)->Result<(),String> {let _=(caps,span,child,&out);{let mut slots=self.take_captures();self.rule_captures(caps,&mut slots);let caps=slots; -let mut v0=self.take_values();self.node_values(&caps,&[94],&[],None,&mut v0)?; +let mut v0=self.take_values();self.node_values(&caps,&[104],&[],None,&mut v0)?; if !v0.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_StringConcatExpr}) {return Err("value: mapped value type mismatch".into());} -if v0.is_empty() && self.missing_field(&caps,&[94]) {return Ok(());} +if v0.is_empty() && self.missing_field(&caps,&[104]) {return Ok(());} if v0.len()!=1 {return Err("value requires one node".into());}let f0=v0.pop().unwrap();self.give_values(v0); let f0:u32=f0; self.give_captures(caps);let span=self.span(span);let node=self.tree.record(tree::K_g_TinyExpressionP4AST_2e_ToUpperCaseExpr,61,span,&[f0]);out.push(node);Ok(())}} fn map_rule_62(&mut self,caps:(u32,u32),span:Span,child:EventId,out:&mut Vec)->Result<(),String> {let _=(caps,span,child,&out);{let mut slots=self.take_captures();self.rule_captures(caps,&mut slots);let caps=slots; -let mut v0=self.take_values();self.node_values(&caps,&[95],&[],None,&mut v0)?; +let mut v0=self.take_values();self.node_values(&caps,&[105],&[],None,&mut v0)?; if !v0.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_StringConcatExpr}) {return Err("value: mapped value type mismatch".into());} -if v0.is_empty() && self.missing_field(&caps,&[95]) {return Ok(());} +if v0.is_empty() && self.missing_field(&caps,&[105]) {return Ok(());} if v0.len()!=1 {return Err("value requires one node".into());}let f0=v0.pop().unwrap();self.give_values(v0); let f0:u32=f0; self.give_captures(caps);let span=self.span(span);let node=self.tree.record(tree::K_g_TinyExpressionP4AST_2e_ToLowerCaseExpr,62,span,&[f0]);out.push(node);Ok(())}} fn map_rule_63(&mut self,caps:(u32,u32),span:Span,child:EventId,out:&mut Vec)->Result<(),String> {let _=(caps,span,child,&out);{let mut slots=self.take_captures();self.rule_captures(caps,&mut slots);let caps=slots; -let mut v0=self.take_values();self.node_values(&caps,&[96],&[],None,&mut v0)?; +let mut v0=self.take_values();self.node_values(&caps,&[106],&[],None,&mut v0)?; if !v0.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_StringConcatExpr}) {return Err("value: mapped value type mismatch".into());} -if v0.is_empty() && self.missing_field(&caps,&[96]) {return Ok(());} +if v0.is_empty() && self.missing_field(&caps,&[106]) {return Ok(());} if v0.len()!=1 {return Err("value requires one node".into());}let f0=v0.pop().unwrap();self.give_values(v0); let f0:u32=f0; self.give_captures(caps);let span=self.span(span);let node=self.tree.record(tree::K_g_TinyExpressionP4AST_2e_TrimExpr,63,span,&[f0]);out.push(node);Ok(())}} fn map_rule_64(&mut self,caps:(u32,u32),span:Span,child:EventId,out:&mut Vec)->Result<(),String> {let _=(caps,span,child,&out);{let mut slots=self.take_captures();self.rule_captures(caps,&mut slots);let caps=slots; -let mut v0=self.take_values();self.node_values(&caps,&[97],&[],None,&mut v0)?; +let mut v0=self.take_values();self.node_values(&caps,&[107],&[],None,&mut v0)?; if !v0.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_StringConcatExpr}) {return Err("value: mapped value type mismatch".into());} -if v0.is_empty() && self.missing_field(&caps,&[97]) {return Ok(());} +if v0.is_empty() && self.missing_field(&caps,&[107]) {return Ok(());} if v0.len()!=1 {return Err("value requires one node".into());}let f0=v0.pop().unwrap();self.give_values(v0); let f0:u32=f0; self.give_captures(caps);let span=self.span(span);let node=self.tree.record(tree::K_g_TinyExpressionP4AST_2e_LengthExpr,64,span,&[f0]);out.push(node);Ok(())}} fn map_rule_65(&mut self,caps:(u32,u32),span:Span,child:EventId,out:&mut Vec)->Result<(),String> {let _=(caps,span,child,&out);{let mut slots=self.take_captures();self.rule_captures(caps,&mut slots);let caps=slots; -let mut v0=self.take_values();self.node_values(&caps,&[98],&[],None,&mut v0)?; +let mut v0=self.take_values();self.node_values(&caps,&[108],&[],None,&mut v0)?; if !v0.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_StringConcatExpr}) {return Err("value: mapped value type mismatch".into());} -if v0.is_empty() && self.missing_field(&caps,&[98]) {return Ok(());} +if v0.is_empty() && self.missing_field(&caps,&[108]) {return Ok(());} if v0.len()!=1 {return Err("value requires one node".into());}let f0=v0.pop().unwrap();self.give_values(v0); let f0:u32=f0; self.give_captures(caps);let span=self.span(span);let node=self.tree.record(tree::K_g_TinyExpressionP4AST_2e_LengthExpr,65,span,&[f0]);out.push(node);Ok(())}} fn map_rule_66(&mut self,caps:(u32,u32),span:Span,child:EventId,out:&mut Vec)->Result<(),String> {let _=(caps,span,child,&out);{let mut slots=self.take_captures();self.rule_captures(caps,&mut slots);let caps=slots; -let mut v0=self.take_values();self.node_values(&caps,&[99],&[],None,&mut v0)?; +let mut v0=self.take_values();self.node_values(&caps,&[109],&[],None,&mut v0)?; if !v0.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_VariableRefExpr}) {return Err("value: mapped value type mismatch".into());} -if v0.is_empty() && self.missing_field(&caps,&[99]) {return Ok(());} +if v0.is_empty() && self.missing_field(&caps,&[109]) {return Ok(());} if v0.len()!=1 {return Err("value requires one node".into());}let f0=v0.pop().unwrap();self.give_values(v0); let f0:u32=f0; self.give_captures(caps);let span=self.span(span);let node=self.tree.record(tree::K_g_TinyExpressionP4AST_2e_ToUpperCaseDotExpr,66,span,&[f0]);out.push(node);Ok(())}} fn map_rule_67(&mut self,caps:(u32,u32),span:Span,child:EventId,out:&mut Vec)->Result<(),String> {let _=(caps,span,child,&out);{let mut slots=self.take_captures();self.rule_captures(caps,&mut slots);let caps=slots; -let mut v0=self.take_values();self.node_values(&caps,&[100],&[],None,&mut v0)?; +let mut v0=self.take_values();self.node_values(&caps,&[110],&[],None,&mut v0)?; if !v0.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_VariableRefExpr}) {return Err("value: mapped value type mismatch".into());} -if v0.is_empty() && self.missing_field(&caps,&[100]) {return Ok(());} +if v0.is_empty() && self.missing_field(&caps,&[110]) {return Ok(());} if v0.len()!=1 {return Err("value requires one node".into());}let f0=v0.pop().unwrap();self.give_values(v0); let f0:u32=f0; self.give_captures(caps);let span=self.span(span);let node=self.tree.record(tree::K_g_TinyExpressionP4AST_2e_ToLowerCaseDotExpr,67,span,&[f0]);out.push(node);Ok(())}} fn map_rule_68(&mut self,caps:(u32,u32),span:Span,child:EventId,out:&mut Vec)->Result<(),String> {let _=(caps,span,child,&out);{let mut slots=self.take_captures();self.rule_captures(caps,&mut slots);let caps=slots; -let mut v0=self.take_values();self.node_values(&caps,&[101],&[],None,&mut v0)?; +let mut v0=self.take_values();self.node_values(&caps,&[111],&[],None,&mut v0)?; if !v0.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_VariableRefExpr}) {return Err("value: mapped value type mismatch".into());} -if v0.is_empty() && self.missing_field(&caps,&[101]) {return Ok(());} +if v0.is_empty() && self.missing_field(&caps,&[111]) {return Ok(());} if v0.len()!=1 {return Err("value requires one node".into());}let f0=v0.pop().unwrap();self.give_values(v0); let f0:u32=f0; self.give_captures(caps);let span=self.span(span);let node=self.tree.record(tree::K_g_TinyExpressionP4AST_2e_TrimDotExpr,68,span,&[f0]);out.push(node);Ok(())}} fn map_rule_69(&mut self,caps:(u32,u32),span:Span,child:EventId,out:&mut Vec)->Result<(),String> {let _=(caps,span,child,&out);{let mut slots=self.take_captures();self.rule_captures(caps,&mut slots);let caps=slots; -let mut v0=self.take_values();self.node_values(&caps,&[102],&[],None,&mut v0)?; +let mut v0=self.take_values();self.node_values(&caps,&[112],&[],None,&mut v0)?; if !v0.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_VariableRefExpr}) {return Err("value: mapped value type mismatch".into());} -if v0.is_empty() && self.missing_field(&caps,&[102]) {return Ok(());} +if v0.is_empty() && self.missing_field(&caps,&[112]) {return Ok(());} if v0.len()!=1 {return Err("value requires one node".into());}let f0=v0.pop().unwrap();self.give_values(v0); let f0:u32=f0; self.give_captures(caps);let span=self.span(span);let node=self.tree.record(tree::K_g_TinyExpressionP4AST_2e_LengthDotExpr,69,span,&[f0]);out.push(node);Ok(())}} fn map_rule_70(&mut self,caps:(u32,u32),span:Span,child:EventId,out:&mut Vec)->Result<(),String> {let _=(caps,span,child,&out);{let mut slots=self.take_captures();self.rule_captures(caps,&mut slots);let caps=slots; -let mut v0=self.take_values();self.node_values(&caps,&[103],&[],None,&mut v0)?; +let mut v0=self.take_values();self.node_values(&caps,&[113],&[],None,&mut v0)?; if !v0.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_StringConcatExpr}) {return Err("value: mapped value type mismatch".into());} -if v0.is_empty() && self.missing_field(&caps,&[103]) {return Ok(());} +if v0.is_empty() && self.missing_field(&caps,&[113]) {return Ok(());} if v0.len()!=1 {return Err("value requires one node".into());}let f0=v0.pop().unwrap();self.give_values(v0); let f0:u32=f0; -let mut f1=self.take_values();self.node_values(&caps,&[104, 105],&[],None,&mut f1)?; +let mut f1=self.take_values();self.node_values(&caps,&[114, 115],&[],None,&mut f1)?; if !f1.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_StringConcatExpr}) {return Err("patterns: mapped value type mismatch".into());} let f1:Vec=f1; self.give_captures(caps);let span=self.span(span);let l1=self.tree.list(&f1);self.give_values(f1);let node=self.tree.record(tree::K_g_TinyExpressionP4AST_2e_StartsWithExpr,70,span,&[f0,l1[0],l1[1]]);out.push(node);Ok(())}} fn map_rule_71(&mut self,caps:(u32,u32),span:Span,child:EventId,out:&mut Vec)->Result<(),String> {let _=(caps,span,child,&out);{let mut slots=self.take_captures();self.rule_captures(caps,&mut slots);let caps=slots; -let mut v0=self.take_values();self.node_values(&caps,&[106],&[],None,&mut v0)?; +let mut v0=self.take_values();self.node_values(&caps,&[116],&[],None,&mut v0)?; if !v0.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_StringConcatExpr}) {return Err("value: mapped value type mismatch".into());} -if v0.is_empty() && self.missing_field(&caps,&[106]) {return Ok(());} +if v0.is_empty() && self.missing_field(&caps,&[116]) {return Ok(());} if v0.len()!=1 {return Err("value requires one node".into());}let f0=v0.pop().unwrap();self.give_values(v0); let f0:u32=f0; -let mut f1=self.take_values();self.node_values(&caps,&[107, 108],&[],None,&mut f1)?; +let mut f1=self.take_values();self.node_values(&caps,&[117, 118],&[],None,&mut f1)?; if !f1.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_StringConcatExpr}) {return Err("patterns: mapped value type mismatch".into());} let f1:Vec=f1; self.give_captures(caps);let span=self.span(span);let l1=self.tree.list(&f1);self.give_values(f1);let node=self.tree.record(tree::K_g_TinyExpressionP4AST_2e_EndsWithExpr,71,span,&[f0,l1[0],l1[1]]);out.push(node);Ok(())}} fn map_rule_72(&mut self,caps:(u32,u32),span:Span,child:EventId,out:&mut Vec)->Result<(),String> {let _=(caps,span,child,&out);{let mut slots=self.take_captures();self.rule_captures(caps,&mut slots);let caps=slots; -let mut v0=self.take_values();self.node_values(&caps,&[109],&[],None,&mut v0)?; +let mut v0=self.take_values();self.node_values(&caps,&[119],&[],None,&mut v0)?; if !v0.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_StringConcatExpr}) {return Err("value: mapped value type mismatch".into());} -if v0.is_empty() && self.missing_field(&caps,&[109]) {return Ok(());} +if v0.is_empty() && self.missing_field(&caps,&[119]) {return Ok(());} if v0.len()!=1 {return Err("value requires one node".into());}let f0=v0.pop().unwrap();self.give_values(v0); let f0:u32=f0; -let mut f1=self.take_values();self.node_values(&caps,&[110, 111],&[],None,&mut f1)?; +let mut f1=self.take_values();self.node_values(&caps,&[120, 121],&[],None,&mut f1)?; if !f1.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_StringConcatExpr}) {return Err("patterns: mapped value type mismatch".into());} let f1:Vec=f1; self.give_captures(caps);let span=self.span(span);let l1=self.tree.list(&f1);self.give_values(f1);let node=self.tree.record(tree::K_g_TinyExpressionP4AST_2e_ContainsExpr,72,span,&[f0,l1[0],l1[1]]);out.push(node);Ok(())}} fn map_rule_73(&mut self,caps:(u32,u32),span:Span,child:EventId,out:&mut Vec)->Result<(),String> {let _=(caps,span,child,&out);{let mut slots=self.take_captures();self.rule_captures(caps,&mut slots);let caps=slots; -let mut v0=self.take_values();self.node_values(&caps,&[112],&[],None,&mut v0)?; +let mut v0=self.take_values();self.node_values(&caps,&[122],&[],None,&mut v0)?; if !v0.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_StringConcatExpr}) {return Err("value: mapped value type mismatch".into());} -if v0.is_empty() && self.missing_field(&caps,&[112]) {return Ok(());} +if v0.is_empty() && self.missing_field(&caps,&[122]) {return Ok(());} if v0.len()!=1 {return Err("value requires one node".into());}let f0=v0.pop().unwrap();self.give_values(v0); let f0:u32=f0; -let mut f1=self.take_values();self.node_values(&caps,&[113, 114],&[],None,&mut f1)?; +let mut f1=self.take_values();self.node_values(&caps,&[123, 124],&[],None,&mut f1)?; if !f1.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_StringConcatExpr}) {return Err("candidates: mapped value type mismatch".into());} let f1:Vec=f1; self.give_captures(caps);let span=self.span(span);let l1=self.tree.list(&f1);self.give_values(f1);let node=self.tree.record(tree::K_g_TinyExpressionP4AST_2e_InExpr,73,span,&[f0,l1[0],l1[1]]);out.push(node);Ok(())}} fn map_rule_74(&mut self,caps:(u32,u32),span:Span,child:EventId,out:&mut Vec)->Result<(),String> {let _=(caps,span,child,&out);{let mut slots=self.take_captures();self.rule_captures(caps,&mut slots);let caps=slots; -let mut v0=self.take_values();self.node_values(&caps,&[115],&[],None,&mut v0)?; +let mut v0=self.take_values();self.node_values(&caps,&[125],&[],None,&mut v0)?; if !v0.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_ToLowerCaseExpr || k==tree::K_g_TinyExpressionP4AST_2e_ToUpperCaseExpr || k==tree::K_g_TinyExpressionP4AST_2e_TrimExpr || k==tree::K_g_TinyExpressionP4AST_2e_VariableRefExpr}) {return Err("value: mapped value type mismatch".into());} -if v0.is_empty() && self.missing_field(&caps,&[115]) {return Ok(());} +if v0.is_empty() && self.missing_field(&caps,&[125]) {return Ok(());} if v0.len()!=1 {return Err("value requires one node".into());}let f0=v0.pop().unwrap();self.give_values(v0); let f0:u32=f0; -let mut f1=self.take_values();self.node_values(&caps,&[116, 117],&[],None,&mut f1)?; +let mut f1=self.take_values();self.node_values(&caps,&[126, 127],&[],None,&mut f1)?; if !f1.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_StringConcatExpr}) {return Err("patterns: mapped value type mismatch".into());} let f1:Vec=f1; self.give_captures(caps);let span=self.span(span);let l1=self.tree.list(&f1);self.give_values(f1);let node=self.tree.record(tree::K_g_TinyExpressionP4AST_2e_StartsWithDotExpr,74,span,&[f0,l1[0],l1[1]]);out.push(node);Ok(())}} fn map_rule_75(&mut self,caps:(u32,u32),span:Span,child:EventId,out:&mut Vec)->Result<(),String> {let _=(caps,span,child,&out);{let mut slots=self.take_captures();self.rule_captures(caps,&mut slots);let caps=slots; -let mut v0=self.take_values();self.node_values(&caps,&[118],&[],None,&mut v0)?; +let mut v0=self.take_values();self.node_values(&caps,&[128],&[],None,&mut v0)?; if !v0.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_ToLowerCaseExpr || k==tree::K_g_TinyExpressionP4AST_2e_ToUpperCaseExpr || k==tree::K_g_TinyExpressionP4AST_2e_TrimExpr || k==tree::K_g_TinyExpressionP4AST_2e_VariableRefExpr}) {return Err("value: mapped value type mismatch".into());} -if v0.is_empty() && self.missing_field(&caps,&[118]) {return Ok(());} +if v0.is_empty() && self.missing_field(&caps,&[128]) {return Ok(());} if v0.len()!=1 {return Err("value requires one node".into());}let f0=v0.pop().unwrap();self.give_values(v0); let f0:u32=f0; -let mut f1=self.take_values();self.node_values(&caps,&[119, 120],&[],None,&mut f1)?; +let mut f1=self.take_values();self.node_values(&caps,&[129, 130],&[],None,&mut f1)?; if !f1.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_StringConcatExpr}) {return Err("patterns: mapped value type mismatch".into());} let f1:Vec=f1; self.give_captures(caps);let span=self.span(span);let l1=self.tree.list(&f1);self.give_values(f1);let node=self.tree.record(tree::K_g_TinyExpressionP4AST_2e_EndsWithDotExpr,75,span,&[f0,l1[0],l1[1]]);out.push(node);Ok(())}} fn map_rule_76(&mut self,caps:(u32,u32),span:Span,child:EventId,out:&mut Vec)->Result<(),String> {let _=(caps,span,child,&out);{let mut slots=self.take_captures();self.rule_captures(caps,&mut slots);let caps=slots; -let mut v0=self.take_values();self.node_values(&caps,&[121],&[],None,&mut v0)?; +let mut v0=self.take_values();self.node_values(&caps,&[131],&[],None,&mut v0)?; if !v0.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_ToLowerCaseExpr || k==tree::K_g_TinyExpressionP4AST_2e_ToUpperCaseExpr || k==tree::K_g_TinyExpressionP4AST_2e_TrimExpr || k==tree::K_g_TinyExpressionP4AST_2e_VariableRefExpr}) {return Err("value: mapped value type mismatch".into());} -if v0.is_empty() && self.missing_field(&caps,&[121]) {return Ok(());} +if v0.is_empty() && self.missing_field(&caps,&[131]) {return Ok(());} if v0.len()!=1 {return Err("value requires one node".into());}let f0=v0.pop().unwrap();self.give_values(v0); let f0:u32=f0; -let mut f1=self.take_values();self.node_values(&caps,&[122, 123],&[],None,&mut f1)?; +let mut f1=self.take_values();self.node_values(&caps,&[132, 133],&[],None,&mut f1)?; if !f1.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_StringConcatExpr}) {return Err("patterns: mapped value type mismatch".into());} let f1:Vec=f1; self.give_captures(caps);let span=self.span(span);let l1=self.tree.list(&f1);self.give_values(f1);let node=self.tree.record(tree::K_g_TinyExpressionP4AST_2e_ContainsDotExpr,76,span,&[f0,l1[0],l1[1]]);out.push(node);Ok(())}} fn map_rule_77(&mut self,caps:(u32,u32),span:Span,child:EventId,out:&mut Vec)->Result<(),String> {let _=(caps,span,child,&out);{let start=out.len();self.build_values_into(child,out)?;if out.len()==start && !self.has_recovery(child) && !self.has_value_group(child) {let text=self.semantic_text(child,span);out.push(text);}Ok(())}} fn map_rule_78(&mut self,caps:(u32,u32),span:Span,child:EventId,out:&mut Vec)->Result<(),String> {let _=(caps,span,child,&out);{let mut slots=self.take_captures();self.rule_captures(caps,&mut slots);let caps=slots; -let mut v0=self.take_values();self.node_values(&caps,&[124],&[],None,&mut v0)?; +let mut v0=self.take_values();self.node_values(&caps,&[134],&[],None,&mut v0)?; if !v0.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_VariableRefExpr}) {return Err("value: mapped value type mismatch".into());} -if v0.is_empty() && self.missing_field(&caps,&[124]) {return Ok(());} +if v0.is_empty() && self.missing_field(&caps,&[134]) {return Ok(());} if v0.len()!=1 {return Err("value requires one node".into());}let f0=v0.pop().unwrap();self.give_values(v0); let f0:u32=f0; self.give_captures(caps);let span=self.span(span);let node=self.tree.record(tree::K_g_TinyExpressionP4AST_2e_IsPresentExpr,78,span,&[f0]);out.push(node);Ok(())}} fn map_rule_79(&mut self,caps:(u32,u32),span:Span,child:EventId,out:&mut Vec)->Result<(),String> {let _=(caps,span,child,&out);{let mut slots=self.take_captures();self.rule_captures(caps,&mut slots);let caps=slots; -let mut v0=self.take_values();self.node_values(&caps,&[125],&[],None,&mut v0)?; +let mut v0=self.take_values();self.node_values(&caps,&[135],&[],None,&mut v0)?; if !v0.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_BinaryExpr}) {return Err("startHour: mapped value type mismatch".into());} -if v0.is_empty() && self.missing_field(&caps,&[125]) {return Ok(());} +if v0.is_empty() && self.missing_field(&caps,&[135]) {return Ok(());} if v0.len()!=1 {return Err("startHour requires one node".into());}let f0=v0.pop().unwrap();self.give_values(v0); let f0:u32=f0; -let mut v1=self.take_values();self.node_values(&caps,&[126],&[],None,&mut v1)?; +let mut v1=self.take_values();self.node_values(&caps,&[136],&[],None,&mut v1)?; if !v1.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_BinaryExpr}) {return Err("endHour: mapped value type mismatch".into());} -if v1.is_empty() && self.missing_field(&caps,&[126]) {return Ok(());} +if v1.is_empty() && self.missing_field(&caps,&[136]) {return Ok(());} if v1.len()!=1 {return Err("endHour requires one node".into());}let f1=v1.pop().unwrap();self.give_values(v1); let f1:u32=f1; self.give_captures(caps);let span=self.span(span);let node=self.tree.record(tree::K_g_TinyExpressionP4AST_2e_InTimeRangeExpr,79,span,&[f0,f1]);out.push(node);Ok(())}} fn map_rule_80(&mut self,caps:(u32,u32),span:Span,child:EventId,out:&mut Vec)->Result<(),String> {let _=(caps,span,child,&out);{let mut slots=self.take_captures();self.rule_captures(caps,&mut slots);let caps=slots; -let mut t0=self.take_values();self.text_values(&caps,&[127],&mut t0);if t0.is_empty() && self.missing_field(&caps,&[127]) {return Ok(());} +let mut t0=self.take_values();self.text_values(&caps,&[137],&mut t0);if t0.is_empty() && self.missing_field(&caps,&[137]) {return Ok(());} if t0.len()!=1 {return Err("startDay requires one value".into());}let f0=t0.pop().unwrap();self.give_values(t0); let f0:u32=f0; -let mut v1=self.take_values();self.node_values(&caps,&[128],&[],None,&mut v1)?; +let mut v1=self.take_values();self.node_values(&caps,&[138],&[],None,&mut v1)?; if !v1.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_BinaryExpr}) {return Err("startHour: mapped value type mismatch".into());} -if v1.is_empty() && self.missing_field(&caps,&[128]) {return Ok(());} +if v1.is_empty() && self.missing_field(&caps,&[138]) {return Ok(());} if v1.len()!=1 {return Err("startHour requires one node".into());}let f1=v1.pop().unwrap();self.give_values(v1); let f1:u32=f1; -let mut t2=self.take_values();self.text_values(&caps,&[129],&mut t2);if t2.is_empty() && self.missing_field(&caps,&[129]) {return Ok(());} +let mut t2=self.take_values();self.text_values(&caps,&[139],&mut t2);if t2.is_empty() && self.missing_field(&caps,&[139]) {return Ok(());} if t2.len()!=1 {return Err("endDay requires one value".into());}let f2=t2.pop().unwrap();self.give_values(t2); let f2:u32=f2; -let mut v3=self.take_values();self.node_values(&caps,&[130],&[],None,&mut v3)?; +let mut v3=self.take_values();self.node_values(&caps,&[140],&[],None,&mut v3)?; if !v3.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_BinaryExpr}) {return Err("endHour: mapped value type mismatch".into());} -if v3.is_empty() && self.missing_field(&caps,&[130]) {return Ok(());} +if v3.is_empty() && self.missing_field(&caps,&[140]) {return Ok(());} if v3.len()!=1 {return Err("endHour requires one node".into());}let f3=v3.pop().unwrap();self.give_values(v3); let f3:u32=f3; self.give_captures(caps);let span=self.span(span);let node=self.tree.record(tree::K_g_TinyExpressionP4AST_2e_InDayTimeRangeExpr,80,span,&[f0,f1,f2,f3]);out.push(node);Ok(())}} @@ -3981,352 +3987,394 @@ fn map_rule_83(&mut self,caps:(u32,u32),span:Span,child:EventId,out:&mut Vec)->Result<(),String> {let _=(caps,span,child,&out);{let start=out.len();self.build_values_into(child,out)?;if out.len()==start && !self.has_recovery(child) && !self.has_value_group(child) {let text=self.semantic_text(child,span);out.push(text);}Ok(())}} fn map_rule_85(&mut self,caps:(u32,u32),span:Span,child:EventId,out:&mut Vec)->Result<(),String> {let _=(caps,span,child,&out);{let start=out.len();self.build_values_into(child,out)?;if out.len()==start && !self.has_recovery(child) && !self.has_value_group(child) {let text=self.semantic_text(child,span);out.push(text);}Ok(())}} fn map_rule_86(&mut self,caps:(u32,u32),span:Span,child:EventId,out:&mut Vec)->Result<(),String> {let _=(caps,span,child,&out);{let mut slots=self.take_captures();self.rule_captures(caps,&mut slots);let caps=slots; -let mut v0=self.take_values();self.node_values(&caps,&[131, 135, 138, 141, 143, 146, 148, 150],&[],None,&mut v0)?; +let mut v0=self.take_values();self.node_values(&caps,&[141, 145, 148, 151, 153, 156, 158, 160],&[],None,&mut v0)?; if !v0.iter().all(|value|{let k=self.tree.kind(*value);k==tree::KIND_TEXT || k==tree::K_g_TinyExpressionP4AST_2e_ExternalStringInvocationExpr || k==tree::K_g_TinyExpressionP4AST_2e_MethodInvocationExpr || k==tree::K_g_TinyExpressionP4AST_2e_SliceExpr || k==tree::K_g_TinyExpressionP4AST_2e_StringConcatExpr || k==tree::K_g_TinyExpressionP4AST_2e_ToLowerCaseDotExpr || k==tree::K_g_TinyExpressionP4AST_2e_ToLowerCaseExpr || k==tree::K_g_TinyExpressionP4AST_2e_ToUpperCaseDotExpr || k==tree::K_g_TinyExpressionP4AST_2e_ToUpperCaseExpr || k==tree::K_g_TinyExpressionP4AST_2e_TrimDotExpr || k==tree::K_g_TinyExpressionP4AST_2e_TrimExpr || k==tree::K_g_TinyExpressionP4AST_2e_VariableRefExpr}) {return Err("value: mapped value type mismatch".into());} -if v0.is_empty() && self.missing_field(&caps,&[131, 135, 138, 141, 143, 146, 148, 150]) {return Ok(());} +if v0.is_empty() && self.missing_field(&caps,&[141, 145, 148, 151, 153, 156, 158, 160]) {return Ok(());} if v0.len()!=1 {return Err("value requires one node".into());}let f0=v0.pop().unwrap();self.give_values(v0); let f0:u32=f0; -let mut v1=self.take_values();self.node_values(&caps,&[132, 136, 139, 142],&[],None,&mut v1)?; +let mut v1=self.take_values();self.node_values(&caps,&[142, 146, 149, 152],&[],None,&mut v1)?; if !v1.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_BinaryExpr}) {return Err("start: mapped value type mismatch".into());} if v1.len()>1 {return Err("start requires at most one node".into());}let f1=v1.pop();self.give_values(v1); let f1:Option=f1; -let mut v2=self.take_values();self.node_values(&caps,&[133, 137, 144, 147],&[],None,&mut v2)?; +let mut v2=self.take_values();self.node_values(&caps,&[143, 147, 154, 157],&[],None,&mut v2)?; if !v2.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_BinaryExpr}) {return Err("end: mapped value type mismatch".into());} if v2.len()>1 {return Err("end requires at most one node".into());}let f2=v2.pop();self.give_values(v2); let f2:Option=f2; -let mut v3=self.take_values();self.node_values(&caps,&[134, 140, 145, 149],&[],None,&mut v3)?; +let mut v3=self.take_values();self.node_values(&caps,&[144, 150, 155, 159],&[],None,&mut v3)?; if !v3.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_BinaryExpr}) {return Err("step: mapped value type mismatch".into());} if v3.len()>1 {return Err("step requires at most one node".into());}let f3=v3.pop();self.give_values(v3); let f3:Option=f3; self.give_captures(caps);let span=self.span(span);let node=self.tree.record(tree::K_g_TinyExpressionP4AST_2e_SliceExpr,86,span,&[f0,f1.unwrap_or(tree::NONE),f2.unwrap_or(tree::NONE),f3.unwrap_or(tree::NONE)]);out.push(node);Ok(())}} fn map_rule_87(&mut self,caps:(u32,u32),span:Span,child:EventId,out:&mut Vec)->Result<(),String> {let _=(caps,span,child,&out);{let mut slots=self.take_captures();self.rule_captures(caps,&mut slots);let caps=slots; -let mut v0=self.take_values();self.node_values(&caps,&[151, 155, 158, 161, 163, 166, 168, 170],&[],None,&mut v0)?; +let mut v0=self.take_values();self.node_values(&caps,&[161, 165, 168, 171, 173, 176, 178, 180],&[],None,&mut v0)?; if !v0.iter().all(|value|{let k=self.tree.kind(*value);k==tree::KIND_TEXT || k==tree::K_g_TinyExpressionP4AST_2e_ExternalStringInvocationExpr || k==tree::K_g_TinyExpressionP4AST_2e_MethodInvocationExpr || k==tree::K_g_TinyExpressionP4AST_2e_SliceExpr || k==tree::K_g_TinyExpressionP4AST_2e_StringConcatExpr || k==tree::K_g_TinyExpressionP4AST_2e_ToLowerCaseDotExpr || k==tree::K_g_TinyExpressionP4AST_2e_ToLowerCaseExpr || k==tree::K_g_TinyExpressionP4AST_2e_ToUpperCaseDotExpr || k==tree::K_g_TinyExpressionP4AST_2e_ToUpperCaseExpr || k==tree::K_g_TinyExpressionP4AST_2e_TrimDotExpr || k==tree::K_g_TinyExpressionP4AST_2e_TrimExpr || k==tree::K_g_TinyExpressionP4AST_2e_VariableRefExpr}) {return Err("value: mapped value type mismatch".into());} -if v0.is_empty() && self.missing_field(&caps,&[151, 155, 158, 161, 163, 166, 168, 170]) {return Ok(());} +if v0.is_empty() && self.missing_field(&caps,&[161, 165, 168, 171, 173, 176, 178, 180]) {return Ok(());} if v0.len()!=1 {return Err("value requires one node".into());}let f0=v0.pop().unwrap();self.give_values(v0); let f0:u32=f0; -let mut v1=self.take_values();self.node_values(&caps,&[152, 156, 159, 162],&[],None,&mut v1)?; +let mut v1=self.take_values();self.node_values(&caps,&[162, 166, 169, 172],&[],None,&mut v1)?; if !v1.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_BinaryExpr}) {return Err("start: mapped value type mismatch".into());} if v1.len()>1 {return Err("start requires at most one node".into());}let f1=v1.pop();self.give_values(v1); let f1:Option=f1; -let mut v2=self.take_values();self.node_values(&caps,&[153, 157, 164, 167],&[],None,&mut v2)?; +let mut v2=self.take_values();self.node_values(&caps,&[163, 167, 174, 177],&[],None,&mut v2)?; if !v2.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_BinaryExpr}) {return Err("end: mapped value type mismatch".into());} if v2.len()>1 {return Err("end requires at most one node".into());}let f2=v2.pop();self.give_values(v2); let f2:Option=f2; -let mut v3=self.take_values();self.node_values(&caps,&[154, 160, 165, 169],&[],None,&mut v3)?; +let mut v3=self.take_values();self.node_values(&caps,&[164, 170, 175, 179],&[],None,&mut v3)?; if !v3.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_BinaryExpr}) {return Err("step: mapped value type mismatch".into());} if v3.len()>1 {return Err("step requires at most one node".into());}let f3=v3.pop();self.give_values(v3); let f3:Option=f3; self.give_captures(caps);let span=self.span(span);let node=self.tree.record(tree::K_g_TinyExpressionP4AST_2e_SliceExpr,87,span,&[f0,f1.unwrap_or(tree::NONE),f2.unwrap_or(tree::NONE),f3.unwrap_or(tree::NONE)]);out.push(node);Ok(())}} fn map_rule_88(&mut self,caps:(u32,u32),span:Span,child:EventId,out:&mut Vec)->Result<(),String> {let _=(caps,span,child,&out);{let start=out.len();self.build_values_into(child,out)?;if out.len()==start && !self.has_recovery(child) && !self.has_value_group(child) {let text=self.semantic_text(child,span);out.push(text);}Ok(())}} fn map_rule_89(&mut self,caps:(u32,u32),span:Span,child:EventId,out:&mut Vec)->Result<(),String> {let _=(caps,span,child,&out);{let mut slots=self.take_captures();self.rule_captures(caps,&mut slots);let caps=slots; -let mut v0=self.take_values();self.node_values(&caps,&[171],&[],None,&mut v0)?; +let mut v0=self.take_values();self.node_values(&caps,&[181],&[],None,&mut v0)?; if !v0.iter().all(|value|{let k=self.tree.kind(*value);k==tree::KIND_TEXT || k==tree::K_g_TinyExpressionP4AST_2e_ExternalStringInvocationExpr || k==tree::K_g_TinyExpressionP4AST_2e_IfExpr || k==tree::K_g_TinyExpressionP4AST_2e_MethodInvocationExpr || k==tree::K_g_TinyExpressionP4AST_2e_SliceExpr || k==tree::K_g_TinyExpressionP4AST_2e_StringCastVariableRefExpr || k==tree::K_g_TinyExpressionP4AST_2e_StringConcatExpr || k==tree::K_g_TinyExpressionP4AST_2e_StringMatchExpr || k==tree::K_g_TinyExpressionP4AST_2e_StringTypedVariableRefExpr || k==tree::K_g_TinyExpressionP4AST_2e_ToLowerCaseDotExpr || k==tree::K_g_TinyExpressionP4AST_2e_ToLowerCaseExpr || k==tree::K_g_TinyExpressionP4AST_2e_ToUpperCaseDotExpr || k==tree::K_g_TinyExpressionP4AST_2e_ToUpperCaseExpr || k==tree::K_g_TinyExpressionP4AST_2e_TrimDotExpr || k==tree::K_g_TinyExpressionP4AST_2e_TrimExpr || k==tree::K_g_TinyExpressionP4AST_2e_VariableRefExpr}) {return Err("left: mapped value type mismatch".into());} -if v0.is_empty() && self.missing_field(&caps,&[171]) {return Ok(());} +if v0.is_empty() && self.missing_field(&caps,&[181]) {return Ok(());} if v0.len()!=1 {return Err("left requires one node".into());}let f0=v0.pop().unwrap();self.give_values(v0); let f0:u32=f0; -let mut f1=self.take_values();self.text_values(&caps,&[172],&mut f1); +let mut f1=self.take_values();self.text_values(&caps,&[182],&mut f1); let f1:Vec=f1; -let mut f2=self.take_values();self.node_values(&caps,&[173],&[],None,&mut f2)?; +let mut f2=self.take_values();self.node_values(&caps,&[183],&[],None,&mut f2)?; if !f2.iter().all(|value|{let k=self.tree.kind(*value);k==tree::KIND_TEXT || k==tree::K_g_TinyExpressionP4AST_2e_ExternalStringInvocationExpr || k==tree::K_g_TinyExpressionP4AST_2e_IfExpr || k==tree::K_g_TinyExpressionP4AST_2e_MethodInvocationExpr || k==tree::K_g_TinyExpressionP4AST_2e_SliceExpr || k==tree::K_g_TinyExpressionP4AST_2e_StringCastVariableRefExpr || k==tree::K_g_TinyExpressionP4AST_2e_StringConcatExpr || k==tree::K_g_TinyExpressionP4AST_2e_StringMatchExpr || k==tree::K_g_TinyExpressionP4AST_2e_StringTypedVariableRefExpr || k==tree::K_g_TinyExpressionP4AST_2e_ToLowerCaseDotExpr || k==tree::K_g_TinyExpressionP4AST_2e_ToLowerCaseExpr || k==tree::K_g_TinyExpressionP4AST_2e_ToUpperCaseDotExpr || k==tree::K_g_TinyExpressionP4AST_2e_ToUpperCaseExpr || k==tree::K_g_TinyExpressionP4AST_2e_TrimDotExpr || k==tree::K_g_TinyExpressionP4AST_2e_TrimExpr || k==tree::K_g_TinyExpressionP4AST_2e_VariableRefExpr}) {return Err("right: mapped value type mismatch".into());} let f2:Vec=f2; self.give_captures(caps);let span=self.span(span);let l1=self.tree.list(&f1);self.give_values(f1);let l2=self.tree.list(&f2);self.give_values(f2);let node=self.tree.record(tree::K_g_TinyExpressionP4AST_2e_StringConcatExpr,89,span,&[f0,l1[0],l1[1],l2[0],l2[1]]);out.push(node);Ok(())}} fn map_rule_90(&mut self,caps:(u32,u32),span:Span,child:EventId,out:&mut Vec)->Result<(),String> {let _=(caps,span,child,&out);{let start=out.len();self.build_values_into(child,out)?;if out.len()==start && !self.has_recovery(child) && !self.has_value_group(child) {let text=self.semantic_text(child,span);out.push(text);}Ok(())}} fn map_rule_91(&mut self,caps:(u32,u32),span:Span,child:EventId,out:&mut Vec)->Result<(),String> {let _=(caps,span,child,&out);{let start=out.len();self.build_values_into(child,out)?;if out.len()==start && !self.has_recovery(child) && !self.has_value_group(child) {let text=self.semantic_text(child,span);out.push(text);}Ok(())}} fn map_rule_92(&mut self,caps:(u32,u32),span:Span,child:EventId,out:&mut Vec)->Result<(),String> {let _=(caps,span,child,&out);{let mut slots=self.take_captures();self.rule_captures(caps,&mut slots);let caps=slots; -let mut t0=self.take_values();self.text_values(&caps,&[174],&mut t0);if t0.is_empty() && self.missing_field(&caps,&[174]) {return Ok(());} +let mut t0=self.take_values();self.text_values(&caps,&[184],&mut t0);if t0.is_empty() && self.missing_field(&caps,&[184]) {return Ok(());} if t0.len()!=1 {return Err("name requires one value".into());}let f0=t0.pop().unwrap();self.give_values(t0); let f0:u32=f0; self.give_captures(caps);let span=self.span(span);let node=self.tree.record(tree::K_g_TinyExpressionP4AST_2e_StringCastVariableRefExpr,92,span,&[f0]);out.push(node);Ok(())}} fn map_rule_93(&mut self,caps:(u32,u32),span:Span,child:EventId,out:&mut Vec)->Result<(),String> {let _=(caps,span,child,&out);{let mut slots=self.take_captures();self.rule_captures(caps,&mut slots);let caps=slots; -let mut t0=self.take_values();self.text_values(&caps,&[175],&mut t0);if t0.is_empty() && self.missing_field(&caps,&[175]) {return Ok(());} +let mut t0=self.take_values();self.text_values(&caps,&[185],&mut t0);if t0.is_empty() && self.missing_field(&caps,&[185]) {return Ok(());} if t0.len()!=1 {return Err("name requires one value".into());}let f0=t0.pop().unwrap();self.give_values(t0); let f0:u32=f0; self.give_captures(caps);let span=self.span(span);let node=self.tree.record(tree::K_g_TinyExpressionP4AST_2e_StringTypedVariableRefExpr,93,span,&[f0]);out.push(node);Ok(())}} fn map_rule_94(&mut self,caps:(u32,u32),span:Span,child:EventId,out:&mut Vec)->Result<(),String> {let _=(caps,span,child,&out);{let mut slots=self.take_captures();self.rule_captures(caps,&mut slots);let caps=slots; -let mut v0=self.take_values();self.node_values(&caps,&[176],&[],None,&mut v0)?; +let mut v0=self.take_values();self.node_values(&caps,&[186],&[],None,&mut v0)?; if !v0.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_BooleanAndExpr}) {return Err("left: mapped value type mismatch".into());} -if v0.is_empty() && self.missing_field(&caps,&[176]) {return Ok(());} +if v0.is_empty() && self.missing_field(&caps,&[186]) {return Ok(());} if v0.len()!=1 {return Err("left requires one node".into());}let f0=v0.pop().unwrap();self.give_values(v0); let f0:u32=f0; -let mut f1=self.take_values();self.text_values(&caps,&[177],&mut f1); +let mut f1=self.take_values();self.text_values(&caps,&[187],&mut f1); let f1:Vec=f1; -let mut f2=self.take_values();self.node_values(&caps,&[178],&[],None,&mut f2)?; +let mut f2=self.take_values();self.node_values(&caps,&[188],&[],None,&mut f2)?; if !f2.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_BooleanAndExpr}) {return Err("right: mapped value type mismatch".into());} let f2:Vec=f2; self.give_captures(caps);let span=self.span(span);let l1=self.tree.list(&f1);self.give_values(f1);let l2=self.tree.list(&f2);self.give_values(f2);let node=self.tree.record(tree::K_g_TinyExpressionP4AST_2e_BooleanOrExpr,94,span,&[f0,l1[0],l1[1],l2[0],l2[1]]);out.push(node);Ok(())}} fn map_rule_95(&mut self,caps:(u32,u32),span:Span,child:EventId,out:&mut Vec)->Result<(),String> {let _=(caps,span,child,&out);{let mut slots=self.take_captures();self.rule_captures(caps,&mut slots);let caps=slots; -let mut v0=self.take_values();self.node_values(&caps,&[179],&[],None,&mut v0)?; +let mut v0=self.take_values();self.node_values(&caps,&[189],&[],None,&mut v0)?; if !v0.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_BooleanXorExpr}) {return Err("left: mapped value type mismatch".into());} -if v0.is_empty() && self.missing_field(&caps,&[179]) {return Ok(());} +if v0.is_empty() && self.missing_field(&caps,&[189]) {return Ok(());} if v0.len()!=1 {return Err("left requires one node".into());}let f0=v0.pop().unwrap();self.give_values(v0); let f0:u32=f0; -let mut f1=self.take_values();self.text_values(&caps,&[180],&mut f1); +let mut f1=self.take_values();self.text_values(&caps,&[190],&mut f1); let f1:Vec=f1; -let mut f2=self.take_values();self.node_values(&caps,&[181],&[],None,&mut f2)?; +let mut f2=self.take_values();self.node_values(&caps,&[191],&[],None,&mut f2)?; if !f2.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_BooleanXorExpr}) {return Err("right: mapped value type mismatch".into());} let f2:Vec=f2; self.give_captures(caps);let span=self.span(span);let l1=self.tree.list(&f1);self.give_values(f1);let l2=self.tree.list(&f2);self.give_values(f2);let node=self.tree.record(tree::K_g_TinyExpressionP4AST_2e_BooleanAndExpr,95,span,&[f0,l1[0],l1[1],l2[0],l2[1]]);out.push(node);Ok(())}} fn map_rule_96(&mut self,caps:(u32,u32),span:Span,child:EventId,out:&mut Vec)->Result<(),String> {let _=(caps,span,child,&out);{let mut slots=self.take_captures();self.rule_captures(caps,&mut slots);let caps=slots; -let mut v0=self.take_values();self.node_values(&caps,&[182],&[],None,&mut v0)?; +let mut v0=self.take_values();self.node_values(&caps,&[192],&[],None,&mut v0)?; if !v0.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_BooleanFactorExpr}) {return Err("left: mapped value type mismatch".into());} -if v0.is_empty() && self.missing_field(&caps,&[182]) {return Ok(());} +if v0.is_empty() && self.missing_field(&caps,&[192]) {return Ok(());} if v0.len()!=1 {return Err("left requires one node".into());}let f0=v0.pop().unwrap();self.give_values(v0); let f0:u32=f0; -let mut f1=self.take_values();self.text_values(&caps,&[183],&mut f1); +let mut f1=self.take_values();self.text_values(&caps,&[193],&mut f1); let f1:Vec=f1; -let mut f2=self.take_values();self.node_values(&caps,&[184],&[],None,&mut f2)?; +let mut f2=self.take_values();self.node_values(&caps,&[194],&[],None,&mut f2)?; if !f2.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_BooleanFactorExpr}) {return Err("right: mapped value type mismatch".into());} let f2:Vec=f2; self.give_captures(caps);let span=self.span(span);let l1=self.tree.list(&f1);self.give_values(f1);let l2=self.tree.list(&f2);self.give_values(f2);let node=self.tree.record(tree::K_g_TinyExpressionP4AST_2e_BooleanXorExpr,96,span,&[f0,l1[0],l1[1],l2[0],l2[1]]);out.push(node);Ok(())}} fn map_rule_97(&mut self,caps:(u32,u32),span:Span,child:EventId,out:&mut Vec)->Result<(),String> {let _=(caps,span,child,&out);{let mut slots=self.take_captures();self.rule_captures(caps,&mut slots);let caps=slots; -let mut v0=self.take_values();self.node_values(&caps,&[185],&[],None,&mut v0)?; +let mut v0=self.take_values();self.node_values(&caps,&[195],&[],None,&mut v0)?; if !v0.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_BooleanOrExpr}) {return Err("value: mapped value type mismatch".into());} -if v0.is_empty() && self.missing_field(&caps,&[185]) {return Ok(());} +if v0.is_empty() && self.missing_field(&caps,&[195]) {return Ok(());} if v0.len()!=1 {return Err("value requires one node".into());}let f0=v0.pop().unwrap();self.give_values(v0); let f0:u32=f0; self.give_captures(caps);let span=self.span(span);let node=self.tree.record(tree::K_g_TinyExpressionP4AST_2e_NotExpr,97,span,&[f0]);out.push(node);Ok(())}} fn map_rule_98(&mut self,caps:(u32,u32),span:Span,child:EventId,out:&mut Vec)->Result<(),String> {let _=(caps,span,child,&out);{let start=out.len();self.build_values_into(child,out)?;if out.len()==start && !self.has_recovery(child) && !self.has_value_group(child) {let text=self.semantic_text(child,span);out.push(text);}Ok(())}} fn map_rule_99(&mut self,caps:(u32,u32),span:Span,child:EventId,out:&mut Vec)->Result<(),String> {let _=(caps,span,child,&out);{let mut slots=self.take_captures();self.rule_captures(caps,&mut slots);let caps=slots; -let mut v0=self.take_values();self.node_values(&caps,&[186],&[],None,&mut v0)?; +let mut v0=self.take_values();self.node_values(&caps,&[196],&[],None,&mut v0)?; if !v0.iter().all(|value|{let k=self.tree.kind(*value);k==tree::KIND_TEXT || k==tree::K_g_TinyExpressionP4AST_2e_BooleanMatchExpr || k==tree::K_g_TinyExpressionP4AST_2e_BooleanOrExpr || k==tree::K_g_TinyExpressionP4AST_2e_ContainsDotExpr || k==tree::K_g_TinyExpressionP4AST_2e_ContainsExpr || k==tree::K_g_TinyExpressionP4AST_2e_EndsWithDotExpr || k==tree::K_g_TinyExpressionP4AST_2e_EndsWithExpr || k==tree::K_g_TinyExpressionP4AST_2e_ExternalBooleanInvocationExpr || k==tree::K_g_TinyExpressionP4AST_2e_IfExpr || k==tree::K_g_TinyExpressionP4AST_2e_InDayTimeRangeExpr || k==tree::K_g_TinyExpressionP4AST_2e_InExpr || k==tree::K_g_TinyExpressionP4AST_2e_InTimeRangeExpr || k==tree::K_g_TinyExpressionP4AST_2e_IsPresentExpr || k==tree::K_g_TinyExpressionP4AST_2e_MethodInvocationExpr || k==tree::K_g_TinyExpressionP4AST_2e_NotExpr || k==tree::K_g_TinyExpressionP4AST_2e_StartsWithDotExpr || k==tree::K_g_TinyExpressionP4AST_2e_StartsWithExpr || k==tree::K_g_TinyExpressionP4AST_2e_VariableRefExpr}) {return Err("left: mapped value type mismatch".into());} -if v0.is_empty() && self.missing_field(&caps,&[186]) {return Ok(());} +if v0.is_empty() && self.missing_field(&caps,&[196]) {return Ok(());} if v0.len()!=1 {return Err("left requires one node".into());}let f0=v0.pop().unwrap();self.give_values(v0); let f0:u32=f0; -let mut t1=self.take_values();self.text_values(&caps,&[187],&mut t1);if t1.is_empty() && self.missing_field(&caps,&[187]) {return Ok(());} +let mut t1=self.take_values();self.text_values(&caps,&[197],&mut t1);if t1.is_empty() && self.missing_field(&caps,&[197]) {return Ok(());} if t1.len()!=1 {return Err("op requires one value".into());}let f1=t1.pop().unwrap();self.give_values(t1); let f1:u32=f1; -let mut v2=self.take_values();self.node_values(&caps,&[188],&[],None,&mut v2)?; +let mut v2=self.take_values();self.node_values(&caps,&[198],&[],None,&mut v2)?; if !v2.iter().all(|value|{let k=self.tree.kind(*value);k==tree::KIND_TEXT || k==tree::K_g_TinyExpressionP4AST_2e_BooleanMatchExpr || k==tree::K_g_TinyExpressionP4AST_2e_BooleanOrExpr || k==tree::K_g_TinyExpressionP4AST_2e_ContainsDotExpr || k==tree::K_g_TinyExpressionP4AST_2e_ContainsExpr || k==tree::K_g_TinyExpressionP4AST_2e_EndsWithDotExpr || k==tree::K_g_TinyExpressionP4AST_2e_EndsWithExpr || k==tree::K_g_TinyExpressionP4AST_2e_ExternalBooleanInvocationExpr || k==tree::K_g_TinyExpressionP4AST_2e_IfExpr || k==tree::K_g_TinyExpressionP4AST_2e_InDayTimeRangeExpr || k==tree::K_g_TinyExpressionP4AST_2e_InExpr || k==tree::K_g_TinyExpressionP4AST_2e_InTimeRangeExpr || k==tree::K_g_TinyExpressionP4AST_2e_IsPresentExpr || k==tree::K_g_TinyExpressionP4AST_2e_MethodInvocationExpr || k==tree::K_g_TinyExpressionP4AST_2e_NotExpr || k==tree::K_g_TinyExpressionP4AST_2e_StartsWithDotExpr || k==tree::K_g_TinyExpressionP4AST_2e_StartsWithExpr || k==tree::K_g_TinyExpressionP4AST_2e_VariableRefExpr}) {return Err("right: mapped value type mismatch".into());} -if v2.is_empty() && self.missing_field(&caps,&[188]) {return Ok(());} +if v2.is_empty() && self.missing_field(&caps,&[198]) {return Ok(());} if v2.len()!=1 {return Err("right requires one node".into());}let f2=v2.pop().unwrap();self.give_values(v2); let f2:u32=f2; self.give_captures(caps);let span=self.span(span);let node=self.tree.record(tree::K_g_TinyExpressionP4AST_2e_BooleanEqualityExpr,99,span,&[f0,f1,f2]);out.push(node);Ok(())}} fn map_rule_100(&mut self,caps:(u32,u32),span:Span,child:EventId,out:&mut Vec)->Result<(),String> {let _=(caps,span,child,&out);{let mut slots=self.take_captures();self.rule_captures(caps,&mut slots);let caps=slots; -let mut v0=self.take_values();self.node_values(&caps,&[189, 190, 191, 192],&[],None,&mut v0)?; +let mut v0=self.take_values();self.node_values(&caps,&[199, 200, 201, 202],&[],None,&mut v0)?; if !v0.iter().all(|value|{let k=self.tree.kind(*value);k==tree::KIND_TEXT || k==tree::K_g_TinyExpressionP4AST_2e_BooleanEqualityExpr || k==tree::K_g_TinyExpressionP4AST_2e_BooleanMatchExpr || k==tree::K_g_TinyExpressionP4AST_2e_BooleanOrExpr || k==tree::K_g_TinyExpressionP4AST_2e_ComparisonExpr || k==tree::K_g_TinyExpressionP4AST_2e_ContainsDotExpr || k==tree::K_g_TinyExpressionP4AST_2e_ContainsExpr || k==tree::K_g_TinyExpressionP4AST_2e_EndsWithDotExpr || k==tree::K_g_TinyExpressionP4AST_2e_EndsWithExpr || k==tree::K_g_TinyExpressionP4AST_2e_ExternalBooleanInvocationExpr || k==tree::K_g_TinyExpressionP4AST_2e_IfExpr || k==tree::K_g_TinyExpressionP4AST_2e_InDayTimeRangeExpr || k==tree::K_g_TinyExpressionP4AST_2e_InExpr || k==tree::K_g_TinyExpressionP4AST_2e_InTimeRangeExpr || k==tree::K_g_TinyExpressionP4AST_2e_IsPresentExpr || k==tree::K_g_TinyExpressionP4AST_2e_MethodInvocationExpr || k==tree::K_g_TinyExpressionP4AST_2e_NotExpr || k==tree::K_g_TinyExpressionP4AST_2e_StartsWithDotExpr || k==tree::K_g_TinyExpressionP4AST_2e_StartsWithExpr || k==tree::K_g_TinyExpressionP4AST_2e_StringComparisonExpr || k==tree::K_g_TinyExpressionP4AST_2e_VariableRefExpr}) {return Err("value: mapped value type mismatch".into());} -if v0.is_empty() && self.missing_field(&caps,&[189, 190, 191, 192]) {return Ok(());} +if v0.is_empty() && self.missing_field(&caps,&[199, 200, 201, 202]) {return Ok(());} if v0.len()!=1 {return Err("value requires one node".into());}let f0=v0.pop().unwrap();self.give_values(v0); let f0:u32=f0; self.give_captures(caps);let span=self.span(span);let node=self.tree.record(tree::K_g_TinyExpressionP4AST_2e_BooleanFactorExpr,100,span,&[f0]);out.push(node);Ok(())}} fn map_rule_101(&mut self,caps:(u32,u32),span:Span,child:EventId,out:&mut Vec)->Result<(),String> {let _=(caps,span,child,&out);{let mut slots=self.take_captures();self.rule_captures(caps,&mut slots);let caps=slots; -let mut v0=self.take_values();self.node_values(&caps,&[193],&[],None,&mut v0)?; +let mut v0=self.take_values();self.node_values(&caps,&[203],&[],None,&mut v0)?; if !v0.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_StringConcatExpr}) {return Err("left: mapped value type mismatch".into());} -if v0.is_empty() && self.missing_field(&caps,&[193]) {return Ok(());} +if v0.is_empty() && self.missing_field(&caps,&[203]) {return Ok(());} if v0.len()!=1 {return Err("left requires one node".into());}let f0=v0.pop().unwrap();self.give_values(v0); let f0:u32=f0; -let mut t1=self.take_values();self.text_values(&caps,&[194],&mut t1);if t1.is_empty() && self.missing_field(&caps,&[194]) {return Ok(());} +let mut t1=self.take_values();self.text_values(&caps,&[204],&mut t1);if t1.is_empty() && self.missing_field(&caps,&[204]) {return Ok(());} if t1.len()!=1 {return Err("op requires one value".into());}let f1=t1.pop().unwrap();self.give_values(t1); let f1:u32=f1; -let mut v2=self.take_values();self.node_values(&caps,&[195],&[],None,&mut v2)?; +let mut v2=self.take_values();self.node_values(&caps,&[205],&[],None,&mut v2)?; if !v2.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_StringConcatExpr}) {return Err("right: mapped value type mismatch".into());} -if v2.is_empty() && self.missing_field(&caps,&[195]) {return Ok(());} +if v2.is_empty() && self.missing_field(&caps,&[205]) {return Ok(());} if v2.len()!=1 {return Err("right requires one node".into());}let f2=v2.pop().unwrap();self.give_values(v2); let f2:u32=f2; self.give_captures(caps);let span=self.span(span);let node=self.tree.record(tree::K_g_TinyExpressionP4AST_2e_StringComparisonExpr,101,span,&[f0,f1,f2]);out.push(node);Ok(())}} fn map_rule_102(&mut self,caps:(u32,u32),span:Span,child:EventId,out:&mut Vec)->Result<(),String> {let _=(caps,span,child,&out);{if self.value_region>0 {return Ok(());}let start=out.len();self.build_values_into(child,out)?;if out.len()==start && !self.has_recovery(child) && !self.has_value_group(child) {let text=self.semantic_text(child,span);out.push(text);}Ok(())}} fn map_rule_103(&mut self,caps:(u32,u32),span:Span,child:EventId,out:&mut Vec)->Result<(),String> {let _=(caps,span,child,&out);{let mut slots=self.take_captures();self.rule_captures(caps,&mut slots);let caps=slots; -let mut v0=self.take_values();self.node_values(&caps,&[196],&[],None,&mut v0)?; +let mut v0=self.take_values();self.node_values(&caps,&[206],&[],None,&mut v0)?; if !v0.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_BinaryExpr}) {return Err("left: mapped value type mismatch".into());} -if v0.is_empty() && self.missing_field(&caps,&[196]) {return Ok(());} +if v0.is_empty() && self.missing_field(&caps,&[206]) {return Ok(());} if v0.len()!=1 {return Err("left requires one node".into());}let f0=v0.pop().unwrap();self.give_values(v0); let f0:u32=f0; -let mut t1=self.take_values();self.text_values(&caps,&[197],&mut t1);if t1.is_empty() && self.missing_field(&caps,&[197]) {return Ok(());} +let mut t1=self.take_values();self.text_values(&caps,&[207],&mut t1);if t1.is_empty() && self.missing_field(&caps,&[207]) {return Ok(());} if t1.len()!=1 {return Err("op requires one value".into());}let f1=t1.pop().unwrap();self.give_values(t1); let f1:u32=f1; -let mut v2=self.take_values();self.node_values(&caps,&[198],&[],None,&mut v2)?; +let mut v2=self.take_values();self.node_values(&caps,&[208],&[],None,&mut v2)?; if !v2.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_BinaryExpr}) {return Err("right: mapped value type mismatch".into());} -if v2.is_empty() && self.missing_field(&caps,&[198]) {return Ok(());} +if v2.is_empty() && self.missing_field(&caps,&[208]) {return Ok(());} if v2.len()!=1 {return Err("right requires one node".into());}let f2=v2.pop().unwrap();self.give_values(v2); let f2:u32=f2; self.give_captures(caps);let span=self.span(span);let node=self.tree.record(tree::K_g_TinyExpressionP4AST_2e_ComparisonExpr,103,span,&[f0,f1,f2]);out.push(node);Ok(())}} fn map_rule_104(&mut self,caps:(u32,u32),span:Span,child:EventId,out:&mut Vec)->Result<(),String> {let _=(caps,span,child,&out);{if self.value_region>0 {return Ok(());}let start=out.len();self.build_values_into(child,out)?;if out.len()==start && !self.has_recovery(child) && !self.has_value_group(child) {let text=self.semantic_text(child,span);out.push(text);}Ok(())}} fn map_rule_105(&mut self,caps:(u32,u32),span:Span,child:EventId,out:&mut Vec)->Result<(),String> {let _=(caps,span,child,&out);{let mut slots=self.take_captures();self.rule_captures(caps,&mut slots);let caps=slots; -let mut v0=self.take_values();self.node_values(&caps,&[199, 200, 201, 202, 203, 204],&[],None,&mut v0)?; +let mut v0=self.take_values();self.node_values(&caps,&[209, 210, 211, 212, 213, 214],&[],None,&mut v0)?; if !v0.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_BinaryExpr || k==tree::K_g_TinyExpressionP4AST_2e_BooleanOrExpr || k==tree::K_g_TinyExpressionP4AST_2e_ExternalObjectInvocationExpr || k==tree::K_g_TinyExpressionP4AST_2e_MethodInvocationExpr || k==tree::K_g_TinyExpressionP4AST_2e_StringConcatExpr || k==tree::K_g_TinyExpressionP4AST_2e_VariableRefExpr}) {return Err("value: mapped value type mismatch".into());} -if v0.is_empty() && self.missing_field(&caps,&[199, 200, 201, 202, 203, 204]) {return Ok(());} +if v0.is_empty() && self.missing_field(&caps,&[209, 210, 211, 212, 213, 214]) {return Ok(());} if v0.len()!=1 {return Err("value requires one node".into());}let f0=v0.pop().unwrap();self.give_values(v0); let f0:u32=f0; self.give_captures(caps);let span=self.span(span);let node=self.tree.record(tree::K_g_TinyExpressionP4AST_2e_ObjectExpr,105,span,&[f0]);out.push(node);Ok(())}} fn map_rule_106(&mut self,caps:(u32,u32),span:Span,child:EventId,out:&mut Vec)->Result<(),String> {let _=(caps,span,child,&out);{let mut slots=self.take_captures();self.rule_captures(caps,&mut slots);let caps=slots; -let mut v0=self.take_values();self.node_values(&caps,&[205],&[],None,&mut v0)?; +let mut v0=self.take_values();self.node_values(&caps,&[215],&[],None,&mut v0)?; if !v0.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_BooleanOrExpr}) {return Err("condition: mapped value type mismatch".into());} -if v0.is_empty() && self.missing_field(&caps,&[205]) {return Ok(());} +if v0.is_empty() && self.missing_field(&caps,&[215]) {return Ok(());} if v0.len()!=1 {return Err("condition requires one node".into());}let f0=v0.pop().unwrap();self.give_values(v0); let f0:u32=f0; -let mut v1=self.take_values();self.node_values(&caps,&[206],&[],None,&mut v1)?; +let mut v1=self.take_values();self.node_values(&caps,&[216],&[],None,&mut v1)?; if !v1.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_BranchExpressionExpr}) {return Err("thenExpr: mapped value type mismatch".into());} -if v1.is_empty() && self.missing_field(&caps,&[206]) {return Ok(());} +if v1.is_empty() && self.missing_field(&caps,&[216]) {return Ok(());} if v1.len()!=1 {return Err("thenExpr requires one node".into());}let f1=v1.pop().unwrap();self.give_values(v1); let f1:u32=f1; -let mut v2=self.take_values();self.node_values(&caps,&[207],&[],None,&mut v2)?; +let mut v2=self.take_values();self.node_values(&caps,&[217],&[],None,&mut v2)?; if !v2.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_BranchExpressionExpr}) {return Err("elseExpr: mapped value type mismatch".into());} -if v2.is_empty() && self.missing_field(&caps,&[207]) {return Ok(());} +if v2.is_empty() && self.missing_field(&caps,&[217]) {return Ok(());} if v2.len()!=1 {return Err("elseExpr requires one node".into());}let f2=v2.pop().unwrap();self.give_values(v2); let f2:u32=f2; self.give_captures(caps);let span=self.span(span);let node=self.tree.record(tree::K_g_TinyExpressionP4AST_2e_IfExpr,106,span,&[f0,f1,f2]);out.push(node);Ok(())}} fn map_rule_107(&mut self,caps:(u32,u32),span:Span,child:EventId,out:&mut Vec)->Result<(),String> {let _=(caps,span,child,&out);{let mut slots=self.take_captures();self.rule_captures(caps,&mut slots);let caps=slots; -let mut v0=self.take_values();self.node_values(&caps,&[208, 209, 210, 211, 212, 213, 214, 215],&[],None,&mut v0)?; +let mut v0=self.take_values();self.node_values(&caps,&[218, 219, 220, 221, 222, 223, 224, 225],&[],None,&mut v0)?; if !v0.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_BinaryExpr || k==tree::K_g_TinyExpressionP4AST_2e_BooleanEqualityExpr || k==tree::K_g_TinyExpressionP4AST_2e_BooleanOrExpr || k==tree::K_g_TinyExpressionP4AST_2e_ComparisonExpr || k==tree::K_g_TinyExpressionP4AST_2e_MethodInvocationExpr || k==tree::K_g_TinyExpressionP4AST_2e_ObjectExpr || k==tree::K_g_TinyExpressionP4AST_2e_StringComparisonExpr || k==tree::K_g_TinyExpressionP4AST_2e_StringConcatExpr}) {return Err("value: mapped value type mismatch".into());} -if v0.is_empty() && self.missing_field(&caps,&[208, 209, 210, 211, 212, 213, 214, 215]) {return Ok(());} +if v0.is_empty() && self.missing_field(&caps,&[218, 219, 220, 221, 222, 223, 224, 225]) {return Ok(());} if v0.len()!=1 {return Err("value requires one node".into());}let f0=v0.pop().unwrap();self.give_values(v0); let f0:u32=f0; self.give_captures(caps);let span=self.span(span);let node=self.tree.record(tree::K_g_TinyExpressionP4AST_2e_BranchExpressionExpr,107,span,&[f0]);out.push(node);Ok(())}} fn map_rule_108(&mut self,caps:(u32,u32),span:Span,child:EventId,out:&mut Vec)->Result<(),String> {let _=(caps,span,child,&out);{let mut slots=self.take_captures();self.rule_captures(caps,&mut slots);let caps=slots; -let mut v0=self.take_values();self.node_values(&caps,&[216],&[],None,&mut v0)?; +let mut v0=self.take_values();self.node_values(&caps,&[226],&[],None,&mut v0)?; if !v0.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_BooleanOrExpr}) {return Err("condition: mapped value type mismatch".into());} -if v0.is_empty() && self.missing_field(&caps,&[216]) {return Ok(());} +if v0.is_empty() && self.missing_field(&caps,&[226]) {return Ok(());} if v0.len()!=1 {return Err("condition requires one node".into());}let f0=v0.pop().unwrap();self.give_values(v0); let f0:u32=f0; -let mut v1=self.take_values();self.node_values(&caps,&[217],&[],None,&mut v1)?; +let mut v1=self.take_values();self.node_values(&caps,&[227],&[],None,&mut v1)?; if !v1.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_BranchExpressionExpr}) {return Err("thenExpr: mapped value type mismatch".into());} -if v1.is_empty() && self.missing_field(&caps,&[217]) {return Ok(());} +if v1.is_empty() && self.missing_field(&caps,&[227]) {return Ok(());} if v1.len()!=1 {return Err("thenExpr requires one node".into());}let f1=v1.pop().unwrap();self.give_values(v1); let f1:u32=f1; -let mut v2=self.take_values();self.node_values(&caps,&[218],&[],None,&mut v2)?; +let mut v2=self.take_values();self.node_values(&caps,&[228],&[],None,&mut v2)?; if !v2.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_BranchExpressionExpr}) {return Err("elseExpr: mapped value type mismatch".into());} -if v2.is_empty() && self.missing_field(&caps,&[218]) {return Ok(());} +if v2.is_empty() && self.missing_field(&caps,&[228]) {return Ok(());} if v2.len()!=1 {return Err("elseExpr requires one node".into());}let f2=v2.pop().unwrap();self.give_values(v2); let f2:u32=f2; self.give_captures(caps);let span=self.span(span);let node=self.tree.record(tree::K_g_TinyExpressionP4AST_2e_TernaryExpr,108,span,&[f0,f1,f2]);out.push(node);Ok(())}} fn map_rule_109(&mut self,caps:(u32,u32),span:Span,child:EventId,out:&mut Vec)->Result<(),String> {let _=(caps,span,child,&out);{let mut slots=self.take_captures();self.rule_captures(caps,&mut slots);let caps=slots; -let mut v0=self.take_values();self.node_values(&caps,&[219],&[],None,&mut v0)?; +let mut v0=self.take_values();self.node_values(&caps,&[229],&[],None,&mut v0)?; if !v0.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_NumberCaseExpr}) {return Err("firstCase: mapped value type mismatch".into());} -if v0.is_empty() && self.missing_field(&caps,&[219]) {return Ok(());} +if v0.is_empty() && self.missing_field(&caps,&[229]) {return Ok(());} if v0.len()!=1 {return Err("firstCase requires one node".into());}let f0=v0.pop().unwrap();self.give_values(v0); let f0:u32=f0; -let mut f1=self.take_values();self.node_values(&caps,&[220],&[],None,&mut f1)?; +let mut f1=self.take_values();self.node_values(&caps,&[230],&[],None,&mut f1)?; if !f1.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_NumberCaseExpr}) {return Err("moreCases: mapped value type mismatch".into());} let f1:Vec=f1; -let mut v2=self.take_values();self.node_values(&caps,&[221],&[],None,&mut v2)?; +let mut v2=self.take_values();self.node_values(&caps,&[231],&[],None,&mut v2)?; if !v2.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_NumberDefaultCaseExpr}) {return Err("defaultCase: mapped value type mismatch".into());} -if v2.is_empty() && self.missing_field(&caps,&[221]) {return Ok(());} +if v2.is_empty() && self.missing_field(&caps,&[231]) {return Ok(());} if v2.len()!=1 {return Err("defaultCase requires one node".into());}let f2=v2.pop().unwrap();self.give_values(v2); let f2:u32=f2; self.give_captures(caps);let span=self.span(span);let l1=self.tree.list(&f1);self.give_values(f1);let node=self.tree.record(tree::K_g_TinyExpressionP4AST_2e_NumberMatchExpr,109,span,&[f0,l1[0],l1[1],f2]);out.push(node);Ok(())}} fn map_rule_110(&mut self,caps:(u32,u32),span:Span,child:EventId,out:&mut Vec)->Result<(),String> {let _=(caps,span,child,&out);{let mut slots=self.take_captures();self.rule_captures(caps,&mut slots);let caps=slots; -let mut v0=self.take_values();self.node_values(&caps,&[222],&[],None,&mut v0)?; +let mut v0=self.take_values();self.node_values(&caps,&[232],&[],None,&mut v0)?; if !v0.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_BooleanOrExpr}) {return Err("condition: mapped value type mismatch".into());} -if v0.is_empty() && self.missing_field(&caps,&[222]) {return Ok(());} +if v0.is_empty() && self.missing_field(&caps,&[232]) {return Ok(());} if v0.len()!=1 {return Err("condition requires one node".into());}let f0=v0.pop().unwrap();self.give_values(v0); let f0:u32=f0; -let mut v1=self.take_values();self.node_values(&caps,&[223],&[],None,&mut v1)?; +let mut v1=self.take_values();self.node_values(&caps,&[233],&[],None,&mut v1)?; if !v1.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_NumberCaseValueExpr}) {return Err("value: mapped value type mismatch".into());} -if v1.is_empty() && self.missing_field(&caps,&[223]) {return Ok(());} +if v1.is_empty() && self.missing_field(&caps,&[233]) {return Ok(());} if v1.len()!=1 {return Err("value requires one node".into());}let f1=v1.pop().unwrap();self.give_values(v1); let f1:u32=f1; self.give_captures(caps);let span=self.span(span);let node=self.tree.record(tree::K_g_TinyExpressionP4AST_2e_NumberCaseExpr,110,span,&[f0,f1]);out.push(node);Ok(())}} fn map_rule_111(&mut self,caps:(u32,u32),span:Span,child:EventId,out:&mut Vec)->Result<(),String> {let _=(caps,span,child,&out);{let mut slots=self.take_captures();self.rule_captures(caps,&mut slots);let caps=slots; -let mut v0=self.take_values();self.node_values(&caps,&[224],&[],None,&mut v0)?; +let mut v0=self.take_values();self.node_values(&caps,&[234],&[],None,&mut v0)?; if !v0.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_NumberCaseValueExpr}) {return Err("value: mapped value type mismatch".into());} -if v0.is_empty() && self.missing_field(&caps,&[224]) {return Ok(());} +if v0.is_empty() && self.missing_field(&caps,&[234]) {return Ok(());} if v0.len()!=1 {return Err("value requires one node".into());}let f0=v0.pop().unwrap();self.give_values(v0); let f0:u32=f0; self.give_captures(caps);let span=self.span(span);let node=self.tree.record(tree::K_g_TinyExpressionP4AST_2e_NumberDefaultCaseExpr,111,span,&[f0]);out.push(node);Ok(())}} fn map_rule_112(&mut self,caps:(u32,u32),span:Span,child:EventId,out:&mut Vec)->Result<(),String> {let _=(caps,span,child,&out);{let mut slots=self.take_captures();self.rule_captures(caps,&mut slots);let caps=slots; -let mut v0=self.take_values();self.node_values(&caps,&[225],&[],None,&mut v0)?; +let mut v0=self.take_values();self.node_values(&caps,&[235],&[],None,&mut v0)?; if !v0.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_BinaryExpr}) {return Err("value: mapped value type mismatch".into());} -if v0.is_empty() && self.missing_field(&caps,&[225]) {return Ok(());} +if v0.is_empty() && self.missing_field(&caps,&[235]) {return Ok(());} if v0.len()!=1 {return Err("value requires one node".into());}let f0=v0.pop().unwrap();self.give_values(v0); let f0:u32=f0; self.give_captures(caps);let span=self.span(span);let node=self.tree.record(tree::K_g_TinyExpressionP4AST_2e_NumberCaseValueExpr,112,span,&[f0]);out.push(node);Ok(())}} fn map_rule_113(&mut self,caps:(u32,u32),span:Span,child:EventId,out:&mut Vec)->Result<(),String> {let _=(caps,span,child,&out);{let mut slots=self.take_captures();self.rule_captures(caps,&mut slots);let caps=slots; -let mut v0=self.take_values();self.node_values(&caps,&[226],&[],None,&mut v0)?; +let mut v0=self.take_values();self.node_values(&caps,&[236],&[],None,&mut v0)?; if !v0.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_StringCaseExpr}) {return Err("firstCase: mapped value type mismatch".into());} -if v0.is_empty() && self.missing_field(&caps,&[226]) {return Ok(());} +if v0.is_empty() && self.missing_field(&caps,&[236]) {return Ok(());} if v0.len()!=1 {return Err("firstCase requires one node".into());}let f0=v0.pop().unwrap();self.give_values(v0); let f0:u32=f0; -let mut f1=self.take_values();self.node_values(&caps,&[227],&[],None,&mut f1)?; +let mut f1=self.take_values();self.node_values(&caps,&[237],&[],None,&mut f1)?; if !f1.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_StringCaseExpr}) {return Err("moreCases: mapped value type mismatch".into());} let f1:Vec=f1; -let mut v2=self.take_values();self.node_values(&caps,&[228],&[],None,&mut v2)?; +let mut v2=self.take_values();self.node_values(&caps,&[238],&[],None,&mut v2)?; if !v2.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_StringDefaultCaseExpr}) {return Err("defaultCase: mapped value type mismatch".into());} -if v2.is_empty() && self.missing_field(&caps,&[228]) {return Ok(());} +if v2.is_empty() && self.missing_field(&caps,&[238]) {return Ok(());} if v2.len()!=1 {return Err("defaultCase requires one node".into());}let f2=v2.pop().unwrap();self.give_values(v2); let f2:u32=f2; self.give_captures(caps);let span=self.span(span);let l1=self.tree.list(&f1);self.give_values(f1);let node=self.tree.record(tree::K_g_TinyExpressionP4AST_2e_StringMatchExpr,113,span,&[f0,l1[0],l1[1],f2]);out.push(node);Ok(())}} fn map_rule_114(&mut self,caps:(u32,u32),span:Span,child:EventId,out:&mut Vec)->Result<(),String> {let _=(caps,span,child,&out);{let mut slots=self.take_captures();self.rule_captures(caps,&mut slots);let caps=slots; -let mut v0=self.take_values();self.node_values(&caps,&[229],&[],None,&mut v0)?; +let mut v0=self.take_values();self.node_values(&caps,&[239],&[],None,&mut v0)?; if !v0.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_BooleanOrExpr}) {return Err("condition: mapped value type mismatch".into());} -if v0.is_empty() && self.missing_field(&caps,&[229]) {return Ok(());} +if v0.is_empty() && self.missing_field(&caps,&[239]) {return Ok(());} if v0.len()!=1 {return Err("condition requires one node".into());}let f0=v0.pop().unwrap();self.give_values(v0); let f0:u32=f0; -let mut v1=self.take_values();self.node_values(&caps,&[230],&[],None,&mut v1)?; +let mut v1=self.take_values();self.node_values(&caps,&[240],&[],None,&mut v1)?; if !v1.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_StringCaseValueExpr}) {return Err("value: mapped value type mismatch".into());} -if v1.is_empty() && self.missing_field(&caps,&[230]) {return Ok(());} +if v1.is_empty() && self.missing_field(&caps,&[240]) {return Ok(());} if v1.len()!=1 {return Err("value requires one node".into());}let f1=v1.pop().unwrap();self.give_values(v1); let f1:u32=f1; self.give_captures(caps);let span=self.span(span);let node=self.tree.record(tree::K_g_TinyExpressionP4AST_2e_StringCaseExpr,114,span,&[f0,f1]);out.push(node);Ok(())}} fn map_rule_115(&mut self,caps:(u32,u32),span:Span,child:EventId,out:&mut Vec)->Result<(),String> {let _=(caps,span,child,&out);{let mut slots=self.take_captures();self.rule_captures(caps,&mut slots);let caps=slots; -let mut v0=self.take_values();self.node_values(&caps,&[231],&[],None,&mut v0)?; +let mut v0=self.take_values();self.node_values(&caps,&[241],&[],None,&mut v0)?; if !v0.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_StringCaseValueExpr}) {return Err("value: mapped value type mismatch".into());} -if v0.is_empty() && self.missing_field(&caps,&[231]) {return Ok(());} +if v0.is_empty() && self.missing_field(&caps,&[241]) {return Ok(());} if v0.len()!=1 {return Err("value requires one node".into());}let f0=v0.pop().unwrap();self.give_values(v0); let f0:u32=f0; self.give_captures(caps);let span=self.span(span);let node=self.tree.record(tree::K_g_TinyExpressionP4AST_2e_StringDefaultCaseExpr,115,span,&[f0]);out.push(node);Ok(())}} fn map_rule_116(&mut self,caps:(u32,u32),span:Span,child:EventId,out:&mut Vec)->Result<(),String> {let _=(caps,span,child,&out);{let mut slots=self.take_captures();self.rule_captures(caps,&mut slots);let caps=slots; -let mut v0=self.take_values();self.node_values(&caps,&[232],&[],None,&mut v0)?; +let mut v0=self.take_values();self.node_values(&caps,&[242],&[],None,&mut v0)?; if !v0.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_StringConcatExpr}) {return Err("value: mapped value type mismatch".into());} -if v0.is_empty() && self.missing_field(&caps,&[232]) {return Ok(());} +if v0.is_empty() && self.missing_field(&caps,&[242]) {return Ok(());} if v0.len()!=1 {return Err("value requires one node".into());}let f0=v0.pop().unwrap();self.give_values(v0); let f0:u32=f0; self.give_captures(caps);let span=self.span(span);let node=self.tree.record(tree::K_g_TinyExpressionP4AST_2e_StringCaseValueExpr,116,span,&[f0]);out.push(node);Ok(())}} fn map_rule_117(&mut self,caps:(u32,u32),span:Span,child:EventId,out:&mut Vec)->Result<(),String> {let _=(caps,span,child,&out);{let mut slots=self.take_captures();self.rule_captures(caps,&mut slots);let caps=slots; -let mut v0=self.take_values();self.node_values(&caps,&[233],&[],None,&mut v0)?; +let mut v0=self.take_values();self.node_values(&caps,&[243],&[],None,&mut v0)?; if !v0.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_BooleanCaseExpr}) {return Err("firstCase: mapped value type mismatch".into());} -if v0.is_empty() && self.missing_field(&caps,&[233]) {return Ok(());} +if v0.is_empty() && self.missing_field(&caps,&[243]) {return Ok(());} if v0.len()!=1 {return Err("firstCase requires one node".into());}let f0=v0.pop().unwrap();self.give_values(v0); let f0:u32=f0; -let mut f1=self.take_values();self.node_values(&caps,&[234],&[],None,&mut f1)?; +let mut f1=self.take_values();self.node_values(&caps,&[244],&[],None,&mut f1)?; if !f1.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_BooleanCaseExpr}) {return Err("moreCases: mapped value type mismatch".into());} let f1:Vec=f1; -let mut v2=self.take_values();self.node_values(&caps,&[235],&[],None,&mut v2)?; +let mut v2=self.take_values();self.node_values(&caps,&[245],&[],None,&mut v2)?; if !v2.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_BooleanDefaultCaseExpr}) {return Err("defaultCase: mapped value type mismatch".into());} -if v2.is_empty() && self.missing_field(&caps,&[235]) {return Ok(());} +if v2.is_empty() && self.missing_field(&caps,&[245]) {return Ok(());} if v2.len()!=1 {return Err("defaultCase requires one node".into());}let f2=v2.pop().unwrap();self.give_values(v2); let f2:u32=f2; self.give_captures(caps);let span=self.span(span);let l1=self.tree.list(&f1);self.give_values(f1);let node=self.tree.record(tree::K_g_TinyExpressionP4AST_2e_BooleanMatchExpr,117,span,&[f0,l1[0],l1[1],f2]);out.push(node);Ok(())}} fn map_rule_118(&mut self,caps:(u32,u32),span:Span,child:EventId,out:&mut Vec)->Result<(),String> {let _=(caps,span,child,&out);{let mut slots=self.take_captures();self.rule_captures(caps,&mut slots);let caps=slots; -let mut v0=self.take_values();self.node_values(&caps,&[236],&[],None,&mut v0)?; +let mut v0=self.take_values();self.node_values(&caps,&[246],&[],None,&mut v0)?; if !v0.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_BooleanOrExpr}) {return Err("condition: mapped value type mismatch".into());} -if v0.is_empty() && self.missing_field(&caps,&[236]) {return Ok(());} +if v0.is_empty() && self.missing_field(&caps,&[246]) {return Ok(());} if v0.len()!=1 {return Err("condition requires one node".into());}let f0=v0.pop().unwrap();self.give_values(v0); let f0:u32=f0; -let mut v1=self.take_values();self.node_values(&caps,&[237],&[],None,&mut v1)?; +let mut v1=self.take_values();self.node_values(&caps,&[247],&[],None,&mut v1)?; if !v1.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_BooleanCaseValueExpr}) {return Err("value: mapped value type mismatch".into());} -if v1.is_empty() && self.missing_field(&caps,&[237]) {return Ok(());} +if v1.is_empty() && self.missing_field(&caps,&[247]) {return Ok(());} if v1.len()!=1 {return Err("value requires one node".into());}let f1=v1.pop().unwrap();self.give_values(v1); let f1:u32=f1; self.give_captures(caps);let span=self.span(span);let node=self.tree.record(tree::K_g_TinyExpressionP4AST_2e_BooleanCaseExpr,118,span,&[f0,f1]);out.push(node);Ok(())}} fn map_rule_119(&mut self,caps:(u32,u32),span:Span,child:EventId,out:&mut Vec)->Result<(),String> {let _=(caps,span,child,&out);{let mut slots=self.take_captures();self.rule_captures(caps,&mut slots);let caps=slots; -let mut v0=self.take_values();self.node_values(&caps,&[238],&[],None,&mut v0)?; +let mut v0=self.take_values();self.node_values(&caps,&[248],&[],None,&mut v0)?; if !v0.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_BooleanCaseValueExpr}) {return Err("value: mapped value type mismatch".into());} -if v0.is_empty() && self.missing_field(&caps,&[238]) {return Ok(());} +if v0.is_empty() && self.missing_field(&caps,&[248]) {return Ok(());} if v0.len()!=1 {return Err("value requires one node".into());}let f0=v0.pop().unwrap();self.give_values(v0); let f0:u32=f0; self.give_captures(caps);let span=self.span(span);let node=self.tree.record(tree::K_g_TinyExpressionP4AST_2e_BooleanDefaultCaseExpr,119,span,&[f0]);out.push(node);Ok(())}} fn map_rule_120(&mut self,caps:(u32,u32),span:Span,child:EventId,out:&mut Vec)->Result<(),String> {let _=(caps,span,child,&out);{let mut slots=self.take_captures();self.rule_captures(caps,&mut slots);let caps=slots; -let mut v0=self.take_values();self.node_values(&caps,&[239],&[],None,&mut v0)?; +let mut v0=self.take_values();self.node_values(&caps,&[249],&[],None,&mut v0)?; if !v0.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_BooleanOrExpr}) {return Err("value: mapped value type mismatch".into());} -if v0.is_empty() && self.missing_field(&caps,&[239]) {return Ok(());} +if v0.is_empty() && self.missing_field(&caps,&[249]) {return Ok(());} if v0.len()!=1 {return Err("value requires one node".into());}let f0=v0.pop().unwrap();self.give_values(v0); let f0:u32=f0; self.give_captures(caps);let span=self.span(span);let node=self.tree.record(tree::K_g_TinyExpressionP4AST_2e_BooleanCaseValueExpr,120,span,&[f0]);out.push(node);Ok(())}} fn map_rule_121(&mut self,caps:(u32,u32),span:Span,child:EventId,out:&mut Vec)->Result<(),String> {let _=(caps,span,child,&out);{let mut slots=self.take_captures();self.rule_captures(caps,&mut slots);let caps=slots; -let mut t0=self.take_values();self.text_values(&caps,&[240],&mut t0);if t0.is_empty() && self.missing_field(&caps,&[240]) {return Ok(());} +let mut t0=self.take_values();self.text_values(&caps,&[250],&mut t0);if t0.is_empty() && self.missing_field(&caps,&[250]) {return Ok(());} if t0.len()!=1 {return Err("name requires one value".into());}let f0=t0.pop().unwrap();self.give_values(t0); let f0:u32=f0; -let mut t1=self.take_values();self.text_values(&caps,&[241],&mut t1);if t1.len()>1 {return Err("type requires at most one value".into());}let f1=t1.pop();self.give_values(t1); +let mut t1=self.take_values();self.text_values(&caps,&[251],&mut t1);if t1.len()>1 {return Err("type requires at most one value".into());}let f1=t1.pop();self.give_values(t1); let f1:Option=f1; self.give_captures(caps);let span=self.span(span);let node=self.tree.record(tree::K_g_TinyExpressionP4AST_2e_VariableRefExpr,121,span,&[f0,f1.unwrap_or(tree::NONE)]);out.push(node);Ok(())}} fn map_rule_122(&mut self,caps:(u32,u32),span:Span,child:EventId,out:&mut Vec)->Result<(),String> {let _=(caps,span,child,&out);{if self.value_region>0 {return Ok(());}let start=out.len();self.build_values_into(child,out)?;if out.len()==start && !self.has_recovery(child) && !self.has_value_group(child) {let text=self.semantic_text(child,span);out.push(text);}Ok(())}} fn map_rule_123(&mut self,caps:(u32,u32),span:Span,child:EventId,out:&mut Vec)->Result<(),String> {let _=(caps,span,child,&out);{let mut slots=self.take_captures();self.rule_captures(caps,&mut slots);let caps=slots; -let mut v0=self.take_values();self.node_values(&caps,&[242, 243, 244, 245, 246, 247],&[],None,&mut v0)?; +let mut v0=self.take_values();self.node_values(&caps,&[252, 253, 254, 255, 256, 257],&[],None,&mut v0)?; if !v0.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_BinaryExpr || k==tree::K_g_TinyExpressionP4AST_2e_BooleanOrExpr || k==tree::K_g_TinyExpressionP4AST_2e_ExpressionExpr || k==tree::K_g_TinyExpressionP4AST_2e_MethodInvocationExpr || k==tree::K_g_TinyExpressionP4AST_2e_ObjectExpr || k==tree::K_g_TinyExpressionP4AST_2e_StringConcatExpr}) {return Err("value: mapped value type mismatch".into());} -if v0.is_empty() && self.missing_field(&caps,&[242, 243, 244, 245, 246, 247]) {return Ok(());} +if v0.is_empty() && self.missing_field(&caps,&[252, 253, 254, 255, 256, 257]) {return Ok(());} if v0.len()!=1 {return Err("value requires one node".into());}let f0=v0.pop().unwrap();self.give_values(v0); let f0:u32=f0; self.give_captures(caps);let span=self.span(span);let node=self.tree.record(tree::K_g_TinyExpressionP4AST_2e_ExpressionExpr,123,span,&[f0]);out.push(node);Ok(())}} +fn map_rule_124(&mut self,caps:(u32,u32),span:Span,child:EventId,out:&mut Vec)->Result<(),String> {let _=(caps,span,child,&out);{let mut slots=self.take_captures();self.rule_captures(caps,&mut slots);let caps=slots; +let mut v0=self.take_values();self.node_values(&caps,&[258],&[],None,&mut v0)?; +if !v0.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_BinaryExpr || k==tree::K_g_TinyExpressionP4AST_2e_BooleanOrExpr || k==tree::K_g_TinyExpressionP4AST_2e_ExpressionExpr || k==tree::K_g_TinyExpressionP4AST_2e_MethodInvocationExpr || k==tree::K_g_TinyExpressionP4AST_2e_ObjectExpr || k==tree::K_g_TinyExpressionP4AST_2e_StringConcatExpr}) {return Err("value: mapped value type mismatch".into());} +if v0.is_empty() && self.missing_field(&caps,&[258]) {return Ok(());} +if v0.len()!=1 {return Err("value requires one node".into());}let f0=v0.pop().unwrap();self.give_values(v0); +let f0:u32=f0; +self.give_captures(caps);let span=self.span(span);let node=self.tree.record(tree::K_g_TinyExpressionP4AST_2e_ExpressionExpr,124,span,&[f0]);out.push(node);Ok(())}} +fn map_rule_125(&mut self,caps:(u32,u32),span:Span,child:EventId,out:&mut Vec)->Result<(),String> {let _=(caps,span,child,&out);{let mut slots=self.take_captures();self.rule_captures(caps,&mut slots);let caps=slots; +let mut v0=self.take_values();self.node_values(&caps,&[259],&[],None,&mut v0)?; +if !v0.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_BinaryExpr || k==tree::K_g_TinyExpressionP4AST_2e_BooleanOrExpr || k==tree::K_g_TinyExpressionP4AST_2e_ExpressionExpr || k==tree::K_g_TinyExpressionP4AST_2e_MethodInvocationExpr || k==tree::K_g_TinyExpressionP4AST_2e_ObjectExpr || k==tree::K_g_TinyExpressionP4AST_2e_StringConcatExpr}) {return Err("value: mapped value type mismatch".into());} +if v0.is_empty() && self.missing_field(&caps,&[259]) {return Ok(());} +if v0.len()!=1 {return Err("value requires one node".into());}let f0=v0.pop().unwrap();self.give_values(v0); +let f0:u32=f0; +self.give_captures(caps);let span=self.span(span);let node=self.tree.record(tree::K_g_TinyExpressionP4AST_2e_ExpressionExpr,125,span,&[f0]);out.push(node);Ok(())}} +fn map_rule_126(&mut self,caps:(u32,u32),span:Span,child:EventId,out:&mut Vec)->Result<(),String> {let _=(caps,span,child,&out);{let mut slots=self.take_captures();self.rule_captures(caps,&mut slots);let caps=slots; +let mut v0=self.take_values();self.node_values(&caps,&[260],&[],None,&mut v0)?; +if !v0.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_BinaryExpr || k==tree::K_g_TinyExpressionP4AST_2e_BooleanOrExpr || k==tree::K_g_TinyExpressionP4AST_2e_ExpressionExpr || k==tree::K_g_TinyExpressionP4AST_2e_MethodInvocationExpr || k==tree::K_g_TinyExpressionP4AST_2e_ObjectExpr || k==tree::K_g_TinyExpressionP4AST_2e_StringConcatExpr}) {return Err("value: mapped value type mismatch".into());} +if v0.is_empty() && self.missing_field(&caps,&[260]) {return Ok(());} +if v0.len()!=1 {return Err("value requires one node".into());}let f0=v0.pop().unwrap();self.give_values(v0); +let f0:u32=f0; +self.give_captures(caps);let span=self.span(span);let node=self.tree.record(tree::K_g_TinyExpressionP4AST_2e_ExpressionExpr,126,span,&[f0]);out.push(node);Ok(())}} +fn map_rule_127(&mut self,caps:(u32,u32),span:Span,child:EventId,out:&mut Vec)->Result<(),String> {let _=(caps,span,child,&out);{let mut slots=self.take_captures();self.rule_captures(caps,&mut slots);let caps=slots; +let mut v0=self.take_values();self.node_values(&caps,&[261],&[],None,&mut v0)?; +if !v0.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_BinaryExpr || k==tree::K_g_TinyExpressionP4AST_2e_BooleanOrExpr || k==tree::K_g_TinyExpressionP4AST_2e_ExpressionExpr || k==tree::K_g_TinyExpressionP4AST_2e_MethodInvocationExpr || k==tree::K_g_TinyExpressionP4AST_2e_ObjectExpr || k==tree::K_g_TinyExpressionP4AST_2e_StringConcatExpr}) {return Err("value: mapped value type mismatch".into());} +if v0.is_empty() && self.missing_field(&caps,&[261]) {return Ok(());} +if v0.len()!=1 {return Err("value requires one node".into());}let f0=v0.pop().unwrap();self.give_values(v0); +let f0:u32=f0; +self.give_captures(caps);let span=self.span(span);let node=self.tree.record(tree::K_g_TinyExpressionP4AST_2e_ExpressionExpr,127,span,&[f0]);out.push(node);Ok(())}} +fn map_rule_128(&mut self,caps:(u32,u32),span:Span,child:EventId,out:&mut Vec)->Result<(),String> {let _=(caps,span,child,&out);{let mut slots=self.take_captures();self.rule_captures(caps,&mut slots);let caps=slots; +let mut v0=self.take_values();self.node_values(&caps,&[262],&[],None,&mut v0)?; +if !v0.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_BinaryExpr || k==tree::K_g_TinyExpressionP4AST_2e_BooleanOrExpr || k==tree::K_g_TinyExpressionP4AST_2e_ExpressionExpr || k==tree::K_g_TinyExpressionP4AST_2e_MethodInvocationExpr || k==tree::K_g_TinyExpressionP4AST_2e_ObjectExpr || k==tree::K_g_TinyExpressionP4AST_2e_StringConcatExpr}) {return Err("value: mapped value type mismatch".into());} +if v0.is_empty() && self.missing_field(&caps,&[262]) {return Ok(());} +if v0.len()!=1 {return Err("value requires one node".into());}let f0=v0.pop().unwrap();self.give_values(v0); +let f0:u32=f0; +self.give_captures(caps);let span=self.span(span);let node=self.tree.record(tree::K_g_TinyExpressionP4AST_2e_ExpressionExpr,128,span,&[f0]);out.push(node);Ok(())}} +fn map_rule_129(&mut self,caps:(u32,u32),span:Span,child:EventId,out:&mut Vec)->Result<(),String> {let _=(caps,span,child,&out);{let mut slots=self.take_captures();self.rule_captures(caps,&mut slots);let caps=slots; +let mut v0=self.take_values();self.node_values(&caps,&[263],&[],None,&mut v0)?; +if !v0.iter().all(|value|{let k=self.tree.kind(*value);k==tree::K_g_TinyExpressionP4AST_2e_BinaryExpr || k==tree::K_g_TinyExpressionP4AST_2e_BooleanOrExpr || k==tree::K_g_TinyExpressionP4AST_2e_ExpressionExpr || k==tree::K_g_TinyExpressionP4AST_2e_MethodInvocationExpr || k==tree::K_g_TinyExpressionP4AST_2e_ObjectExpr || k==tree::K_g_TinyExpressionP4AST_2e_StringConcatExpr}) {return Err("value: mapped value type mismatch".into());} +if v0.is_empty() && self.missing_field(&caps,&[263]) {return Ok(());} +if v0.len()!=1 {return Err("value requires one node".into());}let f0=v0.pop().unwrap();self.give_values(v0); +let f0:u32=f0; +self.give_captures(caps);let span=self.span(span);let node=self.tree.record(tree::K_g_TinyExpressionP4AST_2e_ExpressionExpr,129,span,&[f0]);out.push(node);Ok(())}} /// 出現(capture / rule / token)の収集と、AST 構築が rule ごとに読む直下 capture 表を /// 1 回の走査で作る。以前は出現収集の後に AST 構築が rule ごとに `collect_captures` で /// 同じ木をもう一度下っていた。 diff --git a/rust/tinyexpression-rs/src/lib.rs b/rust/tinyexpression-rs/src/lib.rs index 5573af6c..2602df42 100644 --- a/rust/tinyexpression-rs/src/lib.rs +++ b/rust/tinyexpression-rs/src/lib.rs @@ -22,6 +22,7 @@ pub mod generated; mod diagnostic; mod evaluator; +mod family_projection; pub mod formula_info; pub mod formula_info_span; mod frontend; @@ -59,8 +60,8 @@ impl Error for FrontendError {} /// Parses the complete UTF-8 source from the grammar root only. /// -/// [`parse`] additionally retries the other result-family roots the way the Java facade does; -/// this entry point is the primary `Formula` parse on its own. +/// This entry point retains the grammar's raw Formula shape; [`parse`] also applies typed +/// semantic projection without recognizing the input again. pub fn parse_formula_root(source: &str) -> Result { frontend::parse_entry(None, source) } @@ -75,13 +76,7 @@ pub fn parse_formula_root_with_options( /// Parses the complete UTF-8 source and returns an owned, source-preserving typed AST. pub fn parse(source: &str) -> Result { - match frontend::parse_entry(None, source) { - Ok(ast) => select_explicit_result_family(source, ast), - Err(primary @ FrontendError::Parse(_)) => { - parse_alternate_root(source).unwrap_or(Err(primary)) - } - Err(other) => Err(other), - } + select_explicit_result_family(source, frontend::parse_entry(None, source)?) } fn normalize_direct_match_root(ast: Ast, source: &str) -> Ast { @@ -260,30 +255,39 @@ fn select_explicit_result_family(source: &str, ast: Ast) -> Result "NumberMatchExpression", - (true, ResultFamily::String) => "StringMatchExpression", - (true, ResultFamily::Boolean) => "BooleanMatchExpression", - (false, ResultFamily::String) => "StringExpression", - (false, ResultFamily::Boolean) => "BooleanExpression", - (false, ResultFamily::Object) => "ObjectExpression", - (false, ResultFamily::Number) | (true, ResultFamily::Object) => unreachable!(), - }; let document_span = if document { document_expression_span(&ast) } else { None }; - let family_source = document_span - .map(|span| mask_outside(source, span)) - .unwrap_or_else(|| source.to_owned()); - match parse_family_root(&family_source, rule_name, document_span) { - Err(FrontendError::Parse(_)) if match_result => Err(type_mismatch(source)), - Err(error) => Err(error), - Ok(reparsed) => match document_span { - Some(span) => replace_document_expression(ast, reparsed, span), - None => Ok(reparsed), - }, + let target = if match_result { + match_root(&ast).unwrap_or(&ast) + } else { + &ast + }; + let family_name = match family { + ResultFamily::Number => "NUMBER", + ResultFamily::String => "STRING", + ResultFamily::Boolean => "BOOLEAN", + ResultFamily::Object => "OBJECT", + }; + let projected = family_projection::project(target, family_name, source).map_err(|_| { + if match_result { + type_mismatch(source) + } else { + FrontendError::Mapping(format!( + "Explicit result type could not be parsed as {family_name}: {source}" + )) + } + })?; + let root_span = document_span.unwrap_or(Span { + start: 0, + end: source.chars().count(), + }); + let projected = family_projection::with_root_span(projected, root_span); + match document_span { + Some(span) => replace_document_expression(ast, projected, span), + None => Ok(wrap_expression_root(projected, source.chars().count())), } } @@ -294,26 +298,12 @@ fn document_expression_span(ast: &Ast) -> Option { } } -fn mask_outside(source: &str, span: Span) -> String { - source - .chars() - .enumerate() - .map(|(index, value)| { - if (index >= span.start && index < span.end) || matches!(value, '\n' | '\r' | '\t') { - value - } else { - ' ' - } - }) - .collect() -} - fn replace_document_expression( document: Ast, - reparsed: Ast, + projected: Ast, expression_span: Span, ) -> Result { - let replacement = match reparsed { + let replacement = match projected { Ast::r#FormulaExpr { r#expression, .. } => match *r#expression { Ast::r#ExpressionExpr { r#value, .. } => *r#value, value => value, @@ -346,15 +336,6 @@ fn replace_document_expression( } } -fn parse_family_root( - source: &str, - rule_name: &str, - clip_to: Option, -) -> Result { - frontend::parse_entry_clipped(Some(rule_name), source, clip_to) - .map(|value| wrap_expression_root(value, source.chars().count())) -} - fn type_mismatch(source: &str) -> FrontendError { FrontendError::TypeMismatch { message: "P4 match type mismatch: case and default values must use one result family" @@ -496,22 +477,6 @@ fn direct_value_hint(value: &AstValue) -> Option { } } -/// Mirrors Java's `P4PreferredAstMapper` compatibility retries for PEG root dispatch. -/// -/// `Expression` intentionally tries `NumberExpression` before `BooleanExpression` so that -/// arithmetic such as `$a+$b` is consumed as one expression. A bare comparison such as `1<2` -/// therefore commits the numeric prefix `1`, and the enclosing `Formula` subsequently fails at -/// EOF. Retrying only after that failure keeps the successful numeric hot path unchanged while -/// accepting the complete boolean expression. -fn parse_alternate_root(source: &str) -> Option> { - for rule_name in ["BooleanExpression", "StringExpression", "ObjectExpression"] { - if let Ok(value) = frontend::parse_entry(Some(rule_name), source) { - return Some(Ok(wrap_expression_root(value, source.chars().count()))); - } - } - None -} - fn wrap_expression_root(value: Ast, source_len: usize) -> Ast { let value = match value { Ast::r#BooleanOrExpr { diff --git a/rust/tinyexpression-rs/src/runtime/mod.rs b/rust/tinyexpression-rs/src/runtime/mod.rs index e246b544..116a2147 100644 --- a/rust/tinyexpression-rs/src/runtime/mod.rs +++ b/rust/tinyexpression-rs/src/runtime/mod.rs @@ -18,7 +18,7 @@ pub mod code_block; pub(crate) mod compile; pub mod java; mod ops; -mod select; +pub(crate) mod select; pub mod trace; mod walk; diff --git a/rust/tinyexpression-rs/src/runtime/select.rs b/rust/tinyexpression-rs/src/runtime/select.rs index 8cc17f00..231a3f9a 100644 --- a/rust/tinyexpression-rs/src/runtime/select.rs +++ b/rust/tinyexpression-rs/src/runtime/select.rs @@ -1,6 +1,6 @@ //! Evaluation-root selection: the Java `P4PreferredAstMapper.parseByAstSimpleNamesDetailed` //! path that `AstEvaluatorCalculator` uses (candidate order, whole-source coverage, and the -//! explicit result-family re-selection driven by typed variable hints). +//! explicit result-family projection driven by typed variable hints). #![allow(non_snake_case)] @@ -8,7 +8,7 @@ use super::ast_meta::{children, node_name, record_children}; use super::java; use super::{ErrorKind, EvalError, ResultType}; use crate::generated::ast::{Ast, AstValue}; -use crate::{frontend, FrontendError, Span}; +use crate::{frontend, Span}; /// `TinyExpressionParserCapabilities.stripJavaStyleCommentsPreservingLayout`, per code point: /// comments outside quotes become spaces (line breaks kept), so offsets are unchanged. @@ -253,21 +253,103 @@ fn map_candidates( ))) } -/// Parses like `parseRootToken`: the grammar root, then the boolean, string and object family -/// roots when the root parse fails. Returns the tree the Java mapper would see (no synthetic -/// `FormulaExpr` around an alternate root). +/// Recognizes Formula once and preserves the historical public subtree for bare comparisons. fn parse_root(source: &str) -> Result { - match frontend::parse_entry(None, source) { - Ok(ast) => Ok(ast), - Err(primary @ FrontendError::Parse(_)) => { - for rule in ["BooleanExpression", "StringExpression", "ObjectExpression"] { - if let Ok(ast) = frontend::parse_entry(Some(rule), source) { - return Ok(ast); + let ast = frontend::parse_entry(None, source)?; + let stripped = strip_comments(source); + if !is_document(&ast, &stripped) { + if let Ast::FormulaExpr { expression, .. } = &ast { + if let Ast::ExpressionExpr { value, .. } = expression.as_ref() { + if legacy_numeric_prefix(value) { + return Ok(crate::family_projection::with_root_span( + *value.clone(), + Span { + start: 0, + end: stripped.len(), + }, + )); } } - Err(primary.into()) } - Err(other) => Err(other.into()), + } + Ok(ast) +} + +fn legacy_numeric_prefix(ast: &Ast) -> bool { + match ast { + Ast::StringConcatExpr { left, op, .. } => !op.is_empty() && numeric_value(left), + Ast::BooleanOrExpr { left, .. } => { + let Ast::BooleanAndExpr { left, .. } = left.as_ref() else { + return false; + }; + let Ast::BooleanXorExpr { left, .. } = left.as_ref() else { + return false; + }; + let Ast::BooleanFactorExpr { + value: AstValue::Node(value), + .. + } = left.as_ref() + else { + return false; + }; + match value.as_ref() { + Ast::ComparisonExpr { .. } => true, + Ast::StringComparisonExpr { left, .. } => match left.as_ref() { + Ast::StringConcatExpr { left, .. } => numeric_value(left), + _ => false, + }, + Ast::BooleanEqualityExpr { left, .. } => numeric_value(left), + value => numeric_atom(value), + } + } + _ => false, + } +} + +fn numeric_value(value: &AstValue) -> bool { + matches!(value, AstValue::Node(node) if numeric_atom(node)) +} + +fn numeric_atom(ast: &Ast) -> bool { + match ast { + Ast::VariableRefExpr { .. } + | Ast::StringTypedVariableRefExpr { .. } + | Ast::MethodInvocationExpr { .. } + | Ast::IfExpr { .. } => true, + Ast::StringConcatExpr { left, right, .. } => { + numeric_value(left) && right.iter().all(numeric_value) + } + Ast::StringMatchExpr { + firstCase, + moreCases, + defaultCase, + .. + } + | Ast::BooleanMatchExpr { + firstCase, + moreCases, + defaultCase, + .. + } => std::iter::once(firstCase.as_ref()) + .chain(moreCases.iter()) + .chain(std::iter::once(defaultCase.as_ref())) + .all(|case| case_value(case).is_some_and(numeric_atom)), + Ast::BooleanOrExpr { left, op, .. } if op.is_empty() => { + let Ast::BooleanAndExpr { left, op, .. } = left.as_ref() else { + return false; + }; + if !op.is_empty() { + return false; + } + let Ast::BooleanXorExpr { left, op, .. } = left.as_ref() else { + return false; + }; + if !op.is_empty() { + return false; + } + matches!(left.as_ref(), Ast::BooleanFactorExpr { value, .. } if numeric_value(value)) + } + _ => false, } } @@ -287,8 +369,7 @@ pub(crate) fn select_root( .iter() .any(|c| is_typed_family_root(c)); let root = if earlier_typed_family { - let selected = - select_explicit_result_family(source, stripped, &candidates, parsed.clone())?; + let selected = select_explicit_result_family(source, stripped, parsed.clone())?; let selected_index = candidates.iter().position(|c| *c == node_name(&selected)); match selected_index { Some(index) if index <= parsed_index => selected, @@ -574,24 +655,9 @@ fn is_document(ast: &Ast, stripped: &[char]) -> bool { strip_chars(stripped) != strip_chars(&stripped[start..end]) } -fn mask_outside(source: &str, span: Span) -> String { - source - .chars() - .enumerate() - .map(|(index, value)| { - if (index >= span.start && index < span.end) || matches!(value, '\n' | '\r' | '\t') { - value - } else { - ' ' - } - }) - .collect() -} - fn select_explicit_result_family( source: &str, stripped: &[char], - candidates: &[&'static str], parsed: Ast, ) -> Result { let document = is_document(&parsed, stripped); @@ -608,55 +674,39 @@ fn select_explicit_result_family( if current_match.is_some() && family == Family::Object { return Err(mismatch(source)); } - let rule = match (family, current_match.is_some()) { - (Family::String, true) => "StringMatchExpression", - (Family::String, false) => "StringExpression", - (Family::Boolean, true) => "BooleanMatchExpression", - (Family::Boolean, false) => "BooleanExpression", - (Family::Object, _) => "ObjectExpression", - (Family::Number, true) => "NumberMatchExpression", - (Family::Number, false) => unreachable!("number family returns early"), - }; let expression_span = match (&parsed, document) { (Ast::FormulaExpr { expression, .. }, true) => Some(expression.span()), _ => None, }; - let family_source = expression_span - .map(|span| mask_outside(source, span)) - .unwrap_or_else(|| source.to_owned()); - let reparsed = match frontend::parse_entry_clipped(Some(rule), &family_source, expression_span) - { - Ok(ast) => ast, - Err(_) if current_match.is_some() => return Err(mismatch(source)), - Err(_) => { - return Err(parse_failure(format!( - "Explicit result type could not be parsed as {}: {source}", - format!("{family:?}").to_lowercase() - ))) - } + let target = if current_match.is_some() { + result_root(&parsed) + } else { + &parsed }; - let mut family_candidates: Vec<&'static str> = vec![match (family, current_match.is_some()) { - (Family::String, true) => "StringMatchExpr", - (Family::String, false) => "StringConcatExpr", - (Family::Boolean, true) => "BooleanMatchExpr", - (Family::Boolean, false) => "BooleanOrExpr", - (Family::Object, _) => "ObjectExpr", - (Family::Number, _) => "NumberMatchExpr", - }]; - for candidate in candidates { - if !family_candidates.contains(candidate) { - family_candidates.push(candidate); - } - } - let family_stripped = strip_comments(&family_source); - let (mut selected, _) = map_candidates(&reparsed, &family_stripped, &family_candidates, true)?; - if family == Family::Object && !matches!(selected, Ast::ObjectExpr { .. }) { - let span = selected.span(); - selected = Ast::ObjectExpr { - span, - value: Box::new(selected), - }; - } + let family_name = match family { + Family::String => "STRING", + Family::Boolean => "BOOLEAN", + Family::Object => "OBJECT", + Family::Number => "NUMBER", + }; + let selected = + crate::family_projection::project(target, family_name, source).map_err(|_| { + if current_match.is_some() { + mismatch(source) + } else { + parse_failure(format!( + "Explicit result type could not be parsed as {}: {source}", + family_name.to_lowercase() + )) + } + })?; + let selected = crate::family_projection::with_root_span( + selected, + expression_span.unwrap_or(Span { + start: 0, + end: source.chars().count(), + }), + ); match (parsed, expression_span) { ( Ast::FormulaExpr { diff --git a/rust/tinyexpression-rs/tests/fixtures/root-document-dispatch.tsv b/rust/tinyexpression-rs/tests/fixtures/root-document-dispatch.tsv new file mode 100644 index 00000000..30b1787e --- /dev/null +++ b/rust/tinyexpression-rs/tests/fixtures/root-document-dispatch.tsv @@ -0,0 +1,7 @@ +# id source result type value expression AST start CP end CP declarations methods +number-comparison var $n as number set 1;$n<2 boolean true BooleanOrExpr 23 27 1 0 +string-prefix var $s as string set '😀';$s+'x' string 😀x StringConcatExpr 25 31 1 0 +family-string-prefix var $s as string set '👨‍👩‍👧‍👦';$s+'x' string 👨‍👩‍👧‍👦x StringConcatExpr 31 37 1 0 +annotated-comparison @bench(name='😀') 1<2 boolean true BooleanOrExpr 17 20 0 0 +method-after-comparison var $n as number set 1;$n<2 float unused(){2} boolean true BooleanOrExpr 23 28 1 1 +hinted-string var $s as string set '😀';$s as string string 😀 StringConcatExpr 25 37 1 0 diff --git a/rust/tinyexpression-rs/tests/fixtures/root-expression.tsv b/rust/tinyexpression-rs/tests/fixtures/root-expression.tsv index f94f3dd1..0baa0df9 100644 --- a/rust/tinyexpression-rs/tests/fixtures/root-expression.tsv +++ b/rust/tinyexpression-rs/tests/fixtures/root-expression.tsv @@ -35,3 +35,14 @@ document-typed-number-match var $n as number;match{true->$n as number,default->$ document-typed-string-match var $s as string;match{true->$s as string,default->$s String} FormulaExpr StringMatchExpr StringCaseValueExpr document-typed-string-with-method var $s as string;$s as string string part(){'x'} FormulaExpr StringConcatExpr VariableRefExpr annotation-typed-string @foo(x=1) $s as string FormulaExpr StringConcatExpr VariableRefExpr +boolean-variable-and $a&true BooleanOrExpr BooleanOrExpr VariableRefExpr +boolean-variable-equality $a==true BooleanOrExpr BooleanOrExpr BooleanEqualityExpr +string-variable-prefix $s+'x' StringConcatExpr StringConcatExpr VariableRefExpr +parenthesized-variable-and ($b)&true BooleanOrExpr BooleanOrExpr VariableRefExpr +parenthesized-string-variable-prefix ($s)+'x' StringConcatExpr StringConcatExpr VariableRefExpr +parenthesized-comparison (1<2) FormulaExpr BooleanOrExpr ComparisonExpr +parenthesized-string-comparison ($s=='x')&true FormulaExpr BooleanOrExpr StringComparisonExpr +string-literal-prefix 'a'+'x' FormulaExpr StringConcatExpr StringConcatExpr +unicode-comment-comparison /*👨‍👩‍👧‍👦*/ 1<2 BooleanOrExpr BooleanOrExpr ComparisonExpr +boolean-variable-match-prefix match{true->$a,default->$b}&true BooleanOrExpr BooleanOrExpr BooleanMatchExpr +string-variable-match-prefix match{true->$a,default->$b}+'x' StringConcatExpr StringConcatExpr StringMatchExpr diff --git a/rust/tinyexpression-rs/tests/fixtures/root-family-projection.tsv b/rust/tinyexpression-rs/tests/fixtures/root-family-projection.tsv new file mode 100644 index 00000000..fd3e4203 --- /dev/null +++ b/rust/tinyexpression-rs/tests/fixtures/root-family-projection.tsv @@ -0,0 +1,20 @@ +# id source family entry semantic root +string-as $s as string StringExpression StringConcatExpr +string-no-as $s String StringExpression StringConcatExpr +string-whitespace $s as String StringExpression StringConcatExpr +string-comments /*😀*/ $s /*note*/ as string StringExpression StringConcatExpr +string-parens ($s as string) StringExpression StringConcatExpr +string-nested-parens (($s String)) StringExpression StringConcatExpr +boolean-as $b as boolean BooleanExpression BooleanOrExpr +boolean-no-as $b Boolean BooleanExpression BooleanOrExpr +boolean-parens ($b as boolean) BooleanExpression BooleanOrExpr +boolean-nested-parens (($b Boolean)) BooleanExpression BooleanOrExpr +object-as $o as object ObjectExpression ObjectExpr +object-parens ($o Object) ObjectExpression ObjectExpr +string-match match{true->$s as string,default->$t String} StringMatchExpression StringMatchExpr +string-match-parenthesized-value match{true->($s as string),default->(($t String))} StringMatchExpression StringMatchExpr +boolean-match match{true->$b as boolean,default->$c Boolean} BooleanMatchExpression BooleanMatchExpr +boolean-match-parenthesized-value match{true->($b as boolean),default->(($c Boolean))} BooleanMatchExpression BooleanMatchExpr +string-name-spacing $ long_Name2 as String StringExpression StringConcatExpr +string-name-comments $ /*😀*/ long_Name2 /*note*/ as /*hint*/ String StringExpression StringConcatExpr +string-no-as-comments $ /*😀*/ long_Name2 /*hint*/ String StringExpression StringConcatExpr diff --git a/rust/tinyexpression-rs/tests/parser_cli.rs b/rust/tinyexpression-rs/tests/parser_cli.rs index 474d284d..28467231 100644 --- a/rust/tinyexpression-rs/tests/parser_cli.rs +++ b/rust/tinyexpression-rs/tests/parser_cli.rs @@ -106,7 +106,7 @@ fn library_parses_multiline_document() { } #[test] -fn library_retries_bare_boolean_comparisons_without_changing_numeric_root_selection() { +fn grammar_resolves_bare_boolean_comparisons_without_changing_numeric_root_selection() { for source in ["1<2", "1==1", "1+2*3>=7", "1<2&2<3", "1>2|3>2"] { let ast = parse(source).unwrap_or_else(|error| panic!("{source}: {error}")); assert_eq!(ast.span().end, source.chars().count(), "{source}"); @@ -278,7 +278,7 @@ fn fallback_preserves_formula_and_expression_span_contract() { } #[test] -fn failed_boolean_retry_keeps_the_primary_formula_diagnostic() { +fn invalid_root_keeps_the_formula_diagnostic() { let source = "1<"; let unmemoized = ParseOptions { memo: false, diff --git a/rust/tinyexpression-rs/tests/root_family_projection.rs b/rust/tinyexpression-rs/tests/root_family_projection.rs new file mode 100644 index 00000000..8f2ab8a3 --- /dev/null +++ b/rust/tinyexpression-rs/tests/root_family_projection.rs @@ -0,0 +1,195 @@ +use tinyexpression_rs::generated::{compat, ubnfc}; +use tinyexpression_rs::{parse, Ast}; + +// Explicit non-root entries are an independent structural oracle, never production retries. +#[test] +fn explicit_hint_projection_retains_subtree_structure_and_cp_spans() { + for line in include_str!("fixtures/root-family-projection.tsv") + .lines() + .filter(|line| !line.is_empty() && !line.starts_with('#')) + { + let fields: Vec<_> = line.split('\t').collect(); + assert_eq!(fields.len(), 4, "{line}"); + let source = fields[1]; + let result = ubnfc::parse_entry_with_options( + "TinyExpressionP4", + Some(fields[2]), + source, + ubnfc::ParseOptions::default(), + ) + .unwrap(); + assert!( + result.ok, + "{} explicit entry: {:?}", + fields[0], result.diagnostics + ); + let expected = compat::convert(result.ast.as_ref().unwrap()).unwrap(); + let parsed = parse(source).unwrap_or_else(|error| panic!("{}: {error}", fields[0])); + let Ast::FormulaExpr { expression, .. } = parsed else { + panic!("{} Formula", fields[0]); + }; + let Ast::ExpressionExpr { value, .. } = *expression else { + panic!("{} Expression", fields[0]); + }; + assert_eq!(*value, expected, "{} projected tree", fields[0]); + parse("'👨‍👩‍👧‍👦' + 'x'").unwrap(); + assert_eq!(*value, expected, "{} retained tree", fields[0]); + } +} + +#[test] +fn identifier_alphabet_and_illegal_unicode_tail_are_not_broadened() { + for source in ["$名 as string", "$𐐀 as string", "/*😀*/1<2@", ""] { + let error = parse(source).unwrap_err(); + if source == "/*😀*/1<2@" { + let tinyexpression_rs::FrontendError::Parse(diagnostic) = error else { + panic!("syntax diagnostic"); + }; + assert_eq!(diagnostic.farthest.offset, 8, "code point failure position"); + } + } +} + +#[test] +fn complete_document_branches_keep_declarations_values_and_cp_positions() { + use tinyexpression_rs::runtime::{ + Context, ContextClock, Host, NoExternals, Options, Program, ResultType, XorShiftRandom, + }; + use tinyexpression_rs::{Span, Value}; + for line in include_str!("fixtures/root-document-dispatch.tsv") + .lines() + .filter(|line| !line.is_empty() && !line.starts_with('#')) + { + let fields: Vec<_> = line.split('\t').collect(); + assert_eq!(fields.len(), 9, "{line}"); + let source = fields[1]; + let result_type = if fields[2] == "string" { + ResultType::String + } else { + ResultType::Boolean + }; + let expected = if fields[2] == "string" { + Value::String(fields[3].to_owned()) + } else { + Value::Boolean(fields[3] == "true") + }; + let program = Program::new(source, Options::new(result_type)).unwrap(); + let Ast::FormulaExpr { + declarations, + expression, + methods, + span, + .. + } = program.root().unwrap() + else { + panic!("{} Formula", fields[0]); + }; + assert_eq!( + declarations.len(), + fields[7].parse::().unwrap(), + "{} declarations", + fields[0] + ); + assert_eq!( + methods.len(), + fields[8].parse::().unwrap(), + "{} methods", + fields[0] + ); + assert_eq!( + *span, + Span { + start: 0, + end: source.chars().count() + }, + "{} Formula span", + fields[0] + ); + assert_eq!( + expression.span(), + Span { + start: fields[5].parse().unwrap(), + end: fields[6].parse().unwrap() + }, + "{} expression span", + fields[0] + ); + let Ast::ExpressionExpr { value, .. } = expression.as_ref() else { + panic!("{} Expression", fields[0]); + }; + assert!( + value + .canonical_json() + .starts_with(&format!("{{\"type\":\"{}\"", fields[4])), + "{} value", + fields[0] + ); + let mut external = NoExternals; + let mut random = XorShiftRandom::new(1); + let mut host = Host { + external: &mut external, + clock: &ContextClock, + random: &mut random, + }; + parse("'different😀'").unwrap(); + assert_eq!( + program.eval_tree(&mut Context::new(), &mut host).unwrap(), + expected, + "{} walker", + fields[0] + ); + assert_eq!( + program + .compile() + .eval(&mut Context::new(), &mut host) + .unwrap(), + expected, + "{} compiled", + fields[0] + ); + } +} + +#[test] +fn losing_formula_branches_do_not_duplicate_or_leak_scope_metadata() { + for source in [ + "var $n as number set 1;$n<2", + "var $n as number set 1;$n<2 @", + "var $n as number set 1;$n<2 float unused($x as number){$x} @", + ] { + let result = ubnfc::parse_entry_with_options( + "TinyExpressionP4", + None, + source, + ubnfc::ParseOptions { + occurrences: true, + ..ubnfc::ParseOptions::default() + }, + ) + .unwrap(); + assert_eq!(result.ok, !source.ends_with('@'), "{source}"); + assert_eq!( + result.declarations.len(), + usize::from(result.ok), + "{source} declarations" + ); + assert_eq!( + result.references.len(), + usize::from(result.ok), + "{source} references" + ); + assert_eq!(result.ast.is_some(), result.ok, "{source} AST"); + assert_eq!( + result + .captures + .iter() + .filter(|capture| capture.name == "expression") + .count(), + usize::from(result.ok), + "{source} expression captures" + ); + if !result.ok { + assert!(result.captures.is_empty(), "{source} speculative captures"); + } + } +} diff --git a/rust/ubnfc-pin.txt b/rust/ubnfc-pin.txt index f33fa8d8..d8697158 100644 --- a/rust/ubnfc-pin.txt +++ b/rust/ubnfc-pin.txt @@ -1,7 +1,7 @@ # Generated by rust/scripts/regenerate-ubnfc.sh --write; do not edit hashes by hand. ubnfc_commit=f54d6b90466ffde14066d32f911ed642b1e49201 grammar=tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf -grammar_sha256=184cce54c70b0e3ebbdedaca5a0af0068ec56b2d7e33cda39d94f861c6433f46 +grammar_sha256=a40d6f5f57c3b3a67e0c627bfc99c603304593087cf428b50bb85754e23f4daf grammar_file 28bcfc9f2e684b7326561f281155a1d0140dc67145d178764841bc7dc87a81cb grammar/formula-info.ubnf grammar_file 492cafad9f8f3278480d862d0f1fadeb5f61bf5c627b8072b32f6d90c91d3ff1 scripts/prepare-ubnfc-layout.py grammar_file 2701f6884ea6c712d28c76ec3d340c3b27fca4575846239bd0854933205f4b67 tools/tinyexpression-p4-lsp-vscode/grammar/.ubnf-cache/packages/2701f6884ea6c712d28c76ec3d340c3b27fca4575846239bd0854933205f4b67.json @@ -10,10 +10,10 @@ grammar_file 53ad774e87bd95a498ac744a721f22bdaf877721c0da13e8045aaeaea09b8179 to grammar_file 55f5f3b9289cb41b74d5c617e0b2ec1adbf24eb7fd8ca11aa02eda311b92bf2b tools/tinyexpression-p4-lsp-vscode/grammar/lexical/identifiers.ubnf grammar_file 1b1fcaa633f9477ad5414ecfed64693d1d50bf0aaa02775c5d67b39a18e8244f tools/tinyexpression-p4-lsp-vscode/grammar/lexical/numbers.ubnf grammar_file 08f209d29c84aa1addcb57eba24d7738c27bc8921cb13f1fbd5040dff6296a26 tools/tinyexpression-p4-lsp-vscode/grammar/lexical/strings.ubnf -grammar_file 184cce54c70b0e3ebbdedaca5a0af0068ec56b2d7e33cda39d94f861c6433f46 tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf +grammar_file a40d6f5f57c3b3a67e0c627bfc99c603304593087cf428b50bb85754e23f4daf tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf grammar_file 2074b51b078eecd61c5a0bbd20399f423b20faada77d331b96f212692c27bdf7 tools/tinyexpression-p4-lsp-vscode/grammar/ubnf.json grammar_file 25745248036e459f3b69ad202f12b52d857b6f70abc02dac23caf4e7745f4db0 tools/tinyexpression-p4-lsp-vscode/grammar/ubnf.lock.json -ir_sha256=55d5981a9da79a887034778aa1853dffea92162cb5e9be18c840b072cafb13a0 +ir_sha256=0c443bc087c851c3fec592cad9fe58389719bdde50f3ca00d4dd1f8bd786ff1f scanners=scanners/rust/scanners.rs scanners_sha256=593a2736f7f20fa5d61456e25e7d961cefbd427d93b05a7ced46b41506e6a412 scanners_tests_sha256=f33b0ec1173a2db55c9f3bf613b19112ec570e132c205fd7da203f9b09a81219 diff --git a/rust/ubnfc-vendored.sha256 b/rust/ubnfc-vendored.sha256 index cd514bad..84b346a3 100644 --- a/rust/ubnfc-vendored.sha256 +++ b/rust/ubnfc-vendored.sha256 @@ -1,9 +1,9 @@ ae54d3d9ed604edb5f2716b149c4c195a76c8f85d92174743f3447c0c4ceb3e9 ./api.rs -08a73f50f944b5ecc4bbeffd6195d57f6c9926b697f63c07e4b8e624b0a2de35 ./ast.rs +0f3f915a7192efc244cfba5bd607eea1f59088c8c40cec7546a5ff347064baa8 ./ast.rs 366914c45bc33ac718e9459a30ab02d667250ac9cbd11467aefb3c490f45cf7d ./evaluator.rs -971bda3ab967683dda003c5eb54f2e1e70067294234ab3b47bc8ccc175eb8745 ./metadata.rs +63fd3beb2755e9966af248d31f2dcc90a96e06e38856b5e83e7eb56a5874f8d9 ./metadata.rs 2600addd3a5aafbbe00c4ac6f51349ac78b475161e2801fbdaae56530a49b7a2 ./mod.rs -a2c46d6204588ece1c0b87ac901ac22e06729628331116d113d9061d61993db6 ./parser.rs +8ae0c00068271abfc9dbd283ef8389af000610e1cb1c5a67c1fff65226201cf6 ./parser.rs 5a4aa9f71fcf9d19651d3830375aee7cf66d0c860eb9e878c4138700c11b8924 ./rt/cursor.rs 76caeedfe7858408667a1dd13d4314e980bf1b138d32ce38e7dcf56ef393ca7c ./rt/diag.rs 3f4c7fc804b0231257ba47b5346f40a6ed15268961a6475ff45a85ec1ec0da0e ./rt/input.rs @@ -11,6 +11,6 @@ a2c46d6204588ece1c0b87ac901ac22e06729628331116d113d9061d61993db6 ./parser.rs 104447e27c2f65d0b23363488d589ff28416c7a02117ff1094454508846b2459 ./rt/memo.rs 03f8edd435ccd0d3038dac1d72307682dbee098b4b111c387c520b50a3f58eaf ./rt/mod.rs 757d780ab6a67ce633c86820bcf9f7ab8291af006801eac3d36219ecb8747fa2 ./rt/scope.rs -d8ef472d6b20cdc6d8b1a1f3e1e1149103c08b9d99bc758f1488422c43eadfac ./runtime.rs +97376e0982462296b444c714dd6a52bc9eea26f8d2360e11154ee5f7ff685ec3 ./runtime.rs 1434d9977ac384617ee7dc4a37b0490b7d61cda23f06829b439663c6636c1d81 ./scanners.rs f33b0ec1173a2db55c9f3bf613b19112ec570e132c205fd7da203f9b09a81219 ./scanners_tests.rs diff --git a/src/main/java/org/unlaxer/tinyexpression/p4/ClassicP4PreferredAstMapper.java b/src/main/java/org/unlaxer/tinyexpression/p4/ClassicP4PreferredAstMapper.java index 454a528e..c91008d6 100644 --- a/src/main/java/org/unlaxer/tinyexpression/p4/ClassicP4PreferredAstMapper.java +++ b/src/main/java/org/unlaxer/tinyexpression/p4/ClassicP4PreferredAstMapper.java @@ -148,7 +148,7 @@ public static ParsedAst parseByAstSimpleNamesDetailed( boolean earlierTypedFamily = parsedIndex > 0 && candidates.subList(0, parsedIndex).stream() .anyMatch(ClassicP4PreferredAstMapper::isTypedFamilyRoot); if (!earlierTypedFamily) return parsed; - ParsedAst selected = selectExplicitResultFamily(source, candidates, parsed, deadlineNanos); + ParsedAst selected = selectExplicitResultFamily(source, parsed); int selectedIndex = candidates.indexOf(selected.ast().getClass().getSimpleName()); return selectedIndex >= 0 && selectedIndex <= parsedIndex ? selected : parsed; } @@ -171,7 +171,7 @@ public static ParsedAst parseDetailed(String formula, ExpressionType preferredRe long deadlineNanos = defaultParseDeadlineNanos(); ParsedAst parsed = parseMappedCandidates( source, candidates, preferredResultType == null, deadlineNanos); - return selectExplicitResultFamily(source, candidates, parsed, deadlineNanos); + return selectExplicitResultFamily(source, parsed); } /** @@ -326,6 +326,18 @@ private static ParsedAst mapCandidates( try { tree = P4SourceMapping.mapOnce( rootToken, parsedRoot.legacyToken(), parserSource, parsedRoot.entryPoint()); + P4SourceMapping.Selection mappedRoot = tree.select(null); + TinyExpressionP4AST canonical = P4RootProjection.canonicalRoot( + mappedRoot.ast(), mappedRoot.sourceText(), parserSource); + if (canonical != null) { + P4SourceMapping.Mapped original = tree; + String name = canonical.getClass().getSimpleName(); + P4SourceMapping.Selection subtree = new P4SourceMapping.Selection(mappedRoot.token(), + canonical, mappedRoot.sourceText().withWholeSourceNode(canonical)); + tree = preferred -> preferred == null || "FormulaExpr".equals(preferred) + || "ExpressionExpr".equals(preferred) || name.equals(preferred) + ? subtree : original.select(preferred); + } } catch (RuntimeException failure) { // Preserve candidate conversion and default propagation even when mapping itself fails. tree = preferred -> { throw failure; }; @@ -368,7 +380,7 @@ private static ParsedAst mapCandidates( * influences root-family selection. */ private static ParsedAst selectExplicitResultFamily( - String source, List candidates, ParsedAst parsed, long deadlineNanos) { + String source, ParsedAst parsed) { boolean document = isDocument(source, parsed); ResultFamily family = explicitResultFamily(parsed.ast()); ResultFamily currentMatchFamily = matchFamily(parsed.ast()); @@ -380,74 +392,35 @@ private static ParsedAst selectExplicitResultFamily( throw matchTypeMismatch(source); } String parserSource = TinyExpressionParserCapabilities.stripJavaStyleCommentsPreservingLayout(source); - TinyExpressionP4AST.FormulaExpr documentRoot = - document && parsed.ast() instanceof TinyExpressionP4AST.FormulaExpr formula ? formula : null; - int[] documentExpressionSpan = null; - int documentExpressionOffset = 0; - if (documentRoot != null) { - documentExpressionSpan = parsed.sourceText().spanOf(documentRoot.expression()) - .orElseThrow(() -> new IllegalArgumentException( - "No owned source span for Formula expression")); - documentExpressionOffset = documentExpressionSpan[0]; - parserSource = parserSource.substring( - parserSource.offsetByCodePoints(0, documentExpressionSpan[0]), - parserSource.offsetByCodePoints(0, documentExpressionSpan[1])); - } - Class rootClass = switch (family) { - case STRING -> currentMatchFamily != null - ? TinyExpressionP4Parsers.StringMatchExpressionParser.class - : TinyExpressionP4Parsers.StringExpressionParser.class; - case BOOLEAN -> currentMatchFamily != null - ? TinyExpressionP4Parsers.BooleanMatchExpressionParser.class - : TinyExpressionP4Parsers.BooleanExpressionParser.class; - case OBJECT -> TinyExpressionP4Parsers.ObjectExpressionParser.class; - case NUMBER -> { - if (currentMatchFamily != null) { - yield TinyExpressionP4Parsers.NumberMatchExpressionParser.class; - } - throw new IllegalStateException("number family already selected"); - } - }; - ParseResult reparsed = parseWithRoot(Parser.get(rootClass), parserSource, deadlineNanos); - if (!reparsed.fullyConsumed(parserSource)) { + TinyExpressionP4AST.FormulaExpr documentRoot = document + && parsed.ast() instanceof TinyExpressionP4AST.FormulaExpr formula ? formula : null; + P4ResultFamilyProjection.Result projection; + try { + projection = P4ResultFamilyProjection.project( + currentMatchFamily != null ? resultRoot(parsed.ast()) : parsed.ast(), + family.name(), parsed.sourceText(), parserSource); + } catch (IllegalArgumentException incompatible) { if (currentMatchFamily != null) throw matchTypeMismatch(source); - throw new IllegalArgumentException( - "Explicit result type could not be parsed as " + family.name().toLowerCase() + ": " + source); - } - ArrayList familyCandidates = new ArrayList<>(); - addIfAbsent(familyCandidates, switch (family) { - case STRING -> currentMatchFamily != null ? "StringMatchExpr" : "StringConcatExpr"; - case BOOLEAN -> currentMatchFamily != null ? "BooleanMatchExpr" : "BooleanOrExpr"; - case OBJECT -> "ObjectExpr"; - case NUMBER -> null; - }); - for (String candidate : candidates) addIfAbsent(familyCandidates, candidate); - ParsedAst selected = mapCandidates( - parserSource, - familyCandidates, - true, - new ParsedRoot( - reparsed.rootToken(), reparsed.legacyToken(), P4SourceMapping.EntryPoint.ALTERNATE)); - if (family == ResultFamily.OBJECT) { - if (selected.ast() instanceof TinyExpressionP4AST.ObjectExpr) { - selected = new ParsedAst(selected.ast(), "explicit:object", selected.sourceText()); - } else { - TinyExpressionP4AST.ObjectExpr object = new TinyExpressionP4AST.ObjectExpr(selected.ast()); - selected = new ParsedAst(object, "explicit:object", - selected.sourceText().withWholeSourceNode(object)); - } - } - if (documentRoot == null) return selected; - - TinyExpressionP4AST.ExpressionExpr expression = - new TinyExpressionP4AST.ExpressionExpr(selected.ast()); + throw new IllegalArgumentException("Explicit result type could not be parsed as " + + family.name().toLowerCase(java.util.Locale.ROOT) + ": " + source, incompatible); + } + TinyExpressionP4AST selected = projection.ast(); + String mode = family == ResultFamily.OBJECT ? "explicit:object" + : "preferred:" + selected.getClass().getSimpleName(); + if (documentRoot == null) return new ParsedAst(selected, mode, + projection.sourceText().withWholeSourceNode(selected)); + TinyExpressionP4AST.ExpressionExpr expression = new TinyExpressionP4AST.ExpressionExpr(selected); TinyExpressionP4AST.FormulaExpr formula = new TinyExpressionP4AST.FormulaExpr( - documentRoot.imports(), documentRoot.declarations(), expression, documentRoot.methods(), - documentRoot.codeBlocks()); - P4SourceText sourceText = parsed.sourceText().withOverlay( - selected.sourceText(), documentExpressionOffset, - formula, documentRoot, expression, documentRoot.expression()); - return new ParsedAst(formula, "document:" + selected.selectionMode(), sourceText); + documentRoot.imports(), documentRoot.declarations(), expression, + documentRoot.methods(), documentRoot.codeBlocks()); + P4SourceText base = parsed.sourceText(); + P4SourceText snapshot = P4SourceText.fromSnapshot(parserSource, value -> { + if (value == formula) return base.spanOf(documentRoot); + if (value == expression) return base.spanOf(documentRoot.expression()); + var projected = projection.sourceText().spanOf(value); + return projected.isPresent() ? projected : base.spanOf(value); + }); + return new ParsedAst(formula, "document:" + mode, snapshot); } private static ResultFamily matchFamily(TinyExpressionP4AST ast) { @@ -611,44 +584,13 @@ private static boolean coversWholeSource(String source, Token token) { return mappedSource != null && source.strip().equals(mappedSource.strip()); } - /** - * Parses {@code source} fully and returns the root token. - * - *

The grammar's top-level {@code Expression} rule tries {@code NumberExpression} - * before {@code BooleanExpression} so that arithmetic such as {@code $a+$b} is fully - * consumed (a BooleanExpression-first ordering would consume only {@code $a}). The - * generated combinator {@code Choice} is PEG first-match and never backtracks into a - * later alternative once an earlier one commits, so for a bare top-level boolean - * comparison such as {@code 1 > 0 & 2 > 1} the {@code NumberExpression} alternative - * matches only the leading {@code 1} and the root {@code Formula} rule then fails at - * EOF (issue #23). - * - *

Reordering the grammar alternatives cannot fix both cases under PEG, and adding a - * comparison-anchored top-level alternative roughly doubles parse time for - * {@code if(...comparison...)} formulas (the comparison's number operand re-parses the - * whole {@code if} block before failing). So the fix is applied here instead: when the - * standard {@code Formula} parse fails or under-consumes, retry the boolean, string, and - * object family roots in public dispatch order. Explicit type hints on an otherwise successful - * parse are handled separately from captured AST metadata. These retries add cost only for - * inputs the standard parse already rejected, leaving the hot path untouched. - */ + /** Recognizes Formula once; Expression owns the longest-family choice. */ private static ParsedRoot parseRootToken(String source, long deadlineNanos) { ParseResult primary = parseWithRoot(TinyExpressionP4Parsers.getRootParser(), source, deadlineNanos); if (primary.fullyConsumed(source)) { return new ParsedRoot( primary.rootToken(), primary.legacyToken(), P4SourceMapping.EntryPoint.ROOT); } - // Retry families in public dispatch order after the primary Formula rejects EOF. - for (Class alternate : List.of( - TinyExpressionP4Parsers.BooleanExpressionParser.class, - TinyExpressionP4Parsers.StringExpressionParser.class, - TinyExpressionP4Parsers.ObjectExpressionParser.class)) { - ParseResult result = parseWithRoot(Parser.get(alternate), source, deadlineNanos); - if (result.fullyConsumed(source)) { - return new ParsedRoot( - result.rootToken(), result.legacyToken(), P4SourceMapping.EntryPoint.ALTERNATE); - } - } if (!primary.succeeded()) { throw new IllegalArgumentException("Parse failed: " + source); } diff --git a/src/main/java/org/unlaxer/tinyexpression/p4/P4ResultFamilyProjection.java b/src/main/java/org/unlaxer/tinyexpression/p4/P4ResultFamilyProjection.java new file mode 100644 index 00000000..4a4f5007 --- /dev/null +++ b/src/main/java/org/unlaxer/tinyexpression/p4/P4ResultFamilyProjection.java @@ -0,0 +1,154 @@ +package org.unlaxer.tinyexpression.p4; + +import java.util.ArrayList; +import java.util.IdentityHashMap; +import java.util.List; +import java.util.Map; +import org.unlaxer.tinyexpression.generated.p4.TinyExpressionP4AST; +import org.unlaxer.tinyexpression.generated.p4.TinyExpressionP4AST.*; + +/** Projects the already recognized expression into its explicitly hinted family. No parser calls. */ +public final class P4ResultFamilyProjection { + public record Result(TinyExpressionP4AST ast, P4SourceText sourceText) {} + private final String family; + private final P4SourceText source; + private P4SourceText.ProjectionTextReader textReader; + private final Map origins = new IdentityHashMap<>(); + + private P4ResultFamilyProjection(String family, P4SourceText source) { + this.family = family; + this.source = source; + } + + public static Result project(TinyExpressionP4AST expression, String family, P4SourceText source, + String parserSource) { + if (!List.of("NUMBER", "STRING", "BOOLEAN", "OBJECT").contains(family)) { + throw new IllegalArgumentException("Unknown explicit result family: " + family); + } + var projection = new P4ResultFamilyProjection(family, source); + TinyExpressionP4AST result = projection.expression(expression); + P4SourceText snapshot = P4SourceText.fromSnapshot(parserSource, + value -> source.spanOf(projection.origins.getOrDefault(value, value))); + return new Result(result, snapshot); + } + + private T from(T value, Object original) { + origins.put(value, origins.getOrDefault(original, original)); + return value; + } + + private TinyExpressionP4AST expression(TinyExpressionP4AST value) { + if (value instanceof FormulaExpr formula) return expression(formula.expression()); + if (value instanceof ExpressionExpr expression + && expression.value() instanceof TinyExpressionP4AST ast) return expression(ast); + if (family.equals("OBJECT")) return value instanceof ObjectExpr ? value + : from(new ObjectExpr(value), value); + if (value instanceof StringMatchExpr) { + if (!family.equals("STRING")) throw invalid(); + return value; + } + if (value instanceof BooleanMatchExpr) { + if (!family.equals("BOOLEAN")) throw invalid(); + return value; + } + if (family.equals("NUMBER")) return value; + if (value instanceof NumberMatchExpr match) return family.equals("STRING") + ? stringMatch(match) : booleanMatch(match); + if (family.equals("STRING")) return stringExpression(value); + return booleanExpression(value); + } + + private StringConcatExpr stringExpression(TinyExpressionP4AST value) { + if (value instanceof StringConcatExpr string) return string; + if (value instanceof BinaryExpr binary) { + if (binary.op().stream().anyMatch(op -> !op.equals("+"))) throw invalid(); + Object left = stringTerm(binary.left()); + var right = new ArrayList(); + for (Object child : binary.right()) right.add(stringTerm(child)); + return from(new StringConcatExpr(left, binary.op(), List.copyOf(right)), value); + } + return from(new StringConcatExpr(stringAtom(value), List.of(), List.of()), value); + } + + private Object stringTerm(Object value) { + if (value instanceof BinaryExpr term) { + if (!term.op().isEmpty()) throw invalid(); + if (term.left() instanceof BinaryExpr nested) return stringExpression(nested); + return stringAtom(term.left()); + } + return stringAtom(value); + } + + private Object stringAtom(Object value) { + if (value instanceof VariableRefExpr variable) { + if (textReader == null) textReader = source.projectionTextReader(); + String text = textReader.text(variable).strip(); + // '$' and IDENTIFIER are separate grammar tokens; layout may occur between them. + String body = text.substring(1).stripLeading(); + String tail = body.substring(variable.name().length()).strip(); + if (tail.startsWith("as") && variable.type().map(v -> v.equalsIgnoreCase("string")).orElse(false)) { + return from(new StringTypedVariableRefExpr(variable.name()), variable); + } + return variable; + } + if (value instanceof StringTypedVariableRefExpr || value instanceof StringCastVariableRefExpr + || value instanceof MethodInvocationExpr || value instanceof IfExpr) return value; + if (value instanceof NumberMatchExpr match) return stringMatch(match); + throw invalid(); + } + + private BooleanOrExpr booleanExpression(TinyExpressionP4AST value) { + if (value instanceof BooleanOrExpr bool) return bool; + Object atom = value; + Object factorOrigin = value; + if (value instanceof BinaryExpr expression) { + if (!expression.op().isEmpty()) throw invalid(); + atom = expression.left(); + if (atom instanceof BinaryExpr term) { + if (!term.op().isEmpty()) throw invalid(); + factorOrigin = term; + atom = term.left(); + if (atom instanceof BinaryExpr nested) atom = booleanExpression(nested); + } + } + if (atom instanceof NumberMatchExpr match) atom = booleanMatch(match); + if (!(atom instanceof VariableRefExpr || atom instanceof MethodInvocationExpr + || atom instanceof IfExpr || atom instanceof BooleanMatchExpr || atom instanceof BooleanOrExpr)) throw invalid(); + var factor = from(new BooleanFactorExpr(atom), factorOrigin); + var exclusive = from(new BooleanXorExpr(factor, List.of(), List.of()), value); + var conjunction = from(new BooleanAndExpr(exclusive, List.of(), List.of()), value); + return from(new BooleanOrExpr(conjunction, List.of(), List.of()), value); + } + + private StringCaseValueExpr stringValue(NumberCaseValueExpr value) { + return from(new StringCaseValueExpr(stringExpression(value.value())), value); + } + + private StringCaseExpr stringCase(NumberCaseExpr value) { + return from(new StringCaseExpr(value.condition(), stringValue(value.value())), value); + } + + private StringMatchExpr stringMatch(NumberMatchExpr value) { + return from(new StringMatchExpr(stringCase(value.firstCase()), + value.moreCases().stream().map(this::stringCase).toList(), + from(new StringDefaultCaseExpr(stringValue(value.defaultCase().value())), value.defaultCase())), value); + } + + private BooleanCaseValueExpr booleanValue(NumberCaseValueExpr value) { + return from(new BooleanCaseValueExpr(booleanExpression(value.value())), value); + } + + private BooleanCaseExpr booleanCase(NumberCaseExpr value) { + return from(new BooleanCaseExpr(value.condition(), booleanValue(value.value())), value); + } + + private BooleanMatchExpr booleanMatch(NumberMatchExpr value) { + return from(new BooleanMatchExpr(booleanCase(value.firstCase()), + value.moreCases().stream().map(this::booleanCase).toList(), + from(new BooleanDefaultCaseExpr(booleanValue(value.defaultCase().value())), value.defaultCase())), value); + } + + private IllegalArgumentException invalid() { + return new IllegalArgumentException("Expression cannot use explicit result family " + family); + } +} diff --git a/src/main/java/org/unlaxer/tinyexpression/p4/P4RootProjection.java b/src/main/java/org/unlaxer/tinyexpression/p4/P4RootProjection.java new file mode 100644 index 00000000..5ea2ee8f --- /dev/null +++ b/src/main/java/org/unlaxer/tinyexpression/p4/P4RootProjection.java @@ -0,0 +1,59 @@ +package org.unlaxer.tinyexpression.p4; + +import org.unlaxer.tinyexpression.generated.p4.TinyExpressionP4AST; +import org.unlaxer.tinyexpression.generated.p4.TinyExpressionP4AST.*; + +/** Compatibility projection of the single Formula recognition, without another parser entry. */ +public final class P4RootProjection { + private P4RootProjection() {} + + /** A longer string/boolean result formerly reached a subtree when the numeric prefix hit EOF. */ + public static TinyExpressionP4AST canonicalRoot( + TinyExpressionP4AST ast, P4SourceText spans, String source) { + if (!(ast instanceof FormulaExpr formula) + || !formula.imports().isEmpty() || !formula.declarations().isEmpty() + || !formula.methods().isEmpty() || !formula.codeBlocks().isEmpty() + || !source.strip().equals(spans.text(formula.expression()).strip())) return null; + Object expression = formula.expression().value(); + if (expression instanceof BooleanOrExpr disjunction && numericBooleanPrefix(disjunction)) { + return disjunction; + } + if (expression instanceof StringConcatExpr concat && !concat.op().isEmpty() + && numericAtom(concat.left())) return concat; + return null; + } + + private static boolean numericBooleanPrefix(BooleanOrExpr expression) { + Object value = expression.left().left().left().value(); + if (value instanceof ComparisonExpr) return true; + if (value instanceof StringComparisonExpr comparison) return numericAtom(comparison.left().left()); + if (value instanceof BooleanEqualityExpr equality) return numericAtom(equality.left()); + return numericAtom(value); + } + + /** Whether a complete operand belongs to NumberFactor, based on the recognized AST. */ + private static boolean numericAtom(Object value) { + if (value instanceof VariableRefExpr || value instanceof StringTypedVariableRefExpr + || value instanceof MethodInvocationExpr || value instanceof IfExpr) return true; + if (value instanceof StringConcatExpr concat) { + return numericAtom(concat.left()) && concat.right().stream().allMatch(P4RootProjection::numericAtom); + } + if (value instanceof StringMatchExpr match) { + return numericAtom(match.firstCase().value().value()) + && match.moreCases().stream().allMatch(entry -> numericAtom(entry.value().value())) + && numericAtom(match.defaultCase().value().value()); + } + if (value instanceof BooleanMatchExpr match) { + return numericAtom(match.firstCase().value().value()) + && match.moreCases().stream().allMatch(entry -> numericAtom(entry.value().value())) + && numericAtom(match.defaultCase().value().value()); + } + if (value instanceof BooleanOrExpr disjunction && disjunction.op().isEmpty()) { + var conjunction = disjunction.left(); + var exclusive = conjunction.left(); + return conjunction.op().isEmpty() && exclusive.op().isEmpty() + && numericAtom(exclusive.left().value()); + } + return false; + } +} diff --git a/src/main/java/org/unlaxer/tinyexpression/p4/P4SourceText.java b/src/main/java/org/unlaxer/tinyexpression/p4/P4SourceText.java index 53d683e5..fa91f298 100644 --- a/src/main/java/org/unlaxer/tinyexpression/p4/P4SourceText.java +++ b/src/main/java/org/unlaxer/tinyexpression/p4/P4SourceText.java @@ -74,6 +74,33 @@ P4SourceText withOverlay( }); } + /** A cursor owned by one projection; public random-access span APIs remain unchanged. */ + ProjectionTextReader projectionTextReader() { + return new ProjectionTextReader(); + } + + final class ProjectionTextReader { + private final int sourceLength = parserSource == null ? -1 + : parserSource.codePointCount(0, parserSource.length()); + private int codePointOffset; + private int charOffset; + + String text(Object node) { + int[] range = spans.apply(node).orElseThrow(() -> new IllegalArgumentException( + "No owned source span for " + node.getClass().getSimpleName())); + if (range.length != 2 || range[0] < 0 || range[1] < range[0] + || sourceLength < 0 || range[1] > sourceLength) { + throw new IllegalArgumentException("Invalid owned source span"); + } + // Negative movement is intentional: visitors may revisit or reorder source nodes. + int start = parserSource.offsetByCodePoints(charOffset, range[0] - codePointOffset); + int end = parserSource.offsetByCodePoints(start, range[1] - range[0]); + codePointOffset = range[1]; + charOffset = end; + return parserSource.substring(start, end); + } + } + /** Returns lexical input, without evaluating a node or using its debug representation. */ public String text(Object value) { if (value == null) return null; diff --git a/src/main/java/org/unlaxer/tinyexpression/p4/ubnfc/UBNFC_PIN b/src/main/java/org/unlaxer/tinyexpression/p4/ubnfc/UBNFC_PIN index ceb9cd37..7e9376a1 100644 --- a/src/main/java/org/unlaxer/tinyexpression/p4/ubnfc/UBNFC_PIN +++ b/src/main/java/org/unlaxer/tinyexpression/p4/ubnfc/UBNFC_PIN @@ -4,7 +4,7 @@ ubnfc_repository=https://github.com/opaopa6969/ubnfc ubnfc_commit=f54d6b90466ffde14066d32f911ed642b1e49201 grammar=tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf -grammar_sha256=184cce54c70b0e3ebbdedaca5a0af0068ec56b2d7e33cda39d94f861c6433f46 +grammar_sha256=a40d6f5f57c3b3a67e0c627bfc99c603304593087cf428b50bb85754e23f4daf grammar_file 492cafad9f8f3278480d862d0f1fadeb5f61bf5c627b8072b32f6d90c91d3ff1 scripts/prepare-ubnfc-layout.py grammar_file 2701f6884ea6c712d28c76ec3d340c3b27fca4575846239bd0854933205f4b67 tools/tinyexpression-p4-lsp-vscode/grammar/.ubnf-cache/packages/2701f6884ea6c712d28c76ec3d340c3b27fca4575846239bd0854933205f4b67.json grammar_file e33b8166d0a5b399150b583b0e466fbe2a4194325ef65c79c082297156796b76 tools/tinyexpression-p4-lsp-vscode/grammar/lexical/characters.ubnf @@ -12,17 +12,17 @@ grammar_file 53ad774e87bd95a498ac744a721f22bdaf877721c0da13e8045aaeaea09b8179 to grammar_file 55f5f3b9289cb41b74d5c617e0b2ec1adbf24eb7fd8ca11aa02eda311b92bf2b tools/tinyexpression-p4-lsp-vscode/grammar/lexical/identifiers.ubnf grammar_file 1b1fcaa633f9477ad5414ecfed64693d1d50bf0aaa02775c5d67b39a18e8244f tools/tinyexpression-p4-lsp-vscode/grammar/lexical/numbers.ubnf grammar_file 08f209d29c84aa1addcb57eba24d7738c27bc8921cb13f1fbd5040dff6296a26 tools/tinyexpression-p4-lsp-vscode/grammar/lexical/strings.ubnf -grammar_file 184cce54c70b0e3ebbdedaca5a0af0068ec56b2d7e33cda39d94f861c6433f46 tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf +grammar_file a40d6f5f57c3b3a67e0c627bfc99c603304593087cf428b50bb85754e23f4daf tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf grammar_file 2074b51b078eecd61c5a0bbd20399f423b20faada77d331b96f212692c27bdf7 tools/tinyexpression-p4-lsp-vscode/grammar/ubnf.json grammar_file 25745248036e459f3b69ad202f12b52d857b6f70abc02dac23caf4e7745f4db0 tools/tinyexpression-p4-lsp-vscode/grammar/ubnf.lock.json extern_first_chars=scanners/first-chars.json -ir_sha256=55d5981a9da79a887034778aa1853dffea92162cb5e9be18c840b072cafb13a0 +ir_sha256=0c443bc087c851c3fec592cad9fe58389719bdde50f3ca00d4dd1f8bd786ff1f java_package=org.unlaxer.tinyexpression.p4.ubnfc.generated scanners_source=examples/p4-java/src/main/java/org/unlaxer/ubnfc/examples/p4/P4Scanners.java file 9e9d1fd3e1f9445a9f8b91e7366bbc8ba623301087b74f527cd34865026b92ab P4Scanners.java file 95c274dd96b42e53c289d6b803189624de3e67d840f2567cf3a9095068fd1606 generated/TinyExpressionP4AST.java file 97a464d5e0da84e2c5cda01cb13973d62d7478ebea6e330a5f3171129375aaf3 generated/TinyExpressionP4Evaluator.java -file e5f9cfe04f87907bad6104f9f72ea696d742b1498b66bfce9f34631e25d1c3c6 generated/TinyExpressionP4Parser.java +file af81335e90488ad065cd4a146071ac02887d0b8fa0059f03a949b982699b1b98 generated/TinyExpressionP4Parser.java file f7b212115de4e9df670d381d412d7d3a1e9c061d901ef87b0e6b266b89c70aed generated/TinyExpressionP4Result.java file 7f98d27c3f9dbc54a8823f7996fa4dc7bcf91fd33b5f3b0350e3f146e5a8bbcd generated/api/Capture.java file e3f2951e2e281c1eb7c63eb64b08e1f429fc0a222fdccf5d14e1619950aa92bf generated/api/Diagnostic.java @@ -33,7 +33,7 @@ file 7a60727787489f2b6b47dcc6221f02f8407158b248c6b6db96bda70fcb492827 generated/ file 440647c5d39c6627cf8fc5d817e32f12636d9f9f9861c975a49140c621b714a5 generated/api/SourceName.java file 44c8364899ba2b3f804fe4ab3053c3d1649d9d3a98f6eb63eefe61830401ff8e generated/api/Span.java file c7bf60f5e41c935716adf0cf0d16fc4aa6d0e5f7249ba7ff08e5e15d664d3dcb generated/api/TokenScanner.java -file 340d01808d114f4b59c9d0bb649a004fb9c37b4c50ac57ea97ee3c09af69db6a generated/driver/Driver.java +file 14802740217ebdde732f4cfdb7cf3a612bdc2e943b0d83f0114f0e3a1e999ee2 generated/driver/Driver.java file 95a432963ef178aac75cc06b60870626789825f3aa1a88533f2e5211f3fe02e5 generated/internal/LexicalExpression.java file bf42b610d340daf608d3f6fdb24a5ca965d21fb1169e6d379689d86a8cee5440 generated/internal/Recipe.java file 73bc7699358a3ed1628bc358f7e3982d4057f125ef454991b5f586002c7e5fd3 generated/internal/Session.java diff --git a/src/main/java/org/unlaxer/tinyexpression/p4/ubnfc/UbnfcP4Parse.java b/src/main/java/org/unlaxer/tinyexpression/p4/ubnfc/UbnfcP4Parse.java index 7aaeb9e5..1e45af91 100644 --- a/src/main/java/org/unlaxer/tinyexpression/p4/ubnfc/UbnfcP4Parse.java +++ b/src/main/java/org/unlaxer/tinyexpression/p4/ubnfc/UbnfcP4Parse.java @@ -10,6 +10,8 @@ import org.unlaxer.tinyexpression.p4.ubnfc.generated.api.ParseResult; import org.unlaxer.tinyexpression.generated.p4.TinyExpressionP4AST; import org.unlaxer.tinyexpression.p4.P4SourceText; +import org.unlaxer.tinyexpression.p4.P4RootProjection; +import org.unlaxer.tinyexpression.p4.P4ResultFamilyProjection; import org.unlaxer.tinyexpression.parser.ExpressionType; import org.unlaxer.tinyexpression.parser.TinyExpressionParserCapabilities; @@ -63,7 +65,7 @@ public static Result parseDetailed(String formula, ExpressionType preferredResul long deadlineNanos = defaultParseDeadlineNanos(); Result parsed = parseMappedCandidates( source, candidates, preferredResultType == null, deadlineNanos); - return selectExplicitResultFamily(source, candidates, parsed, deadlineNanos); + return selectExplicitResultFamily(source, parsed); } public static Result parseByAstSimpleNameDetailed( @@ -89,7 +91,7 @@ public static Result parseByAstSimpleNamesDetailed( if (!earlierTypedFamily) { return parsed; } - Result selected = selectExplicitResultFamily(source, candidates, parsed, deadlineNanos); + Result selected = selectExplicitResultFamily(source, parsed); int selectedIndex = candidates.indexOf(selected.ast().getClass().getSimpleName()); return selectedIndex >= 0 && selectedIndex <= parsedIndex ? selected : parsed; } @@ -237,15 +239,6 @@ private static ParsedRoot parseRootToken(String parserSource, long deadlineNanos if (fullyConsumed(primary, parserSource)) { return toParsedRoot(primary, parserSource); } - for (String alternate : List.of("BooleanExpression", "StringExpression", "ObjectExpression")) { - checkDeadline(deadlineNanos); - ParseResult result = - parseEntry(alternate, parserSource); - if (fullyConsumed(result, parserSource)) { - return toParsedRoot(result, parserSource); - } - } - checkDeadline(deadlineNanos); if (!primary.ok()) { throw new IllegalArgumentException("Parse failed: " + parserSource); } @@ -276,7 +269,17 @@ private static ParsedRoot toParsedRoot( UbnfcAstConverter converter = new UbnfcAstConverter(result.nodeSpans(), parserSource); TinyExpressionP4AST root = converter.convert(result.ast().orElseThrow()); Map spans = converter.spans(); - return new ParsedRoot(root, snapshot(parserSource, spans), spans, converter.bestByName()); + P4SourceText sourceText = snapshot(parserSource, spans); + Map best = converter.bestByName(); + TinyExpressionP4AST canonical = P4RootProjection.canonicalRoot(root, sourceText, parserSource); + if (canonical != null) { + root = canonical; + spans.put(root, new int[] {0, parserSource.codePointCount(0, parserSource.length())}); + best = new java.util.HashMap<>(best); + best.remove("FormulaExpr"); + best.remove("ExpressionExpr"); + } + return new ParsedRoot(root, sourceText, spans, best); } private static P4SourceText snapshot(String parserSource, Map spans) { @@ -351,12 +354,12 @@ private static int utf16Offset(String source, int codePointOffset) { return source.offsetByCodePoints(0, Math.max(0, Math.min(codePointOffset, total))); } - // -------------------------------------------------- 明示された結果型の再選択 + // -------------------------------------------------- 認識済み AST の明示結果型への投影 private enum ResultFamily { NUMBER, STRING, BOOLEAN, OBJECT } private static Result selectExplicitResultFamily( - String source, List candidates, Result parsed, long deadlineNanos) { + String source, Result parsed) { boolean document = isDocument(source, parsed); ResultFamily family = explicitResultFamily(parsed.ast()); ResultFamily currentMatchFamily = matchFamily(parsed.ast()); @@ -367,94 +370,36 @@ private static Result selectExplicitResultFamily( if (currentMatchFamily != null && family == ResultFamily.OBJECT) { throw matchTypeMismatch(source); } - String documentSource = - TinyExpressionParserCapabilities.stripJavaStyleCommentsPreservingLayout(source); - String parserSource = documentSource; - TinyExpressionP4AST.FormulaExpr documentRoot = - document && parsed.ast() instanceof TinyExpressionP4AST.FormulaExpr formula - ? formula : null; - int documentExpressionOffset = 0; - if (documentRoot != null) { - int[] span = parsed.sourceText().spanOf(documentRoot.expression()) - .orElseThrow(() -> new IllegalArgumentException( - "No owned source span for Formula expression")); - documentExpressionOffset = span[0]; - parserSource = parserSource.substring( - parserSource.offsetByCodePoints(0, span[0]), - parserSource.offsetByCodePoints(0, span[1])); - } - String entry = switch (family) { - case STRING -> currentMatchFamily != null ? "StringMatchExpression" : "StringExpression"; - case BOOLEAN -> currentMatchFamily != null ? "BooleanMatchExpression" : "BooleanExpression"; - case OBJECT -> "ObjectExpression"; - case NUMBER -> { - if (currentMatchFamily != null) { - yield "NumberMatchExpression"; - } - throw new IllegalStateException("number family already selected"); - } - }; - checkDeadline(deadlineNanos); - ParseResult reparsed = - parseEntry(entry, parserSource); - if (!fullyConsumed(reparsed, parserSource)) { - if (currentMatchFamily != null) throw matchTypeMismatch(source); - throw new IllegalArgumentException("Explicit result type could not be parsed as " - + family.name().toLowerCase(Locale.ROOT) + ": " + source); - } - ArrayList familyCandidates = new ArrayList<>(); - addIfAbsent(familyCandidates, switch (family) { - case STRING -> currentMatchFamily != null ? "StringMatchExpr" : "StringConcatExpr"; - case BOOLEAN -> currentMatchFamily != null ? "BooleanMatchExpr" : "BooleanOrExpr"; - case OBJECT -> "ObjectExpr"; - case NUMBER -> null; - }); - for (String candidate : candidates) addIfAbsent(familyCandidates, candidate); - ParsedRoot reparsedRoot = toParsedRoot(reparsed, parserSource); - Result selected = mapCandidates(parserSource, familyCandidates, true, reparsedRoot); - if (family == ResultFamily.OBJECT) { - if (selected.ast() instanceof TinyExpressionP4AST.ObjectExpr) { - selected = new Result(selected.ast(), "explicit:object", selected.sourceText()); - } else { - TinyExpressionP4AST.ObjectExpr object = - new TinyExpressionP4AST.ObjectExpr(selected.ast()); - selected = new Result(object, "explicit:object", - selected.sourceText().withWholeSourceNode(object)); - } - } - if (documentRoot == null) return selected; - - TinyExpressionP4AST.ExpressionExpr expression = - new TinyExpressionP4AST.ExpressionExpr(selected.ast()); + String parserSource = TinyExpressionParserCapabilities.stripJavaStyleCommentsPreservingLayout(source); + TinyExpressionP4AST.FormulaExpr documentRoot = document + && parsed.ast() instanceof TinyExpressionP4AST.FormulaExpr formula ? formula : null; + P4ResultFamilyProjection.Result projection; + try { + projection = P4ResultFamilyProjection.project( + currentMatchFamily != null ? resultRoot(parsed.ast()) : parsed.ast(), + family.name(), parsed.sourceText(), parserSource); + } catch (IllegalArgumentException incompatible) { + if (currentMatchFamily != null) throw matchTypeMismatch(source); + throw new IllegalArgumentException("Explicit result type could not be parsed as " + + family.name().toLowerCase(java.util.Locale.ROOT) + ": " + source, incompatible); + } + TinyExpressionP4AST selected = projection.ast(); + String mode = family == ResultFamily.OBJECT ? "explicit:object" + : "preferred:" + selected.getClass().getSimpleName(); + if (documentRoot == null) return new Result(selected, mode, + projection.sourceText().withWholeSourceNode(selected)); + TinyExpressionP4AST.ExpressionExpr expression = new TinyExpressionP4AST.ExpressionExpr(selected); TinyExpressionP4AST.FormulaExpr formula = new TinyExpressionP4AST.FormulaExpr( - documentRoot.imports(), documentRoot.declarations(), expression, documentRoot.methods(), - documentRoot.codeBlocks()); - P4SourceText sourceText = withOverlay(documentSource, parsed.sourceText(), - selected.sourceText(), documentExpressionOffset, - formula, documentRoot, expression, documentRoot.expression()); - return new Result(formula, "document:" + selected.selectionMode(), sourceText); - } - - /** - * 再解析した部分木の snapshot を文書側の snapshot に重ねる。旧実装の - * {@code P4SourceText#withOverlay}(package private)と同じ規則を public API だけで組む。 - * 座標系は両者とも同じ code point 空間で、{@code offset} は文書内の式の開始位置。 - */ - private static P4SourceText withOverlay(String parserSource, P4SourceText base, - P4SourceText overlay, int offset, Object newOuter, Object oldOuter, - Object newExpression, Object oldExpression) { - return P4SourceText.fromSnapshot(parserSource, value -> { - if (value == newOuter) return base.spanOf(oldOuter); - if (value == newExpression) return base.spanOf(oldExpression); - Optional overlaid = overlay.spanOf(value); - if (overlaid.isPresent()) { - int[] range = overlaid.orElseThrow().clone(); - range[0] += offset; - range[1] += offset; - return Optional.of(range); - } - return base.spanOf(value); + documentRoot.imports(), documentRoot.declarations(), expression, + documentRoot.methods(), documentRoot.codeBlocks()); + P4SourceText base = parsed.sourceText(); + P4SourceText snapshot = P4SourceText.fromSnapshot(parserSource, value -> { + if (value == formula) return base.spanOf(documentRoot); + if (value == expression) return base.spanOf(documentRoot.expression()); + var projected = projection.sourceText().spanOf(value); + return projected.isPresent() ? projected : base.spanOf(value); }); + return new Result(formula, "document:" + mode, snapshot); } private static ResultFamily matchFamily(TinyExpressionP4AST ast) { diff --git a/src/main/java/org/unlaxer/tinyexpression/p4/ubnfc/generated/TinyExpressionP4Parser.java b/src/main/java/org/unlaxer/tinyexpression/p4/ubnfc/generated/TinyExpressionP4Parser.java index 69046066..ad5d291f 100644 --- a/src/main/java/org/unlaxer/tinyexpression/p4/ubnfc/generated/TinyExpressionP4Parser.java +++ b/src/main/java/org/unlaxer/tinyexpression/p4/ubnfc/generated/TinyExpressionP4Parser.java @@ -171,6 +171,12 @@ yield switch (entry) { case "VariableRef" -> TinyExpressionP4Parser::parseVariableRef_121; case "TypeKeyword" -> TinyExpressionP4Parser::parseTypeKeyword_122; case "Expression" -> TinyExpressionP4Parser::parseExpression_123; + case "NumberRootExpression" -> TinyExpressionP4Parser::parseNumberRootExpression_124; + case "BooleanRootExpression" -> TinyExpressionP4Parser::parseBooleanRootExpression_125; + case "StringRootExpression" -> TinyExpressionP4Parser::parseStringRootExpression_126; + case "ObjectRootExpression" -> TinyExpressionP4Parser::parseObjectRootExpression_127; + case "MethodRootExpression" -> TinyExpressionP4Parser::parseMethodRootExpression_128; + case "ParenthesizedRootExpression" -> TinyExpressionP4Parser::parseParenthesizedRootExpression_129; default -> throw new IllegalArgumentException("Unsupported entry: " + entry); }; } @@ -288,6 +294,12 @@ private static Object build(Recipe r, Session s) { case "recipe:BooleanCaseValue" -> b87(r, s); case "recipe:VariableRef" -> b88(r, s); case "recipe:Expression" -> b89(r, s); + case "recipe:NumberRootExpression" -> b90(r, s); + case "recipe:BooleanRootExpression" -> b91(r, s); + case "recipe:StringRootExpression" -> b92(r, s); + case "recipe:ObjectRootExpression" -> b93(r, s); + case "recipe:MethodRootExpression" -> b94(r, s); + case "recipe:ParenthesizedRootExpression" -> b95(r, s); case "#leaf:TinyExpressionP4AST.BinaryExpr" -> new TinyExpressionP4AST.BinaryExpr(null, List.of(s.source.substring(r.start(), r.end()).strip()), List.of()); default -> throw s.mapping(r.start(), r.end(), "Cannot build recipe: " + r.id(), null); }; @@ -986,392 +998,440 @@ private static Object b89(Recipe r, Session s) { java.lang.Object field0 = s.present((v0.nodes().isEmpty() ? null : build(s.node(v0, r), s)), v0); return new TinyExpressionP4AST.ExpressionExpr(field0); } + private static Object b90(Recipe r, Session s) { + Recipe.Value v0 = s.scalarValue(r,0,"value"); + java.lang.Object field0 = s.present((v0.nodes().isEmpty() ? null : build(s.node(v0, r), s)), v0); + return new TinyExpressionP4AST.ExpressionExpr(field0); + } + private static Object b91(Recipe r, Session s) { + Recipe.Value v0 = s.scalarValue(r,0,"value"); + java.lang.Object field0 = s.present((v0.nodes().isEmpty() ? null : build(s.node(v0, r), s)), v0); + return new TinyExpressionP4AST.ExpressionExpr(field0); + } + private static Object b92(Recipe r, Session s) { + Recipe.Value v0 = s.scalarValue(r,0,"value"); + java.lang.Object field0 = s.present((v0.nodes().isEmpty() ? null : build(s.node(v0, r), s)), v0); + return new TinyExpressionP4AST.ExpressionExpr(field0); + } + private static Object b93(Recipe r, Session s) { + Recipe.Value v0 = s.scalarValue(r,0,"value"); + java.lang.Object field0 = s.present((v0.nodes().isEmpty() ? null : build(s.node(v0, r), s)), v0); + return new TinyExpressionP4AST.ExpressionExpr(field0); + } + private static Object b94(Recipe r, Session s) { + Recipe.Value v0 = s.scalarValue(r,0,"value"); + java.lang.Object field0 = s.present((v0.nodes().isEmpty() ? null : build(s.node(v0, r), s)), v0); + return new TinyExpressionP4AST.ExpressionExpr(field0); + } + private static Object b95(Recipe r, Session s) { + Recipe.Value v0 = s.scalarValue(r,0,"value"); + java.lang.Object field0 = s.present((v0.nodes().isEmpty() ? null : build(s.node(v0, r), s)), v0); + return new TinyExpressionP4AST.ExpressionExpr(field0); + } private static Match parseFormula_0(Session s, Frame f) { - return s.rule(f, 0, 1047, true, true, TinyExpressionP4Parser::e0, "recipe:Formula", null, "construct", K2, K3, false, K4, false, K5); + return s.rule(f, 0, 1089, true, true, TinyExpressionP4Parser::e0, "recipe:Formula", null, "construct", K2, K3, false, K4, false, K5); } private static Match parseCodeBlock_1(Session s, Frame f) { - return s.rule(f, 1, 1048, false, false, TinyExpressionP4Parser::e13, "recipe:CodeBlock", null, "construct", K6, K7, false, K4, false, K8); + return s.rule(f, 1, 1090, false, false, TinyExpressionP4Parser::e41, "recipe:CodeBlock", null, "construct", K6, K7, false, K4, false, K8); } private static Match parseImportDeclaration_2(Session s, Frame f) { - return s.rule(f, 2, 1049, false, false, TinyExpressionP4Parser::e21, "recipe:ImportDeclaration", null, "construct", K9, K7, false, K4, false, K10); + return s.rule(f, 2, 1091, false, false, TinyExpressionP4Parser::e49, "recipe:ImportDeclaration", null, "construct", K9, K7, false, K4, false, K10); } private static Match parseClassName_3(Session s, Frame f) { - return s.rule(f, 3, 1050, false, false, TinyExpressionP4Parser::e31, "recipe:ClassName", null, "construct", K11, K7, false, K4, false, K12); + return s.rule(f, 3, 1092, false, false, TinyExpressionP4Parser::e59, "recipe:ClassName", null, "construct", K11, K7, false, K4, false, K12); } private static Match parseVariableDeclaration_4(Session s, Frame f) { - return s.rule(f, 4, 1051, true, true, TinyExpressionP4Parser::e37, null, null, null, K13, K7, false, K4, false, K14); + return s.rule(f, 4, 1093, true, true, TinyExpressionP4Parser::e65, null, null, null, K13, K7, false, K4, false, K14); } private static Match parseNumberVariableDeclaration_5(Session s, Frame f) { - return s.rule(f, 5, 1052, true, true, TinyExpressionP4Parser::e42, "recipe:NumberVariableDeclaration", null, "construct", K15, K16, false, K4, false, K17); + return s.rule(f, 5, 1094, true, true, TinyExpressionP4Parser::e70, "recipe:NumberVariableDeclaration", null, "construct", K15, K16, false, K4, false, K17); } private static Match parseStringVariableDeclaration_6(Session s, Frame f) { - return s.rule(f, 6, 1053, true, true, TinyExpressionP4Parser::e60, "recipe:StringVariableDeclaration", null, "construct", K18, K19, false, K4, false, K17); + return s.rule(f, 6, 1095, true, true, TinyExpressionP4Parser::e88, "recipe:StringVariableDeclaration", null, "construct", K18, K19, false, K4, false, K17); } private static Match parseBooleanVariableDeclaration_7(Session s, Frame f) { - return s.rule(f, 7, 1054, true, true, TinyExpressionP4Parser::e78, "recipe:BooleanVariableDeclaration", null, "construct", K20, K21, false, K4, false, K17); + return s.rule(f, 7, 1096, true, true, TinyExpressionP4Parser::e106, "recipe:BooleanVariableDeclaration", null, "construct", K20, K21, false, K4, false, K17); } private static Match parseObjectVariableDeclaration_8(Session s, Frame f) { - return s.rule(f, 8, 1055, true, true, TinyExpressionP4Parser::e96, "recipe:ObjectVariableDeclaration", null, "construct", K22, K23, false, K4, false, K17); + return s.rule(f, 8, 1097, true, true, TinyExpressionP4Parser::e124, "recipe:ObjectVariableDeclaration", null, "construct", K22, K23, false, K4, false, K17); } private static Match parseTypeHint_9(Session s, Frame f) { - return s.rule(f, 9, 1056, false, false, TinyExpressionP4Parser::e114, null, null, null, K13, K7, false, K4, false, K24); + return s.rule(f, 9, 1098, false, false, TinyExpressionP4Parser::e142, null, null, null, K13, K7, false, K4, false, K24); } private static Match parseNumberTypeHint_10(Session s, Frame f) { - return s.rule(f, 10, 1057, false, false, TinyExpressionP4Parser::e127, null, null, null, K13, K7, false, K4, false, K25); + return s.rule(f, 10, 1099, false, false, TinyExpressionP4Parser::e155, null, null, null, K13, K7, false, K4, false, K25); } private static Match parseStringTypeHint_11(Session s, Frame f) { - return s.rule(f, 11, 1058, false, false, TinyExpressionP4Parser::e136, null, null, null, K13, K7, false, K4, false, K26); + return s.rule(f, 11, 1100, false, false, TinyExpressionP4Parser::e164, null, null, null, K13, K7, false, K4, false, K26); } private static Match parseBooleanTypeHint_12(Session s, Frame f) { - return s.rule(f, 12, 1059, false, false, TinyExpressionP4Parser::e143, null, null, null, K13, K7, false, K4, false, K27); + return s.rule(f, 12, 1101, false, false, TinyExpressionP4Parser::e171, null, null, null, K13, K7, false, K4, false, K27); } private static Match parseObjectTypeHint_13(Session s, Frame f) { - return s.rule(f, 13, 1060, false, false, TinyExpressionP4Parser::e150, null, null, null, K13, K7, false, K4, false, K28); + return s.rule(f, 13, 1102, false, false, TinyExpressionP4Parser::e178, null, null, null, K13, K7, false, K4, false, K28); } private static Match parseOnlyIfAbsent_14(Session s, Frame f) { - return s.rule(f, 14, 1061, false, false, TinyExpressionP4Parser::e157, "recipe:OnlyIfAbsent", null, "construct", K13, K7, false, K4, false, K29); + return s.rule(f, 14, 1103, false, false, TinyExpressionP4Parser::e185, "recipe:OnlyIfAbsent", null, "construct", K13, K7, false, K4, false, K29); } private static Match parseDescription_15(Session s, Frame f) { - return s.rule(f, 15, 1062, false, false, TinyExpressionP4Parser::e161, null, null, null, K13, K7, false, K4, false, K30); + return s.rule(f, 15, 1104, false, false, TinyExpressionP4Parser::e189, null, null, null, K13, K7, false, K4, false, K30); } private static Match parseAnnotation_16(Session s, Frame f) { - return s.rule(f, 16, 1063, true, true, TinyExpressionP4Parser::e165, null, null, null, K13, K7, false, K4, false, K31); + return s.rule(f, 16, 1105, true, true, TinyExpressionP4Parser::e193, null, null, null, K13, K7, false, K4, false, K31); } private static Match parseAnnotationParameters_17(Session s, Frame f) { - return s.rule(f, 17, 1064, true, true, TinyExpressionP4Parser::e172, null, null, null, K13, K7, false, K4, false, K32); + return s.rule(f, 17, 1106, true, true, TinyExpressionP4Parser::e200, null, null, null, K13, K7, false, K4, false, K32); } private static Match parseAnnotationParameter_18(Session s, Frame f) { - return s.rule(f, 18, 1065, true, true, TinyExpressionP4Parser::e178, null, null, null, K13, K7, false, K4, false, K32); + return s.rule(f, 18, 1107, true, true, TinyExpressionP4Parser::e206, null, null, null, K13, K7, false, K4, false, K32); } private static Match parseMethodDeclaration_19(Session s, Frame f) { - return s.rule(f, 19, 1066, true, true, TinyExpressionP4Parser::e182, null, null, null, K13, K7, false, K4, false, K33); + return s.rule(f, 19, 1108, true, true, TinyExpressionP4Parser::e210, null, null, null, K13, K7, false, K4, false, K33); } private static Match parseNumberMethodDeclaration_20(Session s, Frame f) { - return s.rule(f, 20, 1067, true, true, TinyExpressionP4Parser::e187, "recipe:NumberMethodDeclaration", null, "construct", K34, K35, false, K4, false, K36); + return s.rule(f, 20, 1109, true, true, TinyExpressionP4Parser::e215, "recipe:NumberMethodDeclaration", null, "construct", K34, K35, false, K4, false, K36); } private static Match parseStringMethodDeclaration_21(Session s, Frame f) { - return s.rule(f, 21, 1068, true, true, TinyExpressionP4Parser::e197, "recipe:StringMethodDeclaration", null, "construct", K37, K38, false, K4, false, K39); + return s.rule(f, 21, 1110, true, true, TinyExpressionP4Parser::e225, "recipe:StringMethodDeclaration", null, "construct", K37, K38, false, K4, false, K39); } private static Match parseBooleanMethodDeclaration_22(Session s, Frame f) { - return s.rule(f, 22, 1069, true, true, TinyExpressionP4Parser::e207, "recipe:BooleanMethodDeclaration", null, "construct", K40, K41, false, K4, false, K42); + return s.rule(f, 22, 1111, true, true, TinyExpressionP4Parser::e235, "recipe:BooleanMethodDeclaration", null, "construct", K40, K41, false, K4, false, K42); } private static Match parseObjectMethodDeclaration_23(Session s, Frame f) { - return s.rule(f, 23, 1070, true, true, TinyExpressionP4Parser::e217, "recipe:ObjectMethodDeclaration", null, "construct", K43, K44, false, K4, false, K45); + return s.rule(f, 23, 1112, true, true, TinyExpressionP4Parser::e245, "recipe:ObjectMethodDeclaration", null, "construct", K43, K44, false, K4, false, K45); } private static Match parseMethodParameters_24(Session s, Frame f) { - return s.rule(f, 24, 1071, true, true, TinyExpressionP4Parser::e227, "recipe:MethodParameters", null, "construct", K46, K7, false, K4, false, K47); + return s.rule(f, 24, 1113, true, true, TinyExpressionP4Parser::e255, "recipe:MethodParameters", null, "construct", K46, K7, false, K4, false, K47); } private static Match parseMethodParameter_25(Session s, Frame f) { - return s.rule(f, 25, 1072, true, true, TinyExpressionP4Parser::e233, "recipe:MethodParameter", null, "construct", K48, K49, false, K4, false, K50); + return s.rule(f, 25, 1114, true, true, TinyExpressionP4Parser::e261, "recipe:MethodParameter", null, "construct", K48, K49, false, K4, false, K50); } private static Match parseNumberReturnType_26(Session s, Frame f) { - return s.rule(f, 26, 1073, false, false, TinyExpressionP4Parser::e240, null, null, null, K13, K7, false, K4, false, K51); + return s.rule(f, 26, 1115, false, false, TinyExpressionP4Parser::e268, null, null, null, K13, K7, false, K4, false, K51); } private static Match parseStringReturnType_27(Session s, Frame f) { - return s.rule(f, 27, 1074, false, false, TinyExpressionP4Parser::e243, null, null, null, K13, K7, false, K4, false, K52); + return s.rule(f, 27, 1116, false, false, TinyExpressionP4Parser::e271, null, null, null, K13, K7, false, K4, false, K52); } private static Match parseBooleanReturnType_28(Session s, Frame f) { - return s.rule(f, 28, 1075, false, false, TinyExpressionP4Parser::e245, null, null, null, K13, K7, false, K4, false, K53); + return s.rule(f, 28, 1117, false, false, TinyExpressionP4Parser::e273, null, null, null, K13, K7, false, K4, false, K53); } private static Match parseObjectReturnType_29(Session s, Frame f) { - return s.rule(f, 29, 1076, false, false, TinyExpressionP4Parser::e247, null, null, null, K13, K7, false, K4, false, K54); + return s.rule(f, 29, 1118, false, false, TinyExpressionP4Parser::e275, null, null, null, K13, K7, false, K4, false, K54); } private static Match parseReturnType_30(Session s, Frame f) { - return s.rule(f, 30, 1077, true, true, TinyExpressionP4Parser::e249, null, null, null, K13, K7, false, K4, false, K55); + return s.rule(f, 30, 1119, true, true, TinyExpressionP4Parser::e277, null, null, null, K13, K7, false, K4, false, K55); } private static Match parseExternalBooleanInvocation_31(Session s, Frame f) { - return s.rule(f, 31, 1078, true, true, TinyExpressionP4Parser::e254, "recipe:ExternalBooleanInvocation", null, "construct", K56, K7, false, K4, false, K57); + return s.rule(f, 31, 1120, true, true, TinyExpressionP4Parser::e282, "recipe:ExternalBooleanInvocation", null, "construct", K56, K7, false, K4, false, K57); } private static Match parseExternalNumberInvocation_32(Session s, Frame f) { - return s.rule(f, 32, 1079, true, true, TinyExpressionP4Parser::e275, "recipe:ExternalNumberInvocation", null, "construct", K58, K7, false, K4, false, K59); + return s.rule(f, 32, 1121, true, true, TinyExpressionP4Parser::e303, "recipe:ExternalNumberInvocation", null, "construct", K58, K7, false, K4, false, K59); } private static Match parseExternalStringInvocation_33(Session s, Frame f) { - return s.rule(f, 33, 1080, true, true, TinyExpressionP4Parser::e301, "recipe:ExternalStringInvocation", null, "construct", K60, K7, false, K4, false, K61); + return s.rule(f, 33, 1122, true, true, TinyExpressionP4Parser::e329, "recipe:ExternalStringInvocation", null, "construct", K60, K7, false, K4, false, K61); } private static Match parseExternalObjectInvocation_34(Session s, Frame f) { - return s.rule(f, 34, 1081, true, true, TinyExpressionP4Parser::e322, "recipe:ExternalObjectInvocation", null, "construct", K62, K7, false, K4, false, K63); + return s.rule(f, 34, 1123, true, true, TinyExpressionP4Parser::e350, "recipe:ExternalObjectInvocation", null, "construct", K62, K7, false, K4, false, K63); } private static Match parseMethodInvocationHeader_35(Session s, Frame f) { - return s.rule(f, 35, 1082, false, false, TinyExpressionP4Parser::e343, null, null, null, K13, K7, false, K4, false, K64); + return s.rule(f, 35, 1124, false, false, TinyExpressionP4Parser::e371, null, null, null, K13, K7, false, K4, false, K64); } private static Match parseMethodInvocation_36(Session s, Frame f) { - return s.rule(f, 36, 1083, true, true, TinyExpressionP4Parser::e349, "recipe:MethodInvocation", null, "construct", K65, K66, false, K4, false, K67); + return s.rule(f, 36, 1125, true, true, TinyExpressionP4Parser::e377, "recipe:MethodInvocation", null, "construct", K65, K66, false, K4, false, K67); } private static Match parseArgumentTernary_37(Session s, Frame f) { - return s.rule(f, 37, 1084, true, true, TinyExpressionP4Parser::e356, "recipe:ArgumentTernary", null, "construct", K68, K7, false, K4, false, K69); + return s.rule(f, 37, 1126, true, true, TinyExpressionP4Parser::e384, "recipe:ArgumentTernary", null, "construct", K68, K7, false, K4, false, K69); } private static Match parseArgumentExpression_38(Session s, Frame f) { - return s.rule(f, 38, 1085, true, true, TinyExpressionP4Parser::e362, "recipe:ArgumentExpression", null, "construct", K70, K7, false, K4, false, K71); + return s.rule(f, 38, 1127, true, true, TinyExpressionP4Parser::e390, "recipe:ArgumentExpression", null, "construct", K70, K7, false, K4, false, K71); } private static Match parseArguments_39(Session s, Frame f) { - return s.rule(f, 39, 1086, true, true, TinyExpressionP4Parser::e367, "recipe:Arguments", null, "construct", K72, K7, false, K4, false, K73); + return s.rule(f, 39, 1128, true, true, TinyExpressionP4Parser::e395, "recipe:Arguments", null, "construct", K72, K7, false, K4, false, K73); } private static Match parseNumberExpression_40(Session s, Frame f) { - return s.rule(f, 40, 1087, true, true, TinyExpressionP4Parser::e373, "recipe:NumberExpression", "TinyExpressionP4AST.BinaryExpr", "assocLists", K74, K7, false, K4, false, K75); + return s.rule(f, 40, 1129, true, true, TinyExpressionP4Parser::e401, "recipe:NumberExpression", "TinyExpressionP4AST.BinaryExpr", "assocLists", K74, K7, false, K4, false, K75); } private static Match parseNumberTerm_41(Session s, Frame f) { - return s.rule(f, 41, 1088, true, true, TinyExpressionP4Parser::e379, "recipe:NumberTerm", "TinyExpressionP4AST.BinaryExpr", "assocLists", K76, K7, false, K4, false, K77); + return s.rule(f, 41, 1130, true, true, TinyExpressionP4Parser::e407, "recipe:NumberTerm", "TinyExpressionP4AST.BinaryExpr", "assocLists", K76, K7, false, K4, false, K77); } private static Match parseAddOp_42(Session s, Frame f) { - return s.rule(f, 42, 1089, false, false, TinyExpressionP4Parser::e385, null, null, null, K13, K7, false, K4, false, K78); + return s.rule(f, 42, 1131, false, false, TinyExpressionP4Parser::e413, null, null, null, K13, K7, false, K4, false, K78); } private static Match parseMulOp_43(Session s, Frame f) { - return s.rule(f, 43, 1090, false, false, TinyExpressionP4Parser::e388, null, null, null, K13, K7, false, K4, false, K79); + return s.rule(f, 43, 1132, false, false, TinyExpressionP4Parser::e416, null, null, null, K13, K7, false, K4, false, K79); } private static Match parseMathFunction_44(Session s, Frame f) { - return s.rule(f, 44, 1091, true, true, TinyExpressionP4Parser::e391, null, null, null, K13, K7, false, K4, false, K80); + return s.rule(f, 44, 1133, true, true, TinyExpressionP4Parser::e419, null, null, null, K13, K7, false, K4, false, K80); } private static Match parseSinFunction_45(Session s, Frame f) { - return s.rule(f, 45, 1092, true, true, TinyExpressionP4Parser::e406, "recipe:SinFunction", null, "construct", K81, K7, false, K4, false, K82); + return s.rule(f, 45, 1134, true, true, TinyExpressionP4Parser::e434, "recipe:SinFunction", null, "construct", K81, K7, false, K4, false, K82); } private static Match parseCosFunction_46(Session s, Frame f) { - return s.rule(f, 46, 1093, true, true, TinyExpressionP4Parser::e411, "recipe:CosFunction", null, "construct", K83, K7, false, K4, false, K84); + return s.rule(f, 46, 1135, true, true, TinyExpressionP4Parser::e439, "recipe:CosFunction", null, "construct", K83, K7, false, K4, false, K84); } private static Match parseTanFunction_47(Session s, Frame f) { - return s.rule(f, 47, 1094, true, true, TinyExpressionP4Parser::e416, "recipe:TanFunction", null, "construct", K85, K7, false, K4, false, K86); + return s.rule(f, 47, 1136, true, true, TinyExpressionP4Parser::e444, "recipe:TanFunction", null, "construct", K85, K7, false, K4, false, K86); } private static Match parseSqrtFunction_48(Session s, Frame f) { - return s.rule(f, 48, 1095, true, true, TinyExpressionP4Parser::e421, "recipe:SqrtFunction", null, "construct", K87, K7, false, K4, false, K88); + return s.rule(f, 48, 1137, true, true, TinyExpressionP4Parser::e449, "recipe:SqrtFunction", null, "construct", K87, K7, false, K4, false, K88); } private static Match parseMinFunction_49(Session s, Frame f) { - return s.rule(f, 49, 1096, true, true, TinyExpressionP4Parser::e426, "recipe:MinFunction", null, "construct", K89, K7, false, K4, false, K90); + return s.rule(f, 49, 1138, true, true, TinyExpressionP4Parser::e454, "recipe:MinFunction", null, "construct", K89, K7, false, K4, false, K90); } private static Match parseMaxFunction_50(Session s, Frame f) { - return s.rule(f, 50, 1097, true, true, TinyExpressionP4Parser::e435, "recipe:MaxFunction", null, "construct", K91, K7, false, K4, false, K92); + return s.rule(f, 50, 1139, true, true, TinyExpressionP4Parser::e463, "recipe:MaxFunction", null, "construct", K91, K7, false, K4, false, K92); } private static Match parseRandomFunction_51(Session s, Frame f) { - return s.rule(f, 51, 1098, false, false, TinyExpressionP4Parser::e444, "recipe:RandomFunction", null, "construct", K13, K7, false, K4, false, K93); + return s.rule(f, 51, 1140, false, false, TinyExpressionP4Parser::e472, "recipe:RandomFunction", null, "construct", K13, K7, false, K4, false, K93); } private static Match parseAbsFunction_52(Session s, Frame f) { - return s.rule(f, 52, 1099, true, true, TinyExpressionP4Parser::e448, "recipe:AbsFunction", null, "construct", K94, K7, false, K4, false, K95); + return s.rule(f, 52, 1141, true, true, TinyExpressionP4Parser::e476, "recipe:AbsFunction", null, "construct", K94, K7, false, K4, false, K95); } private static Match parseRoundFunction_53(Session s, Frame f) { - return s.rule(f, 53, 1100, true, true, TinyExpressionP4Parser::e453, "recipe:RoundFunction", null, "construct", K96, K7, false, K4, false, K97); + return s.rule(f, 53, 1142, true, true, TinyExpressionP4Parser::e481, "recipe:RoundFunction", null, "construct", K96, K7, false, K4, false, K97); } private static Match parseCeilFunction_54(Session s, Frame f) { - return s.rule(f, 54, 1101, true, true, TinyExpressionP4Parser::e458, "recipe:CeilFunction", null, "construct", K98, K7, false, K4, false, K99); + return s.rule(f, 54, 1143, true, true, TinyExpressionP4Parser::e486, "recipe:CeilFunction", null, "construct", K98, K7, false, K4, false, K99); } private static Match parseFloorFunction_55(Session s, Frame f) { - return s.rule(f, 55, 1102, true, true, TinyExpressionP4Parser::e463, "recipe:FloorFunction", null, "construct", K100, K7, false, K4, false, K101); + return s.rule(f, 55, 1144, true, true, TinyExpressionP4Parser::e491, "recipe:FloorFunction", null, "construct", K100, K7, false, K4, false, K101); } private static Match parsePowFunction_56(Session s, Frame f) { - return s.rule(f, 56, 1103, true, true, TinyExpressionP4Parser::e468, "recipe:PowFunction", null, "construct", K102, K7, false, K4, false, K103); + return s.rule(f, 56, 1145, true, true, TinyExpressionP4Parser::e496, "recipe:PowFunction", null, "construct", K102, K7, false, K4, false, K103); } private static Match parseLogFunction_57(Session s, Frame f) { - return s.rule(f, 57, 1104, true, true, TinyExpressionP4Parser::e475, "recipe:LogFunction", null, "construct", K104, K7, false, K4, false, K105); + return s.rule(f, 57, 1146, true, true, TinyExpressionP4Parser::e503, "recipe:LogFunction", null, "construct", K104, K7, false, K4, false, K105); } private static Match parseExpFunction_58(Session s, Frame f) { - return s.rule(f, 58, 1105, true, true, TinyExpressionP4Parser::e480, "recipe:ExpFunction", null, "construct", K106, K7, false, K4, false, K107); + return s.rule(f, 58, 1147, true, true, TinyExpressionP4Parser::e508, "recipe:ExpFunction", null, "construct", K106, K7, false, K4, false, K107); } private static Match parseToNumFunction_59(Session s, Frame f) { - return s.rule(f, 59, 1106, true, true, TinyExpressionP4Parser::e485, "recipe:ToNumFunction", null, "construct", K108, K7, false, K4, false, K109); + return s.rule(f, 59, 1148, true, true, TinyExpressionP4Parser::e513, "recipe:ToNumFunction", null, "construct", K108, K7, false, K4, false, K109); } private static Match parseNumberFactor_60(Session s, Frame f) { - return s.rule(f, 60, 1107, true, true, TinyExpressionP4Parser::e492, null, null, null, K13, K7, false, K4, false, K110); + return s.rule(f, 60, 1149, true, true, TinyExpressionP4Parser::e520, null, null, null, K13, K7, false, K4, false, K110); } private static Match parseToUpperCaseFunction_61(Session s, Frame f) { - return s.rule(f, 61, 1108, true, true, TinyExpressionP4Parser::e509, "recipe:ToUpperCaseFunction", null, "construct", K111, K7, false, K4, false, K112); + return s.rule(f, 61, 1150, true, true, TinyExpressionP4Parser::e537, "recipe:ToUpperCaseFunction", null, "construct", K111, K7, false, K4, false, K112); } private static Match parseToLowerCaseFunction_62(Session s, Frame f) { - return s.rule(f, 62, 1109, true, true, TinyExpressionP4Parser::e514, "recipe:ToLowerCaseFunction", null, "construct", K113, K7, false, K4, false, K114); + return s.rule(f, 62, 1151, true, true, TinyExpressionP4Parser::e542, "recipe:ToLowerCaseFunction", null, "construct", K113, K7, false, K4, false, K114); } private static Match parseTrimFunction_63(Session s, Frame f) { - return s.rule(f, 63, 1110, true, true, TinyExpressionP4Parser::e519, "recipe:TrimFunction", null, "construct", K115, K7, false, K4, false, K116); + return s.rule(f, 63, 1152, true, true, TinyExpressionP4Parser::e547, "recipe:TrimFunction", null, "construct", K115, K7, false, K4, false, K116); } private static Match parseLengthFunction_64(Session s, Frame f) { - return s.rule(f, 64, 1111, true, true, TinyExpressionP4Parser::e524, "recipe:LengthFunction", null, "construct", K117, K7, false, K4, false, K118); + return s.rule(f, 64, 1153, true, true, TinyExpressionP4Parser::e552, "recipe:LengthFunction", null, "construct", K117, K7, false, K4, false, K118); } private static Match parseLenFunction_65(Session s, Frame f) { - return s.rule(f, 65, 1112, true, true, TinyExpressionP4Parser::e529, "recipe:LenFunction", null, "construct", K119, K7, false, K4, false, K120); + return s.rule(f, 65, 1154, true, true, TinyExpressionP4Parser::e557, "recipe:LenFunction", null, "construct", K119, K7, false, K4, false, K120); } private static Match parseToUpperCaseDotMethod_66(Session s, Frame f) { - return s.rule(f, 66, 1113, true, true, TinyExpressionP4Parser::e534, "recipe:ToUpperCaseDotMethod", null, "construct", K121, K7, false, K4, false, K122); + return s.rule(f, 66, 1155, true, true, TinyExpressionP4Parser::e562, "recipe:ToUpperCaseDotMethod", null, "construct", K121, K7, false, K4, false, K122); } private static Match parseToLowerCaseDotMethod_67(Session s, Frame f) { - return s.rule(f, 67, 1114, true, true, TinyExpressionP4Parser::e539, "recipe:ToLowerCaseDotMethod", null, "construct", K123, K7, false, K4, false, K124); + return s.rule(f, 67, 1156, true, true, TinyExpressionP4Parser::e567, "recipe:ToLowerCaseDotMethod", null, "construct", K123, K7, false, K4, false, K124); } private static Match parseTrimDotMethod_68(Session s, Frame f) { - return s.rule(f, 68, 1115, true, true, TinyExpressionP4Parser::e544, "recipe:TrimDotMethod", null, "construct", K125, K7, false, K4, false, K126); + return s.rule(f, 68, 1157, true, true, TinyExpressionP4Parser::e572, "recipe:TrimDotMethod", null, "construct", K125, K7, false, K4, false, K126); } private static Match parseLengthDotMethod_69(Session s, Frame f) { - return s.rule(f, 69, 1116, true, true, TinyExpressionP4Parser::e549, "recipe:LengthDotMethod", null, "construct", K127, K7, false, K4, false, K128); + return s.rule(f, 69, 1158, true, true, TinyExpressionP4Parser::e577, "recipe:LengthDotMethod", null, "construct", K127, K7, false, K4, false, K128); } private static Match parseStartsWithFunction_70(Session s, Frame f) { - return s.rule(f, 70, 1117, true, true, TinyExpressionP4Parser::e554, "recipe:StartsWithFunction", null, "construct", K129, K7, false, K4, false, K130); + return s.rule(f, 70, 1159, true, true, TinyExpressionP4Parser::e582, "recipe:StartsWithFunction", null, "construct", K129, K7, false, K4, false, K130); } private static Match parseEndsWithFunction_71(Session s, Frame f) { - return s.rule(f, 71, 1118, true, true, TinyExpressionP4Parser::e565, "recipe:EndsWithFunction", null, "construct", K131, K7, false, K4, false, K132); + return s.rule(f, 71, 1160, true, true, TinyExpressionP4Parser::e593, "recipe:EndsWithFunction", null, "construct", K131, K7, false, K4, false, K132); } private static Match parseContainsFunction_72(Session s, Frame f) { - return s.rule(f, 72, 1119, true, true, TinyExpressionP4Parser::e576, "recipe:ContainsFunction", null, "construct", K133, K7, false, K4, false, K134); + return s.rule(f, 72, 1161, true, true, TinyExpressionP4Parser::e604, "recipe:ContainsFunction", null, "construct", K133, K7, false, K4, false, K134); } private static Match parseInMethod_73(Session s, Frame f) { - return s.rule(f, 73, 1120, true, true, TinyExpressionP4Parser::e587, "recipe:InMethod", null, "construct", K135, K7, false, K4, false, K136); + return s.rule(f, 73, 1162, true, true, TinyExpressionP4Parser::e615, "recipe:InMethod", null, "construct", K135, K7, false, K4, false, K136); } private static Match parseStartsWithDotMethod_74(Session s, Frame f) { - return s.rule(f, 74, 1121, true, true, TinyExpressionP4Parser::e597, "recipe:StartsWithDotMethod", null, "construct", K137, K7, false, K4, false, K138); + return s.rule(f, 74, 1163, true, true, TinyExpressionP4Parser::e625, "recipe:StartsWithDotMethod", null, "construct", K137, K7, false, K4, false, K138); } private static Match parseEndsWithDotMethod_75(Session s, Frame f) { - return s.rule(f, 75, 1122, true, true, TinyExpressionP4Parser::e607, "recipe:EndsWithDotMethod", null, "construct", K139, K7, false, K4, false, K140); + return s.rule(f, 75, 1164, true, true, TinyExpressionP4Parser::e635, "recipe:EndsWithDotMethod", null, "construct", K139, K7, false, K4, false, K140); } private static Match parseContainsDotMethod_76(Session s, Frame f) { - return s.rule(f, 76, 1123, true, true, TinyExpressionP4Parser::e617, "recipe:ContainsDotMethod", null, "construct", K141, K7, false, K4, false, K142); + return s.rule(f, 76, 1165, true, true, TinyExpressionP4Parser::e645, "recipe:ContainsDotMethod", null, "construct", K141, K7, false, K4, false, K142); } private static Match parseStringPredicateReceiver_77(Session s, Frame f) { - return s.rule(f, 77, 1124, true, true, TinyExpressionP4Parser::e627, null, null, null, K13, K7, false, K4, false, K143); + return s.rule(f, 77, 1166, true, true, TinyExpressionP4Parser::e655, null, null, null, K13, K7, false, K4, false, K143); } private static Match parseIsPresentFunction_78(Session s, Frame f) { - return s.rule(f, 78, 1125, true, true, TinyExpressionP4Parser::e632, "recipe:IsPresentFunction", null, "construct", K144, K7, false, K4, false, K145); + return s.rule(f, 78, 1167, true, true, TinyExpressionP4Parser::e660, "recipe:IsPresentFunction", null, "construct", K144, K7, false, K4, false, K145); } private static Match parseInTimeRangeFunction_79(Session s, Frame f) { - return s.rule(f, 79, 1126, true, true, TinyExpressionP4Parser::e637, "recipe:InTimeRangeFunction", null, "construct", K146, K7, false, K4, false, K147); + return s.rule(f, 79, 1168, true, true, TinyExpressionP4Parser::e665, "recipe:InTimeRangeFunction", null, "construct", K146, K7, false, K4, false, K147); } private static Match parseInDayTimeRangeFunction_80(Session s, Frame f) { - return s.rule(f, 80, 1127, true, true, TinyExpressionP4Parser::e644, "recipe:InDayTimeRangeFunction", null, "construct", K148, K7, false, K4, false, K149); + return s.rule(f, 80, 1169, true, true, TinyExpressionP4Parser::e672, "recipe:InDayTimeRangeFunction", null, "construct", K148, K7, false, K4, false, K149); } private static Match parseDayOfWeek_81(Session s, Frame f) { - return s.rule(f, 81, 1128, false, false, TinyExpressionP4Parser::e655, null, null, null, K13, K7, false, K4, false, K150); + return s.rule(f, 81, 1170, false, false, TinyExpressionP4Parser::e683, null, null, null, K13, K7, false, K4, false, K150); } private static Match parseSliceBaseReceiver_82(Session s, Frame f) { - return s.rule(f, 82, 1129, true, true, TinyExpressionP4Parser::e663, null, null, null, K13, K7, false, K4, false, K151); + return s.rule(f, 82, 1171, true, true, TinyExpressionP4Parser::e691, null, null, null, K13, K7, false, K4, false, K151); } private static Match parseSliceStartIndex_83(Session s, Frame f) { - return s.rule(f, 83, 1130, true, true, TinyExpressionP4Parser::e679, null, null, null, K13, K7, false, K4, false, K152); + return s.rule(f, 83, 1172, true, true, TinyExpressionP4Parser::e707, null, null, null, K13, K7, false, K4, false, K152); } private static Match parseSliceEndIndex_84(Session s, Frame f) { - return s.rule(f, 84, 1131, true, true, TinyExpressionP4Parser::e681, null, null, null, K13, K7, false, K4, false, K153); + return s.rule(f, 84, 1173, true, true, TinyExpressionP4Parser::e709, null, null, null, K13, K7, false, K4, false, K153); } private static Match parseSliceStepIndex_85(Session s, Frame f) { - return s.rule(f, 85, 1132, true, true, TinyExpressionP4Parser::e683, null, null, null, K13, K7, false, K4, false, K154); + return s.rule(f, 85, 1174, true, true, TinyExpressionP4Parser::e711, null, null, null, K13, K7, false, K4, false, K154); } private static Match parseSliceBaseExpression_86(Session s, Frame f) { - return s.rule(f, 86, 1133, true, true, TinyExpressionP4Parser::e685, "recipe:SliceBaseExpression", null, "construct", K155, K7, false, K4, false, K156); + return s.rule(f, 86, 1175, true, true, TinyExpressionP4Parser::e713, "recipe:SliceBaseExpression", null, "construct", K155, K7, false, K4, false, K156); } private static Match parseSliceNestedExpression_87(Session s, Frame f) { - return s.rule(f, 87, 1134, true, true, TinyExpressionP4Parser::e742, "recipe:SliceNestedExpression", null, "construct", K157, K7, false, K4, false, K156); + return s.rule(f, 87, 1176, true, true, TinyExpressionP4Parser::e770, "recipe:SliceNestedExpression", null, "construct", K157, K7, false, K4, false, K156); } private static Match parseSliceExpression_88(Session s, Frame f) { - return s.rule(f, 88, 1135, true, true, TinyExpressionP4Parser::e799, null, null, null, K13, K7, false, K4, false, K158); + return s.rule(f, 88, 1177, true, true, TinyExpressionP4Parser::e827, null, null, null, K13, K7, false, K4, false, K158); } private static Match parseStringExpression_89(Session s, Frame f) { - return s.rule(f, 89, 1136, true, true, TinyExpressionP4Parser::e802, "recipe:StringExpression", null, "assocLists", K159, K7, false, K4, false, K160); + return s.rule(f, 89, 1178, true, true, TinyExpressionP4Parser::e830, "recipe:StringExpression", null, "assocLists", K159, K7, false, K4, false, K160); } private static Match parseParenthesizedStringExpression_90(Session s, Frame f) { - return s.rule(f, 90, 1137, true, true, TinyExpressionP4Parser::e808, null, null, null, K13, K7, false, K4, false, K161); + return s.rule(f, 90, 1179, true, true, TinyExpressionP4Parser::e836, null, null, null, K13, K7, false, K4, false, K161); } private static Match parseStringTerm_91(Session s, Frame f) { - return s.rule(f, 91, 1138, true, true, TinyExpressionP4Parser::e812, null, null, null, K13, K7, false, K4, false, K162); + return s.rule(f, 91, 1180, true, true, TinyExpressionP4Parser::e840, null, null, null, K13, K7, false, K4, false, K162); } private static Match parseStringCastVariable_92(Session s, Frame f) { - return s.rule(f, 92, 1139, false, false, TinyExpressionP4Parser::e829, "recipe:StringCastVariable", null, "construct", K163, K7, false, K4, false, K164); + return s.rule(f, 92, 1181, false, false, TinyExpressionP4Parser::e857, "recipe:StringCastVariable", null, "construct", K163, K7, false, K4, false, K164); } private static Match parseStringTypedVariable_93(Session s, Frame f) { - return s.rule(f, 93, 1140, false, false, TinyExpressionP4Parser::e838, "recipe:StringTypedVariable", null, "construct", K165, K7, false, K4, false, K166); + return s.rule(f, 93, 1182, false, false, TinyExpressionP4Parser::e866, "recipe:StringTypedVariable", null, "construct", K165, K7, false, K4, false, K166); } private static Match parseBooleanExpression_94(Session s, Frame f) { - return s.rule(f, 94, 1141, true, true, TinyExpressionP4Parser::e846, "recipe:BooleanExpression", null, "assocLists", K167, K7, false, K4, false, K168); + return s.rule(f, 94, 1183, true, true, TinyExpressionP4Parser::e874, "recipe:BooleanExpression", null, "assocLists", K167, K7, false, K4, false, K168); } private static Match parseBooleanAndExpression_95(Session s, Frame f) { - return s.rule(f, 95, 1142, true, true, TinyExpressionP4Parser::e852, "recipe:BooleanAndExpression", null, "assocLists", K169, K7, false, K4, false, K170); + return s.rule(f, 95, 1184, true, true, TinyExpressionP4Parser::e880, "recipe:BooleanAndExpression", null, "assocLists", K169, K7, false, K4, false, K170); } private static Match parseBooleanXorExpression_96(Session s, Frame f) { - return s.rule(f, 96, 1143, true, true, TinyExpressionP4Parser::e858, "recipe:BooleanXorExpression", null, "assocLists", K171, K7, false, K4, false, K172); + return s.rule(f, 96, 1185, true, true, TinyExpressionP4Parser::e886, "recipe:BooleanXorExpression", null, "assocLists", K171, K7, false, K4, false, K172); } private static Match parseNotExpression_97(Session s, Frame f) { - return s.rule(f, 97, 1144, true, true, TinyExpressionP4Parser::e864, "recipe:NotExpression", null, "construct", K173, K7, false, K4, false, K174); + return s.rule(f, 97, 1186, true, true, TinyExpressionP4Parser::e892, "recipe:NotExpression", null, "construct", K173, K7, false, K4, false, K174); } private static Match parseBooleanComparable_98(Session s, Frame f) { - return s.rule(f, 98, 1145, true, true, TinyExpressionP4Parser::e869, null, null, null, K13, K7, false, K4, false, K175); + return s.rule(f, 98, 1187, true, true, TinyExpressionP4Parser::e897, null, null, null, K13, K7, false, K4, false, K175); } private static Match parseBooleanEqualityExpression_99(Session s, Frame f) { - return s.rule(f, 99, 1146, true, true, TinyExpressionP4Parser::e892, "recipe:BooleanEqualityExpression", null, "construct", K176, K7, false, K4, false, K177); + return s.rule(f, 99, 1188, true, true, TinyExpressionP4Parser::e920, "recipe:BooleanEqualityExpression", null, "construct", K176, K7, false, K4, false, K177); } private static Match parseBooleanFactor_100(Session s, Frame f) { - return s.rule(f, 100, 1147, true, true, TinyExpressionP4Parser::e896, "recipe:BooleanFactor", null, "construct", K178, K7, false, K4, false, K179); + return s.rule(f, 100, 1189, true, true, TinyExpressionP4Parser::e924, "recipe:BooleanFactor", null, "construct", K178, K7, false, K4, false, K179); } private static Match parseStringComparisonExpression_101(Session s, Frame f) { - return s.rule(f, 101, 1148, true, true, TinyExpressionP4Parser::e901, "recipe:StringComparisonExpression", null, "construct", K180, K7, false, K4, false, K181); + return s.rule(f, 101, 1190, true, true, TinyExpressionP4Parser::e929, "recipe:StringComparisonExpression", null, "construct", K180, K7, false, K4, false, K181); } private static Match parseEqualityOp_102(Session s, Frame f) { - return s.rule(f, 102, 1149, false, false, TinyExpressionP4Parser::e905, null, null, null, K13, K7, false, K4, false, K182); + return s.rule(f, 102, 1191, false, false, TinyExpressionP4Parser::e933, null, null, null, K13, K7, false, K4, false, K182); } private static Match parseComparisonExpression_103(Session s, Frame f) { - return s.rule(f, 103, 1150, true, true, TinyExpressionP4Parser::e908, "recipe:ComparisonExpression", null, "construct", K183, K7, false, K4, false, K184); + return s.rule(f, 103, 1192, true, true, TinyExpressionP4Parser::e936, "recipe:ComparisonExpression", null, "construct", K183, K7, false, K4, false, K184); } private static Match parseCompareOp_104(Session s, Frame f) { - return s.rule(f, 104, 1151, false, false, TinyExpressionP4Parser::e912, null, null, null, K13, K7, false, K4, false, K185); + return s.rule(f, 104, 1193, false, false, TinyExpressionP4Parser::e940, null, null, null, K13, K7, false, K4, false, K185); } private static Match parseObjectExpression_105(Session s, Frame f) { - return s.rule(f, 105, 1152, true, true, TinyExpressionP4Parser::e919, "recipe:ObjectExpression", null, "construct", K186, K7, false, K4, false, K187); + return s.rule(f, 105, 1194, true, true, TinyExpressionP4Parser::e947, "recipe:ObjectExpression", null, "construct", K186, K7, false, K4, false, K187); } private static Match parseIfExpression_106(Session s, Frame f) { - return s.rule(f, 106, 1153, true, true, TinyExpressionP4Parser::e926, "recipe:IfExpression", null, "construct", K188, K7, false, K4, false, K189); + return s.rule(f, 106, 1195, true, true, TinyExpressionP4Parser::e954, "recipe:IfExpression", null, "construct", K188, K7, false, K4, false, K189); } private static Match parseBranchExpression_107(Session s, Frame f) { - return s.rule(f, 107, 1154, true, true, TinyExpressionP4Parser::e938, "recipe:BranchExpression", null, "construct", K190, K7, false, K4, false, K191); + return s.rule(f, 107, 1196, true, true, TinyExpressionP4Parser::e966, "recipe:BranchExpression", null, "construct", K190, K7, false, K4, false, K191); } private static Match parseTernaryExpression_108(Session s, Frame f) { - return s.rule(f, 108, 1155, true, true, TinyExpressionP4Parser::e947, "recipe:TernaryExpression", null, "construct", K192, K7, false, K4, false, K193); + return s.rule(f, 108, 1197, true, true, TinyExpressionP4Parser::e975, "recipe:TernaryExpression", null, "construct", K192, K7, false, K4, false, K193); } private static Match parseNumberMatchExpression_109(Session s, Frame f) { - return s.rule(f, 109, 1156, true, true, TinyExpressionP4Parser::e955, "recipe:NumberMatchExpression", null, "construct", K194, K7, false, K4, false, K195); + return s.rule(f, 109, 1198, true, true, TinyExpressionP4Parser::e983, "recipe:NumberMatchExpression", null, "construct", K194, K7, false, K4, false, K195); } private static Match parseNumberCase_110(Session s, Frame f) { - return s.rule(f, 110, 1157, true, true, TinyExpressionP4Parser::e966, "recipe:NumberCase", null, "construct", K196, K7, false, K4, false, K197); + return s.rule(f, 110, 1199, true, true, TinyExpressionP4Parser::e994, "recipe:NumberCase", null, "construct", K196, K7, false, K4, false, K197); } private static Match parseNumberDefaultCase_111(Session s, Frame f) { - return s.rule(f, 111, 1158, true, true, TinyExpressionP4Parser::e970, "recipe:NumberDefaultCase", null, "construct", K198, K7, false, K4, false, K199); + return s.rule(f, 111, 1200, true, true, TinyExpressionP4Parser::e998, "recipe:NumberDefaultCase", null, "construct", K198, K7, false, K4, false, K199); } private static Match parseNumberCaseValue_112(Session s, Frame f) { - return s.rule(f, 112, 1159, true, true, TinyExpressionP4Parser::e974, "recipe:NumberCaseValue", null, "construct", K200, K7, false, K4, false, K201); + return s.rule(f, 112, 1201, true, true, TinyExpressionP4Parser::e1002, "recipe:NumberCaseValue", null, "construct", K200, K7, false, K4, false, K201); } private static Match parseStringMatchExpression_113(Session s, Frame f) { - return s.rule(f, 113, 1160, true, true, TinyExpressionP4Parser::e976, "recipe:StringMatchExpression", null, "construct", K202, K7, false, K4, false, K195); + return s.rule(f, 113, 1202, true, true, TinyExpressionP4Parser::e1004, "recipe:StringMatchExpression", null, "construct", K202, K7, false, K4, false, K195); } private static Match parseStringCase_114(Session s, Frame f) { - return s.rule(f, 114, 1161, true, true, TinyExpressionP4Parser::e987, "recipe:StringCase", null, "construct", K203, K7, false, K4, false, K197); + return s.rule(f, 114, 1203, true, true, TinyExpressionP4Parser::e1015, "recipe:StringCase", null, "construct", K203, K7, false, K4, false, K197); } private static Match parseStringDefaultCase_115(Session s, Frame f) { - return s.rule(f, 115, 1162, true, true, TinyExpressionP4Parser::e991, "recipe:StringDefaultCase", null, "construct", K204, K7, false, K4, false, K199); + return s.rule(f, 115, 1204, true, true, TinyExpressionP4Parser::e1019, "recipe:StringDefaultCase", null, "construct", K204, K7, false, K4, false, K199); } private static Match parseStringCaseValue_116(Session s, Frame f) { - return s.rule(f, 116, 1163, true, true, TinyExpressionP4Parser::e995, "recipe:StringCaseValue", null, "construct", K205, K7, false, K4, false, K206); + return s.rule(f, 116, 1205, true, true, TinyExpressionP4Parser::e1023, "recipe:StringCaseValue", null, "construct", K205, K7, false, K4, false, K206); } private static Match parseBooleanMatchExpression_117(Session s, Frame f) { - return s.rule(f, 117, 1164, true, true, TinyExpressionP4Parser::e997, "recipe:BooleanMatchExpression", null, "construct", K207, K7, false, K4, false, K195); + return s.rule(f, 117, 1206, true, true, TinyExpressionP4Parser::e1025, "recipe:BooleanMatchExpression", null, "construct", K207, K7, false, K4, false, K195); } private static Match parseBooleanCase_118(Session s, Frame f) { - return s.rule(f, 118, 1165, true, true, TinyExpressionP4Parser::e1008, "recipe:BooleanCase", null, "construct", K208, K7, false, K4, false, K197); + return s.rule(f, 118, 1207, true, true, TinyExpressionP4Parser::e1036, "recipe:BooleanCase", null, "construct", K208, K7, false, K4, false, K197); } private static Match parseBooleanDefaultCase_119(Session s, Frame f) { - return s.rule(f, 119, 1166, true, true, TinyExpressionP4Parser::e1012, "recipe:BooleanDefaultCase", null, "construct", K209, K7, false, K4, false, K199); + return s.rule(f, 119, 1208, true, true, TinyExpressionP4Parser::e1040, "recipe:BooleanDefaultCase", null, "construct", K209, K7, false, K4, false, K199); } private static Match parseBooleanCaseValue_120(Session s, Frame f) { - return s.rule(f, 120, 1167, true, true, TinyExpressionP4Parser::e1016, "recipe:BooleanCaseValue", null, "construct", K210, K7, false, K4, false, K211); + return s.rule(f, 120, 1209, true, true, TinyExpressionP4Parser::e1044, "recipe:BooleanCaseValue", null, "construct", K210, K7, false, K4, false, K211); } private static Match parseVariableRef_121(Session s, Frame f) { - return s.rule(f, 121, 1168, true, true, TinyExpressionP4Parser::e1018, "recipe:VariableRef", null, "construct", K212, K213, false, K4, false, K50); + return s.rule(f, 121, 1210, true, true, TinyExpressionP4Parser::e1046, "recipe:VariableRef", null, "construct", K212, K213, false, K4, false, K50); } private static Match parseTypeKeyword_122(Session s, Frame f) { - return s.rule(f, 122, 1169, false, false, TinyExpressionP4Parser::e1026, null, null, null, K13, K7, false, K4, false, K214); + return s.rule(f, 122, 1211, false, false, TinyExpressionP4Parser::e1054, null, null, null, K13, K7, false, K4, false, K214); } private static Match parseExpression_123(Session s, Frame f) { - return s.rule(f, 123, 1170, true, true, TinyExpressionP4Parser::e1037, "recipe:Expression", null, "construct", K215, K7, false, K4, false, K161); + return s.rule(f, 123, 1212, true, true, TinyExpressionP4Parser::e1065, "recipe:Expression", null, "construct", K215, K7, false, K4, false, K161); + } + private static Match parseNumberRootExpression_124(Session s, Frame f) { + return s.rule(f, 124, 1213, true, true, TinyExpressionP4Parser::e1075, "recipe:NumberRootExpression", null, "construct", K216, K7, false, K4, false, K217); + } + private static Match parseBooleanRootExpression_125(Session s, Frame f) { + return s.rule(f, 125, 1214, true, true, TinyExpressionP4Parser::e1077, "recipe:BooleanRootExpression", null, "construct", K218, K7, false, K4, false, K219); + } + private static Match parseStringRootExpression_126(Session s, Frame f) { + return s.rule(f, 126, 1215, true, true, TinyExpressionP4Parser::e1079, "recipe:StringRootExpression", null, "construct", K220, K7, false, K4, false, K221); + } + private static Match parseObjectRootExpression_127(Session s, Frame f) { + return s.rule(f, 127, 1216, true, true, TinyExpressionP4Parser::e1081, "recipe:ObjectRootExpression", null, "construct", K222, K7, false, K4, false, K223); + } + private static Match parseMethodRootExpression_128(Session s, Frame f) { + return s.rule(f, 128, 1217, true, true, TinyExpressionP4Parser::e1083, "recipe:MethodRootExpression", null, "construct", K224, K7, false, K4, false, K225); + } + private static Match parseParenthesizedRootExpression_129(Session s, Frame f) { + return s.rule(f, 129, 1218, true, true, TinyExpressionP4Parser::e1085, "recipe:ParenthesizedRootExpression", null, "construct", K226, K7, false, K4, false, K161); } private static Match e0(Session s, Frame f) { f.reset = false; if (s.bypassWrap) { Match r = f.matched ? e0M(s, f) : e0C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e0M : TinyExpressionP4Parser::e0C, K216, K216, K216, K217, K217, "TinyExpressionP4::Formula", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1007:1178:body/seq", false, false, "node", true, K4); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e0M : TinyExpressionP4Parser::e0C, K227, K227, K227, K228, K228, "TinyExpressionP4::Formula", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1175:1742:body/seq", false, false, "node", true, K4); } private static Match e0C(Session s, Frame f) { - return s.sequence(f, K221, K220); + return s.sequence(f, K232, K231); } private static Match e0M(Session s, Frame f) { - return s.sequence(f, K221, K220); + return s.sequence(f, K232, K231); } private static Match e1(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e1M(s, f) : e1C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e1M : TinyExpressionP4Parser::e1C, K216, K216, K216, K217, K217, "TinyExpressionP4::Formula", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1007:1032:body/0/repeat", true, false, "node", true, K222); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e1M : TinyExpressionP4Parser::e1C, K227, K227, K227, K228, K228, "TinyExpressionP4::Formula", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1175:1200:body/0/repeat", true, false, "node", true, K233); } private static Match e1C(Session s, Frame f) { return s.repeat(f, TinyExpressionP4Parser::e2, 0, Integer.MAX_VALUE, null, Trivia.NONE); @@ -1381,7 +1441,7 @@ private static Match e1M(Session s, Frame f) { } private static Match e2(Session s, Frame f) { if (s.bypassCapture) { Match r = f.matched ? e2M(s, f) : e2C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e2M : TinyExpressionP4Parser::e2C, K223, K224, K225, K226, K226, "TinyExpressionP4::Formula", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1009:1018:body/0/0/ruleRef", false, false, "node", false, K227); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e2M : TinyExpressionP4Parser::e2C, K234, K235, K236, K237, K237, "TinyExpressionP4::Formula", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1177:1186:body/0/0/ruleRef", false, false, "node", false, K238); } private static Match e2C(Session s, Frame f) { return parseCodeBlock_1(s, f); @@ -1391,7 +1451,7 @@ private static Match e2M(Session s, Frame f) { } private static Match e3(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e3M(s, f) : e3C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e3M : TinyExpressionP4Parser::e3C, K216, K216, K216, K217, K217, "TinyExpressionP4::Formula", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1033:1063:body/1/repeat", true, false, "node", true, K222); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e3M : TinyExpressionP4Parser::e3C, K227, K227, K227, K228, K228, "TinyExpressionP4::Formula", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1201:1231:body/1/repeat", true, false, "node", true, K233); } private static Match e3C(Session s, Frame f) { return s.repeat(f, TinyExpressionP4Parser::e4, 0, Integer.MAX_VALUE, null, Trivia.NONE); @@ -1401,7 +1461,7 @@ private static Match e3M(Session s, Frame f) { } private static Match e4(Session s, Frame f) { if (s.bypassCapture) { Match r = f.matched ? e4M(s, f) : e4C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e4M : TinyExpressionP4Parser::e4C, K228, K229, K225, K226, K226, "TinyExpressionP4::Formula", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1035:1052:body/1/0/ruleRef", false, false, "node", false, K10); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e4M : TinyExpressionP4Parser::e4C, K239, K240, K236, K237, K237, "TinyExpressionP4::Formula", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1203:1220:body/1/0/ruleRef", false, false, "node", false, K10); } private static Match e4C(Session s, Frame f) { return parseImportDeclaration_2(s, f); @@ -1411,7 +1471,7 @@ private static Match e4M(Session s, Frame f) { } private static Match e5(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e5M(s, f) : e5C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e5M : TinyExpressionP4Parser::e5C, K216, K216, K216, K217, K217, "TinyExpressionP4::Formula", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1064:1101:body/2/repeat", true, false, "node", true, K222); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e5M : TinyExpressionP4Parser::e5C, K227, K227, K227, K228, K228, "TinyExpressionP4::Formula", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1232:1269:body/2/repeat", true, false, "node", true, K233); } private static Match e5C(Session s, Frame f) { return s.repeat(f, TinyExpressionP4Parser::e6, 0, Integer.MAX_VALUE, null, Trivia.NONE); @@ -1421,7 +1481,7 @@ private static Match e5M(Session s, Frame f) { } private static Match e6(Session s, Frame f) { if (s.bypassCapture) { Match r = f.matched ? e6M(s, f) : e6C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e6M : TinyExpressionP4Parser::e6C, K230, K231, K225, K226, K226, "TinyExpressionP4::Formula", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1066:1085:body/2/0/ruleRef", false, false, "node", false, K227); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e6M : TinyExpressionP4Parser::e6C, K241, K242, K236, K237, K237, "TinyExpressionP4::Formula", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1234:1253:body/2/0/ruleRef", false, false, "node", false, K238); } private static Match e6C(Session s, Frame f) { return parseVariableDeclaration_4(s, f); @@ -1431,7 +1491,7 @@ private static Match e6M(Session s, Frame f) { } private static Match e7(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e7M(s, f) : e7C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e7M : TinyExpressionP4Parser::e7C, K216, K216, K216, K217, K217, "TinyExpressionP4::Formula", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1106:1120:body/3/repeat", true, false, "node", true, K31); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e7M : TinyExpressionP4Parser::e7C, K227, K227, K227, K228, K228, "TinyExpressionP4::Formula", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1274:1288:body/3/repeat", true, false, "node", true, K31); } private static Match e7C(Session s, Frame f) { return s.repeat(f, TinyExpressionP4Parser::e8, 0, Integer.MAX_VALUE, null, Trivia.NONE); @@ -1441,7 +1501,7 @@ private static Match e7M(Session s, Frame f) { } private static Match e8(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e8M(s, f) : e8C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e8M : TinyExpressionP4Parser::e8C, K216, K216, K216, K217, K217, "TinyExpressionP4::Formula", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1108:1118:body/3/0/ruleRef", false, false, "node", true, K4); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e8M : TinyExpressionP4Parser::e8C, K227, K227, K227, K228, K228, "TinyExpressionP4::Formula", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1276:1286:body/3/0/ruleRef", false, false, "node", true, K4); } private static Match e8C(Session s, Frame f) { return parseAnnotation_16(s, f); @@ -1450,253 +1510,253 @@ private static Match e8M(Session s, Frame f) { return parseAnnotation_16(s, f); } private static Match e9(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e9M(s, f) : e9C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e9M : TinyExpressionP4Parser::e9C, K232, K233, K225, K226, K226, "TinyExpressionP4::Formula", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1121:1131:body/4/ruleRef", false, false, "node", false, K227); + if (s.bypassWrap) { Match r = f.matched ? e9M(s, f) : e9C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e9M : TinyExpressionP4Parser::e9C, K227, K227, K227, K228, K228, "TinyExpressionP4::Formula", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1293:1742:body/4/group", false, false, "node", true, K243); } private static Match e9C(Session s, Frame f) { - return parseExpression_123(s, f); + return e10(s, f); } private static Match e9M(Session s, Frame f) { - return parseExpression_123(s, f); + return e10(s, f); } private static Match e10(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e10M(s, f) : e10C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e10M : TinyExpressionP4Parser::e10C, K216, K216, K216, K217, K217, "TinyExpressionP4::Formula", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1144:1174:body/5/repeat", true, false, "node", true, K222); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e10M : TinyExpressionP4Parser::e10C, K227, K227, K227, K228, K228, "TinyExpressionP4::Formula", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1295:1740:body/4/0/choice", false, false, "node", true, K243); } private static Match e10C(Session s, Frame f) { - return s.repeat(f, TinyExpressionP4Parser::e11, 0, Integer.MAX_VALUE, null, Trivia.NONE); + return s.choice(f,K253,false,null,false,K252); } private static Match e10M(Session s, Frame f) { - return s.repeat(f, TinyExpressionP4Parser::e11, 0, Integer.MAX_VALUE, null, Trivia.NONE); + return s.choice(f,K253,false,null,false,K252); } private static Match e11(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e11M(s, f) : e11C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e11M : TinyExpressionP4Parser::e11C, K234, K235, K225, K226, K226, "TinyExpressionP4::Formula", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1146:1163:body/5/0/ruleRef", false, false, "node", false, K227); + f.reset = false; + if (s.bypassWrap) { Match r = f.matched ? e11M(s, f) : e11C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e11M : TinyExpressionP4Parser::e11C, K227, K227, K227, K228, K228, "TinyExpressionP4::Formula", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1295:1362:body/4/0/0/seq", false, false, "node", true, K4); } private static Match e11C(Session s, Frame f) { - return parseMethodDeclaration_19(s, f); + return s.sequence(f, K256, K255); } private static Match e11M(Session s, Frame f) { - return parseMethodDeclaration_19(s, f); + return s.sequence(f, K256, K255); } private static Match e12(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e12M(s, f) : e12C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e12M : TinyExpressionP4Parser::e12C, K216, K216, K216, K217, K217, "TinyExpressionP4::Formula", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1175:1178:body/6/tokenRef", false, true, "text", false, K236); + if (s.bypassCapture) { Match r = f.matched ? e12M(s, f) : e12C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e12M : TinyExpressionP4Parser::e12C, K257, K258, K236, K237, K237, "TinyExpressionP4::Formula", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1295:1315:body/4/0/0/0/ruleRef", false, false, "node", false, K238); } private static Match e12C(Session s, Frame f) { - return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K237,K238); + return parseNumberRootExpression_124(s, f); } private static Match e12M(Session s, Frame f) { - return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K237,K238); + return parseNumberRootExpression_124(s, f); } private static Match e13(Session s, Frame f) { - f.reset = false; - if (s.bypassWrap) { Match r = f.matched ? e13M(s, f) : e13C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e13M : TinyExpressionP4Parser::e13C, K216, K216, K216, K217, K217, "TinyExpressionP4::CodeBlock", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1611:1662:body/seq", false, false, "text", false, K4); + if (s.bypassWrap) { Match r = f.matched ? e13M(s, f) : e13C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e13M : TinyExpressionP4Parser::e13C, K227, K227, K227, K228, K228, "TinyExpressionP4::Formula", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1328:1358:body/4/0/0/1/repeat", true, false, "node", true, K233); } private static Match e13C(Session s, Frame f) { - return s.sequence(f, K241, K240); + return s.repeat(f, TinyExpressionP4Parser::e14, 0, Integer.MAX_VALUE, null, Trivia.NONE); } private static Match e13M(Session s, Frame f) { - return s.sequence(f, K241, K240); + return s.repeat(f, TinyExpressionP4Parser::e14, 0, Integer.MAX_VALUE, null, Trivia.NONE); } private static Match e14(Session s, Frame f) { if (s.bypassCapture) { Match r = f.matched ? e14M(s, f) : e14C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e14M : TinyExpressionP4Parser::e14C, K242, K243, K225, K226, K226, "TinyExpressionP4::CodeBlock", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1611:1662:body/0/group", false, false, "text", false, K244); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e14M : TinyExpressionP4Parser::e14C, K259, K260, K236, K237, K237, "TinyExpressionP4::Formula", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1330:1347:body/4/0/0/1/0/ruleRef", false, false, "node", false, K238); } private static Match e14C(Session s, Frame f) { - return e15(s, f); + return parseMethodDeclaration_19(s, f); } private static Match e14M(Session s, Frame f) { - return e15(s, f); + return parseMethodDeclaration_19(s, f); } private static Match e15(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e15M(s, f) : e15C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e15M : TinyExpressionP4Parser::e15C, K216, K216, K216, K217, K217, "TinyExpressionP4::CodeBlock", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1613:1660:body/0/0/choice", false, false, "text", false, K245); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e15M : TinyExpressionP4Parser::e15C, K227, K227, K227, K228, K228, "TinyExpressionP4::Formula", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1359:1362:body/4/0/0/2/tokenRef", false, true, "text", false, K261); } private static Match e15C(Session s, Frame f) { - return s.choice(f,K246,false,null,false); + return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K262,K263); } private static Match e15M(Session s, Frame f) { - return s.choice(f,K246,false,null,false); + return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K262,K263); } private static Match e16(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e16M(s, f) : e16C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e16M : TinyExpressionP4Parser::e16C, K216, K216, K216, K217, K217, "TinyExpressionP4::CodeBlock", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1613:1628:body/0/0/0/tokenRef", false, true, "text", false, K247); + f.reset = false; + if (s.bypassWrap) { Match r = f.matched ? e16M(s, f) : e16C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e16M : TinyExpressionP4Parser::e16C, K227, K227, K227, K228, K228, "TinyExpressionP4::Formula", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1369:1437:body/4/0/1/seq", false, false, "node", true, K4); } private static Match e16C(Session s, Frame f) { - return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K248,K249); + return s.sequence(f, K264, K255); } private static Match e16M(Session s, Frame f) { - return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K248,K249); + return s.sequence(f, K264, K255); } private static Match e17(Session s, Frame f) { - f.reset = false; - if (s.bypassWrap) { Match r = f.matched ? e17M(s, f) : e17C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e17M : TinyExpressionP4Parser::e17C, K216, K216, K216, K217, K217, "TinyExpressionP4::CodeBlock", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1631:1660:body/0/0/1/seq", false, false, "text", false, K4); + if (s.bypassCapture) { Match r = f.matched ? e17M(s, f) : e17C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e17M : TinyExpressionP4Parser::e17C, K265, K258, K236, K237, K237, "TinyExpressionP4::Formula", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1369:1390:body/4/0/1/0/ruleRef", false, false, "node", false, K238); } private static Match e17C(Session s, Frame f) { - return s.sequence(f, K252, K251); + return parseBooleanRootExpression_125(s, f); } private static Match e17M(Session s, Frame f) { - return s.sequence(f, K252, K251); + return parseBooleanRootExpression_125(s, f); } private static Match e18(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e18M(s, f) : e18C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e18M : TinyExpressionP4Parser::e18C, K216, K216, K216, K217, K217, "TinyExpressionP4::CodeBlock", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1631:1641:body/0/0/1/0/tokenRef", false, true, "text", false, K253); + if (s.bypassWrap) { Match r = f.matched ? e18M(s, f) : e18C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e18M : TinyExpressionP4Parser::e18C, K227, K227, K227, K228, K228, "TinyExpressionP4::Formula", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1403:1433:body/4/0/1/1/repeat", true, false, "node", true, K233); } private static Match e18C(Session s, Frame f) { - return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K254,K255); + return s.repeat(f, TinyExpressionP4Parser::e19, 0, Integer.MAX_VALUE, null, Trivia.NONE); } private static Match e18M(Session s, Frame f) { - return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K254,K255); + return s.repeat(f, TinyExpressionP4Parser::e19, 0, Integer.MAX_VALUE, null, Trivia.NONE); } private static Match e19(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e19M(s, f) : e19C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e19M : TinyExpressionP4Parser::e19C, K216, K216, K216, K217, K217, "TinyExpressionP4::CodeBlock", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1642:1651:body/0/0/1/1/tokenRef", false, true, "text", false, K256); + if (s.bypassCapture) { Match r = f.matched ? e19M(s, f) : e19C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e19M : TinyExpressionP4Parser::e19C, K266, K260, K236, K237, K237, "TinyExpressionP4::Formula", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1405:1422:body/4/0/1/1/0/ruleRef", false, false, "node", false, K238); } private static Match e19C(Session s, Frame f) { - return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K257,K258); + return parseMethodDeclaration_19(s, f); } private static Match e19M(Session s, Frame f) { - return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K257,K258); + return parseMethodDeclaration_19(s, f); } private static Match e20(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e20M(s, f) : e20C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e20M : TinyExpressionP4Parser::e20C, K216, K216, K216, K217, K217, "TinyExpressionP4::CodeBlock", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1652:1660:body/0/0/1/2/tokenRef", false, true, "text", false, K259); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e20M : TinyExpressionP4Parser::e20C, K227, K227, K227, K228, K228, "TinyExpressionP4::Formula", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1434:1437:body/4/0/1/2/tokenRef", false, true, "text", false, K261); } private static Match e20C(Session s, Frame f) { - return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K260,K261); + return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K262,K263); } private static Match e20M(Session s, Frame f) { - return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K260,K261); + return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K262,K263); } private static Match e21(Session s, Frame f) { f.reset = false; if (s.bypassWrap) { Match r = f.matched ? e21M(s, f) : e21C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e21M : TinyExpressionP4Parser::e21C, K216, K216, K216, K217, K217, "TinyExpressionP4::ImportDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2118:2201:body/seq", false, false, "node", false, K4); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e21M : TinyExpressionP4Parser::e21C, K227, K227, K227, K228, K228, "TinyExpressionP4::Formula", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1444:1511:body/4/0/2/seq", false, false, "node", true, K4); } private static Match e21C(Session s, Frame f) { - return s.sequence(f, K264, K263); + return s.sequence(f, K267, K255); } private static Match e21M(Session s, Frame f) { - return s.sequence(f, K264, K263); + return s.sequence(f, K267, K255); } private static Match e22(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e22M(s, f) : e22C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e22M : TinyExpressionP4Parser::e22C, K216, K216, K216, K217, K217, "TinyExpressionP4::ImportDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2118:2126:body/0/literal", false, true, "text", false, K265); + if (s.bypassCapture) { Match r = f.matched ? e22M(s, f) : e22C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e22M : TinyExpressionP4Parser::e22C, K268, K258, K236, K237, K237, "TinyExpressionP4::Formula", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1444:1464:body/4/0/2/0/ruleRef", false, false, "node", false, K238); } private static Match e22C(Session s, Frame f) { - return s.literal(f, "import", true, false, K266); + return parseStringRootExpression_126(s, f); } private static Match e22M(Session s, Frame f) { - return s.literal(f, "import", true, false, K266); + return parseStringRootExpression_126(s, f); } private static Match e23(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e23M(s, f) : e23C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e23M : TinyExpressionP4Parser::e23C, K267, K268, K225, K226, K226, "TinyExpressionP4::ImportDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2127:2136:body/1/ruleRef", false, false, "node", false, K227); + if (s.bypassWrap) { Match r = f.matched ? e23M(s, f) : e23C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e23M : TinyExpressionP4Parser::e23C, K227, K227, K227, K228, K228, "TinyExpressionP4::Formula", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1477:1507:body/4/0/2/1/repeat", true, false, "node", true, K233); } private static Match e23C(Session s, Frame f) { - return parseClassName_3(s, f); + return s.repeat(f, TinyExpressionP4Parser::e24, 0, Integer.MAX_VALUE, null, Trivia.NONE); } private static Match e23M(Session s, Frame f) { - return parseClassName_3(s, f); + return s.repeat(f, TinyExpressionP4Parser::e24, 0, Integer.MAX_VALUE, null, Trivia.NONE); } private static Match e24(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e24M(s, f) : e24C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e24M : TinyExpressionP4Parser::e24C, K216, K216, K216, K217, K217, "TinyExpressionP4::ImportDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2148:2174:body/2/optional", true, false, "text", false, K269); + if (s.bypassCapture) { Match r = f.matched ? e24M(s, f) : e24C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e24M : TinyExpressionP4Parser::e24C, K269, K260, K236, K237, K237, "TinyExpressionP4::Formula", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1479:1496:body/4/0/2/1/0/ruleRef", false, false, "node", false, K238); } private static Match e24C(Session s, Frame f) { - return s.optional(f, TinyExpressionP4Parser::e25); + return parseMethodDeclaration_19(s, f); } private static Match e24M(Session s, Frame f) { - return s.optional(f, TinyExpressionP4Parser::e25); + return parseMethodDeclaration_19(s, f); } private static Match e25(Session s, Frame f) { - f.reset = false; if (s.bypassWrap) { Match r = f.matched ? e25M(s, f) : e25C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e25M : TinyExpressionP4Parser::e25C, K216, K216, K216, K217, K217, "TinyExpressionP4::ImportDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2150:2164:body/2/0/seq", false, false, "text", false, K269); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e25M : TinyExpressionP4Parser::e25C, K227, K227, K227, K228, K228, "TinyExpressionP4::Formula", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1508:1511:body/4/0/2/2/tokenRef", false, true, "text", false, K261); } private static Match e25C(Session s, Frame f) { - return s.sequence(f, K272, K271); + return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K262,K263); } private static Match e25M(Session s, Frame f) { - return s.sequence(f, K272, K271); + return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K262,K263); } private static Match e26(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e26M(s, f) : e26C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e26M : TinyExpressionP4Parser::e26C, K216, K216, K216, K217, K217, "TinyExpressionP4::ImportDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2150:2153:body/2/0/0/literal", false, true, "text", false, K269); + f.reset = false; + if (s.bypassWrap) { Match r = f.matched ? e26M(s, f) : e26C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e26M : TinyExpressionP4Parser::e26C, K227, K227, K227, K228, K228, "TinyExpressionP4::Formula", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1518:1585:body/4/0/3/seq", false, false, "node", true, K4); } private static Match e26C(Session s, Frame f) { - return s.literal(f, "#", true, false, K273); + return s.sequence(f, K270, K255); } private static Match e26M(Session s, Frame f) { - return s.literal(f, "#", true, false, K273); + return s.sequence(f, K270, K255); } private static Match e27(Session s, Frame f) { if (s.bypassCapture) { Match r = f.matched ? e27M(s, f) : e27C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e27M : TinyExpressionP4Parser::e27C, K274, K275, K225, K226, K226, "TinyExpressionP4::ImportDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2154:2164:body/2/0/1/tokenRef", false, true, "text", false, K276); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e27M : TinyExpressionP4Parser::e27C, K271, K258, K236, K237, K237, "TinyExpressionP4::Formula", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1518:1538:body/4/0/3/0/ruleRef", false, false, "node", false, K238); } private static Match e27C(Session s, Frame f) { - return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K277,K278); + return parseObjectRootExpression_127(s, f); } private static Match e27M(Session s, Frame f) { - return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K277,K278); + return parseObjectRootExpression_127(s, f); } private static Match e28(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e28M(s, f) : e28C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e28M : TinyExpressionP4Parser::e28C, K216, K216, K216, K217, K217, "TinyExpressionP4::ImportDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2175:2179:body/3/literal", false, true, "text", false, K279); + if (s.bypassWrap) { Match r = f.matched ? e28M(s, f) : e28C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e28M : TinyExpressionP4Parser::e28C, K227, K227, K227, K228, K228, "TinyExpressionP4::Formula", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1551:1581:body/4/0/3/1/repeat", true, false, "node", true, K233); } private static Match e28C(Session s, Frame f) { - return s.literal(f, "as", true, false, K280); + return s.repeat(f, TinyExpressionP4Parser::e29, 0, Integer.MAX_VALUE, null, Trivia.NONE); } private static Match e28M(Session s, Frame f) { - return s.literal(f, "as", true, false, K280); + return s.repeat(f, TinyExpressionP4Parser::e29, 0, Integer.MAX_VALUE, null, Trivia.NONE); } private static Match e29(Session s, Frame f) { if (s.bypassCapture) { Match r = f.matched ? e29M(s, f) : e29C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e29M : TinyExpressionP4Parser::e29C, K281, K282, K225, K226, K226, "TinyExpressionP4::ImportDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2180:2190:body/4/tokenRef", false, true, "text", false, K276); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e29M : TinyExpressionP4Parser::e29C, K272, K260, K236, K237, K237, "TinyExpressionP4::Formula", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1553:1570:body/4/0/3/1/0/ruleRef", false, false, "node", false, K238); } private static Match e29C(Session s, Frame f) { - return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K277,K278); + return parseMethodDeclaration_19(s, f); } private static Match e29M(Session s, Frame f) { - return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K277,K278); + return parseMethodDeclaration_19(s, f); } private static Match e30(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e30M(s, f) : e30C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e30M : TinyExpressionP4Parser::e30C, K216, K216, K216, K217, K217, "TinyExpressionP4::ImportDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2198:2201:body/5/literal", false, true, "text", false, K283); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e30M : TinyExpressionP4Parser::e30C, K227, K227, K227, K228, K228, "TinyExpressionP4::Formula", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1582:1585:body/4/0/3/2/tokenRef", false, true, "text", false, K261); } private static Match e30C(Session s, Frame f) { - return s.literal(f, ";", true, false, K284); + return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K262,K263); } private static Match e30M(Session s, Frame f) { - return s.literal(f, ";", true, false, K284); + return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K262,K263); } private static Match e31(Session s, Frame f) { f.reset = false; - if (s.bypassWrap) { Match r = f.matched ? e31M(s, f) : e31C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e31M : TinyExpressionP4Parser::e31C, K216, K216, K216, K217, K217, "TinyExpressionP4::ClassName", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2272:2313:body/seq", false, false, "text", false, K4); + if (s.bypassWrap) { Match r = f.matched ? e31M(s, f) : e31C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e31M : TinyExpressionP4Parser::e31C, K227, K227, K227, K228, K228, "TinyExpressionP4::Formula", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1592:1659:body/4/0/4/seq", false, false, "node", true, K4); } private static Match e31C(Session s, Frame f) { - return s.sequence(f, K285, K271); + return s.sequence(f, K273, K255); } private static Match e31M(Session s, Frame f) { - return s.sequence(f, K285, K271); + return s.sequence(f, K273, K255); } private static Match e32(Session s, Frame f) { if (s.bypassCapture) { Match r = f.matched ? e32M(s, f) : e32C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e32M : TinyExpressionP4Parser::e32C, K286, K287, K225, K226, K226, "TinyExpressionP4::ClassName", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2272:2282:body/0/tokenRef", false, true, "text", false, K276); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e32M : TinyExpressionP4Parser::e32C, K274, K258, K236, K237, K237, "TinyExpressionP4::Formula", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1592:1612:body/4/0/4/0/ruleRef", false, false, "node", false, K238); } private static Match e32C(Session s, Frame f) { - return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K277,K278); + return parseMethodRootExpression_128(s, f); } private static Match e32M(Session s, Frame f) { - return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K277,K278); + return parseMethodRootExpression_128(s, f); } private static Match e33(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e33M(s, f) : e33C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e33M : TinyExpressionP4Parser::e33C, K216, K216, K216, K217, K217, "TinyExpressionP4::ClassName", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2289:2313:body/1/repeat", true, false, "text", false, K288); + if (s.bypassWrap) { Match r = f.matched ? e33M(s, f) : e33C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e33M : TinyExpressionP4Parser::e33C, K227, K227, K227, K228, K228, "TinyExpressionP4::Formula", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1625:1655:body/4/0/4/1/repeat", true, false, "node", true, K233); } private static Match e33C(Session s, Frame f) { return s.repeat(f, TinyExpressionP4Parser::e34, 0, Integer.MAX_VALUE, null, Trivia.NONE); @@ -1705,521 +1765,526 @@ private static Match e33M(Session s, Frame f) { return s.repeat(f, TinyExpressionP4Parser::e34, 0, Integer.MAX_VALUE, null, Trivia.NONE); } private static Match e34(Session s, Frame f) { - f.reset = false; - if (s.bypassWrap) { Match r = f.matched ? e34M(s, f) : e34C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e34M : TinyExpressionP4Parser::e34C, K216, K216, K216, K217, K217, "TinyExpressionP4::ClassName", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2291:2305:body/1/0/seq", false, false, "text", false, K288); + if (s.bypassCapture) { Match r = f.matched ? e34M(s, f) : e34C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e34M : TinyExpressionP4Parser::e34C, K275, K260, K236, K237, K237, "TinyExpressionP4::Formula", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1627:1644:body/4/0/4/1/0/ruleRef", false, false, "node", false, K238); } private static Match e34C(Session s, Frame f) { - return s.sequence(f, K289, K271); + return parseMethodDeclaration_19(s, f); } private static Match e34M(Session s, Frame f) { - return s.sequence(f, K289, K271); + return parseMethodDeclaration_19(s, f); } private static Match e35(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e35M(s, f) : e35C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e35M : TinyExpressionP4Parser::e35C, K216, K216, K216, K217, K217, "TinyExpressionP4::ClassName", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2291:2294:body/1/0/0/literal", false, true, "text", false, K288); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e35M : TinyExpressionP4Parser::e35C, K227, K227, K227, K228, K228, "TinyExpressionP4::Formula", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1656:1659:body/4/0/4/2/tokenRef", false, true, "text", false, K261); } private static Match e35C(Session s, Frame f) { - return s.literal(f, ".", true, false, K290); + return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K262,K263); } private static Match e35M(Session s, Frame f) { - return s.literal(f, ".", true, false, K290); + return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K262,K263); } private static Match e36(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e36M(s, f) : e36C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e36M : TinyExpressionP4Parser::e36C, K291, K292, K225, K226, K226, "TinyExpressionP4::ClassName", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2295:2305:body/1/0/1/tokenRef", false, true, "text", false, K276); + f.reset = false; + if (s.bypassWrap) { Match r = f.matched ? e36M(s, f) : e36C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e36M : TinyExpressionP4Parser::e36C, K227, K227, K227, K228, K228, "TinyExpressionP4::Formula", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1666:1740:body/4/0/5/seq", false, false, "node", true, K4); } private static Match e36C(Session s, Frame f) { - return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K277,K278); + return s.sequence(f, K276, K255); } private static Match e36M(Session s, Frame f) { - return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K277,K278); + return s.sequence(f, K276, K255); } private static Match e37(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e37M(s, f) : e37C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e37M : TinyExpressionP4Parser::e37C, K216, K216, K216, K217, K217, "TinyExpressionP4::VariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2464:2586:body/choice", false, false, "node", false, K4); + if (s.bypassCapture) { Match r = f.matched ? e37M(s, f) : e37C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e37M : TinyExpressionP4Parser::e37C, K277, K258, K236, K237, K237, "TinyExpressionP4::Formula", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1666:1693:body/4/0/5/0/ruleRef", false, false, "node", false, K161); } private static Match e37C(Session s, Frame f) { - return s.choice(f,K304,false,null,false,K303); + return parseParenthesizedRootExpression_129(s, f); } private static Match e37M(Session s, Frame f) { - return s.choice(f,K304,false,null,false,K303); + return parseParenthesizedRootExpression_129(s, f); } private static Match e38(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e38M(s, f) : e38C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e38M : TinyExpressionP4Parser::e38C, K216, K216, K216, K217, K217, "TinyExpressionP4::VariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2464:2489:body/0/ruleRef", false, false, "node", false, K4); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e38M : TinyExpressionP4Parser::e38C, K227, K227, K227, K228, K228, "TinyExpressionP4::Formula", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1706:1736:body/4/0/5/1/repeat", true, false, "node", true, K233); } private static Match e38C(Session s, Frame f) { - return parseNumberVariableDeclaration_5(s, f); + return s.repeat(f, TinyExpressionP4Parser::e39, 0, Integer.MAX_VALUE, null, Trivia.NONE); } private static Match e38M(Session s, Frame f) { - return parseNumberVariableDeclaration_5(s, f); + return s.repeat(f, TinyExpressionP4Parser::e39, 0, Integer.MAX_VALUE, null, Trivia.NONE); } private static Match e39(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e39M(s, f) : e39C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e39M : TinyExpressionP4Parser::e39C, K216, K216, K216, K217, K217, "TinyExpressionP4::VariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2496:2521:body/1/ruleRef", false, false, "node", false, K4); + if (s.bypassCapture) { Match r = f.matched ? e39M(s, f) : e39C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e39M : TinyExpressionP4Parser::e39C, K278, K260, K236, K237, K237, "TinyExpressionP4::Formula", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1708:1725:body/4/0/5/1/0/ruleRef", false, false, "node", false, K238); } private static Match e39C(Session s, Frame f) { - return parseStringVariableDeclaration_6(s, f); + return parseMethodDeclaration_19(s, f); } private static Match e39M(Session s, Frame f) { - return parseStringVariableDeclaration_6(s, f); + return parseMethodDeclaration_19(s, f); } private static Match e40(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e40M(s, f) : e40C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e40M : TinyExpressionP4Parser::e40C, K216, K216, K216, K217, K217, "TinyExpressionP4::VariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2528:2554:body/2/ruleRef", false, false, "node", false, K4); + if (s.bypassWrap) { Match r = f.matched ? e40M(s, f) : e40C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e40M : TinyExpressionP4Parser::e40C, K227, K227, K227, K228, K228, "TinyExpressionP4::Formula", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1737:1740:body/4/0/5/2/tokenRef", false, true, "text", false, K261); } private static Match e40C(Session s, Frame f) { - return parseBooleanVariableDeclaration_7(s, f); + return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K262,K263); } private static Match e40M(Session s, Frame f) { - return parseBooleanVariableDeclaration_7(s, f); + return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K262,K263); } private static Match e41(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e41M(s, f) : e41C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e41M : TinyExpressionP4Parser::e41C, K216, K216, K216, K217, K217, "TinyExpressionP4::VariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2561:2586:body/3/ruleRef", false, false, "node", false, K4); + f.reset = false; + if (s.bypassWrap) { Match r = f.matched ? e41M(s, f) : e41C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e41M : TinyExpressionP4Parser::e41C, K227, K227, K227, K228, K228, "TinyExpressionP4::CodeBlock", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2175:2226:body/seq", false, false, "text", false, K4); } private static Match e41C(Session s, Frame f) { - return parseObjectVariableDeclaration_8(s, f); + return s.sequence(f, K281, K280); } private static Match e41M(Session s, Frame f) { - return parseObjectVariableDeclaration_8(s, f); + return s.sequence(f, K281, K280); } private static Match e42(Session s, Frame f) { - f.reset = false; - if (s.bypassWrap) { Match r = f.matched ? e42M(s, f) : e42C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e42M : TinyExpressionP4Parser::e42C, K216, K216, K216, K217, K217, "TinyExpressionP4::NumberVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2759:2935:body/seq", false, false, "node", true, K4); + if (s.bypassCapture) { Match r = f.matched ? e42M(s, f) : e42C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e42M : TinyExpressionP4Parser::e42C, K282, K283, K236, K237, K237, "TinyExpressionP4::CodeBlock", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2175:2226:body/0/group", false, false, "text", false, K284); } private static Match e42C(Session s, Frame f) { - return s.sequence(f, K305, K220); + return e43(s, f); } private static Match e42M(Session s, Frame f) { - return s.sequence(f, K305, K220); + return e43(s, f); } private static Match e43(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e43M(s, f) : e43C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e43M : TinyExpressionP4Parser::e43C, K216, K216, K216, K217, K217, "TinyExpressionP4::NumberVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2759:2781:body/0/group", false, false, "text", false, K306); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e43M : TinyExpressionP4Parser::e43C, K227, K227, K227, K228, K228, "TinyExpressionP4::CodeBlock", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2177:2224:body/0/0/choice", false, false, "text", false, K285); } private static Match e43C(Session s, Frame f) { - return e44(s, f); + return s.choice(f,K286,false,null,false); } private static Match e43M(Session s, Frame f) { - return e44(s, f); + return s.choice(f,K286,false,null,false); } private static Match e44(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e44M(s, f) : e44C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e44M : TinyExpressionP4Parser::e44C, K216, K216, K216, K217, K217, "TinyExpressionP4::NumberVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2761:2779:body/0/0/choice", false, false, "text", false, K306); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e44M : TinyExpressionP4Parser::e44C, K227, K227, K227, K228, K228, "TinyExpressionP4::CodeBlock", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2177:2192:body/0/0/0/tokenRef", false, true, "text", false, K287); } private static Match e44C(Session s, Frame f) { - return s.choice(f,K307,false,null,false); + return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K288,K289); } private static Match e44M(Session s, Frame f) { - return s.choice(f,K307,false,null,false); + return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K288,K289); } private static Match e45(Session s, Frame f) { + f.reset = false; if (s.bypassWrap) { Match r = f.matched ? e45M(s, f) : e45C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e45M : TinyExpressionP4Parser::e45C, K216, K216, K216, K217, K217, "TinyExpressionP4::NumberVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2761:2771:body/0/0/0/literal", false, true, "text", false, K308); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e45M : TinyExpressionP4Parser::e45C, K227, K227, K227, K228, K228, "TinyExpressionP4::CodeBlock", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2195:2224:body/0/0/1/seq", false, false, "text", false, K4); } private static Match e45C(Session s, Frame f) { - return s.literal(f, "variable", true, false, K309); + return s.sequence(f, K290, K255); } private static Match e45M(Session s, Frame f) { - return s.literal(f, "variable", true, false, K309); + return s.sequence(f, K290, K255); } private static Match e46(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e46M(s, f) : e46C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e46M : TinyExpressionP4Parser::e46C, K216, K216, K216, K217, K217, "TinyExpressionP4::NumberVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2774:2779:body/0/0/1/literal", false, true, "text", false, K310); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e46M : TinyExpressionP4Parser::e46C, K227, K227, K227, K228, K228, "TinyExpressionP4::CodeBlock", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2195:2205:body/0/0/1/0/tokenRef", false, true, "text", false, K291); } private static Match e46C(Session s, Frame f) { - return s.literal(f, "var", true, false, K311); + return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K292,K293); } private static Match e46M(Session s, Frame f) { - return s.literal(f, "var", true, false, K311); + return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K292,K293); } private static Match e47(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e47M(s, f) : e47C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e47M : TinyExpressionP4Parser::e47C, K216, K216, K216, K217, K217, "TinyExpressionP4::NumberVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2786:2789:body/1/literal", false, true, "text", false, K50); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e47M : TinyExpressionP4Parser::e47C, K227, K227, K227, K228, K228, "TinyExpressionP4::CodeBlock", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2206:2215:body/0/0/1/1/tokenRef", false, true, "text", false, K294); } private static Match e47C(Session s, Frame f) { - return s.literal(f, "$", true, false, K312); + return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K295,K296); } private static Match e47M(Session s, Frame f) { - return s.literal(f, "$", true, false, K312); + return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K295,K296); } private static Match e48(Session s, Frame f) { - return s.capture(f, f.matched ? TinyExpressionP4Parser::e48M : TinyExpressionP4Parser::e48C, K313, K314, K225, K226, K315, "TinyExpressionP4::NumberVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2790:2800:body/2/tokenRef", false, true, "text", false, K276); + if (s.bypassWrap) { Match r = f.matched ? e48M(s, f) : e48C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e48M : TinyExpressionP4Parser::e48C, K227, K227, K227, K228, K228, "TinyExpressionP4::CodeBlock", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2216:2224:body/0/0/1/2/tokenRef", false, true, "text", false, K297); } private static Match e48C(Session s, Frame f) { - return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K277,K278); + return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K298,K299); } private static Match e48M(Session s, Frame f) { - return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K277,K278); + return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K298,K299); } private static Match e49(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e49M(s, f) : e49C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e49M : TinyExpressionP4Parser::e49C, K216, K216, K216, K217, K217, "TinyExpressionP4::NumberVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2814:2832:body/3/optional", true, false, "text", false, K316); + f.reset = false; + if (s.bypassWrap) { Match r = f.matched ? e49M(s, f) : e49C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e49M : TinyExpressionP4Parser::e49C, K227, K227, K227, K228, K228, "TinyExpressionP4::ImportDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2682:2765:body/seq", false, false, "node", false, K4); } private static Match e49C(Session s, Frame f) { - return s.optional(f, TinyExpressionP4Parser::e50); + return s.sequence(f, K302, K301); } private static Match e49M(Session s, Frame f) { - return s.optional(f, TinyExpressionP4Parser::e50); + return s.sequence(f, K302, K301); } private static Match e50(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e50M(s, f) : e50C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e50M : TinyExpressionP4Parser::e50C, K216, K216, K216, K217, K217, "TinyExpressionP4::NumberVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2816:2830:body/3/0/ruleRef", false, false, "text", false, K4); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e50M : TinyExpressionP4Parser::e50C, K227, K227, K227, K228, K228, "TinyExpressionP4::ImportDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2682:2690:body/0/literal", false, true, "text", false, K303); } private static Match e50C(Session s, Frame f) { - return parseNumberTypeHint_10(s, f); + return s.literal(f, "import", true, false, K304); } private static Match e50M(Session s, Frame f) { - return parseNumberTypeHint_10(s, f); + return s.literal(f, "import", true, false, K304); } private static Match e51(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e51M(s, f) : e51C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e51M : TinyExpressionP4Parser::e51C, K216, K216, K216, K217, K217, "TinyExpressionP4::NumberVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2837:2901:body/4/optional", true, false, "node", true, K317); + if (s.bypassCapture) { Match r = f.matched ? e51M(s, f) : e51C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e51M : TinyExpressionP4Parser::e51C, K305, K306, K236, K237, K237, "TinyExpressionP4::ImportDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2691:2700:body/1/ruleRef", false, false, "node", false, K238); } private static Match e51C(Session s, Frame f) { - return s.optional(f, TinyExpressionP4Parser::e52); + return parseClassName_3(s, f); } private static Match e51M(Session s, Frame f) { - return s.optional(f, TinyExpressionP4Parser::e52); + return parseClassName_3(s, f); } private static Match e52(Session s, Frame f) { - f.reset = false; - if (s.bypassWrap) { Match r = f.matched ? e52M(s, f) : e52C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e52M : TinyExpressionP4Parser::e52C, K216, K216, K216, K217, K217, "TinyExpressionP4::NumberVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2839:2892:body/4/0/seq", false, false, "node", true, K317); + if (s.bypassWrap) { Match r = f.matched ? e52M(s, f) : e52C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e52M : TinyExpressionP4Parser::e52C, K227, K227, K227, K228, K228, "TinyExpressionP4::ImportDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2712:2738:body/2/optional", true, false, "text", false, K307); } private static Match e52C(Session s, Frame f) { - return s.sequence(f, K318, K251); + return s.optional(f, TinyExpressionP4Parser::e53); } private static Match e52M(Session s, Frame f) { - return s.sequence(f, K318, K251); + return s.optional(f, TinyExpressionP4Parser::e53); } private static Match e53(Session s, Frame f) { + f.reset = false; if (s.bypassWrap) { Match r = f.matched ? e53M(s, f) : e53C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e53M : TinyExpressionP4Parser::e53C, K216, K216, K216, K217, K217, "TinyExpressionP4::NumberVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2839:2844:body/4/0/0/literal", false, true, "text", false, K317); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e53M : TinyExpressionP4Parser::e53C, K227, K227, K227, K228, K228, "TinyExpressionP4::ImportDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2714:2728:body/2/0/seq", false, false, "text", false, K307); } private static Match e53C(Session s, Frame f) { - return s.literal(f, "set", true, false, K319); + return s.sequence(f, K310, K309); } private static Match e53M(Session s, Frame f) { - return s.literal(f, "set", true, false, K319); + return s.sequence(f, K310, K309); } private static Match e54(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e54M(s, f) : e54C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e54M : TinyExpressionP4Parser::e54C, K216, K216, K216, K217, K217, "TinyExpressionP4::NumberVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2845:2875:body/4/0/1/optional", true, false, "node", false, K316); + if (s.bypassWrap) { Match r = f.matched ? e54M(s, f) : e54C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e54M : TinyExpressionP4Parser::e54C, K227, K227, K227, K228, K228, "TinyExpressionP4::ImportDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2714:2717:body/2/0/0/literal", false, true, "text", false, K307); } private static Match e54C(Session s, Frame f) { - return s.optional(f, TinyExpressionP4Parser::e55); + return s.literal(f, "#", true, false, K311); } private static Match e54M(Session s, Frame f) { - return s.optional(f, TinyExpressionP4Parser::e55); + return s.literal(f, "#", true, false, K311); } private static Match e55(Session s, Frame f) { if (s.bypassCapture) { Match r = f.matched ? e55M(s, f) : e55C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e55M : TinyExpressionP4Parser::e55C, K320, K321, K225, K226, K226, "TinyExpressionP4::NumberVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2847:2859:body/4/0/1/0/ruleRef", false, false, "node", false, K29); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e55M : TinyExpressionP4Parser::e55C, K312, K313, K236, K237, K237, "TinyExpressionP4::ImportDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2718:2728:body/2/0/1/tokenRef", false, true, "text", false, K314); } private static Match e55C(Session s, Frame f) { - return parseOnlyIfAbsent_14(s, f); + return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K315,K316); } private static Match e55M(Session s, Frame f) { - return parseOnlyIfAbsent_14(s, f); + return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K315,K316); } private static Match e56(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e56M(s, f) : e56C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e56M : TinyExpressionP4Parser::e56C, K322, K323, K225, K226, K226, "TinyExpressionP4::NumberVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2876:2892:body/4/0/2/ruleRef", false, false, "node", false, K227); + if (s.bypassWrap) { Match r = f.matched ? e56M(s, f) : e56C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e56M : TinyExpressionP4Parser::e56C, K227, K227, K227, K228, K228, "TinyExpressionP4::ImportDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2739:2743:body/3/literal", false, true, "text", false, K317); } private static Match e56C(Session s, Frame f) { - return parseNumberExpression_40(s, f); + return s.literal(f, "as", true, false, K318); } private static Match e56M(Session s, Frame f) { - return parseNumberExpression_40(s, f); + return s.literal(f, "as", true, false, K318); } private static Match e57(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e57M(s, f) : e57C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e57M : TinyExpressionP4Parser::e57C, K216, K216, K216, K217, K217, "TinyExpressionP4::NumberVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2906:2927:body/5/optional", true, false, "text", false, K316); + if (s.bypassCapture) { Match r = f.matched ? e57M(s, f) : e57C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e57M : TinyExpressionP4Parser::e57C, K319, K320, K236, K237, K237, "TinyExpressionP4::ImportDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2744:2754:body/4/tokenRef", false, true, "text", false, K314); } private static Match e57C(Session s, Frame f) { - return s.optional(f, TinyExpressionP4Parser::e58); + return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K315,K316); } private static Match e57M(Session s, Frame f) { - return s.optional(f, TinyExpressionP4Parser::e58); + return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K315,K316); } private static Match e58(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e58M(s, f) : e58C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e58M : TinyExpressionP4Parser::e58C, K324, K325, K225, K226, K226, "TinyExpressionP4::NumberVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2908:2919:body/5/0/ruleRef", false, false, "text", false, K30); + if (s.bypassWrap) { Match r = f.matched ? e58M(s, f) : e58C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e58M : TinyExpressionP4Parser::e58C, K227, K227, K227, K228, K228, "TinyExpressionP4::ImportDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2762:2765:body/5/literal", false, true, "text", false, K321); } private static Match e58C(Session s, Frame f) { - return parseDescription_15(s, f); + return s.literal(f, ";", true, false, K322); } private static Match e58M(Session s, Frame f) { - return parseDescription_15(s, f); + return s.literal(f, ";", true, false, K322); } private static Match e59(Session s, Frame f) { + f.reset = false; if (s.bypassWrap) { Match r = f.matched ? e59M(s, f) : e59C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e59M : TinyExpressionP4Parser::e59C, K216, K216, K216, K217, K217, "TinyExpressionP4::NumberVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2932:2935:body/6/literal", false, true, "text", false, K283); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e59M : TinyExpressionP4Parser::e59C, K227, K227, K227, K228, K228, "TinyExpressionP4::ClassName", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2836:2877:body/seq", false, false, "text", false, K4); } private static Match e59C(Session s, Frame f) { - return s.literal(f, ";", true, false, K284); + return s.sequence(f, K323, K309); } private static Match e59M(Session s, Frame f) { - return s.literal(f, ";", true, false, K284); + return s.sequence(f, K323, K309); } private static Match e60(Session s, Frame f) { - f.reset = false; - if (s.bypassWrap) { Match r = f.matched ? e60M(s, f) : e60C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e60M : TinyExpressionP4Parser::e60C, K216, K216, K216, K217, K217, "TinyExpressionP4::StringVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3108:3284:body/seq", false, false, "node", true, K4); + if (s.bypassCapture) { Match r = f.matched ? e60M(s, f) : e60C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e60M : TinyExpressionP4Parser::e60C, K324, K325, K236, K237, K237, "TinyExpressionP4::ClassName", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2836:2846:body/0/tokenRef", false, true, "text", false, K314); } private static Match e60C(Session s, Frame f) { - return s.sequence(f, K326, K220); + return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K315,K316); } private static Match e60M(Session s, Frame f) { - return s.sequence(f, K326, K220); + return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K315,K316); } private static Match e61(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e61M(s, f) : e61C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e61M : TinyExpressionP4Parser::e61C, K216, K216, K216, K217, K217, "TinyExpressionP4::StringVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3108:3130:body/0/group", false, false, "text", false, K306); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e61M : TinyExpressionP4Parser::e61C, K227, K227, K227, K228, K228, "TinyExpressionP4::ClassName", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2853:2877:body/1/repeat", true, false, "text", false, K326); } private static Match e61C(Session s, Frame f) { - return e62(s, f); + return s.repeat(f, TinyExpressionP4Parser::e62, 0, Integer.MAX_VALUE, null, Trivia.NONE); } private static Match e61M(Session s, Frame f) { - return e62(s, f); + return s.repeat(f, TinyExpressionP4Parser::e62, 0, Integer.MAX_VALUE, null, Trivia.NONE); } private static Match e62(Session s, Frame f) { + f.reset = false; if (s.bypassWrap) { Match r = f.matched ? e62M(s, f) : e62C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e62M : TinyExpressionP4Parser::e62C, K216, K216, K216, K217, K217, "TinyExpressionP4::StringVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3110:3128:body/0/0/choice", false, false, "text", false, K306); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e62M : TinyExpressionP4Parser::e62C, K227, K227, K227, K228, K228, "TinyExpressionP4::ClassName", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2855:2869:body/1/0/seq", false, false, "text", false, K326); } private static Match e62C(Session s, Frame f) { - return s.choice(f,K327,false,null,false); + return s.sequence(f, K327, K309); } private static Match e62M(Session s, Frame f) { - return s.choice(f,K327,false,null,false); + return s.sequence(f, K327, K309); } private static Match e63(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e63M(s, f) : e63C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e63M : TinyExpressionP4Parser::e63C, K216, K216, K216, K217, K217, "TinyExpressionP4::StringVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3110:3120:body/0/0/0/literal", false, true, "text", false, K308); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e63M : TinyExpressionP4Parser::e63C, K227, K227, K227, K228, K228, "TinyExpressionP4::ClassName", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2855:2858:body/1/0/0/literal", false, true, "text", false, K326); } private static Match e63C(Session s, Frame f) { - return s.literal(f, "variable", true, false, K309); + return s.literal(f, ".", true, false, K328); } private static Match e63M(Session s, Frame f) { - return s.literal(f, "variable", true, false, K309); + return s.literal(f, ".", true, false, K328); } private static Match e64(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e64M(s, f) : e64C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e64M : TinyExpressionP4Parser::e64C, K216, K216, K216, K217, K217, "TinyExpressionP4::StringVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3123:3128:body/0/0/1/literal", false, true, "text", false, K310); + if (s.bypassCapture) { Match r = f.matched ? e64M(s, f) : e64C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e64M : TinyExpressionP4Parser::e64C, K329, K330, K236, K237, K237, "TinyExpressionP4::ClassName", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2859:2869:body/1/0/1/tokenRef", false, true, "text", false, K314); } private static Match e64C(Session s, Frame f) { - return s.literal(f, "var", true, false, K311); + return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K315,K316); } private static Match e64M(Session s, Frame f) { - return s.literal(f, "var", true, false, K311); + return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K315,K316); } private static Match e65(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e65M(s, f) : e65C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e65M : TinyExpressionP4Parser::e65C, K216, K216, K216, K217, K217, "TinyExpressionP4::StringVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3135:3138:body/1/literal", false, true, "text", false, K50); + if (s.bypassWrap) { Match r = f.matched ? e65M(s, f) : e65C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e65M : TinyExpressionP4Parser::e65C, K227, K227, K227, K228, K228, "TinyExpressionP4::VariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3028:3150:body/choice", false, false, "node", false, K4); } private static Match e65C(Session s, Frame f) { - return s.literal(f, "$", true, false, K312); + return s.choice(f,K342,false,null,false,K341); } private static Match e65M(Session s, Frame f) { - return s.literal(f, "$", true, false, K312); + return s.choice(f,K342,false,null,false,K341); } private static Match e66(Session s, Frame f) { - return s.capture(f, f.matched ? TinyExpressionP4Parser::e66M : TinyExpressionP4Parser::e66C, K328, K314, K225, K226, K315, "TinyExpressionP4::StringVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3139:3149:body/2/tokenRef", false, true, "text", false, K276); + if (s.bypassWrap) { Match r = f.matched ? e66M(s, f) : e66C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e66M : TinyExpressionP4Parser::e66C, K227, K227, K227, K228, K228, "TinyExpressionP4::VariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3028:3053:body/0/ruleRef", false, false, "node", false, K4); } private static Match e66C(Session s, Frame f) { - return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K277,K278); + return parseNumberVariableDeclaration_5(s, f); } private static Match e66M(Session s, Frame f) { - return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K277,K278); + return parseNumberVariableDeclaration_5(s, f); } private static Match e67(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e67M(s, f) : e67C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e67M : TinyExpressionP4Parser::e67C, K216, K216, K216, K217, K217, "TinyExpressionP4::StringVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3163:3181:body/3/optional", true, false, "text", false, K316); + if (s.bypassWrap) { Match r = f.matched ? e67M(s, f) : e67C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e67M : TinyExpressionP4Parser::e67C, K227, K227, K227, K228, K228, "TinyExpressionP4::VariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3060:3085:body/1/ruleRef", false, false, "node", false, K4); } private static Match e67C(Session s, Frame f) { - return s.optional(f, TinyExpressionP4Parser::e68); + return parseStringVariableDeclaration_6(s, f); } private static Match e67M(Session s, Frame f) { - return s.optional(f, TinyExpressionP4Parser::e68); + return parseStringVariableDeclaration_6(s, f); } private static Match e68(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e68M(s, f) : e68C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e68M : TinyExpressionP4Parser::e68C, K216, K216, K216, K217, K217, "TinyExpressionP4::StringVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3165:3179:body/3/0/ruleRef", false, false, "text", false, K4); + if (s.bypassWrap) { Match r = f.matched ? e68M(s, f) : e68C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e68M : TinyExpressionP4Parser::e68C, K227, K227, K227, K228, K228, "TinyExpressionP4::VariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3092:3118:body/2/ruleRef", false, false, "node", false, K4); } private static Match e68C(Session s, Frame f) { - return parseStringTypeHint_11(s, f); + return parseBooleanVariableDeclaration_7(s, f); } private static Match e68M(Session s, Frame f) { - return parseStringTypeHint_11(s, f); + return parseBooleanVariableDeclaration_7(s, f); } private static Match e69(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e69M(s, f) : e69C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e69M : TinyExpressionP4Parser::e69C, K216, K216, K216, K217, K217, "TinyExpressionP4::StringVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3186:3250:body/4/optional", true, false, "node", true, K317); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e69M : TinyExpressionP4Parser::e69C, K227, K227, K227, K228, K228, "TinyExpressionP4::VariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3125:3150:body/3/ruleRef", false, false, "node", false, K4); } private static Match e69C(Session s, Frame f) { - return s.optional(f, TinyExpressionP4Parser::e70); + return parseObjectVariableDeclaration_8(s, f); } private static Match e69M(Session s, Frame f) { - return s.optional(f, TinyExpressionP4Parser::e70); + return parseObjectVariableDeclaration_8(s, f); } private static Match e70(Session s, Frame f) { f.reset = false; if (s.bypassWrap) { Match r = f.matched ? e70M(s, f) : e70C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e70M : TinyExpressionP4Parser::e70C, K216, K216, K216, K217, K217, "TinyExpressionP4::StringVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3188:3241:body/4/0/seq", false, false, "node", true, K317); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e70M : TinyExpressionP4Parser::e70C, K227, K227, K227, K228, K228, "TinyExpressionP4::NumberVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3323:3499:body/seq", false, false, "node", true, K4); } private static Match e70C(Session s, Frame f) { - return s.sequence(f, K329, K251); + return s.sequence(f, K345, K344); } private static Match e70M(Session s, Frame f) { - return s.sequence(f, K329, K251); + return s.sequence(f, K345, K344); } private static Match e71(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e71M(s, f) : e71C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e71M : TinyExpressionP4Parser::e71C, K216, K216, K216, K217, K217, "TinyExpressionP4::StringVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3188:3193:body/4/0/0/literal", false, true, "text", false, K317); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e71M : TinyExpressionP4Parser::e71C, K227, K227, K227, K228, K228, "TinyExpressionP4::NumberVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3323:3345:body/0/group", false, false, "text", false, K346); } private static Match e71C(Session s, Frame f) { - return s.literal(f, "set", true, false, K319); + return e72(s, f); } private static Match e71M(Session s, Frame f) { - return s.literal(f, "set", true, false, K319); + return e72(s, f); } private static Match e72(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e72M(s, f) : e72C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e72M : TinyExpressionP4Parser::e72C, K216, K216, K216, K217, K217, "TinyExpressionP4::StringVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3194:3224:body/4/0/1/optional", true, false, "node", false, K316); + if (s.bypassWrap) { Match r = f.matched ? e72M(s, f) : e72C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e72M : TinyExpressionP4Parser::e72C, K227, K227, K227, K228, K228, "TinyExpressionP4::NumberVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3325:3343:body/0/0/choice", false, false, "text", false, K346); } private static Match e72C(Session s, Frame f) { - return s.optional(f, TinyExpressionP4Parser::e73); + return s.choice(f,K347,false,null,false); } private static Match e72M(Session s, Frame f) { - return s.optional(f, TinyExpressionP4Parser::e73); + return s.choice(f,K347,false,null,false); } private static Match e73(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e73M(s, f) : e73C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e73M : TinyExpressionP4Parser::e73C, K330, K321, K225, K226, K226, "TinyExpressionP4::StringVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3196:3208:body/4/0/1/0/ruleRef", false, false, "node", false, K29); + if (s.bypassWrap) { Match r = f.matched ? e73M(s, f) : e73C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e73M : TinyExpressionP4Parser::e73C, K227, K227, K227, K228, K228, "TinyExpressionP4::NumberVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3325:3335:body/0/0/0/literal", false, true, "text", false, K348); } private static Match e73C(Session s, Frame f) { - return parseOnlyIfAbsent_14(s, f); + return s.literal(f, "variable", true, false, K349); } private static Match e73M(Session s, Frame f) { - return parseOnlyIfAbsent_14(s, f); + return s.literal(f, "variable", true, false, K349); } private static Match e74(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e74M(s, f) : e74C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e74M : TinyExpressionP4Parser::e74C, K331, K323, K225, K226, K226, "TinyExpressionP4::StringVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3225:3241:body/4/0/2/ruleRef", false, false, "node", false, K227); + if (s.bypassWrap) { Match r = f.matched ? e74M(s, f) : e74C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e74M : TinyExpressionP4Parser::e74C, K227, K227, K227, K228, K228, "TinyExpressionP4::NumberVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3338:3343:body/0/0/1/literal", false, true, "text", false, K350); } private static Match e74C(Session s, Frame f) { - return parseStringExpression_89(s, f); + return s.literal(f, "var", true, false, K351); } private static Match e74M(Session s, Frame f) { - return parseStringExpression_89(s, f); + return s.literal(f, "var", true, false, K351); } private static Match e75(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e75M(s, f) : e75C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e75M : TinyExpressionP4Parser::e75C, K216, K216, K216, K217, K217, "TinyExpressionP4::StringVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3255:3276:body/5/optional", true, false, "text", false, K316); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e75M : TinyExpressionP4Parser::e75C, K227, K227, K227, K228, K228, "TinyExpressionP4::NumberVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3350:3353:body/1/literal", false, true, "text", false, K50); } private static Match e75C(Session s, Frame f) { - return s.optional(f, TinyExpressionP4Parser::e76); + return s.literal(f, "$", true, false, K352); } private static Match e75M(Session s, Frame f) { - return s.optional(f, TinyExpressionP4Parser::e76); + return s.literal(f, "$", true, false, K352); } private static Match e76(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e76M(s, f) : e76C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e76M : TinyExpressionP4Parser::e76C, K332, K325, K225, K226, K226, "TinyExpressionP4::StringVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3257:3268:body/5/0/ruleRef", false, false, "text", false, K30); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e76M : TinyExpressionP4Parser::e76C, K353, K354, K236, K237, K355, "TinyExpressionP4::NumberVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3354:3364:body/2/tokenRef", false, true, "text", false, K314); } private static Match e76C(Session s, Frame f) { - return parseDescription_15(s, f); + return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K315,K316); } private static Match e76M(Session s, Frame f) { - return parseDescription_15(s, f); + return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K315,K316); } private static Match e77(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e77M(s, f) : e77C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e77M : TinyExpressionP4Parser::e77C, K216, K216, K216, K217, K217, "TinyExpressionP4::StringVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3281:3284:body/6/literal", false, true, "text", false, K283); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e77M : TinyExpressionP4Parser::e77C, K227, K227, K227, K228, K228, "TinyExpressionP4::NumberVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3378:3396:body/3/optional", true, false, "text", false, K356); } private static Match e77C(Session s, Frame f) { - return s.literal(f, ";", true, false, K284); + return s.optional(f, TinyExpressionP4Parser::e78); } private static Match e77M(Session s, Frame f) { - return s.literal(f, ";", true, false, K284); + return s.optional(f, TinyExpressionP4Parser::e78); } private static Match e78(Session s, Frame f) { - f.reset = false; - if (s.bypassWrap) { Match r = f.matched ? e78M(s, f) : e78C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e78M : TinyExpressionP4Parser::e78C, K216, K216, K216, K217, K217, "TinyExpressionP4::BooleanVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3459:3637:body/seq", false, false, "node", true, K4); + if (s.bypassWrap) { Match r = f.matched ? e78M(s, f) : e78C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e78M : TinyExpressionP4Parser::e78C, K227, K227, K227, K228, K228, "TinyExpressionP4::NumberVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3380:3394:body/3/0/ruleRef", false, false, "text", false, K4); } private static Match e78C(Session s, Frame f) { - return s.sequence(f, K333, K220); + return parseNumberTypeHint_10(s, f); } private static Match e78M(Session s, Frame f) { - return s.sequence(f, K333, K220); + return parseNumberTypeHint_10(s, f); } private static Match e79(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e79M(s, f) : e79C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e79M : TinyExpressionP4Parser::e79C, K216, K216, K216, K217, K217, "TinyExpressionP4::BooleanVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3459:3481:body/0/group", false, false, "text", false, K306); + if (s.bypassWrap) { Match r = f.matched ? e79M(s, f) : e79C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e79M : TinyExpressionP4Parser::e79C, K227, K227, K227, K228, K228, "TinyExpressionP4::NumberVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3401:3465:body/4/optional", true, false, "node", true, K357); } private static Match e79C(Session s, Frame f) { - return e80(s, f); + return s.optional(f, TinyExpressionP4Parser::e80); } private static Match e79M(Session s, Frame f) { - return e80(s, f); + return s.optional(f, TinyExpressionP4Parser::e80); } private static Match e80(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e80M(s, f) : e80C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e80M : TinyExpressionP4Parser::e80C, K216, K216, K216, K217, K217, "TinyExpressionP4::BooleanVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3461:3479:body/0/0/choice", false, false, "text", false, K306); + f.reset = false; + if (s.bypassWrap) { Match r = f.matched ? e80M(s, f) : e80C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e80M : TinyExpressionP4Parser::e80C, K227, K227, K227, K228, K228, "TinyExpressionP4::NumberVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3403:3456:body/4/0/seq", false, false, "node", true, K357); } private static Match e80C(Session s, Frame f) { - return s.choice(f,K334,false,null,false); + return s.sequence(f, K358, K255); } private static Match e80M(Session s, Frame f) { - return s.choice(f,K334,false,null,false); + return s.sequence(f, K358, K255); } private static Match e81(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e81M(s, f) : e81C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e81M : TinyExpressionP4Parser::e81C, K216, K216, K216, K217, K217, "TinyExpressionP4::BooleanVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3461:3471:body/0/0/0/literal", false, true, "text", false, K308); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e81M : TinyExpressionP4Parser::e81C, K227, K227, K227, K228, K228, "TinyExpressionP4::NumberVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3403:3408:body/4/0/0/literal", false, true, "text", false, K357); } private static Match e81C(Session s, Frame f) { - return s.literal(f, "variable", true, false, K309); + return s.literal(f, "set", true, false, K359); } private static Match e81M(Session s, Frame f) { - return s.literal(f, "variable", true, false, K309); + return s.literal(f, "set", true, false, K359); } private static Match e82(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e82M(s, f) : e82C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e82M : TinyExpressionP4Parser::e82C, K216, K216, K216, K217, K217, "TinyExpressionP4::BooleanVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3474:3479:body/0/0/1/literal", false, true, "text", false, K310); + if (s.bypassWrap) { Match r = f.matched ? e82M(s, f) : e82C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e82M : TinyExpressionP4Parser::e82C, K227, K227, K227, K228, K228, "TinyExpressionP4::NumberVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3409:3439:body/4/0/1/optional", true, false, "node", false, K356); } private static Match e82C(Session s, Frame f) { - return s.literal(f, "var", true, false, K311); + return s.optional(f, TinyExpressionP4Parser::e83); } private static Match e82M(Session s, Frame f) { - return s.literal(f, "var", true, false, K311); + return s.optional(f, TinyExpressionP4Parser::e83); } private static Match e83(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e83M(s, f) : e83C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e83M : TinyExpressionP4Parser::e83C, K216, K216, K216, K217, K217, "TinyExpressionP4::BooleanVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3486:3489:body/1/literal", false, true, "text", false, K50); + if (s.bypassCapture) { Match r = f.matched ? e83M(s, f) : e83C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e83M : TinyExpressionP4Parser::e83C, K360, K361, K236, K237, K237, "TinyExpressionP4::NumberVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3411:3423:body/4/0/1/0/ruleRef", false, false, "node", false, K29); } private static Match e83C(Session s, Frame f) { - return s.literal(f, "$", true, false, K312); + return parseOnlyIfAbsent_14(s, f); } private static Match e83M(Session s, Frame f) { - return s.literal(f, "$", true, false, K312); + return parseOnlyIfAbsent_14(s, f); } private static Match e84(Session s, Frame f) { - return s.capture(f, f.matched ? TinyExpressionP4Parser::e84M : TinyExpressionP4Parser::e84C, K335, K314, K225, K226, K315, "TinyExpressionP4::BooleanVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3490:3500:body/2/tokenRef", false, true, "text", false, K276); + if (s.bypassCapture) { Match r = f.matched ? e84M(s, f) : e84C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e84M : TinyExpressionP4Parser::e84C, K362, K363, K236, K237, K237, "TinyExpressionP4::NumberVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3440:3456:body/4/0/2/ruleRef", false, false, "node", false, K238); } private static Match e84C(Session s, Frame f) { - return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K277,K278); + return parseNumberExpression_40(s, f); } private static Match e84M(Session s, Frame f) { - return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K277,K278); + return parseNumberExpression_40(s, f); } private static Match e85(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e85M(s, f) : e85C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e85M : TinyExpressionP4Parser::e85C, K216, K216, K216, K217, K217, "TinyExpressionP4::BooleanVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3514:3533:body/3/optional", true, false, "text", false, K316); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e85M : TinyExpressionP4Parser::e85C, K227, K227, K227, K228, K228, "TinyExpressionP4::NumberVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3470:3491:body/5/optional", true, false, "text", false, K356); } private static Match e85C(Session s, Frame f) { return s.optional(f, TinyExpressionP4Parser::e86); @@ -2228,179 +2293,179 @@ private static Match e85M(Session s, Frame f) { return s.optional(f, TinyExpressionP4Parser::e86); } private static Match e86(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e86M(s, f) : e86C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e86M : TinyExpressionP4Parser::e86C, K216, K216, K216, K217, K217, "TinyExpressionP4::BooleanVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3516:3531:body/3/0/ruleRef", false, false, "text", false, K4); + if (s.bypassCapture) { Match r = f.matched ? e86M(s, f) : e86C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e86M : TinyExpressionP4Parser::e86C, K364, K365, K236, K237, K237, "TinyExpressionP4::NumberVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3472:3483:body/5/0/ruleRef", false, false, "text", false, K30); } private static Match e86C(Session s, Frame f) { - return parseBooleanTypeHint_12(s, f); + return parseDescription_15(s, f); } private static Match e86M(Session s, Frame f) { - return parseBooleanTypeHint_12(s, f); + return parseDescription_15(s, f); } private static Match e87(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e87M(s, f) : e87C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e87M : TinyExpressionP4Parser::e87C, K216, K216, K216, K217, K217, "TinyExpressionP4::BooleanVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3538:3603:body/4/optional", true, false, "node", true, K317); + if (s.bypassWrap) { Match r = f.matched ? e87M(s, f) : e87C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e87M : TinyExpressionP4Parser::e87C, K227, K227, K227, K228, K228, "TinyExpressionP4::NumberVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3496:3499:body/6/literal", false, true, "text", false, K321); } private static Match e87C(Session s, Frame f) { - return s.optional(f, TinyExpressionP4Parser::e88); + return s.literal(f, ";", true, false, K322); } private static Match e87M(Session s, Frame f) { - return s.optional(f, TinyExpressionP4Parser::e88); + return s.literal(f, ";", true, false, K322); } private static Match e88(Session s, Frame f) { f.reset = false; if (s.bypassWrap) { Match r = f.matched ? e88M(s, f) : e88C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e88M : TinyExpressionP4Parser::e88C, K216, K216, K216, K217, K217, "TinyExpressionP4::BooleanVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3540:3594:body/4/0/seq", false, false, "node", true, K317); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e88M : TinyExpressionP4Parser::e88C, K227, K227, K227, K228, K228, "TinyExpressionP4::StringVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3672:3848:body/seq", false, false, "node", true, K4); } private static Match e88C(Session s, Frame f) { - return s.sequence(f, K336, K251); + return s.sequence(f, K366, K344); } private static Match e88M(Session s, Frame f) { - return s.sequence(f, K336, K251); + return s.sequence(f, K366, K344); } private static Match e89(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e89M(s, f) : e89C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e89M : TinyExpressionP4Parser::e89C, K216, K216, K216, K217, K217, "TinyExpressionP4::BooleanVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3540:3545:body/4/0/0/literal", false, true, "text", false, K317); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e89M : TinyExpressionP4Parser::e89C, K227, K227, K227, K228, K228, "TinyExpressionP4::StringVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3672:3694:body/0/group", false, false, "text", false, K346); } private static Match e89C(Session s, Frame f) { - return s.literal(f, "set", true, false, K319); + return e90(s, f); } private static Match e89M(Session s, Frame f) { - return s.literal(f, "set", true, false, K319); + return e90(s, f); } private static Match e90(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e90M(s, f) : e90C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e90M : TinyExpressionP4Parser::e90C, K216, K216, K216, K217, K217, "TinyExpressionP4::BooleanVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3546:3576:body/4/0/1/optional", true, false, "node", false, K316); + if (s.bypassWrap) { Match r = f.matched ? e90M(s, f) : e90C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e90M : TinyExpressionP4Parser::e90C, K227, K227, K227, K228, K228, "TinyExpressionP4::StringVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3674:3692:body/0/0/choice", false, false, "text", false, K346); } private static Match e90C(Session s, Frame f) { - return s.optional(f, TinyExpressionP4Parser::e91); + return s.choice(f,K367,false,null,false); } private static Match e90M(Session s, Frame f) { - return s.optional(f, TinyExpressionP4Parser::e91); + return s.choice(f,K367,false,null,false); } private static Match e91(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e91M(s, f) : e91C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e91M : TinyExpressionP4Parser::e91C, K337, K321, K225, K226, K226, "TinyExpressionP4::BooleanVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3548:3560:body/4/0/1/0/ruleRef", false, false, "node", false, K29); + if (s.bypassWrap) { Match r = f.matched ? e91M(s, f) : e91C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e91M : TinyExpressionP4Parser::e91C, K227, K227, K227, K228, K228, "TinyExpressionP4::StringVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3674:3684:body/0/0/0/literal", false, true, "text", false, K348); } private static Match e91C(Session s, Frame f) { - return parseOnlyIfAbsent_14(s, f); + return s.literal(f, "variable", true, false, K349); } private static Match e91M(Session s, Frame f) { - return parseOnlyIfAbsent_14(s, f); + return s.literal(f, "variable", true, false, K349); } private static Match e92(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e92M(s, f) : e92C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e92M : TinyExpressionP4Parser::e92C, K338, K323, K225, K226, K226, "TinyExpressionP4::BooleanVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3577:3594:body/4/0/2/ruleRef", false, false, "node", false, K227); + if (s.bypassWrap) { Match r = f.matched ? e92M(s, f) : e92C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e92M : TinyExpressionP4Parser::e92C, K227, K227, K227, K228, K228, "TinyExpressionP4::StringVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3687:3692:body/0/0/1/literal", false, true, "text", false, K350); } private static Match e92C(Session s, Frame f) { - return parseBooleanExpression_94(s, f); + return s.literal(f, "var", true, false, K351); } private static Match e92M(Session s, Frame f) { - return parseBooleanExpression_94(s, f); + return s.literal(f, "var", true, false, K351); } private static Match e93(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e93M(s, f) : e93C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e93M : TinyExpressionP4Parser::e93C, K216, K216, K216, K217, K217, "TinyExpressionP4::BooleanVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3608:3629:body/5/optional", true, false, "text", false, K316); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e93M : TinyExpressionP4Parser::e93C, K227, K227, K227, K228, K228, "TinyExpressionP4::StringVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3699:3702:body/1/literal", false, true, "text", false, K50); } private static Match e93C(Session s, Frame f) { - return s.optional(f, TinyExpressionP4Parser::e94); + return s.literal(f, "$", true, false, K352); } private static Match e93M(Session s, Frame f) { - return s.optional(f, TinyExpressionP4Parser::e94); + return s.literal(f, "$", true, false, K352); } private static Match e94(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e94M(s, f) : e94C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e94M : TinyExpressionP4Parser::e94C, K339, K325, K225, K226, K226, "TinyExpressionP4::BooleanVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3610:3621:body/5/0/ruleRef", false, false, "text", false, K30); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e94M : TinyExpressionP4Parser::e94C, K368, K354, K236, K237, K355, "TinyExpressionP4::StringVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3703:3713:body/2/tokenRef", false, true, "text", false, K314); } private static Match e94C(Session s, Frame f) { - return parseDescription_15(s, f); + return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K315,K316); } private static Match e94M(Session s, Frame f) { - return parseDescription_15(s, f); + return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K315,K316); } private static Match e95(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e95M(s, f) : e95C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e95M : TinyExpressionP4Parser::e95C, K216, K216, K216, K217, K217, "TinyExpressionP4::BooleanVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3634:3637:body/6/literal", false, true, "text", false, K283); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e95M : TinyExpressionP4Parser::e95C, K227, K227, K227, K228, K228, "TinyExpressionP4::StringVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3727:3745:body/3/optional", true, false, "text", false, K356); } private static Match e95C(Session s, Frame f) { - return s.literal(f, ";", true, false, K284); + return s.optional(f, TinyExpressionP4Parser::e96); } private static Match e95M(Session s, Frame f) { - return s.literal(f, ";", true, false, K284); + return s.optional(f, TinyExpressionP4Parser::e96); } private static Match e96(Session s, Frame f) { - f.reset = false; - if (s.bypassWrap) { Match r = f.matched ? e96M(s, f) : e96C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e96M : TinyExpressionP4Parser::e96C, K216, K216, K216, K217, K217, "TinyExpressionP4::ObjectVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3810:3986:body/seq", false, false, "node", true, K4); + if (s.bypassWrap) { Match r = f.matched ? e96M(s, f) : e96C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e96M : TinyExpressionP4Parser::e96C, K227, K227, K227, K228, K228, "TinyExpressionP4::StringVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3729:3743:body/3/0/ruleRef", false, false, "text", false, K4); } private static Match e96C(Session s, Frame f) { - return s.sequence(f, K340, K220); + return parseStringTypeHint_11(s, f); } private static Match e96M(Session s, Frame f) { - return s.sequence(f, K340, K220); + return parseStringTypeHint_11(s, f); } private static Match e97(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e97M(s, f) : e97C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e97M : TinyExpressionP4Parser::e97C, K216, K216, K216, K217, K217, "TinyExpressionP4::ObjectVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3810:3832:body/0/group", false, false, "text", false, K306); + if (s.bypassWrap) { Match r = f.matched ? e97M(s, f) : e97C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e97M : TinyExpressionP4Parser::e97C, K227, K227, K227, K228, K228, "TinyExpressionP4::StringVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3750:3814:body/4/optional", true, false, "node", true, K357); } private static Match e97C(Session s, Frame f) { - return e98(s, f); + return s.optional(f, TinyExpressionP4Parser::e98); } private static Match e97M(Session s, Frame f) { - return e98(s, f); + return s.optional(f, TinyExpressionP4Parser::e98); } private static Match e98(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e98M(s, f) : e98C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e98M : TinyExpressionP4Parser::e98C, K216, K216, K216, K217, K217, "TinyExpressionP4::ObjectVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3812:3830:body/0/0/choice", false, false, "text", false, K306); + f.reset = false; + if (s.bypassWrap) { Match r = f.matched ? e98M(s, f) : e98C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e98M : TinyExpressionP4Parser::e98C, K227, K227, K227, K228, K228, "TinyExpressionP4::StringVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3752:3805:body/4/0/seq", false, false, "node", true, K357); } private static Match e98C(Session s, Frame f) { - return s.choice(f,K341,false,null,false); + return s.sequence(f, K369, K255); } private static Match e98M(Session s, Frame f) { - return s.choice(f,K341,false,null,false); + return s.sequence(f, K369, K255); } private static Match e99(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e99M(s, f) : e99C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e99M : TinyExpressionP4Parser::e99C, K216, K216, K216, K217, K217, "TinyExpressionP4::ObjectVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3812:3822:body/0/0/0/literal", false, true, "text", false, K308); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e99M : TinyExpressionP4Parser::e99C, K227, K227, K227, K228, K228, "TinyExpressionP4::StringVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3752:3757:body/4/0/0/literal", false, true, "text", false, K357); } private static Match e99C(Session s, Frame f) { - return s.literal(f, "variable", true, false, K309); + return s.literal(f, "set", true, false, K359); } private static Match e99M(Session s, Frame f) { - return s.literal(f, "variable", true, false, K309); + return s.literal(f, "set", true, false, K359); } private static Match e100(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e100M(s, f) : e100C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e100M : TinyExpressionP4Parser::e100C, K216, K216, K216, K217, K217, "TinyExpressionP4::ObjectVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3825:3830:body/0/0/1/literal", false, true, "text", false, K310); + if (s.bypassWrap) { Match r = f.matched ? e100M(s, f) : e100C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e100M : TinyExpressionP4Parser::e100C, K227, K227, K227, K228, K228, "TinyExpressionP4::StringVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3758:3788:body/4/0/1/optional", true, false, "node", false, K356); } private static Match e100C(Session s, Frame f) { - return s.literal(f, "var", true, false, K311); + return s.optional(f, TinyExpressionP4Parser::e101); } private static Match e100M(Session s, Frame f) { - return s.literal(f, "var", true, false, K311); + return s.optional(f, TinyExpressionP4Parser::e101); } private static Match e101(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e101M(s, f) : e101C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e101M : TinyExpressionP4Parser::e101C, K216, K216, K216, K217, K217, "TinyExpressionP4::ObjectVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3837:3840:body/1/literal", false, true, "text", false, K50); + if (s.bypassCapture) { Match r = f.matched ? e101M(s, f) : e101C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e101M : TinyExpressionP4Parser::e101C, K370, K361, K236, K237, K237, "TinyExpressionP4::StringVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3760:3772:body/4/0/1/0/ruleRef", false, false, "node", false, K29); } private static Match e101C(Session s, Frame f) { - return s.literal(f, "$", true, false, K312); + return parseOnlyIfAbsent_14(s, f); } private static Match e101M(Session s, Frame f) { - return s.literal(f, "$", true, false, K312); + return parseOnlyIfAbsent_14(s, f); } private static Match e102(Session s, Frame f) { - return s.capture(f, f.matched ? TinyExpressionP4Parser::e102M : TinyExpressionP4Parser::e102C, K342, K314, K225, K226, K315, "TinyExpressionP4::ObjectVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3841:3851:body/2/tokenRef", false, true, "text", false, K276); + if (s.bypassCapture) { Match r = f.matched ? e102M(s, f) : e102C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e102M : TinyExpressionP4Parser::e102C, K371, K363, K236, K237, K237, "TinyExpressionP4::StringVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3789:3805:body/4/0/2/ruleRef", false, false, "node", false, K238); } private static Match e102C(Session s, Frame f) { - return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K277,K278); + return parseStringExpression_89(s, f); } private static Match e102M(Session s, Frame f) { - return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K277,K278); + return parseStringExpression_89(s, f); } private static Match e103(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e103M(s, f) : e103C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e103M : TinyExpressionP4Parser::e103C, K216, K216, K216, K217, K217, "TinyExpressionP4::ObjectVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3865:3883:body/3/optional", true, false, "text", false, K316); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e103M : TinyExpressionP4Parser::e103C, K227, K227, K227, K228, K228, "TinyExpressionP4::StringVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3819:3840:body/5/optional", true, false, "text", false, K356); } private static Match e103C(Session s, Frame f) { return s.optional(f, TinyExpressionP4Parser::e104); @@ -2409,120 +2474,118 @@ private static Match e103M(Session s, Frame f) { return s.optional(f, TinyExpressionP4Parser::e104); } private static Match e104(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e104M(s, f) : e104C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e104M : TinyExpressionP4Parser::e104C, K216, K216, K216, K217, K217, "TinyExpressionP4::ObjectVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3867:3881:body/3/0/ruleRef", false, false, "text", false, K4); + if (s.bypassCapture) { Match r = f.matched ? e104M(s, f) : e104C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e104M : TinyExpressionP4Parser::e104C, K372, K365, K236, K237, K237, "TinyExpressionP4::StringVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3821:3832:body/5/0/ruleRef", false, false, "text", false, K30); } private static Match e104C(Session s, Frame f) { - return parseObjectTypeHint_13(s, f); + return parseDescription_15(s, f); } private static Match e104M(Session s, Frame f) { - return parseObjectTypeHint_13(s, f); + return parseDescription_15(s, f); } private static Match e105(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e105M(s, f) : e105C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e105M : TinyExpressionP4Parser::e105C, K216, K216, K216, K217, K217, "TinyExpressionP4::ObjectVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3888:3952:body/4/optional", true, false, "node", true, K317); + if (s.bypassWrap) { Match r = f.matched ? e105M(s, f) : e105C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e105M : TinyExpressionP4Parser::e105C, K227, K227, K227, K228, K228, "TinyExpressionP4::StringVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3845:3848:body/6/literal", false, true, "text", false, K321); } private static Match e105C(Session s, Frame f) { - return s.optional(f, TinyExpressionP4Parser::e106); + return s.literal(f, ";", true, false, K322); } private static Match e105M(Session s, Frame f) { - return s.optional(f, TinyExpressionP4Parser::e106); + return s.literal(f, ";", true, false, K322); } private static Match e106(Session s, Frame f) { f.reset = false; if (s.bypassWrap) { Match r = f.matched ? e106M(s, f) : e106C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e106M : TinyExpressionP4Parser::e106C, K216, K216, K216, K217, K217, "TinyExpressionP4::ObjectVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3890:3943:body/4/0/seq", false, false, "node", true, K317); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e106M : TinyExpressionP4Parser::e106C, K227, K227, K227, K228, K228, "TinyExpressionP4::BooleanVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4023:4201:body/seq", false, false, "node", true, K4); } private static Match e106C(Session s, Frame f) { - return s.sequence(f, K343, K251); + return s.sequence(f, K373, K344); } private static Match e106M(Session s, Frame f) { - return s.sequence(f, K343, K251); + return s.sequence(f, K373, K344); } private static Match e107(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e107M(s, f) : e107C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e107M : TinyExpressionP4Parser::e107C, K216, K216, K216, K217, K217, "TinyExpressionP4::ObjectVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3890:3895:body/4/0/0/literal", false, true, "text", false, K317); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e107M : TinyExpressionP4Parser::e107C, K227, K227, K227, K228, K228, "TinyExpressionP4::BooleanVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4023:4045:body/0/group", false, false, "text", false, K346); } private static Match e107C(Session s, Frame f) { - return s.literal(f, "set", true, false, K319); + return e108(s, f); } private static Match e107M(Session s, Frame f) { - return s.literal(f, "set", true, false, K319); + return e108(s, f); } private static Match e108(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e108M(s, f) : e108C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e108M : TinyExpressionP4Parser::e108C, K216, K216, K216, K217, K217, "TinyExpressionP4::ObjectVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3896:3926:body/4/0/1/optional", true, false, "node", false, K316); + if (s.bypassWrap) { Match r = f.matched ? e108M(s, f) : e108C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e108M : TinyExpressionP4Parser::e108C, K227, K227, K227, K228, K228, "TinyExpressionP4::BooleanVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4025:4043:body/0/0/choice", false, false, "text", false, K346); } private static Match e108C(Session s, Frame f) { - return s.optional(f, TinyExpressionP4Parser::e109); + return s.choice(f,K374,false,null,false); } private static Match e108M(Session s, Frame f) { - return s.optional(f, TinyExpressionP4Parser::e109); + return s.choice(f,K374,false,null,false); } private static Match e109(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e109M(s, f) : e109C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e109M : TinyExpressionP4Parser::e109C, K344, K321, K225, K226, K226, "TinyExpressionP4::ObjectVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3898:3910:body/4/0/1/0/ruleRef", false, false, "node", false, K29); + if (s.bypassWrap) { Match r = f.matched ? e109M(s, f) : e109C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e109M : TinyExpressionP4Parser::e109C, K227, K227, K227, K228, K228, "TinyExpressionP4::BooleanVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4025:4035:body/0/0/0/literal", false, true, "text", false, K348); } private static Match e109C(Session s, Frame f) { - return parseOnlyIfAbsent_14(s, f); + return s.literal(f, "variable", true, false, K349); } private static Match e109M(Session s, Frame f) { - return parseOnlyIfAbsent_14(s, f); + return s.literal(f, "variable", true, false, K349); } private static Match e110(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e110M(s, f) : e110C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e110M : TinyExpressionP4Parser::e110C, K345, K323, K225, K226, K226, "TinyExpressionP4::ObjectVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3927:3943:body/4/0/2/ruleRef", false, false, "node", false, K227); + if (s.bypassWrap) { Match r = f.matched ? e110M(s, f) : e110C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e110M : TinyExpressionP4Parser::e110C, K227, K227, K227, K228, K228, "TinyExpressionP4::BooleanVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4038:4043:body/0/0/1/literal", false, true, "text", false, K350); } private static Match e110C(Session s, Frame f) { - return parseObjectExpression_105(s, f); + return s.literal(f, "var", true, false, K351); } private static Match e110M(Session s, Frame f) { - return parseObjectExpression_105(s, f); + return s.literal(f, "var", true, false, K351); } private static Match e111(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e111M(s, f) : e111C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e111M : TinyExpressionP4Parser::e111C, K216, K216, K216, K217, K217, "TinyExpressionP4::ObjectVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3957:3978:body/5/optional", true, false, "text", false, K316); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e111M : TinyExpressionP4Parser::e111C, K227, K227, K227, K228, K228, "TinyExpressionP4::BooleanVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4050:4053:body/1/literal", false, true, "text", false, K50); } private static Match e111C(Session s, Frame f) { - return s.optional(f, TinyExpressionP4Parser::e112); + return s.literal(f, "$", true, false, K352); } private static Match e111M(Session s, Frame f) { - return s.optional(f, TinyExpressionP4Parser::e112); + return s.literal(f, "$", true, false, K352); } private static Match e112(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e112M(s, f) : e112C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e112M : TinyExpressionP4Parser::e112C, K346, K325, K225, K226, K226, "TinyExpressionP4::ObjectVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3959:3970:body/5/0/ruleRef", false, false, "text", false, K30); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e112M : TinyExpressionP4Parser::e112C, K375, K354, K236, K237, K355, "TinyExpressionP4::BooleanVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4054:4064:body/2/tokenRef", false, true, "text", false, K314); } private static Match e112C(Session s, Frame f) { - return parseDescription_15(s, f); + return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K315,K316); } private static Match e112M(Session s, Frame f) { - return parseDescription_15(s, f); + return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K315,K316); } private static Match e113(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e113M(s, f) : e113C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e113M : TinyExpressionP4Parser::e113C, K216, K216, K216, K217, K217, "TinyExpressionP4::ObjectVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3983:3986:body/6/literal", false, true, "text", false, K283); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e113M : TinyExpressionP4Parser::e113C, K227, K227, K227, K228, K228, "TinyExpressionP4::BooleanVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4078:4097:body/3/optional", true, false, "text", false, K356); } private static Match e113C(Session s, Frame f) { - return s.literal(f, ";", true, false, K284); + return s.optional(f, TinyExpressionP4Parser::e114); } private static Match e113M(Session s, Frame f) { - return s.literal(f, ";", true, false, K284); + return s.optional(f, TinyExpressionP4Parser::e114); } private static Match e114(Session s, Frame f) { - f.reset = false; if (s.bypassWrap) { Match r = f.matched ? e114M(s, f) : e114C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e114M : TinyExpressionP4Parser::e114C, K216, K216, K216, K217, K217, "TinyExpressionP4::TypeHint", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4005:4109:body/seq", false, false, "text", false, K4); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e114M : TinyExpressionP4Parser::e114C, K227, K227, K227, K228, K228, "TinyExpressionP4::BooleanVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4080:4095:body/3/0/ruleRef", false, false, "text", false, K4); } private static Match e114C(Session s, Frame f) { - return s.sequence(f, K347, K271); + return parseBooleanTypeHint_12(s, f); } private static Match e114M(Session s, Frame f) { - return s.sequence(f, K347, K271); + return parseBooleanTypeHint_12(s, f); } private static Match e115(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e115M(s, f) : e115C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e115M : TinyExpressionP4Parser::e115C, K216, K216, K216, K217, K217, "TinyExpressionP4::TypeHint", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4005:4013:body/0/optional", true, false, "text", false, K279); + if (s.bypassWrap) { Match r = f.matched ? e115M(s, f) : e115C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e115M : TinyExpressionP4Parser::e115C, K227, K227, K227, K228, K228, "TinyExpressionP4::BooleanVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4102:4167:body/4/optional", true, false, "node", true, K357); } private static Match e115C(Session s, Frame f) { return s.optional(f, TinyExpressionP4Parser::e116); @@ -2531,3313 +2594,3310 @@ private static Match e115M(Session s, Frame f) { return s.optional(f, TinyExpressionP4Parser::e116); } private static Match e116(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e116M(s, f) : e116C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e116M : TinyExpressionP4Parser::e116C, K216, K216, K216, K217, K217, "TinyExpressionP4::TypeHint", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4007:4011:body/0/0/literal", false, true, "text", false, K279); + f.reset = false; + if (s.bypassWrap) { Match r = f.matched ? e116M(s, f) : e116C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e116M : TinyExpressionP4Parser::e116C, K227, K227, K227, K228, K228, "TinyExpressionP4::BooleanVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4104:4158:body/4/0/seq", false, false, "node", true, K357); } private static Match e116C(Session s, Frame f) { - return s.literal(f, "as", true, false, K280); + return s.sequence(f, K376, K255); } private static Match e116M(Session s, Frame f) { - return s.literal(f, "as", true, false, K280); + return s.sequence(f, K376, K255); } private static Match e117(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e117M(s, f) : e117C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e117M : TinyExpressionP4Parser::e117C, K216, K216, K216, K217, K217, "TinyExpressionP4::TypeHint", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4014:4109:body/1/group", false, false, "text", false, K348); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e117M : TinyExpressionP4Parser::e117C, K227, K227, K227, K228, K228, "TinyExpressionP4::BooleanVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4104:4109:body/4/0/0/literal", false, true, "text", false, K357); } private static Match e117C(Session s, Frame f) { - return e118(s, f); + return s.literal(f, "set", true, false, K359); } private static Match e117M(Session s, Frame f) { - return e118(s, f); + return s.literal(f, "set", true, false, K359); } private static Match e118(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e118M(s, f) : e118C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e118M : TinyExpressionP4Parser::e118C, K216, K216, K216, K217, K217, "TinyExpressionP4::TypeHint", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4016:4107:body/1/0/choice", false, false, "text", false, K348); + if (s.bypassWrap) { Match r = f.matched ? e118M(s, f) : e118C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e118M : TinyExpressionP4Parser::e118C, K227, K227, K227, K228, K228, "TinyExpressionP4::BooleanVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4110:4140:body/4/0/1/optional", true, false, "node", false, K356); } private static Match e118C(Session s, Frame f) { - return s.choice(f,K349,false,null,false); + return s.optional(f, TinyExpressionP4Parser::e119); } private static Match e118M(Session s, Frame f) { - return s.choice(f,K349,false,null,false); + return s.optional(f, TinyExpressionP4Parser::e119); } private static Match e119(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e119M(s, f) : e119C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e119M : TinyExpressionP4Parser::e119C, K216, K216, K216, K217, K217, "TinyExpressionP4::TypeHint", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4016:4024:body/1/0/0/literal", false, true, "text", false, K350); + if (s.bypassCapture) { Match r = f.matched ? e119M(s, f) : e119C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e119M : TinyExpressionP4Parser::e119C, K377, K361, K236, K237, K237, "TinyExpressionP4::BooleanVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4112:4124:body/4/0/1/0/ruleRef", false, false, "node", false, K29); } private static Match e119C(Session s, Frame f) { - return s.literal(f, "number", true, false, K351); + return parseOnlyIfAbsent_14(s, f); } private static Match e119M(Session s, Frame f) { - return s.literal(f, "number", true, false, K351); + return parseOnlyIfAbsent_14(s, f); } private static Match e120(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e120M(s, f) : e120C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e120M : TinyExpressionP4Parser::e120C, K216, K216, K216, K217, K217, "TinyExpressionP4::TypeHint", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4027:4035:body/1/0/1/literal", false, true, "text", false, K352); + if (s.bypassCapture) { Match r = f.matched ? e120M(s, f) : e120C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e120M : TinyExpressionP4Parser::e120C, K378, K363, K236, K237, K237, "TinyExpressionP4::BooleanVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4141:4158:body/4/0/2/ruleRef", false, false, "node", false, K238); } private static Match e120C(Session s, Frame f) { - return s.literal(f, "Number", true, false, K353); + return parseBooleanExpression_94(s, f); } private static Match e120M(Session s, Frame f) { - return s.literal(f, "Number", true, false, K353); + return parseBooleanExpression_94(s, f); } private static Match e121(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e121M(s, f) : e121C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e121M : TinyExpressionP4Parser::e121C, K216, K216, K216, K217, K217, "TinyExpressionP4::TypeHint", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4038:4046:body/1/0/2/literal", false, true, "text", false, K52); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e121M : TinyExpressionP4Parser::e121C, K227, K227, K227, K228, K228, "TinyExpressionP4::BooleanVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4172:4193:body/5/optional", true, false, "text", false, K356); } private static Match e121C(Session s, Frame f) { - return s.literal(f, "string", true, false, K354); + return s.optional(f, TinyExpressionP4Parser::e122); } private static Match e121M(Session s, Frame f) { - return s.literal(f, "string", true, false, K354); + return s.optional(f, TinyExpressionP4Parser::e122); } private static Match e122(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e122M(s, f) : e122C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e122M : TinyExpressionP4Parser::e122C, K216, K216, K216, K217, K217, "TinyExpressionP4::TypeHint", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4049:4057:body/1/0/3/literal", false, true, "text", false, K355); + if (s.bypassCapture) { Match r = f.matched ? e122M(s, f) : e122C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e122M : TinyExpressionP4Parser::e122C, K379, K365, K236, K237, K237, "TinyExpressionP4::BooleanVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4174:4185:body/5/0/ruleRef", false, false, "text", false, K30); } private static Match e122C(Session s, Frame f) { - return s.literal(f, "String", true, false, K356); + return parseDescription_15(s, f); } private static Match e122M(Session s, Frame f) { - return s.literal(f, "String", true, false, K356); + return parseDescription_15(s, f); } private static Match e123(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e123M(s, f) : e123C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e123M : TinyExpressionP4Parser::e123C, K216, K216, K216, K217, K217, "TinyExpressionP4::TypeHint", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4064:4073:body/1/0/4/literal", false, true, "text", false, K53); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e123M : TinyExpressionP4Parser::e123C, K227, K227, K227, K228, K228, "TinyExpressionP4::BooleanVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4198:4201:body/6/literal", false, true, "text", false, K321); } private static Match e123C(Session s, Frame f) { - return s.literal(f, "boolean", true, false, K357); + return s.literal(f, ";", true, false, K322); } private static Match e123M(Session s, Frame f) { - return s.literal(f, "boolean", true, false, K357); + return s.literal(f, ";", true, false, K322); } private static Match e124(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e124M(s, f) : e124C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e124M : TinyExpressionP4Parser::e124C, K216, K216, K216, K217, K217, "TinyExpressionP4::TypeHint", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4076:4085:body/1/0/5/literal", false, true, "text", false, K358); + f.reset = false; + if (s.bypassWrap) { Match r = f.matched ? e124M(s, f) : e124C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e124M : TinyExpressionP4Parser::e124C, K227, K227, K227, K228, K228, "TinyExpressionP4::ObjectVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4374:4550:body/seq", false, false, "node", true, K4); } private static Match e124C(Session s, Frame f) { - return s.literal(f, "Boolean", true, false, K359); + return s.sequence(f, K380, K344); } private static Match e124M(Session s, Frame f) { - return s.literal(f, "Boolean", true, false, K359); + return s.sequence(f, K380, K344); } private static Match e125(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e125M(s, f) : e125C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e125M : TinyExpressionP4Parser::e125C, K216, K216, K216, K217, K217, "TinyExpressionP4::TypeHint", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4088:4096:body/1/0/6/literal", false, true, "text", false, K54); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e125M : TinyExpressionP4Parser::e125C, K227, K227, K227, K228, K228, "TinyExpressionP4::ObjectVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4374:4396:body/0/group", false, false, "text", false, K346); } private static Match e125C(Session s, Frame f) { - return s.literal(f, "object", true, false, K360); + return e126(s, f); } private static Match e125M(Session s, Frame f) { - return s.literal(f, "object", true, false, K360); + return e126(s, f); } private static Match e126(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e126M(s, f) : e126C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e126M : TinyExpressionP4Parser::e126C, K216, K216, K216, K217, K217, "TinyExpressionP4::TypeHint", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4099:4107:body/1/0/7/literal", false, true, "text", false, K361); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e126M : TinyExpressionP4Parser::e126C, K227, K227, K227, K228, K228, "TinyExpressionP4::ObjectVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4376:4394:body/0/0/choice", false, false, "text", false, K346); } private static Match e126C(Session s, Frame f) { - return s.literal(f, "Object", true, false, K362); + return s.choice(f,K381,false,null,false); } private static Match e126M(Session s, Frame f) { - return s.literal(f, "Object", true, false, K362); + return s.choice(f,K381,false,null,false); } private static Match e127(Session s, Frame f) { - f.reset = false; if (s.bypassWrap) { Match r = f.matched ? e127M(s, f) : e127C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e127M : TinyExpressionP4Parser::e127C, K216, K216, K216, K217, K217, "TinyExpressionP4::NumberTypeHint", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4134:4186:body/seq", false, false, "text", false, K4); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e127M : TinyExpressionP4Parser::e127C, K227, K227, K227, K228, K228, "TinyExpressionP4::ObjectVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4376:4386:body/0/0/0/literal", false, true, "text", false, K348); } private static Match e127C(Session s, Frame f) { - return s.sequence(f, K363, K271); + return s.literal(f, "variable", true, false, K349); } private static Match e127M(Session s, Frame f) { - return s.sequence(f, K363, K271); + return s.literal(f, "variable", true, false, K349); } private static Match e128(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e128M(s, f) : e128C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e128M : TinyExpressionP4Parser::e128C, K216, K216, K216, K217, K217, "TinyExpressionP4::NumberTypeHint", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4134:4142:body/0/optional", true, false, "text", false, K279); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e128M : TinyExpressionP4Parser::e128C, K227, K227, K227, K228, K228, "TinyExpressionP4::ObjectVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4389:4394:body/0/0/1/literal", false, true, "text", false, K350); } private static Match e128C(Session s, Frame f) { - return s.optional(f, TinyExpressionP4Parser::e129); + return s.literal(f, "var", true, false, K351); } private static Match e128M(Session s, Frame f) { - return s.optional(f, TinyExpressionP4Parser::e129); + return s.literal(f, "var", true, false, K351); } private static Match e129(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e129M(s, f) : e129C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e129M : TinyExpressionP4Parser::e129C, K216, K216, K216, K217, K217, "TinyExpressionP4::NumberTypeHint", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4136:4140:body/0/0/literal", false, true, "text", false, K279); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e129M : TinyExpressionP4Parser::e129C, K227, K227, K227, K228, K228, "TinyExpressionP4::ObjectVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4401:4404:body/1/literal", false, true, "text", false, K50); } private static Match e129C(Session s, Frame f) { - return s.literal(f, "as", true, false, K280); + return s.literal(f, "$", true, false, K352); } private static Match e129M(Session s, Frame f) { - return s.literal(f, "as", true, false, K280); + return s.literal(f, "$", true, false, K352); } private static Match e130(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e130M(s, f) : e130C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e130M : TinyExpressionP4Parser::e130C, K216, K216, K216, K217, K217, "TinyExpressionP4::NumberTypeHint", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4143:4186:body/1/group", false, false, "text", false, K364); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e130M : TinyExpressionP4Parser::e130C, K382, K354, K236, K237, K355, "TinyExpressionP4::ObjectVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4405:4415:body/2/tokenRef", false, true, "text", false, K314); } private static Match e130C(Session s, Frame f) { - return e131(s, f); + return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K315,K316); } private static Match e130M(Session s, Frame f) { - return e131(s, f); + return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K315,K316); } private static Match e131(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e131M(s, f) : e131C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e131M : TinyExpressionP4Parser::e131C, K216, K216, K216, K217, K217, "TinyExpressionP4::NumberTypeHint", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4145:4184:body/1/0/choice", false, false, "text", false, K364); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e131M : TinyExpressionP4Parser::e131C, K227, K227, K227, K228, K228, "TinyExpressionP4::ObjectVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4429:4447:body/3/optional", true, false, "text", false, K356); } private static Match e131C(Session s, Frame f) { - return s.choice(f,K365,false,null,false); + return s.optional(f, TinyExpressionP4Parser::e132); } private static Match e131M(Session s, Frame f) { - return s.choice(f,K365,false,null,false); + return s.optional(f, TinyExpressionP4Parser::e132); } private static Match e132(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e132M(s, f) : e132C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e132M : TinyExpressionP4Parser::e132C, K216, K216, K216, K217, K217, "TinyExpressionP4::NumberTypeHint", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4145:4153:body/1/0/0/literal", false, true, "text", false, K350); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e132M : TinyExpressionP4Parser::e132C, K227, K227, K227, K228, K228, "TinyExpressionP4::ObjectVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4431:4445:body/3/0/ruleRef", false, false, "text", false, K4); } private static Match e132C(Session s, Frame f) { - return s.literal(f, "number", true, false, K351); + return parseObjectTypeHint_13(s, f); } private static Match e132M(Session s, Frame f) { - return s.literal(f, "number", true, false, K351); + return parseObjectTypeHint_13(s, f); } private static Match e133(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e133M(s, f) : e133C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e133M : TinyExpressionP4Parser::e133C, K216, K216, K216, K217, K217, "TinyExpressionP4::NumberTypeHint", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4156:4164:body/1/0/1/literal", false, true, "text", false, K352); + if (s.bypassWrap) { Match r = f.matched ? e133M(s, f) : e133C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e133M : TinyExpressionP4Parser::e133C, K227, K227, K227, K228, K228, "TinyExpressionP4::ObjectVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4452:4516:body/4/optional", true, false, "node", true, K357); } private static Match e133C(Session s, Frame f) { - return s.literal(f, "Number", true, false, K353); + return s.optional(f, TinyExpressionP4Parser::e134); } private static Match e133M(Session s, Frame f) { - return s.literal(f, "Number", true, false, K353); + return s.optional(f, TinyExpressionP4Parser::e134); } private static Match e134(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e134M(s, f) : e134C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e134M : TinyExpressionP4Parser::e134C, K216, K216, K216, K217, K217, "TinyExpressionP4::NumberTypeHint", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4167:4174:body/1/0/2/literal", false, true, "text", false, K366); + f.reset = false; + if (s.bypassWrap) { Match r = f.matched ? e134M(s, f) : e134C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e134M : TinyExpressionP4Parser::e134C, K227, K227, K227, K228, K228, "TinyExpressionP4::ObjectVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4454:4507:body/4/0/seq", false, false, "node", true, K357); } private static Match e134C(Session s, Frame f) { - return s.literal(f, "float", true, false, K367); + return s.sequence(f, K383, K255); } private static Match e134M(Session s, Frame f) { - return s.literal(f, "float", true, false, K367); + return s.sequence(f, K383, K255); } private static Match e135(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e135M(s, f) : e135C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e135M : TinyExpressionP4Parser::e135C, K216, K216, K216, K217, K217, "TinyExpressionP4::NumberTypeHint", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4177:4184:body/1/0/3/literal", false, true, "text", false, K368); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e135M : TinyExpressionP4Parser::e135C, K227, K227, K227, K228, K228, "TinyExpressionP4::ObjectVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4454:4459:body/4/0/0/literal", false, true, "text", false, K357); } private static Match e135C(Session s, Frame f) { - return s.literal(f, "Float", true, false, K369); + return s.literal(f, "set", true, false, K359); } private static Match e135M(Session s, Frame f) { - return s.literal(f, "Float", true, false, K369); + return s.literal(f, "set", true, false, K359); } private static Match e136(Session s, Frame f) { - f.reset = false; - if (s.bypassWrap) { Match r = f.matched ? e136M(s, f) : e136C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e136M : TinyExpressionP4Parser::e136C, K216, K216, K216, K217, K217, "TinyExpressionP4::StringTypeHint", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4210:4242:body/seq", false, false, "text", false, K4); + if (s.bypassWrap) { Match r = f.matched ? e136M(s, f) : e136C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e136M : TinyExpressionP4Parser::e136C, K227, K227, K227, K228, K228, "TinyExpressionP4::ObjectVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4460:4490:body/4/0/1/optional", true, false, "node", false, K356); } private static Match e136C(Session s, Frame f) { - return s.sequence(f, K370, K271); + return s.optional(f, TinyExpressionP4Parser::e137); } private static Match e136M(Session s, Frame f) { - return s.sequence(f, K370, K271); + return s.optional(f, TinyExpressionP4Parser::e137); } private static Match e137(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e137M(s, f) : e137C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e137M : TinyExpressionP4Parser::e137C, K216, K216, K216, K217, K217, "TinyExpressionP4::StringTypeHint", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4210:4218:body/0/optional", true, false, "text", false, K279); + if (s.bypassCapture) { Match r = f.matched ? e137M(s, f) : e137C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e137M : TinyExpressionP4Parser::e137C, K384, K361, K236, K237, K237, "TinyExpressionP4::ObjectVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4462:4474:body/4/0/1/0/ruleRef", false, false, "node", false, K29); } private static Match e137C(Session s, Frame f) { - return s.optional(f, TinyExpressionP4Parser::e138); + return parseOnlyIfAbsent_14(s, f); } private static Match e137M(Session s, Frame f) { - return s.optional(f, TinyExpressionP4Parser::e138); + return parseOnlyIfAbsent_14(s, f); } private static Match e138(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e138M(s, f) : e138C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e138M : TinyExpressionP4Parser::e138C, K216, K216, K216, K217, K217, "TinyExpressionP4::StringTypeHint", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4212:4216:body/0/0/literal", false, true, "text", false, K279); + if (s.bypassCapture) { Match r = f.matched ? e138M(s, f) : e138C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e138M : TinyExpressionP4Parser::e138C, K385, K363, K236, K237, K237, "TinyExpressionP4::ObjectVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4491:4507:body/4/0/2/ruleRef", false, false, "node", false, K238); } private static Match e138C(Session s, Frame f) { - return s.literal(f, "as", true, false, K280); + return parseObjectExpression_105(s, f); } private static Match e138M(Session s, Frame f) { - return s.literal(f, "as", true, false, K280); + return parseObjectExpression_105(s, f); } private static Match e139(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e139M(s, f) : e139C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e139M : TinyExpressionP4Parser::e139C, K216, K216, K216, K217, K217, "TinyExpressionP4::StringTypeHint", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4219:4242:body/1/group", false, false, "text", false, K371); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e139M : TinyExpressionP4Parser::e139C, K227, K227, K227, K228, K228, "TinyExpressionP4::ObjectVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4521:4542:body/5/optional", true, false, "text", false, K356); } private static Match e139C(Session s, Frame f) { - return e140(s, f); + return s.optional(f, TinyExpressionP4Parser::e140); } private static Match e139M(Session s, Frame f) { - return e140(s, f); + return s.optional(f, TinyExpressionP4Parser::e140); } private static Match e140(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e140M(s, f) : e140C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e140M : TinyExpressionP4Parser::e140C, K216, K216, K216, K217, K217, "TinyExpressionP4::StringTypeHint", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4221:4240:body/1/0/choice", false, false, "text", false, K371); + if (s.bypassCapture) { Match r = f.matched ? e140M(s, f) : e140C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e140M : TinyExpressionP4Parser::e140C, K386, K365, K236, K237, K237, "TinyExpressionP4::ObjectVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4523:4534:body/5/0/ruleRef", false, false, "text", false, K30); } private static Match e140C(Session s, Frame f) { - return s.choice(f,K372,false,null,false); + return parseDescription_15(s, f); } private static Match e140M(Session s, Frame f) { - return s.choice(f,K372,false,null,false); + return parseDescription_15(s, f); } private static Match e141(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e141M(s, f) : e141C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e141M : TinyExpressionP4Parser::e141C, K216, K216, K216, K217, K217, "TinyExpressionP4::StringTypeHint", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4221:4229:body/1/0/0/literal", false, true, "text", false, K52); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e141M : TinyExpressionP4Parser::e141C, K227, K227, K227, K228, K228, "TinyExpressionP4::ObjectVariableDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4547:4550:body/6/literal", false, true, "text", false, K321); } private static Match e141C(Session s, Frame f) { - return s.literal(f, "string", true, false, K354); + return s.literal(f, ";", true, false, K322); } private static Match e141M(Session s, Frame f) { - return s.literal(f, "string", true, false, K354); + return s.literal(f, ";", true, false, K322); } private static Match e142(Session s, Frame f) { + f.reset = false; if (s.bypassWrap) { Match r = f.matched ? e142M(s, f) : e142C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e142M : TinyExpressionP4Parser::e142C, K216, K216, K216, K217, K217, "TinyExpressionP4::StringTypeHint", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4232:4240:body/1/0/1/literal", false, true, "text", false, K355); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e142M : TinyExpressionP4Parser::e142C, K227, K227, K227, K228, K228, "TinyExpressionP4::TypeHint", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4569:4673:body/seq", false, false, "text", false, K4); } private static Match e142C(Session s, Frame f) { - return s.literal(f, "String", true, false, K356); + return s.sequence(f, K387, K309); } private static Match e142M(Session s, Frame f) { - return s.literal(f, "String", true, false, K356); + return s.sequence(f, K387, K309); } private static Match e143(Session s, Frame f) { - f.reset = false; if (s.bypassWrap) { Match r = f.matched ? e143M(s, f) : e143C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e143M : TinyExpressionP4Parser::e143C, K216, K216, K216, K217, K217, "TinyExpressionP4::BooleanTypeHint", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4267:4301:body/seq", false, false, "text", false, K4); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e143M : TinyExpressionP4Parser::e143C, K227, K227, K227, K228, K228, "TinyExpressionP4::TypeHint", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4569:4577:body/0/optional", true, false, "text", false, K317); } private static Match e143C(Session s, Frame f) { - return s.sequence(f, K373, K271); + return s.optional(f, TinyExpressionP4Parser::e144); } private static Match e143M(Session s, Frame f) { - return s.sequence(f, K373, K271); + return s.optional(f, TinyExpressionP4Parser::e144); } private static Match e144(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e144M(s, f) : e144C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e144M : TinyExpressionP4Parser::e144C, K216, K216, K216, K217, K217, "TinyExpressionP4::BooleanTypeHint", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4267:4275:body/0/optional", true, false, "text", false, K279); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e144M : TinyExpressionP4Parser::e144C, K227, K227, K227, K228, K228, "TinyExpressionP4::TypeHint", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4571:4575:body/0/0/literal", false, true, "text", false, K317); } private static Match e144C(Session s, Frame f) { - return s.optional(f, TinyExpressionP4Parser::e145); + return s.literal(f, "as", true, false, K318); } private static Match e144M(Session s, Frame f) { - return s.optional(f, TinyExpressionP4Parser::e145); + return s.literal(f, "as", true, false, K318); } private static Match e145(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e145M(s, f) : e145C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e145M : TinyExpressionP4Parser::e145C, K216, K216, K216, K217, K217, "TinyExpressionP4::BooleanTypeHint", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4269:4273:body/0/0/literal", false, true, "text", false, K279); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e145M : TinyExpressionP4Parser::e145C, K227, K227, K227, K228, K228, "TinyExpressionP4::TypeHint", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4578:4673:body/1/group", false, false, "text", false, K388); } private static Match e145C(Session s, Frame f) { - return s.literal(f, "as", true, false, K280); + return e146(s, f); } private static Match e145M(Session s, Frame f) { - return s.literal(f, "as", true, false, K280); + return e146(s, f); } private static Match e146(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e146M(s, f) : e146C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e146M : TinyExpressionP4Parser::e146C, K216, K216, K216, K217, K217, "TinyExpressionP4::BooleanTypeHint", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4276:4301:body/1/group", false, false, "text", false, K374); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e146M : TinyExpressionP4Parser::e146C, K227, K227, K227, K228, K228, "TinyExpressionP4::TypeHint", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4580:4671:body/1/0/choice", false, false, "text", false, K388); } private static Match e146C(Session s, Frame f) { - return e147(s, f); + return s.choice(f,K389,false,null,false); } private static Match e146M(Session s, Frame f) { - return e147(s, f); + return s.choice(f,K389,false,null,false); } private static Match e147(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e147M(s, f) : e147C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e147M : TinyExpressionP4Parser::e147C, K216, K216, K216, K217, K217, "TinyExpressionP4::BooleanTypeHint", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4278:4299:body/1/0/choice", false, false, "text", false, K374); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e147M : TinyExpressionP4Parser::e147C, K227, K227, K227, K228, K228, "TinyExpressionP4::TypeHint", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4580:4588:body/1/0/0/literal", false, true, "text", false, K390); } private static Match e147C(Session s, Frame f) { - return s.choice(f,K375,false,null,false); + return s.literal(f, "number", true, false, K391); } private static Match e147M(Session s, Frame f) { - return s.choice(f,K375,false,null,false); + return s.literal(f, "number", true, false, K391); } private static Match e148(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e148M(s, f) : e148C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e148M : TinyExpressionP4Parser::e148C, K216, K216, K216, K217, K217, "TinyExpressionP4::BooleanTypeHint", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4278:4287:body/1/0/0/literal", false, true, "text", false, K53); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e148M : TinyExpressionP4Parser::e148C, K227, K227, K227, K228, K228, "TinyExpressionP4::TypeHint", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4591:4599:body/1/0/1/literal", false, true, "text", false, K392); } private static Match e148C(Session s, Frame f) { - return s.literal(f, "boolean", true, false, K357); + return s.literal(f, "Number", true, false, K393); } private static Match e148M(Session s, Frame f) { - return s.literal(f, "boolean", true, false, K357); + return s.literal(f, "Number", true, false, K393); } private static Match e149(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e149M(s, f) : e149C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e149M : TinyExpressionP4Parser::e149C, K216, K216, K216, K217, K217, "TinyExpressionP4::BooleanTypeHint", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4290:4299:body/1/0/1/literal", false, true, "text", false, K358); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e149M : TinyExpressionP4Parser::e149C, K227, K227, K227, K228, K228, "TinyExpressionP4::TypeHint", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4602:4610:body/1/0/2/literal", false, true, "text", false, K52); } private static Match e149C(Session s, Frame f) { - return s.literal(f, "Boolean", true, false, K359); + return s.literal(f, "string", true, false, K394); } private static Match e149M(Session s, Frame f) { - return s.literal(f, "Boolean", true, false, K359); + return s.literal(f, "string", true, false, K394); } private static Match e150(Session s, Frame f) { - f.reset = false; if (s.bypassWrap) { Match r = f.matched ? e150M(s, f) : e150C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e150M : TinyExpressionP4Parser::e150C, K216, K216, K216, K217, K217, "TinyExpressionP4::ObjectTypeHint", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4325:4357:body/seq", false, false, "text", false, K4); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e150M : TinyExpressionP4Parser::e150C, K227, K227, K227, K228, K228, "TinyExpressionP4::TypeHint", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4613:4621:body/1/0/3/literal", false, true, "text", false, K395); } private static Match e150C(Session s, Frame f) { - return s.sequence(f, K376, K271); + return s.literal(f, "String", true, false, K396); } private static Match e150M(Session s, Frame f) { - return s.sequence(f, K376, K271); + return s.literal(f, "String", true, false, K396); } private static Match e151(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e151M(s, f) : e151C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e151M : TinyExpressionP4Parser::e151C, K216, K216, K216, K217, K217, "TinyExpressionP4::ObjectTypeHint", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4325:4333:body/0/optional", true, false, "text", false, K279); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e151M : TinyExpressionP4Parser::e151C, K227, K227, K227, K228, K228, "TinyExpressionP4::TypeHint", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4628:4637:body/1/0/4/literal", false, true, "text", false, K53); } private static Match e151C(Session s, Frame f) { - return s.optional(f, TinyExpressionP4Parser::e152); + return s.literal(f, "boolean", true, false, K397); } private static Match e151M(Session s, Frame f) { - return s.optional(f, TinyExpressionP4Parser::e152); + return s.literal(f, "boolean", true, false, K397); } private static Match e152(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e152M(s, f) : e152C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e152M : TinyExpressionP4Parser::e152C, K216, K216, K216, K217, K217, "TinyExpressionP4::ObjectTypeHint", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4327:4331:body/0/0/literal", false, true, "text", false, K279); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e152M : TinyExpressionP4Parser::e152C, K227, K227, K227, K228, K228, "TinyExpressionP4::TypeHint", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4640:4649:body/1/0/5/literal", false, true, "text", false, K398); } private static Match e152C(Session s, Frame f) { - return s.literal(f, "as", true, false, K280); + return s.literal(f, "Boolean", true, false, K399); } private static Match e152M(Session s, Frame f) { - return s.literal(f, "as", true, false, K280); + return s.literal(f, "Boolean", true, false, K399); } private static Match e153(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e153M(s, f) : e153C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e153M : TinyExpressionP4Parser::e153C, K216, K216, K216, K217, K217, "TinyExpressionP4::ObjectTypeHint", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4334:4357:body/1/group", false, false, "text", false, K377); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e153M : TinyExpressionP4Parser::e153C, K227, K227, K227, K228, K228, "TinyExpressionP4::TypeHint", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4652:4660:body/1/0/6/literal", false, true, "text", false, K54); } private static Match e153C(Session s, Frame f) { - return e154(s, f); + return s.literal(f, "object", true, false, K400); } private static Match e153M(Session s, Frame f) { - return e154(s, f); + return s.literal(f, "object", true, false, K400); } private static Match e154(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e154M(s, f) : e154C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e154M : TinyExpressionP4Parser::e154C, K216, K216, K216, K217, K217, "TinyExpressionP4::ObjectTypeHint", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4336:4355:body/1/0/choice", false, false, "text", false, K377); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e154M : TinyExpressionP4Parser::e154C, K227, K227, K227, K228, K228, "TinyExpressionP4::TypeHint", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4663:4671:body/1/0/7/literal", false, true, "text", false, K401); } private static Match e154C(Session s, Frame f) { - return s.choice(f,K378,false,null,false); + return s.literal(f, "Object", true, false, K402); } private static Match e154M(Session s, Frame f) { - return s.choice(f,K378,false,null,false); + return s.literal(f, "Object", true, false, K402); } private static Match e155(Session s, Frame f) { + f.reset = false; if (s.bypassWrap) { Match r = f.matched ? e155M(s, f) : e155C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e155M : TinyExpressionP4Parser::e155C, K216, K216, K216, K217, K217, "TinyExpressionP4::ObjectTypeHint", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4336:4344:body/1/0/0/literal", false, true, "text", false, K54); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e155M : TinyExpressionP4Parser::e155C, K227, K227, K227, K228, K228, "TinyExpressionP4::NumberTypeHint", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4698:4750:body/seq", false, false, "text", false, K4); } private static Match e155C(Session s, Frame f) { - return s.literal(f, "object", true, false, K360); + return s.sequence(f, K403, K309); } private static Match e155M(Session s, Frame f) { - return s.literal(f, "object", true, false, K360); + return s.sequence(f, K403, K309); } private static Match e156(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e156M(s, f) : e156C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e156M : TinyExpressionP4Parser::e156C, K216, K216, K216, K217, K217, "TinyExpressionP4::ObjectTypeHint", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4347:4355:body/1/0/1/literal", false, true, "text", false, K361); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e156M : TinyExpressionP4Parser::e156C, K227, K227, K227, K228, K228, "TinyExpressionP4::NumberTypeHint", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4698:4706:body/0/optional", true, false, "text", false, K317); } private static Match e156C(Session s, Frame f) { - return s.literal(f, "Object", true, false, K362); + return s.optional(f, TinyExpressionP4Parser::e157); } private static Match e156M(Session s, Frame f) { - return s.literal(f, "Object", true, false, K362); + return s.optional(f, TinyExpressionP4Parser::e157); } private static Match e157(Session s, Frame f) { - f.reset = false; if (s.bypassWrap) { Match r = f.matched ? e157M(s, f) : e157C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e157M : TinyExpressionP4Parser::e157C, K216, K216, K216, K217, K217, "TinyExpressionP4::OnlyIfAbsent", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4409:4428:body/seq", false, false, "text", false, K4); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e157M : TinyExpressionP4Parser::e157C, K227, K227, K227, K228, K228, "TinyExpressionP4::NumberTypeHint", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4700:4704:body/0/0/literal", false, true, "text", false, K317); } private static Match e157C(Session s, Frame f) { - return s.sequence(f, K379, K251); + return s.literal(f, "as", true, false, K318); } private static Match e157M(Session s, Frame f) { - return s.sequence(f, K379, K251); + return s.literal(f, "as", true, false, K318); } private static Match e158(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e158M(s, f) : e158C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e158M : TinyExpressionP4Parser::e158C, K216, K216, K216, K217, K217, "TinyExpressionP4::OnlyIfAbsent", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4409:4413:body/0/literal", false, true, "text", false, K380); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e158M : TinyExpressionP4Parser::e158C, K227, K227, K227, K228, K228, "TinyExpressionP4::NumberTypeHint", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4707:4750:body/1/group", false, false, "text", false, K404); } private static Match e158C(Session s, Frame f) { - return s.literal(f, "if", true, false, K381); + return e159(s, f); } private static Match e158M(Session s, Frame f) { - return s.literal(f, "if", true, false, K381); + return e159(s, f); } private static Match e159(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e159M(s, f) : e159C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e159M : TinyExpressionP4Parser::e159C, K216, K216, K216, K217, K217, "TinyExpressionP4::OnlyIfAbsent", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4414:4419:body/1/literal", false, true, "text", false, K382); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e159M : TinyExpressionP4Parser::e159C, K227, K227, K227, K228, K228, "TinyExpressionP4::NumberTypeHint", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4709:4748:body/1/0/choice", false, false, "text", false, K404); } private static Match e159C(Session s, Frame f) { - return s.literal(f, "not", true, false, K383); + return s.choice(f,K405,false,null,false); } private static Match e159M(Session s, Frame f) { - return s.literal(f, "not", true, false, K383); + return s.choice(f,K405,false,null,false); } private static Match e160(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e160M(s, f) : e160C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e160M : TinyExpressionP4Parser::e160C, K216, K216, K216, K217, K217, "TinyExpressionP4::OnlyIfAbsent", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4420:4428:body/2/literal", false, true, "text", false, K384); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e160M : TinyExpressionP4Parser::e160C, K227, K227, K227, K228, K228, "TinyExpressionP4::NumberTypeHint", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4709:4717:body/1/0/0/literal", false, true, "text", false, K390); } private static Match e160C(Session s, Frame f) { - return s.literal(f, "exists", true, false, K385); + return s.literal(f, "number", true, false, K391); } private static Match e160M(Session s, Frame f) { - return s.literal(f, "exists", true, false, K385); + return s.literal(f, "number", true, false, K391); } private static Match e161(Session s, Frame f) { - f.reset = false; if (s.bypassWrap) { Match r = f.matched ? e161M(s, f) : e161C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e161M : TinyExpressionP4Parser::e161C, K216, K216, K216, K217, K217, "TinyExpressionP4::Description", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4450:4474:body/seq", false, false, "text", false, K4); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e161M : TinyExpressionP4Parser::e161C, K227, K227, K227, K228, K228, "TinyExpressionP4::NumberTypeHint", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4720:4728:body/1/0/1/literal", false, true, "text", false, K392); } private static Match e161C(Session s, Frame f) { - return s.sequence(f, K386, K251); + return s.literal(f, "Number", true, false, K393); } private static Match e161M(Session s, Frame f) { - return s.sequence(f, K386, K251); + return s.literal(f, "Number", true, false, K393); } private static Match e162(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e162M(s, f) : e162C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e162M : TinyExpressionP4Parser::e162C, K216, K216, K216, K217, K217, "TinyExpressionP4::Description", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4450:4463:body/0/literal", false, true, "text", false, K387); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e162M : TinyExpressionP4Parser::e162C, K227, K227, K227, K228, K228, "TinyExpressionP4::NumberTypeHint", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4731:4738:body/1/0/2/literal", false, true, "text", false, K406); } private static Match e162C(Session s, Frame f) { - return s.literal(f, "description", true, false, K388); + return s.literal(f, "float", true, false, K407); } private static Match e162M(Session s, Frame f) { - return s.literal(f, "description", true, false, K388); + return s.literal(f, "float", true, false, K407); } private static Match e163(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e163M(s, f) : e163C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e163M : TinyExpressionP4Parser::e163C, K216, K216, K216, K217, K217, "TinyExpressionP4::Description", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4464:4467:body/1/literal", false, true, "text", false, K32); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e163M : TinyExpressionP4Parser::e163C, K227, K227, K227, K228, K228, "TinyExpressionP4::NumberTypeHint", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4741:4748:body/1/0/3/literal", false, true, "text", false, K408); } private static Match e163C(Session s, Frame f) { - return s.literal(f, "=", true, false, K389); + return s.literal(f, "Float", true, false, K409); } private static Match e163M(Session s, Frame f) { - return s.literal(f, "=", true, false, K389); + return s.literal(f, "Float", true, false, K409); } private static Match e164(Session s, Frame f) { + f.reset = false; if (s.bypassWrap) { Match r = f.matched ? e164M(s, f) : e164C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e164M : TinyExpressionP4Parser::e164C, K216, K216, K216, K217, K217, "TinyExpressionP4::Description", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4468:4474:body/2/tokenRef", false, true, "text", false, K390); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e164M : TinyExpressionP4Parser::e164C, K227, K227, K227, K228, K228, "TinyExpressionP4::StringTypeHint", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4774:4806:body/seq", false, false, "text", false, K4); } private static Match e164C(Session s, Frame f) { - return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K391,K392); + return s.sequence(f, K410, K309); } private static Match e164M(Session s, Frame f) { - return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K391,K392); + return s.sequence(f, K410, K309); } private static Match e165(Session s, Frame f) { - f.reset = false; - if (s.bypassWrap) { Match r = f.matched ? e165M(s, f) : e165C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e165M : TinyExpressionP4Parser::e165C, K216, K216, K216, K217, K217, "TinyExpressionP4::Annotation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4495:4542:body/seq", false, false, "node", true, K4); + if (s.bypassWrap) { Match r = f.matched ? e165M(s, f) : e165C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e165M : TinyExpressionP4Parser::e165C, K227, K227, K227, K228, K228, "TinyExpressionP4::StringTypeHint", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4774:4782:body/0/optional", true, false, "text", false, K317); } private static Match e165C(Session s, Frame f) { - return s.sequence(f, K395, K394); + return s.optional(f, TinyExpressionP4Parser::e166); } private static Match e165M(Session s, Frame f) { - return s.sequence(f, K395, K394); + return s.optional(f, TinyExpressionP4Parser::e166); } private static Match e166(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e166M(s, f) : e166C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e166M : TinyExpressionP4Parser::e166C, K216, K216, K216, K217, K217, "TinyExpressionP4::Annotation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4495:4498:body/0/literal", false, true, "text", false, K396); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e166M : TinyExpressionP4Parser::e166C, K227, K227, K227, K228, K228, "TinyExpressionP4::StringTypeHint", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4776:4780:body/0/0/literal", false, true, "text", false, K317); } private static Match e166C(Session s, Frame f) { - return s.literal(f, "@", true, false, K397); + return s.literal(f, "as", true, false, K318); } private static Match e166M(Session s, Frame f) { - return s.literal(f, "@", true, false, K397); + return s.literal(f, "as", true, false, K318); } private static Match e167(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e167M(s, f) : e167C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e167M : TinyExpressionP4Parser::e167C, K216, K216, K216, K217, K217, "TinyExpressionP4::Annotation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4499:4509:body/1/tokenRef", false, true, "text", false, K398); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e167M : TinyExpressionP4Parser::e167C, K227, K227, K227, K228, K228, "TinyExpressionP4::StringTypeHint", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4783:4806:body/1/group", false, false, "text", false, K411); } private static Match e167C(Session s, Frame f) { - return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K277,K278); + return e168(s, f); } private static Match e167M(Session s, Frame f) { - return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K277,K278); + return e168(s, f); } private static Match e168(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e168M(s, f) : e168C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e168M : TinyExpressionP4Parser::e168C, K216, K216, K216, K217, K217, "TinyExpressionP4::Annotation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4510:4513:body/2/literal", false, true, "text", false, K399); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e168M : TinyExpressionP4Parser::e168C, K227, K227, K227, K228, K228, "TinyExpressionP4::StringTypeHint", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4785:4804:body/1/0/choice", false, false, "text", false, K411); } private static Match e168C(Session s, Frame f) { - return s.literal(f, "(", true, false, K400); + return s.choice(f,K412,false,null,false); } private static Match e168M(Session s, Frame f) { - return s.literal(f, "(", true, false, K400); + return s.choice(f,K412,false,null,false); } private static Match e169(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e169M(s, f) : e169C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e169M : TinyExpressionP4Parser::e169C, K216, K216, K216, K217, K217, "TinyExpressionP4::Annotation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4514:4538:body/3/optional", true, false, "node", true, K316); + if (s.bypassWrap) { Match r = f.matched ? e169M(s, f) : e169C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e169M : TinyExpressionP4Parser::e169C, K227, K227, K227, K228, K228, "TinyExpressionP4::StringTypeHint", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4785:4793:body/1/0/0/literal", false, true, "text", false, K52); } private static Match e169C(Session s, Frame f) { - return s.optional(f, TinyExpressionP4Parser::e170); + return s.literal(f, "string", true, false, K394); } private static Match e169M(Session s, Frame f) { - return s.optional(f, TinyExpressionP4Parser::e170); + return s.literal(f, "string", true, false, K394); } private static Match e170(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e170M(s, f) : e170C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e170M : TinyExpressionP4Parser::e170C, K216, K216, K216, K217, K217, "TinyExpressionP4::Annotation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4516:4536:body/3/0/ruleRef", false, false, "node", true, K4); + if (s.bypassWrap) { Match r = f.matched ? e170M(s, f) : e170C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e170M : TinyExpressionP4Parser::e170C, K227, K227, K227, K228, K228, "TinyExpressionP4::StringTypeHint", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4796:4804:body/1/0/1/literal", false, true, "text", false, K395); } private static Match e170C(Session s, Frame f) { - return parseAnnotationParameters_17(s, f); + return s.literal(f, "String", true, false, K396); } private static Match e170M(Session s, Frame f) { - return parseAnnotationParameters_17(s, f); + return s.literal(f, "String", true, false, K396); } private static Match e171(Session s, Frame f) { + f.reset = false; if (s.bypassWrap) { Match r = f.matched ? e171M(s, f) : e171C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e171M : TinyExpressionP4Parser::e171C, K216, K216, K216, K217, K217, "TinyExpressionP4::Annotation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4539:4542:body/4/literal", false, true, "text", false, K401); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e171M : TinyExpressionP4Parser::e171C, K227, K227, K227, K228, K228, "TinyExpressionP4::BooleanTypeHint", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4831:4865:body/seq", false, false, "text", false, K4); } private static Match e171C(Session s, Frame f) { - return s.literal(f, ")", true, false, K402); + return s.sequence(f, K413, K309); } private static Match e171M(Session s, Frame f) { - return s.literal(f, ")", true, false, K402); + return s.sequence(f, K413, K309); } private static Match e172(Session s, Frame f) { - f.reset = false; - if (s.bypassWrap) { Match r = f.matched ? e172M(s, f) : e172C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e172M : TinyExpressionP4Parser::e172C, K216, K216, K216, K217, K217, "TinyExpressionP4::AnnotationParameters", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4572:4619:body/seq", false, false, "node", true, K4); + if (s.bypassWrap) { Match r = f.matched ? e172M(s, f) : e172C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e172M : TinyExpressionP4Parser::e172C, K227, K227, K227, K228, K228, "TinyExpressionP4::BooleanTypeHint", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4831:4839:body/0/optional", true, false, "text", false, K317); } private static Match e172C(Session s, Frame f) { - return s.sequence(f, K403, K271); + return s.optional(f, TinyExpressionP4Parser::e173); } private static Match e172M(Session s, Frame f) { - return s.sequence(f, K403, K271); + return s.optional(f, TinyExpressionP4Parser::e173); } private static Match e173(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e173M(s, f) : e173C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e173M : TinyExpressionP4Parser::e173C, K216, K216, K216, K217, K217, "TinyExpressionP4::AnnotationParameters", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4572:4591:body/0/ruleRef", false, false, "node", false, K4); + if (s.bypassWrap) { Match r = f.matched ? e173M(s, f) : e173C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e173M : TinyExpressionP4Parser::e173C, K227, K227, K227, K228, K228, "TinyExpressionP4::BooleanTypeHint", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4833:4837:body/0/0/literal", false, true, "text", false, K317); } private static Match e173C(Session s, Frame f) { - return parseAnnotationParameter_18(s, f); + return s.literal(f, "as", true, false, K318); } private static Match e173M(Session s, Frame f) { - return parseAnnotationParameter_18(s, f); + return s.literal(f, "as", true, false, K318); } private static Match e174(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e174M(s, f) : e174C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e174M : TinyExpressionP4Parser::e174C, K216, K216, K216, K217, K217, "TinyExpressionP4::AnnotationParameters", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4592:4619:body/1/repeat", true, false, "node", true, K404); + if (s.bypassWrap) { Match r = f.matched ? e174M(s, f) : e174C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e174M : TinyExpressionP4Parser::e174C, K227, K227, K227, K228, K228, "TinyExpressionP4::BooleanTypeHint", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4840:4865:body/1/group", false, false, "text", false, K414); } private static Match e174C(Session s, Frame f) { - return s.repeat(f, TinyExpressionP4Parser::e175, 0, Integer.MAX_VALUE, null, Trivia.NONE); + return e175(s, f); } private static Match e174M(Session s, Frame f) { - return s.repeat(f, TinyExpressionP4Parser::e175, 0, Integer.MAX_VALUE, null, Trivia.NONE); + return e175(s, f); } private static Match e175(Session s, Frame f) { - f.reset = false; - if (s.bypassWrap) { Match r = f.matched ? e175M(s, f) : e175C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e175M : TinyExpressionP4Parser::e175C, K216, K216, K216, K217, K217, "TinyExpressionP4::AnnotationParameters", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4594:4617:body/1/0/seq", false, false, "node", false, K405); + if (s.bypassWrap) { Match r = f.matched ? e175M(s, f) : e175C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e175M : TinyExpressionP4Parser::e175C, K227, K227, K227, K228, K228, "TinyExpressionP4::BooleanTypeHint", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4842:4863:body/1/0/choice", false, false, "text", false, K414); } private static Match e175C(Session s, Frame f) { - return s.sequence(f, K406, K271); + return s.choice(f,K415,false,null,false); } private static Match e175M(Session s, Frame f) { - return s.sequence(f, K406, K271); + return s.choice(f,K415,false,null,false); } private static Match e176(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e176M(s, f) : e176C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e176M : TinyExpressionP4Parser::e176C, K216, K216, K216, K217, K217, "TinyExpressionP4::AnnotationParameters", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4594:4597:body/1/0/0/literal", false, true, "text", false, K404); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e176M : TinyExpressionP4Parser::e176C, K227, K227, K227, K228, K228, "TinyExpressionP4::BooleanTypeHint", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4842:4851:body/1/0/0/literal", false, true, "text", false, K53); } private static Match e176C(Session s, Frame f) { - return s.literal(f, ",", true, false, K407); + return s.literal(f, "boolean", true, false, K397); } private static Match e176M(Session s, Frame f) { - return s.literal(f, ",", true, false, K407); + return s.literal(f, "boolean", true, false, K397); } private static Match e177(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e177M(s, f) : e177C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e177M : TinyExpressionP4Parser::e177C, K216, K216, K216, K217, K217, "TinyExpressionP4::AnnotationParameters", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4598:4617:body/1/0/1/ruleRef", false, false, "node", false, K4); + if (s.bypassWrap) { Match r = f.matched ? e177M(s, f) : e177C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e177M : TinyExpressionP4Parser::e177C, K227, K227, K227, K228, K228, "TinyExpressionP4::BooleanTypeHint", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4854:4863:body/1/0/1/literal", false, true, "text", false, K398); } private static Match e177C(Session s, Frame f) { - return parseAnnotationParameter_18(s, f); + return s.literal(f, "Boolean", true, false, K399); } private static Match e177M(Session s, Frame f) { - return parseAnnotationParameter_18(s, f); + return s.literal(f, "Boolean", true, false, K399); } private static Match e178(Session s, Frame f) { f.reset = false; - if (s.bypassWrap) { Match r = f.matched ? e178M(s, f) : e178C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e178M : TinyExpressionP4Parser::e178C, K216, K216, K216, K217, K217, "TinyExpressionP4::AnnotationParameter", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4648:4673:body/seq", false, false, "node", false, K4); + if (s.bypassWrap) { Match r = f.matched ? e178M(s, f) : e178C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e178M : TinyExpressionP4Parser::e178C, K227, K227, K227, K228, K228, "TinyExpressionP4::ObjectTypeHint", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4889:4921:body/seq", false, false, "text", false, K4); } private static Match e178C(Session s, Frame f) { - return s.sequence(f, K408, K251); + return s.sequence(f, K416, K309); } private static Match e178M(Session s, Frame f) { - return s.sequence(f, K408, K251); + return s.sequence(f, K416, K309); } private static Match e179(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e179M(s, f) : e179C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e179M : TinyExpressionP4Parser::e179C, K216, K216, K216, K217, K217, "TinyExpressionP4::AnnotationParameter", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4648:4658:body/0/tokenRef", false, true, "text", false, K398); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e179M : TinyExpressionP4Parser::e179C, K227, K227, K227, K228, K228, "TinyExpressionP4::ObjectTypeHint", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4889:4897:body/0/optional", true, false, "text", false, K317); } private static Match e179C(Session s, Frame f) { - return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K277,K278); + return s.optional(f, TinyExpressionP4Parser::e180); } private static Match e179M(Session s, Frame f) { - return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K277,K278); + return s.optional(f, TinyExpressionP4Parser::e180); } private static Match e180(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e180M(s, f) : e180C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e180M : TinyExpressionP4Parser::e180C, K216, K216, K216, K217, K217, "TinyExpressionP4::AnnotationParameter", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4659:4662:body/1/literal", false, true, "text", false, K32); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e180M : TinyExpressionP4Parser::e180C, K227, K227, K227, K228, K228, "TinyExpressionP4::ObjectTypeHint", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4891:4895:body/0/0/literal", false, true, "text", false, K317); } private static Match e180C(Session s, Frame f) { - return s.literal(f, "=", true, false, K389); + return s.literal(f, "as", true, false, K318); } private static Match e180M(Session s, Frame f) { - return s.literal(f, "=", true, false, K389); + return s.literal(f, "as", true, false, K318); } private static Match e181(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e181M(s, f) : e181C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e181M : TinyExpressionP4Parser::e181C, K216, K216, K216, K217, K217, "TinyExpressionP4::AnnotationParameter", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4663:4673:body/2/ruleRef", false, false, "node", false, K4); + if (s.bypassWrap) { Match r = f.matched ? e181M(s, f) : e181C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e181M : TinyExpressionP4Parser::e181C, K227, K227, K227, K228, K228, "TinyExpressionP4::ObjectTypeHint", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4898:4921:body/1/group", false, false, "text", false, K417); } private static Match e181C(Session s, Frame f) { - return parseExpression_123(s, f); + return e182(s, f); } private static Match e181M(Session s, Frame f) { - return parseExpression_123(s, f); + return e182(s, f); } private static Match e182(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e182M(s, f) : e182C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e182M : TinyExpressionP4Parser::e182C, K216, K216, K216, K217, K217, "TinyExpressionP4::MethodDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4707:4821:body/choice", false, false, "node", false, K4); + if (s.bypassWrap) { Match r = f.matched ? e182M(s, f) : e182C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e182M : TinyExpressionP4Parser::e182C, K227, K227, K227, K228, K228, "TinyExpressionP4::ObjectTypeHint", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4900:4919:body/1/0/choice", false, false, "text", false, K417); } private static Match e182C(Session s, Frame f) { - return s.choice(f,K409,false,null,false); + return s.choice(f,K418,false,null,false); } private static Match e182M(Session s, Frame f) { - return s.choice(f,K409,false,null,false); + return s.choice(f,K418,false,null,false); } private static Match e183(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e183M(s, f) : e183C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e183M : TinyExpressionP4Parser::e183C, K216, K216, K216, K217, K217, "TinyExpressionP4::MethodDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4707:4730:body/0/ruleRef", false, false, "node", false, K4); + if (s.bypassWrap) { Match r = f.matched ? e183M(s, f) : e183C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e183M : TinyExpressionP4Parser::e183C, K227, K227, K227, K228, K228, "TinyExpressionP4::ObjectTypeHint", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4900:4908:body/1/0/0/literal", false, true, "text", false, K54); } private static Match e183C(Session s, Frame f) { - return parseNumberMethodDeclaration_20(s, f); + return s.literal(f, "object", true, false, K400); } private static Match e183M(Session s, Frame f) { - return parseNumberMethodDeclaration_20(s, f); + return s.literal(f, "object", true, false, K400); } private static Match e184(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e184M(s, f) : e184C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e184M : TinyExpressionP4Parser::e184C, K216, K216, K216, K217, K217, "TinyExpressionP4::MethodDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4737:4760:body/1/ruleRef", false, false, "node", false, K4); + if (s.bypassWrap) { Match r = f.matched ? e184M(s, f) : e184C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e184M : TinyExpressionP4Parser::e184C, K227, K227, K227, K228, K228, "TinyExpressionP4::ObjectTypeHint", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4911:4919:body/1/0/1/literal", false, true, "text", false, K401); } private static Match e184C(Session s, Frame f) { - return parseStringMethodDeclaration_21(s, f); + return s.literal(f, "Object", true, false, K402); } private static Match e184M(Session s, Frame f) { - return parseStringMethodDeclaration_21(s, f); + return s.literal(f, "Object", true, false, K402); } private static Match e185(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e185M(s, f) : e185C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e185M : TinyExpressionP4Parser::e185C, K216, K216, K216, K217, K217, "TinyExpressionP4::MethodDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4767:4791:body/2/ruleRef", false, false, "node", false, K4); + f.reset = false; + if (s.bypassWrap) { Match r = f.matched ? e185M(s, f) : e185C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e185M : TinyExpressionP4Parser::e185C, K227, K227, K227, K228, K228, "TinyExpressionP4::OnlyIfAbsent", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4973:4992:body/seq", false, false, "text", false, K4); } private static Match e185C(Session s, Frame f) { - return parseBooleanMethodDeclaration_22(s, f); + return s.sequence(f, K419, K255); } private static Match e185M(Session s, Frame f) { - return parseBooleanMethodDeclaration_22(s, f); + return s.sequence(f, K419, K255); } private static Match e186(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e186M(s, f) : e186C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e186M : TinyExpressionP4Parser::e186C, K216, K216, K216, K217, K217, "TinyExpressionP4::MethodDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4798:4821:body/3/ruleRef", false, false, "node", false, K4); + if (s.bypassWrap) { Match r = f.matched ? e186M(s, f) : e186C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e186M : TinyExpressionP4Parser::e186C, K227, K227, K227, K228, K228, "TinyExpressionP4::OnlyIfAbsent", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4973:4977:body/0/literal", false, true, "text", false, K420); } private static Match e186C(Session s, Frame f) { - return parseObjectMethodDeclaration_23(s, f); + return s.literal(f, "if", true, false, K421); } private static Match e186M(Session s, Frame f) { - return parseObjectMethodDeclaration_23(s, f); + return s.literal(f, "if", true, false, K421); } private static Match e187(Session s, Frame f) { - f.reset = false; - if (s.bypassWrap) { Match r = f.matched ? e187M(s, f) : e187C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e187M : TinyExpressionP4Parser::e187C, K216, K216, K216, K217, K217, "TinyExpressionP4::NumberMethodDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5002:5147:body/seq", false, false, "node", true, K4); + if (s.bypassWrap) { Match r = f.matched ? e187M(s, f) : e187C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e187M : TinyExpressionP4Parser::e187C, K227, K227, K227, K228, K228, "TinyExpressionP4::OnlyIfAbsent", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4978:4983:body/1/literal", false, true, "text", false, K422); } private static Match e187C(Session s, Frame f) { - return s.sequence(f, K412, K411); + return s.literal(f, "not", true, false, K423); } private static Match e187M(Session s, Frame f) { - return s.sequence(f, K412, K411); + return s.literal(f, "not", true, false, K423); } private static Match e188(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e188M(s, f) : e188C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e188M : TinyExpressionP4Parser::e188C, K216, K216, K216, K217, K217, "TinyExpressionP4::NumberMethodDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5002:5018:body/0/ruleRef", false, false, "text", false, K4); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e188M : TinyExpressionP4Parser::e188C, K227, K227, K227, K228, K228, "TinyExpressionP4::OnlyIfAbsent", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4984:4992:body/2/literal", false, true, "text", false, K424); } private static Match e188C(Session s, Frame f) { - return parseNumberReturnType_26(s, f); + return s.literal(f, "exists", true, false, K425); } private static Match e188M(Session s, Frame f) { - return parseNumberReturnType_26(s, f); + return s.literal(f, "exists", true, false, K425); } private static Match e189(Session s, Frame f) { - return s.capture(f, f.matched ? TinyExpressionP4Parser::e189M : TinyExpressionP4Parser::e189C, K413, K414, K225, K226, K315, "TinyExpressionP4::NumberMethodDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5019:5029:body/1/tokenRef", false, true, "text", false, K276); + f.reset = false; + if (s.bypassWrap) { Match r = f.matched ? e189M(s, f) : e189C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e189M : TinyExpressionP4Parser::e189C, K227, K227, K227, K228, K228, "TinyExpressionP4::Description", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5014:5038:body/seq", false, false, "text", false, K4); } private static Match e189C(Session s, Frame f) { - return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K277,K278); + return s.sequence(f, K426, K255); } private static Match e189M(Session s, Frame f) { - return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K277,K278); + return s.sequence(f, K426, K255); } private static Match e190(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e190M(s, f) : e190C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e190M : TinyExpressionP4Parser::e190C, K216, K216, K216, K217, K217, "TinyExpressionP4::NumberMethodDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5046:5049:body/2/literal", false, true, "text", false, K399); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e190M : TinyExpressionP4Parser::e190C, K227, K227, K227, K228, K228, "TinyExpressionP4::Description", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5014:5027:body/0/literal", false, true, "text", false, K427); } private static Match e190C(Session s, Frame f) { - return s.literal(f, "(", true, false, K400); + return s.literal(f, "description", true, false, K428); } private static Match e190M(Session s, Frame f) { - return s.literal(f, "(", true, false, K400); + return s.literal(f, "description", true, false, K428); } private static Match e191(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e191M(s, f) : e191C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e191M : TinyExpressionP4Parser::e191C, K216, K216, K216, K217, K217, "TinyExpressionP4::NumberMethodDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5056:5088:body/3/optional", true, false, "node", false, K316); + if (s.bypassWrap) { Match r = f.matched ? e191M(s, f) : e191C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e191M : TinyExpressionP4Parser::e191C, K227, K227, K227, K228, K228, "TinyExpressionP4::Description", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5028:5031:body/1/literal", false, true, "text", false, K32); } private static Match e191C(Session s, Frame f) { - return s.optional(f, TinyExpressionP4Parser::e192); + return s.literal(f, "=", true, false, K429); } private static Match e191M(Session s, Frame f) { - return s.optional(f, TinyExpressionP4Parser::e192); + return s.literal(f, "=", true, false, K429); } private static Match e192(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e192M(s, f) : e192C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e192M : TinyExpressionP4Parser::e192C, K415, K416, K225, K226, K226, "TinyExpressionP4::NumberMethodDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5058:5074:body/3/0/ruleRef", false, false, "node", false, K227); + if (s.bypassWrap) { Match r = f.matched ? e192M(s, f) : e192C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e192M : TinyExpressionP4Parser::e192C, K227, K227, K227, K228, K228, "TinyExpressionP4::Description", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5032:5038:body/2/tokenRef", false, true, "text", false, K430); } private static Match e192C(Session s, Frame f) { - return parseMethodParameters_24(s, f); + return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K431,K432); } private static Match e192M(Session s, Frame f) { - return parseMethodParameters_24(s, f); + return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K431,K432); } private static Match e193(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e193M(s, f) : e193C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e193M : TinyExpressionP4Parser::e193C, K216, K216, K216, K217, K217, "TinyExpressionP4::NumberMethodDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5093:5096:body/4/literal", false, true, "text", false, K401); + f.reset = false; + if (s.bypassWrap) { Match r = f.matched ? e193M(s, f) : e193C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e193M : TinyExpressionP4Parser::e193C, K227, K227, K227, K228, K228, "TinyExpressionP4::Annotation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5059:5106:body/seq", false, false, "node", true, K4); } private static Match e193C(Session s, Frame f) { - return s.literal(f, ")", true, false, K402); + return s.sequence(f, K433, K231); } private static Match e193M(Session s, Frame f) { - return s.literal(f, ")", true, false, K402); + return s.sequence(f, K433, K231); } private static Match e194(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e194M(s, f) : e194C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e194M : TinyExpressionP4Parser::e194C, K216, K216, K216, K217, K217, "TinyExpressionP4::NumberMethodDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5101:5104:body/5/literal", false, true, "text", false, K417); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e194M : TinyExpressionP4Parser::e194C, K227, K227, K227, K228, K228, "TinyExpressionP4::Annotation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5059:5062:body/0/literal", false, true, "text", false, K434); } private static Match e194C(Session s, Frame f) { - return s.literal(f, "{", true, false, K418); + return s.literal(f, "@", true, false, K435); } private static Match e194M(Session s, Frame f) { - return s.literal(f, "{", true, false, K418); + return s.literal(f, "@", true, false, K435); } private static Match e195(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e195M(s, f) : e195C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e195M : TinyExpressionP4Parser::e195C, K419, K233, K225, K226, K226, "TinyExpressionP4::NumberMethodDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5111:5127:body/6/ruleRef", false, false, "node", false, K227); + if (s.bypassWrap) { Match r = f.matched ? e195M(s, f) : e195C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e195M : TinyExpressionP4Parser::e195C, K227, K227, K227, K228, K228, "TinyExpressionP4::Annotation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5063:5073:body/1/tokenRef", false, true, "text", false, K436); } private static Match e195C(Session s, Frame f) { - return parseNumberExpression_40(s, f); + return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K315,K316); } private static Match e195M(Session s, Frame f) { - return parseNumberExpression_40(s, f); + return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K315,K316); } private static Match e196(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e196M(s, f) : e196C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e196M : TinyExpressionP4Parser::e196C, K216, K216, K216, K217, K217, "TinyExpressionP4::NumberMethodDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5144:5147:body/7/literal", false, true, "text", false, K420); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e196M : TinyExpressionP4Parser::e196C, K227, K227, K227, K228, K228, "TinyExpressionP4::Annotation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5074:5077:body/2/literal", false, true, "text", false, K437); } private static Match e196C(Session s, Frame f) { - return s.literal(f, "}", true, false, K421); + return s.literal(f, "(", true, false, K438); } private static Match e196M(Session s, Frame f) { - return s.literal(f, "}", true, false, K421); + return s.literal(f, "(", true, false, K438); } private static Match e197(Session s, Frame f) { - f.reset = false; if (s.bypassWrap) { Match r = f.matched ? e197M(s, f) : e197C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e197M : TinyExpressionP4Parser::e197C, K216, K216, K216, K217, K217, "TinyExpressionP4::StringMethodDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5328:5473:body/seq", false, false, "node", true, K4); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e197M : TinyExpressionP4Parser::e197C, K227, K227, K227, K228, K228, "TinyExpressionP4::Annotation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5078:5102:body/3/optional", true, false, "node", true, K356); } private static Match e197C(Session s, Frame f) { - return s.sequence(f, K422, K411); + return s.optional(f, TinyExpressionP4Parser::e198); } private static Match e197M(Session s, Frame f) { - return s.sequence(f, K422, K411); + return s.optional(f, TinyExpressionP4Parser::e198); } private static Match e198(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e198M(s, f) : e198C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e198M : TinyExpressionP4Parser::e198C, K216, K216, K216, K217, K217, "TinyExpressionP4::StringMethodDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5328:5344:body/0/ruleRef", false, false, "text", false, K4); + if (s.bypassWrap) { Match r = f.matched ? e198M(s, f) : e198C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e198M : TinyExpressionP4Parser::e198C, K227, K227, K227, K228, K228, "TinyExpressionP4::Annotation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5080:5100:body/3/0/ruleRef", false, false, "node", true, K4); } private static Match e198C(Session s, Frame f) { - return parseStringReturnType_27(s, f); + return parseAnnotationParameters_17(s, f); } private static Match e198M(Session s, Frame f) { - return parseStringReturnType_27(s, f); + return parseAnnotationParameters_17(s, f); } private static Match e199(Session s, Frame f) { - return s.capture(f, f.matched ? TinyExpressionP4Parser::e199M : TinyExpressionP4Parser::e199C, K423, K414, K225, K226, K315, "TinyExpressionP4::StringMethodDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5345:5355:body/1/tokenRef", false, true, "text", false, K276); + if (s.bypassWrap) { Match r = f.matched ? e199M(s, f) : e199C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e199M : TinyExpressionP4Parser::e199C, K227, K227, K227, K228, K228, "TinyExpressionP4::Annotation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5103:5106:body/4/literal", false, true, "text", false, K439); } private static Match e199C(Session s, Frame f) { - return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K277,K278); + return s.literal(f, ")", true, false, K440); } private static Match e199M(Session s, Frame f) { - return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K277,K278); + return s.literal(f, ")", true, false, K440); } private static Match e200(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e200M(s, f) : e200C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e200M : TinyExpressionP4Parser::e200C, K216, K216, K216, K217, K217, "TinyExpressionP4::StringMethodDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5372:5375:body/2/literal", false, true, "text", false, K399); + f.reset = false; + if (s.bypassWrap) { Match r = f.matched ? e200M(s, f) : e200C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e200M : TinyExpressionP4Parser::e200C, K227, K227, K227, K228, K228, "TinyExpressionP4::AnnotationParameters", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5136:5183:body/seq", false, false, "node", true, K4); } private static Match e200C(Session s, Frame f) { - return s.literal(f, "(", true, false, K400); + return s.sequence(f, K441, K309); } private static Match e200M(Session s, Frame f) { - return s.literal(f, "(", true, false, K400); + return s.sequence(f, K441, K309); } private static Match e201(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e201M(s, f) : e201C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e201M : TinyExpressionP4Parser::e201C, K216, K216, K216, K217, K217, "TinyExpressionP4::StringMethodDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5382:5414:body/3/optional", true, false, "node", false, K316); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e201M : TinyExpressionP4Parser::e201C, K227, K227, K227, K228, K228, "TinyExpressionP4::AnnotationParameters", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5136:5155:body/0/ruleRef", false, false, "node", false, K4); } private static Match e201C(Session s, Frame f) { - return s.optional(f, TinyExpressionP4Parser::e202); + return parseAnnotationParameter_18(s, f); } private static Match e201M(Session s, Frame f) { - return s.optional(f, TinyExpressionP4Parser::e202); + return parseAnnotationParameter_18(s, f); } private static Match e202(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e202M(s, f) : e202C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e202M : TinyExpressionP4Parser::e202C, K424, K416, K225, K226, K226, "TinyExpressionP4::StringMethodDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5384:5400:body/3/0/ruleRef", false, false, "node", false, K227); + if (s.bypassWrap) { Match r = f.matched ? e202M(s, f) : e202C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e202M : TinyExpressionP4Parser::e202C, K227, K227, K227, K228, K228, "TinyExpressionP4::AnnotationParameters", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5156:5183:body/1/repeat", true, false, "node", true, K442); } private static Match e202C(Session s, Frame f) { - return parseMethodParameters_24(s, f); + return s.repeat(f, TinyExpressionP4Parser::e203, 0, Integer.MAX_VALUE, null, Trivia.NONE); } private static Match e202M(Session s, Frame f) { - return parseMethodParameters_24(s, f); + return s.repeat(f, TinyExpressionP4Parser::e203, 0, Integer.MAX_VALUE, null, Trivia.NONE); } private static Match e203(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e203M(s, f) : e203C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e203M : TinyExpressionP4Parser::e203C, K216, K216, K216, K217, K217, "TinyExpressionP4::StringMethodDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5419:5422:body/4/literal", false, true, "text", false, K401); + f.reset = false; + if (s.bypassWrap) { Match r = f.matched ? e203M(s, f) : e203C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e203M : TinyExpressionP4Parser::e203C, K227, K227, K227, K228, K228, "TinyExpressionP4::AnnotationParameters", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5158:5181:body/1/0/seq", false, false, "node", false, K443); } private static Match e203C(Session s, Frame f) { - return s.literal(f, ")", true, false, K402); + return s.sequence(f, K444, K309); } private static Match e203M(Session s, Frame f) { - return s.literal(f, ")", true, false, K402); + return s.sequence(f, K444, K309); } private static Match e204(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e204M(s, f) : e204C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e204M : TinyExpressionP4Parser::e204C, K216, K216, K216, K217, K217, "TinyExpressionP4::StringMethodDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5427:5430:body/5/literal", false, true, "text", false, K417); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e204M : TinyExpressionP4Parser::e204C, K227, K227, K227, K228, K228, "TinyExpressionP4::AnnotationParameters", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5158:5161:body/1/0/0/literal", false, true, "text", false, K442); } private static Match e204C(Session s, Frame f) { - return s.literal(f, "{", true, false, K418); + return s.literal(f, ",", true, false, K445); } private static Match e204M(Session s, Frame f) { - return s.literal(f, "{", true, false, K418); + return s.literal(f, ",", true, false, K445); } private static Match e205(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e205M(s, f) : e205C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e205M : TinyExpressionP4Parser::e205C, K425, K233, K225, K226, K226, "TinyExpressionP4::StringMethodDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5437:5453:body/6/ruleRef", false, false, "node", false, K227); + if (s.bypassWrap) { Match r = f.matched ? e205M(s, f) : e205C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e205M : TinyExpressionP4Parser::e205C, K227, K227, K227, K228, K228, "TinyExpressionP4::AnnotationParameters", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5162:5181:body/1/0/1/ruleRef", false, false, "node", false, K4); } private static Match e205C(Session s, Frame f) { - return parseStringExpression_89(s, f); + return parseAnnotationParameter_18(s, f); } private static Match e205M(Session s, Frame f) { - return parseStringExpression_89(s, f); + return parseAnnotationParameter_18(s, f); } private static Match e206(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e206M(s, f) : e206C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e206M : TinyExpressionP4Parser::e206C, K216, K216, K216, K217, K217, "TinyExpressionP4::StringMethodDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5470:5473:body/7/literal", false, true, "text", false, K420); + f.reset = false; + if (s.bypassWrap) { Match r = f.matched ? e206M(s, f) : e206C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e206M : TinyExpressionP4Parser::e206C, K227, K227, K227, K228, K228, "TinyExpressionP4::AnnotationParameter", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5212:5237:body/seq", false, false, "node", false, K4); } private static Match e206C(Session s, Frame f) { - return s.literal(f, "}", true, false, K421); + return s.sequence(f, K446, K255); } private static Match e206M(Session s, Frame f) { - return s.literal(f, "}", true, false, K421); + return s.sequence(f, K446, K255); } private static Match e207(Session s, Frame f) { - f.reset = false; - if (s.bypassWrap) { Match r = f.matched ? e207M(s, f) : e207C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e207M : TinyExpressionP4Parser::e207C, K216, K216, K216, K217, K217, "TinyExpressionP4::BooleanMethodDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5656:5803:body/seq", false, false, "node", true, K4); + if (s.bypassWrap) { Match r = f.matched ? e207M(s, f) : e207C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e207M : TinyExpressionP4Parser::e207C, K227, K227, K227, K228, K228, "TinyExpressionP4::AnnotationParameter", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5212:5222:body/0/tokenRef", false, true, "text", false, K436); } private static Match e207C(Session s, Frame f) { - return s.sequence(f, K426, K411); + return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K315,K316); } private static Match e207M(Session s, Frame f) { - return s.sequence(f, K426, K411); + return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K315,K316); } private static Match e208(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e208M(s, f) : e208C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e208M : TinyExpressionP4Parser::e208C, K216, K216, K216, K217, K217, "TinyExpressionP4::BooleanMethodDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5656:5673:body/0/ruleRef", false, false, "text", false, K4); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e208M : TinyExpressionP4Parser::e208C, K227, K227, K227, K228, K228, "TinyExpressionP4::AnnotationParameter", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5223:5226:body/1/literal", false, true, "text", false, K32); } private static Match e208C(Session s, Frame f) { - return parseBooleanReturnType_28(s, f); + return s.literal(f, "=", true, false, K429); } private static Match e208M(Session s, Frame f) { - return parseBooleanReturnType_28(s, f); + return s.literal(f, "=", true, false, K429); } private static Match e209(Session s, Frame f) { - return s.capture(f, f.matched ? TinyExpressionP4Parser::e209M : TinyExpressionP4Parser::e209C, K427, K414, K225, K226, K315, "TinyExpressionP4::BooleanMethodDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5674:5684:body/1/tokenRef", false, true, "text", false, K276); + if (s.bypassWrap) { Match r = f.matched ? e209M(s, f) : e209C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e209M : TinyExpressionP4Parser::e209C, K227, K227, K227, K228, K228, "TinyExpressionP4::AnnotationParameter", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5227:5237:body/2/ruleRef", false, false, "node", false, K4); } private static Match e209C(Session s, Frame f) { - return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K277,K278); + return parseExpression_123(s, f); } private static Match e209M(Session s, Frame f) { - return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K277,K278); + return parseExpression_123(s, f); } private static Match e210(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e210M(s, f) : e210C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e210M : TinyExpressionP4Parser::e210C, K216, K216, K216, K217, K217, "TinyExpressionP4::BooleanMethodDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5701:5704:body/2/literal", false, true, "text", false, K399); + if (s.bypassWrap) { Match r = f.matched ? e210M(s, f) : e210C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e210M : TinyExpressionP4Parser::e210C, K227, K227, K227, K228, K228, "TinyExpressionP4::MethodDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5271:5385:body/choice", false, false, "node", false, K4); } private static Match e210C(Session s, Frame f) { - return s.literal(f, "(", true, false, K400); + return s.choice(f,K447,false,null,false); } private static Match e210M(Session s, Frame f) { - return s.literal(f, "(", true, false, K400); + return s.choice(f,K447,false,null,false); } private static Match e211(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e211M(s, f) : e211C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e211M : TinyExpressionP4Parser::e211C, K216, K216, K216, K217, K217, "TinyExpressionP4::BooleanMethodDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5711:5743:body/3/optional", true, false, "node", false, K316); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e211M : TinyExpressionP4Parser::e211C, K227, K227, K227, K228, K228, "TinyExpressionP4::MethodDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5271:5294:body/0/ruleRef", false, false, "node", false, K4); } private static Match e211C(Session s, Frame f) { - return s.optional(f, TinyExpressionP4Parser::e212); + return parseNumberMethodDeclaration_20(s, f); } private static Match e211M(Session s, Frame f) { - return s.optional(f, TinyExpressionP4Parser::e212); + return parseNumberMethodDeclaration_20(s, f); } private static Match e212(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e212M(s, f) : e212C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e212M : TinyExpressionP4Parser::e212C, K428, K416, K225, K226, K226, "TinyExpressionP4::BooleanMethodDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5713:5729:body/3/0/ruleRef", false, false, "node", false, K227); + if (s.bypassWrap) { Match r = f.matched ? e212M(s, f) : e212C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e212M : TinyExpressionP4Parser::e212C, K227, K227, K227, K228, K228, "TinyExpressionP4::MethodDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5301:5324:body/1/ruleRef", false, false, "node", false, K4); } private static Match e212C(Session s, Frame f) { - return parseMethodParameters_24(s, f); + return parseStringMethodDeclaration_21(s, f); } private static Match e212M(Session s, Frame f) { - return parseMethodParameters_24(s, f); + return parseStringMethodDeclaration_21(s, f); } private static Match e213(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e213M(s, f) : e213C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e213M : TinyExpressionP4Parser::e213C, K216, K216, K216, K217, K217, "TinyExpressionP4::BooleanMethodDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5748:5751:body/4/literal", false, true, "text", false, K401); + if (s.bypassWrap) { Match r = f.matched ? e213M(s, f) : e213C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e213M : TinyExpressionP4Parser::e213C, K227, K227, K227, K228, K228, "TinyExpressionP4::MethodDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5331:5355:body/2/ruleRef", false, false, "node", false, K4); } private static Match e213C(Session s, Frame f) { - return s.literal(f, ")", true, false, K402); + return parseBooleanMethodDeclaration_22(s, f); } private static Match e213M(Session s, Frame f) { - return s.literal(f, ")", true, false, K402); + return parseBooleanMethodDeclaration_22(s, f); } private static Match e214(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e214M(s, f) : e214C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e214M : TinyExpressionP4Parser::e214C, K216, K216, K216, K217, K217, "TinyExpressionP4::BooleanMethodDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5756:5759:body/5/literal", false, true, "text", false, K417); + if (s.bypassWrap) { Match r = f.matched ? e214M(s, f) : e214C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e214M : TinyExpressionP4Parser::e214C, K227, K227, K227, K228, K228, "TinyExpressionP4::MethodDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5362:5385:body/3/ruleRef", false, false, "node", false, K4); } private static Match e214C(Session s, Frame f) { - return s.literal(f, "{", true, false, K418); + return parseObjectMethodDeclaration_23(s, f); } private static Match e214M(Session s, Frame f) { - return s.literal(f, "{", true, false, K418); + return parseObjectMethodDeclaration_23(s, f); } private static Match e215(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e215M(s, f) : e215C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e215M : TinyExpressionP4Parser::e215C, K429, K233, K225, K226, K226, "TinyExpressionP4::BooleanMethodDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5766:5783:body/6/ruleRef", false, false, "node", false, K227); + f.reset = false; + if (s.bypassWrap) { Match r = f.matched ? e215M(s, f) : e215C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e215M : TinyExpressionP4Parser::e215C, K227, K227, K227, K228, K228, "TinyExpressionP4::NumberMethodDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5566:5711:body/seq", false, false, "node", true, K4); } private static Match e215C(Session s, Frame f) { - return parseBooleanExpression_94(s, f); + return s.sequence(f, K450, K449); } private static Match e215M(Session s, Frame f) { - return parseBooleanExpression_94(s, f); + return s.sequence(f, K450, K449); } private static Match e216(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e216M(s, f) : e216C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e216M : TinyExpressionP4Parser::e216C, K216, K216, K216, K217, K217, "TinyExpressionP4::BooleanMethodDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5800:5803:body/7/literal", false, true, "text", false, K420); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e216M : TinyExpressionP4Parser::e216C, K227, K227, K227, K228, K228, "TinyExpressionP4::NumberMethodDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5566:5582:body/0/ruleRef", false, false, "text", false, K4); } private static Match e216C(Session s, Frame f) { - return s.literal(f, "}", true, false, K421); + return parseNumberReturnType_26(s, f); } private static Match e216M(Session s, Frame f) { - return s.literal(f, "}", true, false, K421); + return parseNumberReturnType_26(s, f); } private static Match e217(Session s, Frame f) { - f.reset = false; - if (s.bypassWrap) { Match r = f.matched ? e217M(s, f) : e217C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e217M : TinyExpressionP4Parser::e217C, K216, K216, K216, K217, K217, "TinyExpressionP4::ObjectMethodDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5984:6129:body/seq", false, false, "node", true, K4); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e217M : TinyExpressionP4Parser::e217C, K451, K452, K236, K237, K355, "TinyExpressionP4::NumberMethodDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5583:5593:body/1/tokenRef", false, true, "text", false, K314); } private static Match e217C(Session s, Frame f) { - return s.sequence(f, K430, K411); + return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K315,K316); } private static Match e217M(Session s, Frame f) { - return s.sequence(f, K430, K411); + return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K315,K316); } private static Match e218(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e218M(s, f) : e218C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e218M : TinyExpressionP4Parser::e218C, K216, K216, K216, K217, K217, "TinyExpressionP4::ObjectMethodDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5984:6000:body/0/ruleRef", false, false, "text", false, K4); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e218M : TinyExpressionP4Parser::e218C, K227, K227, K227, K228, K228, "TinyExpressionP4::NumberMethodDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5610:5613:body/2/literal", false, true, "text", false, K437); } private static Match e218C(Session s, Frame f) { - return parseObjectReturnType_29(s, f); + return s.literal(f, "(", true, false, K438); } private static Match e218M(Session s, Frame f) { - return parseObjectReturnType_29(s, f); + return s.literal(f, "(", true, false, K438); } private static Match e219(Session s, Frame f) { - return s.capture(f, f.matched ? TinyExpressionP4Parser::e219M : TinyExpressionP4Parser::e219C, K431, K414, K225, K226, K315, "TinyExpressionP4::ObjectMethodDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6001:6011:body/1/tokenRef", false, true, "text", false, K276); + if (s.bypassWrap) { Match r = f.matched ? e219M(s, f) : e219C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e219M : TinyExpressionP4Parser::e219C, K227, K227, K227, K228, K228, "TinyExpressionP4::NumberMethodDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5620:5652:body/3/optional", true, false, "node", false, K356); } private static Match e219C(Session s, Frame f) { - return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K277,K278); + return s.optional(f, TinyExpressionP4Parser::e220); } private static Match e219M(Session s, Frame f) { - return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K277,K278); + return s.optional(f, TinyExpressionP4Parser::e220); } private static Match e220(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e220M(s, f) : e220C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e220M : TinyExpressionP4Parser::e220C, K216, K216, K216, K217, K217, "TinyExpressionP4::ObjectMethodDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6028:6031:body/2/literal", false, true, "text", false, K399); + if (s.bypassCapture) { Match r = f.matched ? e220M(s, f) : e220C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e220M : TinyExpressionP4Parser::e220C, K453, K454, K236, K237, K237, "TinyExpressionP4::NumberMethodDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5622:5638:body/3/0/ruleRef", false, false, "node", false, K238); } private static Match e220C(Session s, Frame f) { - return s.literal(f, "(", true, false, K400); + return parseMethodParameters_24(s, f); } private static Match e220M(Session s, Frame f) { - return s.literal(f, "(", true, false, K400); + return parseMethodParameters_24(s, f); } private static Match e221(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e221M(s, f) : e221C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e221M : TinyExpressionP4Parser::e221C, K216, K216, K216, K217, K217, "TinyExpressionP4::ObjectMethodDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6038:6070:body/3/optional", true, false, "node", false, K316); + if (s.bypassWrap) { Match r = f.matched ? e221M(s, f) : e221C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e221M : TinyExpressionP4Parser::e221C, K227, K227, K227, K228, K228, "TinyExpressionP4::NumberMethodDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5657:5660:body/4/literal", false, true, "text", false, K439); } private static Match e221C(Session s, Frame f) { - return s.optional(f, TinyExpressionP4Parser::e222); + return s.literal(f, ")", true, false, K440); } private static Match e221M(Session s, Frame f) { - return s.optional(f, TinyExpressionP4Parser::e222); + return s.literal(f, ")", true, false, K440); } private static Match e222(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e222M(s, f) : e222C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e222M : TinyExpressionP4Parser::e222C, K432, K416, K225, K226, K226, "TinyExpressionP4::ObjectMethodDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6040:6056:body/3/0/ruleRef", false, false, "node", false, K227); + if (s.bypassWrap) { Match r = f.matched ? e222M(s, f) : e222C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e222M : TinyExpressionP4Parser::e222C, K227, K227, K227, K228, K228, "TinyExpressionP4::NumberMethodDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5665:5668:body/5/literal", false, true, "text", false, K455); } private static Match e222C(Session s, Frame f) { - return parseMethodParameters_24(s, f); + return s.literal(f, "{", true, false, K456); } private static Match e222M(Session s, Frame f) { - return parseMethodParameters_24(s, f); + return s.literal(f, "{", true, false, K456); } private static Match e223(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e223M(s, f) : e223C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e223M : TinyExpressionP4Parser::e223C, K216, K216, K216, K217, K217, "TinyExpressionP4::ObjectMethodDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6075:6078:body/4/literal", false, true, "text", false, K401); + if (s.bypassCapture) { Match r = f.matched ? e223M(s, f) : e223C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e223M : TinyExpressionP4Parser::e223C, K457, K258, K236, K237, K237, "TinyExpressionP4::NumberMethodDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5675:5691:body/6/ruleRef", false, false, "node", false, K238); } private static Match e223C(Session s, Frame f) { - return s.literal(f, ")", true, false, K402); + return parseNumberExpression_40(s, f); } private static Match e223M(Session s, Frame f) { - return s.literal(f, ")", true, false, K402); + return parseNumberExpression_40(s, f); } private static Match e224(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e224M(s, f) : e224C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e224M : TinyExpressionP4Parser::e224C, K216, K216, K216, K217, K217, "TinyExpressionP4::ObjectMethodDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6083:6086:body/5/literal", false, true, "text", false, K417); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e224M : TinyExpressionP4Parser::e224C, K227, K227, K227, K228, K228, "TinyExpressionP4::NumberMethodDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5708:5711:body/7/literal", false, true, "text", false, K458); } private static Match e224C(Session s, Frame f) { - return s.literal(f, "{", true, false, K418); + return s.literal(f, "}", true, false, K459); } private static Match e224M(Session s, Frame f) { - return s.literal(f, "{", true, false, K418); + return s.literal(f, "}", true, false, K459); } private static Match e225(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e225M(s, f) : e225C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e225M : TinyExpressionP4Parser::e225C, K433, K233, K225, K226, K226, "TinyExpressionP4::ObjectMethodDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6093:6109:body/6/ruleRef", false, false, "node", false, K227); + f.reset = false; + if (s.bypassWrap) { Match r = f.matched ? e225M(s, f) : e225C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e225M : TinyExpressionP4Parser::e225C, K227, K227, K227, K228, K228, "TinyExpressionP4::StringMethodDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5892:6037:body/seq", false, false, "node", true, K4); } private static Match e225C(Session s, Frame f) { - return parseObjectExpression_105(s, f); + return s.sequence(f, K460, K449); } private static Match e225M(Session s, Frame f) { - return parseObjectExpression_105(s, f); + return s.sequence(f, K460, K449); } private static Match e226(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e226M(s, f) : e226C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e226M : TinyExpressionP4Parser::e226C, K216, K216, K216, K217, K217, "TinyExpressionP4::ObjectMethodDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6126:6129:body/7/literal", false, true, "text", false, K420); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e226M : TinyExpressionP4Parser::e226C, K227, K227, K227, K228, K228, "TinyExpressionP4::StringMethodDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5892:5908:body/0/ruleRef", false, false, "text", false, K4); } private static Match e226C(Session s, Frame f) { - return s.literal(f, "}", true, false, K421); + return parseStringReturnType_27(s, f); } private static Match e226M(Session s, Frame f) { - return s.literal(f, "}", true, false, K421); + return parseStringReturnType_27(s, f); } private static Match e227(Session s, Frame f) { - f.reset = false; - if (s.bypassWrap) { Match r = f.matched ? e227M(s, f) : e227C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e227M : TinyExpressionP4Parser::e227C, K216, K216, K216, K217, K217, "TinyExpressionP4::MethodParameters", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6206:6261:body/seq", false, false, "node", true, K4); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e227M : TinyExpressionP4Parser::e227C, K461, K452, K236, K237, K355, "TinyExpressionP4::StringMethodDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5909:5919:body/1/tokenRef", false, true, "text", false, K314); } private static Match e227C(Session s, Frame f) { - return s.sequence(f, K434, K271); + return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K315,K316); } private static Match e227M(Session s, Frame f) { - return s.sequence(f, K434, K271); + return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K315,K316); } private static Match e228(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e228M(s, f) : e228C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e228M : TinyExpressionP4Parser::e228C, K435, K436, K225, K226, K226, "TinyExpressionP4::MethodParameters", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6206:6221:body/0/ruleRef", false, false, "node", false, K50); + if (s.bypassWrap) { Match r = f.matched ? e228M(s, f) : e228C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e228M : TinyExpressionP4Parser::e228C, K227, K227, K227, K228, K228, "TinyExpressionP4::StringMethodDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5936:5939:body/2/literal", false, true, "text", false, K437); } private static Match e228C(Session s, Frame f) { - return parseMethodParameter_25(s, f); + return s.literal(f, "(", true, false, K438); } private static Match e228M(Session s, Frame f) { - return parseMethodParameter_25(s, f); + return s.literal(f, "(", true, false, K438); } private static Match e229(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e229M(s, f) : e229C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e229M : TinyExpressionP4Parser::e229C, K216, K216, K216, K217, K217, "TinyExpressionP4::MethodParameters", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6230:6261:body/1/repeat", true, false, "node", true, K404); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e229M : TinyExpressionP4Parser::e229C, K227, K227, K227, K228, K228, "TinyExpressionP4::StringMethodDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5946:5978:body/3/optional", true, false, "node", false, K356); } private static Match e229C(Session s, Frame f) { - return s.repeat(f, TinyExpressionP4Parser::e230, 0, Integer.MAX_VALUE, null, Trivia.NONE); + return s.optional(f, TinyExpressionP4Parser::e230); } private static Match e229M(Session s, Frame f) { - return s.repeat(f, TinyExpressionP4Parser::e230, 0, Integer.MAX_VALUE, null, Trivia.NONE); + return s.optional(f, TinyExpressionP4Parser::e230); } private static Match e230(Session s, Frame f) { - f.reset = false; - if (s.bypassWrap) { Match r = f.matched ? e230M(s, f) : e230C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e230M : TinyExpressionP4Parser::e230C, K216, K216, K216, K217, K217, "TinyExpressionP4::MethodParameters", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6232:6251:body/1/0/seq", false, false, "node", false, K404); + if (s.bypassCapture) { Match r = f.matched ? e230M(s, f) : e230C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e230M : TinyExpressionP4Parser::e230C, K462, K454, K236, K237, K237, "TinyExpressionP4::StringMethodDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5948:5964:body/3/0/ruleRef", false, false, "node", false, K238); } private static Match e230C(Session s, Frame f) { - return s.sequence(f, K437, K271); + return parseMethodParameters_24(s, f); } private static Match e230M(Session s, Frame f) { - return s.sequence(f, K437, K271); + return parseMethodParameters_24(s, f); } private static Match e231(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e231M(s, f) : e231C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e231M : TinyExpressionP4Parser::e231C, K216, K216, K216, K217, K217, "TinyExpressionP4::MethodParameters", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6232:6235:body/1/0/0/literal", false, true, "text", false, K404); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e231M : TinyExpressionP4Parser::e231C, K227, K227, K227, K228, K228, "TinyExpressionP4::StringMethodDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5983:5986:body/4/literal", false, true, "text", false, K439); } private static Match e231C(Session s, Frame f) { - return s.literal(f, ",", true, false, K407); + return s.literal(f, ")", true, false, K440); } private static Match e231M(Session s, Frame f) { - return s.literal(f, ",", true, false, K407); + return s.literal(f, ")", true, false, K440); } private static Match e232(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e232M(s, f) : e232C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e232M : TinyExpressionP4Parser::e232C, K438, K436, K225, K226, K226, "TinyExpressionP4::MethodParameters", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6236:6251:body/1/0/1/ruleRef", false, false, "node", false, K50); + if (s.bypassWrap) { Match r = f.matched ? e232M(s, f) : e232C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e232M : TinyExpressionP4Parser::e232C, K227, K227, K227, K228, K228, "TinyExpressionP4::StringMethodDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5991:5994:body/5/literal", false, true, "text", false, K455); } private static Match e232C(Session s, Frame f) { - return parseMethodParameter_25(s, f); + return s.literal(f, "{", true, false, K456); } private static Match e232M(Session s, Frame f) { - return parseMethodParameter_25(s, f); + return s.literal(f, "{", true, false, K456); } private static Match e233(Session s, Frame f) { - f.reset = false; - if (s.bypassWrap) { Match r = f.matched ? e233M(s, f) : e233C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e233M : TinyExpressionP4Parser::e233C, K216, K216, K216, K217, K217, "TinyExpressionP4::MethodParameter", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6375:6426:body/seq", false, false, "text", false, K4); + if (s.bypassCapture) { Match r = f.matched ? e233M(s, f) : e233C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e233M : TinyExpressionP4Parser::e233C, K463, K258, K236, K237, K237, "TinyExpressionP4::StringMethodDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6001:6017:body/6/ruleRef", false, false, "node", false, K238); } private static Match e233C(Session s, Frame f) { - return s.sequence(f, K439, K251); + return parseStringExpression_89(s, f); } private static Match e233M(Session s, Frame f) { - return s.sequence(f, K439, K251); + return parseStringExpression_89(s, f); } private static Match e234(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e234M(s, f) : e234C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e234M : TinyExpressionP4Parser::e234C, K216, K216, K216, K217, K217, "TinyExpressionP4::MethodParameter", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6375:6378:body/0/literal", false, true, "text", false, K50); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e234M : TinyExpressionP4Parser::e234C, K227, K227, K227, K228, K228, "TinyExpressionP4::StringMethodDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6034:6037:body/7/literal", false, true, "text", false, K458); } private static Match e234C(Session s, Frame f) { - return s.literal(f, "$", true, false, K312); + return s.literal(f, "}", true, false, K459); } private static Match e234M(Session s, Frame f) { - return s.literal(f, "$", true, false, K312); + return s.literal(f, "}", true, false, K459); } private static Match e235(Session s, Frame f) { - return s.capture(f, f.matched ? TinyExpressionP4Parser::e235M : TinyExpressionP4Parser::e235C, K440, K441, K225, K226, K315, "TinyExpressionP4::MethodParameter", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6379:6389:body/1/tokenRef", false, true, "text", false, K276); + f.reset = false; + if (s.bypassWrap) { Match r = f.matched ? e235M(s, f) : e235C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e235M : TinyExpressionP4Parser::e235C, K227, K227, K227, K228, K228, "TinyExpressionP4::BooleanMethodDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6220:6367:body/seq", false, false, "node", true, K4); } private static Match e235C(Session s, Frame f) { - return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K277,K278); + return s.sequence(f, K464, K449); } private static Match e235M(Session s, Frame f) { - return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K277,K278); + return s.sequence(f, K464, K449); } private static Match e236(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e236M(s, f) : e236C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e236M : TinyExpressionP4Parser::e236C, K216, K216, K216, K217, K217, "TinyExpressionP4::MethodParameter", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6401:6426:body/2/optional", true, false, "text", false, K279); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e236M : TinyExpressionP4Parser::e236C, K227, K227, K227, K228, K228, "TinyExpressionP4::BooleanMethodDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6220:6237:body/0/ruleRef", false, false, "text", false, K4); } private static Match e236C(Session s, Frame f) { - return s.optional(f, TinyExpressionP4Parser::e237); + return parseBooleanReturnType_28(s, f); } private static Match e236M(Session s, Frame f) { - return s.optional(f, TinyExpressionP4Parser::e237); + return parseBooleanReturnType_28(s, f); } private static Match e237(Session s, Frame f) { - f.reset = false; - if (s.bypassWrap) { Match r = f.matched ? e237M(s, f) : e237C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e237M : TinyExpressionP4Parser::e237C, K216, K216, K216, K217, K217, "TinyExpressionP4::MethodParameter", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6403:6418:body/2/0/seq", false, false, "text", false, K279); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e237M : TinyExpressionP4Parser::e237C, K465, K452, K236, K237, K355, "TinyExpressionP4::BooleanMethodDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6238:6248:body/1/tokenRef", false, true, "text", false, K314); } private static Match e237C(Session s, Frame f) { - return s.sequence(f, K442, K271); + return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K315,K316); } private static Match e237M(Session s, Frame f) { - return s.sequence(f, K442, K271); + return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K315,K316); } private static Match e238(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e238M(s, f) : e238C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e238M : TinyExpressionP4Parser::e238C, K216, K216, K216, K217, K217, "TinyExpressionP4::MethodParameter", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6403:6407:body/2/0/0/literal", false, true, "text", false, K279); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e238M : TinyExpressionP4Parser::e238C, K227, K227, K227, K228, K228, "TinyExpressionP4::BooleanMethodDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6265:6268:body/2/literal", false, true, "text", false, K437); } private static Match e238C(Session s, Frame f) { - return s.literal(f, "as", true, false, K280); + return s.literal(f, "(", true, false, K438); } private static Match e238M(Session s, Frame f) { - return s.literal(f, "as", true, false, K280); + return s.literal(f, "(", true, false, K438); } private static Match e239(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e239M(s, f) : e239C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e239M : TinyExpressionP4Parser::e239C, K443, K444, K225, K226, K226, "TinyExpressionP4::MethodParameter", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6408:6418:body/2/0/1/ruleRef", false, false, "text", false, K227); + if (s.bypassWrap) { Match r = f.matched ? e239M(s, f) : e239C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e239M : TinyExpressionP4Parser::e239C, K227, K227, K227, K228, K228, "TinyExpressionP4::BooleanMethodDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6275:6307:body/3/optional", true, false, "node", false, K356); } private static Match e239C(Session s, Frame f) { - return parseReturnType_30(s, f); + return s.optional(f, TinyExpressionP4Parser::e240); } private static Match e239M(Session s, Frame f) { - return parseReturnType_30(s, f); + return s.optional(f, TinyExpressionP4Parser::e240); } private static Match e240(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e240M(s, f) : e240C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e240M : TinyExpressionP4Parser::e240C, K216, K216, K216, K217, K217, "TinyExpressionP4::NumberReturnType", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6453:6471:body/choice", false, false, "text", false, K4); + if (s.bypassCapture) { Match r = f.matched ? e240M(s, f) : e240C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e240M : TinyExpressionP4Parser::e240C, K466, K454, K236, K237, K237, "TinyExpressionP4::BooleanMethodDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6277:6293:body/3/0/ruleRef", false, false, "node", false, K238); } private static Match e240C(Session s, Frame f) { - return s.choice(f,K445,false,null,false); + return parseMethodParameters_24(s, f); } private static Match e240M(Session s, Frame f) { - return s.choice(f,K445,false,null,false); + return parseMethodParameters_24(s, f); } private static Match e241(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e241M(s, f) : e241C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e241M : TinyExpressionP4Parser::e241C, K216, K216, K216, K217, K217, "TinyExpressionP4::NumberReturnType", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6453:6461:body/0/literal", false, true, "text", false, K350); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e241M : TinyExpressionP4Parser::e241C, K227, K227, K227, K228, K228, "TinyExpressionP4::BooleanMethodDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6312:6315:body/4/literal", false, true, "text", false, K439); } private static Match e241C(Session s, Frame f) { - return s.literal(f, "number", true, false, K351); + return s.literal(f, ")", true, false, K440); } private static Match e241M(Session s, Frame f) { - return s.literal(f, "number", true, false, K351); + return s.literal(f, ")", true, false, K440); } private static Match e242(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e242M(s, f) : e242C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e242M : TinyExpressionP4Parser::e242C, K216, K216, K216, K217, K217, "TinyExpressionP4::NumberReturnType", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6464:6471:body/1/literal", false, true, "text", false, K366); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e242M : TinyExpressionP4Parser::e242C, K227, K227, K227, K228, K228, "TinyExpressionP4::BooleanMethodDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6320:6323:body/5/literal", false, true, "text", false, K455); } private static Match e242C(Session s, Frame f) { - return s.literal(f, "float", true, false, K367); + return s.literal(f, "{", true, false, K456); } private static Match e242M(Session s, Frame f) { - return s.literal(f, "float", true, false, K367); + return s.literal(f, "{", true, false, K456); } private static Match e243(Session s, Frame f) { - f.reset = false; - if (s.bypassWrap) { Match r = f.matched ? e243M(s, f) : e243C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e243M : TinyExpressionP4Parser::e243C, K216, K216, K216, K217, K217, "TinyExpressionP4::StringReturnType", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6497:6505:body/seq", false, false, "text", false, K4); + if (s.bypassCapture) { Match r = f.matched ? e243M(s, f) : e243C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e243M : TinyExpressionP4Parser::e243C, K467, K258, K236, K237, K237, "TinyExpressionP4::BooleanMethodDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6330:6347:body/6/ruleRef", false, false, "node", false, K238); } private static Match e243C(Session s, Frame f) { - return s.sequence(f, K446, K240); + return parseBooleanExpression_94(s, f); } private static Match e243M(Session s, Frame f) { - return s.sequence(f, K446, K240); + return parseBooleanExpression_94(s, f); } private static Match e244(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e244M(s, f) : e244C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e244M : TinyExpressionP4Parser::e244C, K216, K216, K216, K217, K217, "TinyExpressionP4::StringReturnType", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6497:6505:body/0/literal", false, true, "text", false, K52); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e244M : TinyExpressionP4Parser::e244C, K227, K227, K227, K228, K228, "TinyExpressionP4::BooleanMethodDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6364:6367:body/7/literal", false, true, "text", false, K458); } private static Match e244C(Session s, Frame f) { - return s.literal(f, "string", true, false, K354); + return s.literal(f, "}", true, false, K459); } private static Match e244M(Session s, Frame f) { - return s.literal(f, "string", true, false, K354); + return s.literal(f, "}", true, false, K459); } private static Match e245(Session s, Frame f) { f.reset = false; - if (s.bypassWrap) { Match r = f.matched ? e245M(s, f) : e245C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e245M : TinyExpressionP4Parser::e245C, K216, K216, K216, K217, K217, "TinyExpressionP4::BooleanReturnType", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6532:6541:body/seq", false, false, "text", false, K4); + if (s.bypassWrap) { Match r = f.matched ? e245M(s, f) : e245C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e245M : TinyExpressionP4Parser::e245C, K227, K227, K227, K228, K228, "TinyExpressionP4::ObjectMethodDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6548:6693:body/seq", false, false, "node", true, K4); } private static Match e245C(Session s, Frame f) { - return s.sequence(f, K447, K240); + return s.sequence(f, K468, K449); } private static Match e245M(Session s, Frame f) { - return s.sequence(f, K447, K240); + return s.sequence(f, K468, K449); } private static Match e246(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e246M(s, f) : e246C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e246M : TinyExpressionP4Parser::e246C, K216, K216, K216, K217, K217, "TinyExpressionP4::BooleanReturnType", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6532:6541:body/0/literal", false, true, "text", false, K53); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e246M : TinyExpressionP4Parser::e246C, K227, K227, K227, K228, K228, "TinyExpressionP4::ObjectMethodDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6548:6564:body/0/ruleRef", false, false, "text", false, K4); } private static Match e246C(Session s, Frame f) { - return s.literal(f, "boolean", true, false, K357); + return parseObjectReturnType_29(s, f); } private static Match e246M(Session s, Frame f) { - return s.literal(f, "boolean", true, false, K357); + return parseObjectReturnType_29(s, f); } private static Match e247(Session s, Frame f) { - f.reset = false; - if (s.bypassWrap) { Match r = f.matched ? e247M(s, f) : e247C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e247M : TinyExpressionP4Parser::e247C, K216, K216, K216, K217, K217, "TinyExpressionP4::ObjectReturnType", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6567:6575:body/seq", false, false, "text", false, K4); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e247M : TinyExpressionP4Parser::e247C, K469, K452, K236, K237, K355, "TinyExpressionP4::ObjectMethodDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6565:6575:body/1/tokenRef", false, true, "text", false, K314); } private static Match e247C(Session s, Frame f) { - return s.sequence(f, K448, K240); + return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K315,K316); } private static Match e247M(Session s, Frame f) { - return s.sequence(f, K448, K240); + return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K315,K316); } private static Match e248(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e248M(s, f) : e248C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e248M : TinyExpressionP4Parser::e248C, K216, K216, K216, K217, K217, "TinyExpressionP4::ObjectReturnType", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6567:6575:body/0/literal", false, true, "text", false, K54); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e248M : TinyExpressionP4Parser::e248C, K227, K227, K227, K228, K228, "TinyExpressionP4::ObjectMethodDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6592:6595:body/2/literal", false, true, "text", false, K437); } private static Match e248C(Session s, Frame f) { - return s.literal(f, "object", true, false, K360); + return s.literal(f, "(", true, false, K438); } private static Match e248M(Session s, Frame f) { - return s.literal(f, "object", true, false, K360); + return s.literal(f, "(", true, false, K438); } private static Match e249(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e249M(s, f) : e249C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e249M : TinyExpressionP4Parser::e249C, K216, K216, K216, K217, K217, "TinyExpressionP4::ReturnType", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6595:6669:body/choice", false, false, "text", false, K4); + if (s.bypassWrap) { Match r = f.matched ? e249M(s, f) : e249C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e249M : TinyExpressionP4Parser::e249C, K227, K227, K227, K228, K228, "TinyExpressionP4::ObjectMethodDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6602:6634:body/3/optional", true, false, "node", false, K356); } private static Match e249C(Session s, Frame f) { - return s.choice(f,K465,false,null,false,K464); + return s.optional(f, TinyExpressionP4Parser::e250); } private static Match e249M(Session s, Frame f) { - return s.choice(f,K465,false,null,false,K464); + return s.optional(f, TinyExpressionP4Parser::e250); } private static Match e250(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e250M(s, f) : e250C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e250M : TinyExpressionP4Parser::e250C, K216, K216, K216, K217, K217, "TinyExpressionP4::ReturnType", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6595:6611:body/0/ruleRef", false, false, "text", false, K4); + if (s.bypassCapture) { Match r = f.matched ? e250M(s, f) : e250C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e250M : TinyExpressionP4Parser::e250C, K470, K454, K236, K237, K237, "TinyExpressionP4::ObjectMethodDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6604:6620:body/3/0/ruleRef", false, false, "node", false, K238); } private static Match e250C(Session s, Frame f) { - return parseNumberReturnType_26(s, f); + return parseMethodParameters_24(s, f); } private static Match e250M(Session s, Frame f) { - return parseNumberReturnType_26(s, f); + return parseMethodParameters_24(s, f); } private static Match e251(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e251M(s, f) : e251C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e251M : TinyExpressionP4Parser::e251C, K216, K216, K216, K217, K217, "TinyExpressionP4::ReturnType", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6614:6630:body/1/ruleRef", false, false, "text", false, K4); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e251M : TinyExpressionP4Parser::e251C, K227, K227, K227, K228, K228, "TinyExpressionP4::ObjectMethodDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6639:6642:body/4/literal", false, true, "text", false, K439); } private static Match e251C(Session s, Frame f) { - return parseStringReturnType_27(s, f); + return s.literal(f, ")", true, false, K440); } private static Match e251M(Session s, Frame f) { - return parseStringReturnType_27(s, f); + return s.literal(f, ")", true, false, K440); } private static Match e252(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e252M(s, f) : e252C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e252M : TinyExpressionP4Parser::e252C, K216, K216, K216, K217, K217, "TinyExpressionP4::ReturnType", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6633:6650:body/2/ruleRef", false, false, "text", false, K4); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e252M : TinyExpressionP4Parser::e252C, K227, K227, K227, K228, K228, "TinyExpressionP4::ObjectMethodDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6647:6650:body/5/literal", false, true, "text", false, K455); } private static Match e252C(Session s, Frame f) { - return parseBooleanReturnType_28(s, f); + return s.literal(f, "{", true, false, K456); } private static Match e252M(Session s, Frame f) { - return parseBooleanReturnType_28(s, f); + return s.literal(f, "{", true, false, K456); } private static Match e253(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e253M(s, f) : e253C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e253M : TinyExpressionP4Parser::e253C, K216, K216, K216, K217, K217, "TinyExpressionP4::ReturnType", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6653:6669:body/3/ruleRef", false, false, "text", false, K4); + if (s.bypassCapture) { Match r = f.matched ? e253M(s, f) : e253C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e253M : TinyExpressionP4Parser::e253C, K471, K258, K236, K237, K237, "TinyExpressionP4::ObjectMethodDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6657:6673:body/6/ruleRef", false, false, "node", false, K238); } private static Match e253C(Session s, Frame f) { - return parseObjectReturnType_29(s, f); + return parseObjectExpression_105(s, f); } private static Match e253M(Session s, Frame f) { - return parseObjectReturnType_29(s, f); + return parseObjectExpression_105(s, f); } private static Match e254(Session s, Frame f) { - f.reset = false; - if (s.bypassWrap) { Match r = f.matched ? e254M(s, f) : e254C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e254M : TinyExpressionP4Parser::e254C, K216, K216, K216, K217, K217, "TinyExpressionP4::ExternalBooleanInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6995:7161:body/seq", false, false, "mixed", true, K4); + if (s.bypassWrap) { Match r = f.matched ? e254M(s, f) : e254C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e254M : TinyExpressionP4Parser::e254C, K227, K227, K227, K228, K228, "TinyExpressionP4::ObjectMethodDeclaration", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6690:6693:body/7/literal", false, true, "text", false, K458); } private static Match e254C(Session s, Frame f) { - return s.sequence(f, K466, K411); + return s.literal(f, "}", true, false, K459); } private static Match e254M(Session s, Frame f) { - return s.sequence(f, K466, K411); + return s.literal(f, "}", true, false, K459); } private static Match e255(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e255M(s, f) : e255C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e255M : TinyExpressionP4Parser::e255C, K216, K216, K216, K217, K217, "TinyExpressionP4::ExternalBooleanInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6995:7005:body/0/literal", false, true, "text", false, K467); + f.reset = false; + if (s.bypassWrap) { Match r = f.matched ? e255M(s, f) : e255C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e255M : TinyExpressionP4Parser::e255C, K227, K227, K227, K228, K228, "TinyExpressionP4::MethodParameters", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6770:6825:body/seq", false, false, "node", true, K4); } private static Match e255C(Session s, Frame f) { - return s.literal(f, "external", true, false, K468); + return s.sequence(f, K472, K309); } private static Match e255M(Session s, Frame f) { - return s.literal(f, "external", true, false, K468); + return s.sequence(f, K472, K309); } private static Match e256(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e256M(s, f) : e256C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e256M : TinyExpressionP4Parser::e256C, K216, K216, K216, K217, K217, "TinyExpressionP4::ExternalBooleanInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7006:7030:body/1/optional", true, false, "text", false, K469); + if (s.bypassCapture) { Match r = f.matched ? e256M(s, f) : e256C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e256M : TinyExpressionP4Parser::e256C, K473, K474, K236, K237, K237, "TinyExpressionP4::MethodParameters", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6770:6785:body/0/ruleRef", false, false, "node", false, K50); } private static Match e256C(Session s, Frame f) { - return s.optional(f, TinyExpressionP4Parser::e257); + return parseMethodParameter_25(s, f); } private static Match e256M(Session s, Frame f) { - return s.optional(f, TinyExpressionP4Parser::e257); + return parseMethodParameter_25(s, f); } private static Match e257(Session s, Frame f) { - f.reset = false; - if (s.bypassWrap) { Match r = f.matched ? e257M(s, f) : e257C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e257M : TinyExpressionP4Parser::e257C, K216, K216, K216, K217, K217, "TinyExpressionP4::ExternalBooleanInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7008:7028:body/1/0/seq", false, false, "text", false, K470); + if (s.bypassWrap) { Match r = f.matched ? e257M(s, f) : e257C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e257M : TinyExpressionP4Parser::e257C, K227, K227, K227, K228, K228, "TinyExpressionP4::MethodParameters", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6794:6825:body/1/repeat", true, false, "node", true, K442); } private static Match e257C(Session s, Frame f) { - return s.sequence(f, K471, K271); + return s.repeat(f, TinyExpressionP4Parser::e258, 0, Integer.MAX_VALUE, null, Trivia.NONE); } private static Match e257M(Session s, Frame f) { - return s.sequence(f, K471, K271); + return s.repeat(f, TinyExpressionP4Parser::e258, 0, Integer.MAX_VALUE, null, Trivia.NONE); } private static Match e258(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e258M(s, f) : e258C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e258M : TinyExpressionP4Parser::e258C, K216, K216, K216, K217, K217, "TinyExpressionP4::ExternalBooleanInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7008:7019:body/1/0/0/literal", false, true, "text", false, K469); + f.reset = false; + if (s.bypassWrap) { Match r = f.matched ? e258M(s, f) : e258C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e258M : TinyExpressionP4Parser::e258C, K227, K227, K227, K228, K228, "TinyExpressionP4::MethodParameters", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6796:6815:body/1/0/seq", false, false, "node", false, K442); } private static Match e258C(Session s, Frame f) { - return s.literal(f, "returning", true, false, K472); + return s.sequence(f, K475, K309); } private static Match e258M(Session s, Frame f) { - return s.literal(f, "returning", true, false, K472); + return s.sequence(f, K475, K309); } private static Match e259(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e259M(s, f) : e259C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e259M : TinyExpressionP4Parser::e259C, K216, K216, K216, K217, K217, "TinyExpressionP4::ExternalBooleanInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7020:7028:body/1/0/1/optional", true, false, "text", false, K279); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e259M : TinyExpressionP4Parser::e259C, K227, K227, K227, K228, K228, "TinyExpressionP4::MethodParameters", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6796:6799:body/1/0/0/literal", false, true, "text", false, K442); } private static Match e259C(Session s, Frame f) { - return s.optional(f, TinyExpressionP4Parser::e260); + return s.literal(f, ",", true, false, K445); } private static Match e259M(Session s, Frame f) { - return s.optional(f, TinyExpressionP4Parser::e260); + return s.literal(f, ",", true, false, K445); } private static Match e260(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e260M(s, f) : e260C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e260M : TinyExpressionP4Parser::e260C, K216, K216, K216, K217, K217, "TinyExpressionP4::ExternalBooleanInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7022:7026:body/1/0/1/0/literal", false, true, "text", false, K279); + if (s.bypassCapture) { Match r = f.matched ? e260M(s, f) : e260C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e260M : TinyExpressionP4Parser::e260C, K476, K474, K236, K237, K237, "TinyExpressionP4::MethodParameters", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6800:6815:body/1/0/1/ruleRef", false, false, "node", false, K50); } private static Match e260C(Session s, Frame f) { - return s.literal(f, "as", true, false, K280); + return parseMethodParameter_25(s, f); } private static Match e260M(Session s, Frame f) { - return s.literal(f, "as", true, false, K280); + return parseMethodParameter_25(s, f); } private static Match e261(Session s, Frame f) { + f.reset = false; if (s.bypassWrap) { Match r = f.matched ? e261M(s, f) : e261C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e261M : TinyExpressionP4Parser::e261C, K216, K216, K216, K217, K217, "TinyExpressionP4::ExternalBooleanInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7031:7048:body/2/ruleRef", false, false, "text", false, K4); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e261M : TinyExpressionP4Parser::e261C, K227, K227, K227, K228, K228, "TinyExpressionP4::MethodParameter", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6939:6990:body/seq", false, false, "text", false, K4); } private static Match e261C(Session s, Frame f) { - return parseBooleanReturnType_28(s, f); + return s.sequence(f, K477, K255); } private static Match e261M(Session s, Frame f) { - return parseBooleanReturnType_28(s, f); + return s.sequence(f, K477, K255); } private static Match e262(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e262M(s, f) : e262C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e262M : TinyExpressionP4Parser::e262C, K216, K216, K216, K217, K217, "TinyExpressionP4::ExternalBooleanInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7053:7060:body/3/optional", true, false, "text", false, K473); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e262M : TinyExpressionP4Parser::e262C, K227, K227, K227, K228, K228, "TinyExpressionP4::MethodParameter", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6939:6942:body/0/literal", false, true, "text", false, K50); } private static Match e262C(Session s, Frame f) { - return s.optional(f, TinyExpressionP4Parser::e263); + return s.literal(f, "$", true, false, K352); } private static Match e262M(Session s, Frame f) { - return s.optional(f, TinyExpressionP4Parser::e263); + return s.literal(f, "$", true, false, K352); } private static Match e263(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e263M(s, f) : e263C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e263M : TinyExpressionP4Parser::e263C, K216, K216, K216, K217, K217, "TinyExpressionP4::ExternalBooleanInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7055:7058:body/3/0/literal", false, true, "text", false, K473); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e263M : TinyExpressionP4Parser::e263C, K478, K479, K236, K237, K355, "TinyExpressionP4::MethodParameter", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6943:6953:body/1/tokenRef", false, true, "text", false, K314); } private static Match e263C(Session s, Frame f) { - return s.literal(f, ":", true, false, K474); + return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K315,K316); } private static Match e263M(Session s, Frame f) { - return s.literal(f, ":", true, false, K474); + return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K315,K316); } private static Match e264(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e264M(s, f) : e264C(s, f); s.progress(f); return s.tree ? s.project(r, true) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e264M : TinyExpressionP4Parser::e264C, K216, K216, K216, K217, K217, "TinyExpressionP4::ExternalBooleanInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7065:7129:body/4/group", false, false, "mixed", false, K269); + if (s.bypassWrap) { Match r = f.matched ? e264M(s, f) : e264C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e264M : TinyExpressionP4Parser::e264C, K227, K227, K227, K228, K228, "TinyExpressionP4::MethodParameter", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6965:6990:body/2/optional", true, false, "text", false, K317); } private static Match e264C(Session s, Frame f) { - return e265(s, f); + return s.optional(f, TinyExpressionP4Parser::e265); } private static Match e264M(Session s, Frame f) { - return e265(s, f); + return s.optional(f, TinyExpressionP4Parser::e265); } private static Match e265(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e265M(s, f) : e265C(s, f); s.progress(f); return s.tree ? s.project(r, true) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e265M : TinyExpressionP4Parser::e265C, K216, K216, K216, K217, K217, "TinyExpressionP4::ExternalBooleanInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7067:7121:body/4/0/choice", false, false, "mixed", false, K269); + f.reset = false; + if (s.bypassWrap) { Match r = f.matched ? e265M(s, f) : e265C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e265M : TinyExpressionP4Parser::e265C, K227, K227, K227, K228, K228, "TinyExpressionP4::MethodParameter", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6967:6982:body/2/0/seq", false, false, "text", false, K317); } private static Match e265C(Session s, Frame f) { - return s.choice(f,K475,false,null,false); + return s.sequence(f, K480, K309); } private static Match e265M(Session s, Frame f) { - return s.choice(f,K475,false,null,false); + return s.sequence(f, K480, K309); } private static Match e266(Session s, Frame f) { - f.reset = false; - if (s.bypassWrap) { Match r = f.matched ? e266M(s, f) : e266C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e266M : TinyExpressionP4Parser::e266C, K216, K216, K216, K217, K217, "TinyExpressionP4::ExternalBooleanInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7067:7102:body/4/0/0/seq", false, false, "node", false, K269); + if (s.bypassWrap) { Match r = f.matched ? e266M(s, f) : e266C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e266M : TinyExpressionP4Parser::e266C, K227, K227, K227, K228, K228, "TinyExpressionP4::MethodParameter", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6967:6971:body/2/0/0/literal", false, true, "text", false, K317); } private static Match e266C(Session s, Frame f) { - return s.sequence(f, K476, K251); + return s.literal(f, "as", true, false, K318); } private static Match e266M(Session s, Frame f) { - return s.sequence(f, K476, K251); + return s.literal(f, "as", true, false, K318); } private static Match e267(Session s, Frame f) { if (s.bypassCapture) { Match r = f.matched ? e267M(s, f) : e267C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e267M : TinyExpressionP4Parser::e267C, K477, K268, K225, K226, K226, "TinyExpressionP4::ExternalBooleanInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7067:7076:body/4/0/0/0/ruleRef", false, false, "node", false, K227); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e267M : TinyExpressionP4Parser::e267C, K481, K482, K236, K237, K237, "TinyExpressionP4::MethodParameter", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6972:6982:body/2/0/1/ruleRef", false, false, "text", false, K238); } private static Match e267C(Session s, Frame f) { - return parseClassName_3(s, f); + return parseReturnType_30(s, f); } private static Match e267M(Session s, Frame f) { - return parseClassName_3(s, f); + return parseReturnType_30(s, f); } private static Match e268(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e268M(s, f) : e268C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e268M : TinyExpressionP4Parser::e268C, K216, K216, K216, K217, K217, "TinyExpressionP4::ExternalBooleanInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7088:7091:body/4/0/0/1/literal", false, true, "text", false, K269); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e268M : TinyExpressionP4Parser::e268C, K227, K227, K227, K228, K228, "TinyExpressionP4::NumberReturnType", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7017:7035:body/choice", false, false, "text", false, K4); } private static Match e268C(Session s, Frame f) { - return s.literal(f, "#", true, false, K273); + return s.choice(f,K483,false,null,false); } private static Match e268M(Session s, Frame f) { - return s.literal(f, "#", true, false, K273); + return s.choice(f,K483,false,null,false); } private static Match e269(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e269M(s, f) : e269C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e269M : TinyExpressionP4Parser::e269C, K478, K479, K225, K226, K226, "TinyExpressionP4::ExternalBooleanInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7092:7102:body/4/0/0/2/tokenRef", false, true, "text", false, K276); + if (s.bypassWrap) { Match r = f.matched ? e269M(s, f) : e269C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e269M : TinyExpressionP4Parser::e269C, K227, K227, K227, K228, K228, "TinyExpressionP4::NumberReturnType", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7017:7025:body/0/literal", false, true, "text", false, K390); } private static Match e269C(Session s, Frame f) { - return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K277,K278); + return s.literal(f, "number", true, false, K391); } private static Match e269M(Session s, Frame f) { - return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K277,K278); + return s.literal(f, "number", true, false, K391); } private static Match e270(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e270M(s, f) : e270C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e270M : TinyExpressionP4Parser::e270C, K480, K479, K225, K226, K226, "TinyExpressionP4::ExternalBooleanInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7111:7121:body/4/0/1/tokenRef", false, true, "textAlternative", false, K276); + if (s.bypassWrap) { Match r = f.matched ? e270M(s, f) : e270C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e270M : TinyExpressionP4Parser::e270C, K227, K227, K227, K228, K228, "TinyExpressionP4::NumberReturnType", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7028:7035:body/1/literal", false, true, "text", false, K406); } private static Match e270C(Session s, Frame f) { - return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K277,K278); + return s.literal(f, "float", true, false, K407); } private static Match e270M(Session s, Frame f) { - return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K277,K278); + return s.literal(f, "float", true, false, K407); } private static Match e271(Session s, Frame f) { + f.reset = false; if (s.bypassWrap) { Match r = f.matched ? e271M(s, f) : e271C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e271M : TinyExpressionP4Parser::e271C, K216, K216, K216, K217, K217, "TinyExpressionP4::ExternalBooleanInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7134:7137:body/5/literal", false, true, "text", false, K399); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e271M : TinyExpressionP4Parser::e271C, K227, K227, K227, K228, K228, "TinyExpressionP4::StringReturnType", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7061:7069:body/seq", false, false, "text", false, K4); } private static Match e271C(Session s, Frame f) { - return s.literal(f, "(", true, false, K400); + return s.sequence(f, K484, K280); } private static Match e271M(Session s, Frame f) { - return s.literal(f, "(", true, false, K400); + return s.sequence(f, K484, K280); } private static Match e272(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e272M(s, f) : e272C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e272M : TinyExpressionP4Parser::e272C, K216, K216, K216, K217, K217, "TinyExpressionP4::ExternalBooleanInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7138:7157:body/6/optional", true, false, "node", false, K316); + if (s.bypassWrap) { Match r = f.matched ? e272M(s, f) : e272C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e272M : TinyExpressionP4Parser::e272C, K227, K227, K227, K228, K228, "TinyExpressionP4::StringReturnType", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7061:7069:body/0/literal", false, true, "text", false, K52); } private static Match e272C(Session s, Frame f) { - return s.optional(f, TinyExpressionP4Parser::e273); + return s.literal(f, "string", true, false, K394); } private static Match e272M(Session s, Frame f) { - return s.optional(f, TinyExpressionP4Parser::e273); + return s.literal(f, "string", true, false, K394); } private static Match e273(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e273M(s, f) : e273C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e273M : TinyExpressionP4Parser::e273C, K481, K482, K225, K226, K226, "TinyExpressionP4::ExternalBooleanInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7140:7149:body/6/0/ruleRef", false, false, "node", false, K227); + f.reset = false; + if (s.bypassWrap) { Match r = f.matched ? e273M(s, f) : e273C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e273M : TinyExpressionP4Parser::e273C, K227, K227, K227, K228, K228, "TinyExpressionP4::BooleanReturnType", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7096:7105:body/seq", false, false, "text", false, K4); } private static Match e273C(Session s, Frame f) { - return parseArguments_39(s, f); + return s.sequence(f, K485, K280); } private static Match e273M(Session s, Frame f) { - return parseArguments_39(s, f); + return s.sequence(f, K485, K280); } private static Match e274(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e274M(s, f) : e274C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e274M : TinyExpressionP4Parser::e274C, K216, K216, K216, K217, K217, "TinyExpressionP4::ExternalBooleanInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7158:7161:body/7/literal", false, true, "text", false, K401); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e274M : TinyExpressionP4Parser::e274C, K227, K227, K227, K228, K228, "TinyExpressionP4::BooleanReturnType", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7096:7105:body/0/literal", false, true, "text", false, K53); } private static Match e274C(Session s, Frame f) { - return s.literal(f, ")", true, false, K402); + return s.literal(f, "boolean", true, false, K397); } private static Match e274M(Session s, Frame f) { - return s.literal(f, ")", true, false, K402); + return s.literal(f, "boolean", true, false, K397); } private static Match e275(Session s, Frame f) { f.reset = false; - if (s.bypassWrap) { Match r = f.matched ? e275M(s, f) : e275C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e275M : TinyExpressionP4Parser::e275C, K216, K216, K216, K217, K217, "TinyExpressionP4::ExternalNumberInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7273:7452:body/seq", false, false, "mixed", true, K4); + if (s.bypassWrap) { Match r = f.matched ? e275M(s, f) : e275C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e275M : TinyExpressionP4Parser::e275C, K227, K227, K227, K228, K228, "TinyExpressionP4::ObjectReturnType", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7131:7139:body/seq", false, false, "text", false, K4); } private static Match e275C(Session s, Frame f) { - return s.sequence(f, K483, K263); + return s.sequence(f, K486, K280); } private static Match e275M(Session s, Frame f) { - return s.sequence(f, K483, K263); + return s.sequence(f, K486, K280); } private static Match e276(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e276M(s, f) : e276C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e276M : TinyExpressionP4Parser::e276C, K216, K216, K216, K217, K217, "TinyExpressionP4::ExternalNumberInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7273:7283:body/0/literal", false, true, "text", false, K467); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e276M : TinyExpressionP4Parser::e276C, K227, K227, K227, K228, K228, "TinyExpressionP4::ObjectReturnType", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7131:7139:body/0/literal", false, true, "text", false, K54); } private static Match e276C(Session s, Frame f) { - return s.literal(f, "external", true, false, K468); + return s.literal(f, "object", true, false, K400); } private static Match e276M(Session s, Frame f) { - return s.literal(f, "external", true, false, K468); + return s.literal(f, "object", true, false, K400); } private static Match e277(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e277M(s, f) : e277C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e277M : TinyExpressionP4Parser::e277C, K216, K216, K216, K217, K217, "TinyExpressionP4::ExternalNumberInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7288:7351:body/1/group", false, false, "text", false, K473); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e277M : TinyExpressionP4Parser::e277C, K227, K227, K227, K228, K228, "TinyExpressionP4::ReturnType", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7159:7233:body/choice", false, false, "text", false, K4); } private static Match e277C(Session s, Frame f) { - return e278(s, f); + return s.choice(f,K503,false,null,false,K502); } private static Match e277M(Session s, Frame f) { - return e278(s, f); + return s.choice(f,K503,false,null,false,K502); } private static Match e278(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e278M(s, f) : e278C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e278M : TinyExpressionP4Parser::e278C, K216, K216, K216, K217, K217, "TinyExpressionP4::ExternalNumberInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7290:7349:body/1/0/choice", false, false, "text", false, K473); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e278M : TinyExpressionP4Parser::e278C, K227, K227, K227, K228, K228, "TinyExpressionP4::ReturnType", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7159:7175:body/0/ruleRef", false, false, "text", false, K4); } private static Match e278C(Session s, Frame f) { - return s.choice(f,K484,false,null,false); + return parseNumberReturnType_26(s, f); } private static Match e278M(Session s, Frame f) { - return s.choice(f,K484,false,null,false); + return parseNumberReturnType_26(s, f); } private static Match e279(Session s, Frame f) { - f.reset = false; if (s.bypassWrap) { Match r = f.matched ? e279M(s, f) : e279C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e279M : TinyExpressionP4Parser::e279C, K216, K216, K216, K217, K217, "TinyExpressionP4::ExternalNumberInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7290:7339:body/1/0/0/seq", false, false, "text", false, K485); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e279M : TinyExpressionP4Parser::e279C, K227, K227, K227, K228, K228, "TinyExpressionP4::ReturnType", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7178:7194:body/1/ruleRef", false, false, "text", false, K4); } private static Match e279C(Session s, Frame f) { - return s.sequence(f, K486, K251); + return parseStringReturnType_27(s, f); } private static Match e279M(Session s, Frame f) { - return s.sequence(f, K486, K251); + return parseStringReturnType_27(s, f); } private static Match e280(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e280M(s, f) : e280C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e280M : TinyExpressionP4Parser::e280C, K216, K216, K216, K217, K217, "TinyExpressionP4::ExternalNumberInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7290:7314:body/1/0/0/0/optional", true, false, "text", false, K469); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e280M : TinyExpressionP4Parser::e280C, K227, K227, K227, K228, K228, "TinyExpressionP4::ReturnType", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7197:7214:body/2/ruleRef", false, false, "text", false, K4); } private static Match e280C(Session s, Frame f) { - return s.optional(f, TinyExpressionP4Parser::e281); + return parseBooleanReturnType_28(s, f); } private static Match e280M(Session s, Frame f) { - return s.optional(f, TinyExpressionP4Parser::e281); + return parseBooleanReturnType_28(s, f); } private static Match e281(Session s, Frame f) { - f.reset = false; if (s.bypassWrap) { Match r = f.matched ? e281M(s, f) : e281C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e281M : TinyExpressionP4Parser::e281C, K216, K216, K216, K217, K217, "TinyExpressionP4::ExternalNumberInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7292:7312:body/1/0/0/0/0/seq", false, false, "text", false, K470); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e281M : TinyExpressionP4Parser::e281C, K227, K227, K227, K228, K228, "TinyExpressionP4::ReturnType", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7217:7233:body/3/ruleRef", false, false, "text", false, K4); } private static Match e281C(Session s, Frame f) { - return s.sequence(f, K487, K271); + return parseObjectReturnType_29(s, f); } private static Match e281M(Session s, Frame f) { - return s.sequence(f, K487, K271); + return parseObjectReturnType_29(s, f); } private static Match e282(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e282M(s, f) : e282C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e282M : TinyExpressionP4Parser::e282C, K216, K216, K216, K217, K217, "TinyExpressionP4::ExternalNumberInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7292:7303:body/1/0/0/0/0/0/literal", false, true, "text", false, K469); + f.reset = false; + if (s.bypassWrap) { Match r = f.matched ? e282M(s, f) : e282C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e282M : TinyExpressionP4Parser::e282C, K227, K227, K227, K228, K228, "TinyExpressionP4::ExternalBooleanInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7559:7725:body/seq", false, false, "mixed", true, K4); } private static Match e282C(Session s, Frame f) { - return s.literal(f, "returning", true, false, K472); + return s.sequence(f, K504, K449); } private static Match e282M(Session s, Frame f) { - return s.literal(f, "returning", true, false, K472); + return s.sequence(f, K504, K449); } private static Match e283(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e283M(s, f) : e283C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e283M : TinyExpressionP4Parser::e283C, K216, K216, K216, K217, K217, "TinyExpressionP4::ExternalNumberInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7304:7312:body/1/0/0/0/0/1/optional", true, false, "text", false, K279); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e283M : TinyExpressionP4Parser::e283C, K227, K227, K227, K228, K228, "TinyExpressionP4::ExternalBooleanInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7559:7569:body/0/literal", false, true, "text", false, K505); } private static Match e283C(Session s, Frame f) { - return s.optional(f, TinyExpressionP4Parser::e284); + return s.literal(f, "external", true, false, K506); } private static Match e283M(Session s, Frame f) { - return s.optional(f, TinyExpressionP4Parser::e284); + return s.literal(f, "external", true, false, K506); } private static Match e284(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e284M(s, f) : e284C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e284M : TinyExpressionP4Parser::e284C, K216, K216, K216, K217, K217, "TinyExpressionP4::ExternalNumberInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7306:7310:body/1/0/0/0/0/1/0/literal", false, true, "text", false, K279); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e284M : TinyExpressionP4Parser::e284C, K227, K227, K227, K228, K228, "TinyExpressionP4::ExternalBooleanInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7570:7594:body/1/optional", true, false, "text", false, K507); } private static Match e284C(Session s, Frame f) { - return s.literal(f, "as", true, false, K280); + return s.optional(f, TinyExpressionP4Parser::e285); } private static Match e284M(Session s, Frame f) { - return s.literal(f, "as", true, false, K280); + return s.optional(f, TinyExpressionP4Parser::e285); } private static Match e285(Session s, Frame f) { + f.reset = false; if (s.bypassWrap) { Match r = f.matched ? e285M(s, f) : e285C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e285M : TinyExpressionP4Parser::e285C, K216, K216, K216, K217, K217, "TinyExpressionP4::ExternalNumberInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7315:7331:body/1/0/0/1/ruleRef", false, false, "text", false, K4); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e285M : TinyExpressionP4Parser::e285C, K227, K227, K227, K228, K228, "TinyExpressionP4::ExternalBooleanInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7572:7592:body/1/0/seq", false, false, "text", false, K508); } private static Match e285C(Session s, Frame f) { - return parseNumberReturnType_26(s, f); + return s.sequence(f, K509, K309); } private static Match e285M(Session s, Frame f) { - return parseNumberReturnType_26(s, f); + return s.sequence(f, K509, K309); } private static Match e286(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e286M(s, f) : e286C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e286M : TinyExpressionP4Parser::e286C, K216, K216, K216, K217, K217, "TinyExpressionP4::ExternalNumberInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7332:7339:body/1/0/0/2/optional", true, false, "text", false, K473); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e286M : TinyExpressionP4Parser::e286C, K227, K227, K227, K228, K228, "TinyExpressionP4::ExternalBooleanInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7572:7583:body/1/0/0/literal", false, true, "text", false, K507); } private static Match e286C(Session s, Frame f) { - return s.optional(f, TinyExpressionP4Parser::e287); + return s.literal(f, "returning", true, false, K510); } private static Match e286M(Session s, Frame f) { - return s.optional(f, TinyExpressionP4Parser::e287); + return s.literal(f, "returning", true, false, K510); } private static Match e287(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e287M(s, f) : e287C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e287M : TinyExpressionP4Parser::e287C, K216, K216, K216, K217, K217, "TinyExpressionP4::ExternalNumberInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7334:7337:body/1/0/0/2/0/literal", false, true, "text", false, K473); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e287M : TinyExpressionP4Parser::e287C, K227, K227, K227, K228, K228, "TinyExpressionP4::ExternalBooleanInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7584:7592:body/1/0/1/optional", true, false, "text", false, K317); } private static Match e287C(Session s, Frame f) { - return s.literal(f, ":", true, false, K474); + return s.optional(f, TinyExpressionP4Parser::e288); } private static Match e287M(Session s, Frame f) { - return s.literal(f, ":", true, false, K474); + return s.optional(f, TinyExpressionP4Parser::e288); } private static Match e288(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e288M(s, f) : e288C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e288M : TinyExpressionP4Parser::e288C, K216, K216, K216, K217, K217, "TinyExpressionP4::ExternalNumberInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7342:7349:body/1/0/1/optional", true, false, "text", false, K473); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e288M : TinyExpressionP4Parser::e288C, K227, K227, K227, K228, K228, "TinyExpressionP4::ExternalBooleanInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7586:7590:body/1/0/1/0/literal", false, true, "text", false, K317); } private static Match e288C(Session s, Frame f) { - return s.optional(f, TinyExpressionP4Parser::e289); + return s.literal(f, "as", true, false, K318); } private static Match e288M(Session s, Frame f) { - return s.optional(f, TinyExpressionP4Parser::e289); + return s.literal(f, "as", true, false, K318); } private static Match e289(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e289M(s, f) : e289C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e289M : TinyExpressionP4Parser::e289C, K216, K216, K216, K217, K217, "TinyExpressionP4::ExternalNumberInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7344:7347:body/1/0/1/0/literal", false, true, "text", false, K473); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e289M : TinyExpressionP4Parser::e289C, K227, K227, K227, K228, K228, "TinyExpressionP4::ExternalBooleanInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7595:7612:body/2/ruleRef", false, false, "text", false, K4); } private static Match e289C(Session s, Frame f) { - return s.literal(f, ":", true, false, K474); + return parseBooleanReturnType_28(s, f); } private static Match e289M(Session s, Frame f) { - return s.literal(f, ":", true, false, K474); + return parseBooleanReturnType_28(s, f); } private static Match e290(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e290M(s, f) : e290C(s, f); s.progress(f); return s.tree ? s.project(r, true) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e290M : TinyExpressionP4Parser::e290C, K216, K216, K216, K217, K217, "TinyExpressionP4::ExternalNumberInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7356:7420:body/2/group", false, false, "mixed", false, K269); + if (s.bypassWrap) { Match r = f.matched ? e290M(s, f) : e290C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e290M : TinyExpressionP4Parser::e290C, K227, K227, K227, K228, K228, "TinyExpressionP4::ExternalBooleanInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7617:7624:body/3/optional", true, false, "text", false, K511); } private static Match e290C(Session s, Frame f) { - return e291(s, f); + return s.optional(f, TinyExpressionP4Parser::e291); } private static Match e290M(Session s, Frame f) { - return e291(s, f); + return s.optional(f, TinyExpressionP4Parser::e291); } private static Match e291(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e291M(s, f) : e291C(s, f); s.progress(f); return s.tree ? s.project(r, true) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e291M : TinyExpressionP4Parser::e291C, K216, K216, K216, K217, K217, "TinyExpressionP4::ExternalNumberInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7358:7412:body/2/0/choice", false, false, "mixed", false, K269); + if (s.bypassWrap) { Match r = f.matched ? e291M(s, f) : e291C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e291M : TinyExpressionP4Parser::e291C, K227, K227, K227, K228, K228, "TinyExpressionP4::ExternalBooleanInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7619:7622:body/3/0/literal", false, true, "text", false, K511); } private static Match e291C(Session s, Frame f) { - return s.choice(f,K488,false,null,false); + return s.literal(f, ":", true, false, K512); } private static Match e291M(Session s, Frame f) { - return s.choice(f,K488,false,null,false); + return s.literal(f, ":", true, false, K512); } private static Match e292(Session s, Frame f) { - f.reset = false; - if (s.bypassWrap) { Match r = f.matched ? e292M(s, f) : e292C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e292M : TinyExpressionP4Parser::e292C, K216, K216, K216, K217, K217, "TinyExpressionP4::ExternalNumberInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7358:7393:body/2/0/0/seq", false, false, "node", false, K269); + if (s.bypassWrap) { Match r = f.matched ? e292M(s, f) : e292C(s, f); s.progress(f); return s.tree ? s.project(r, true) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e292M : TinyExpressionP4Parser::e292C, K227, K227, K227, K228, K228, "TinyExpressionP4::ExternalBooleanInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7629:7693:body/4/group", false, false, "mixed", false, K307); } private static Match e292C(Session s, Frame f) { - return s.sequence(f, K489, K251); + return e293(s, f); } private static Match e292M(Session s, Frame f) { - return s.sequence(f, K489, K251); + return e293(s, f); } private static Match e293(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e293M(s, f) : e293C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e293M : TinyExpressionP4Parser::e293C, K490, K268, K225, K226, K226, "TinyExpressionP4::ExternalNumberInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7358:7367:body/2/0/0/0/ruleRef", false, false, "node", false, K227); + if (s.bypassWrap) { Match r = f.matched ? e293M(s, f) : e293C(s, f); s.progress(f); return s.tree ? s.project(r, true) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e293M : TinyExpressionP4Parser::e293C, K227, K227, K227, K228, K228, "TinyExpressionP4::ExternalBooleanInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7631:7685:body/4/0/choice", false, false, "mixed", false, K307); } private static Match e293C(Session s, Frame f) { - return parseClassName_3(s, f); + return s.choice(f,K513,false,null,false); } private static Match e293M(Session s, Frame f) { - return parseClassName_3(s, f); + return s.choice(f,K513,false,null,false); } private static Match e294(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e294M(s, f) : e294C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e294M : TinyExpressionP4Parser::e294C, K216, K216, K216, K217, K217, "TinyExpressionP4::ExternalNumberInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7379:7382:body/2/0/0/1/literal", false, true, "text", false, K269); + f.reset = false; + if (s.bypassWrap) { Match r = f.matched ? e294M(s, f) : e294C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e294M : TinyExpressionP4Parser::e294C, K227, K227, K227, K228, K228, "TinyExpressionP4::ExternalBooleanInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7631:7666:body/4/0/0/seq", false, false, "node", false, K307); } private static Match e294C(Session s, Frame f) { - return s.literal(f, "#", true, false, K273); + return s.sequence(f, K514, K255); } private static Match e294M(Session s, Frame f) { - return s.literal(f, "#", true, false, K273); + return s.sequence(f, K514, K255); } private static Match e295(Session s, Frame f) { if (s.bypassCapture) { Match r = f.matched ? e295M(s, f) : e295C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e295M : TinyExpressionP4Parser::e295C, K491, K479, K225, K226, K226, "TinyExpressionP4::ExternalNumberInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7383:7393:body/2/0/0/2/tokenRef", false, true, "text", false, K276); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e295M : TinyExpressionP4Parser::e295C, K515, K306, K236, K237, K237, "TinyExpressionP4::ExternalBooleanInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7631:7640:body/4/0/0/0/ruleRef", false, false, "node", false, K238); } private static Match e295C(Session s, Frame f) { - return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K277,K278); + return parseClassName_3(s, f); } private static Match e295M(Session s, Frame f) { - return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K277,K278); + return parseClassName_3(s, f); } private static Match e296(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e296M(s, f) : e296C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e296M : TinyExpressionP4Parser::e296C, K492, K479, K225, K226, K226, "TinyExpressionP4::ExternalNumberInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7402:7412:body/2/0/1/tokenRef", false, true, "textAlternative", false, K276); + if (s.bypassWrap) { Match r = f.matched ? e296M(s, f) : e296C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e296M : TinyExpressionP4Parser::e296C, K227, K227, K227, K228, K228, "TinyExpressionP4::ExternalBooleanInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7652:7655:body/4/0/0/1/literal", false, true, "text", false, K307); } private static Match e296C(Session s, Frame f) { - return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K277,K278); + return s.literal(f, "#", true, false, K311); } private static Match e296M(Session s, Frame f) { - return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K277,K278); + return s.literal(f, "#", true, false, K311); } private static Match e297(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e297M(s, f) : e297C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e297M : TinyExpressionP4Parser::e297C, K216, K216, K216, K217, K217, "TinyExpressionP4::ExternalNumberInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7425:7428:body/3/literal", false, true, "text", false, K399); + if (s.bypassCapture) { Match r = f.matched ? e297M(s, f) : e297C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e297M : TinyExpressionP4Parser::e297C, K516, K517, K236, K237, K237, "TinyExpressionP4::ExternalBooleanInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7656:7666:body/4/0/0/2/tokenRef", false, true, "text", false, K314); } private static Match e297C(Session s, Frame f) { - return s.literal(f, "(", true, false, K400); + return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K315,K316); } private static Match e297M(Session s, Frame f) { - return s.literal(f, "(", true, false, K400); + return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K315,K316); } private static Match e298(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e298M(s, f) : e298C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e298M : TinyExpressionP4Parser::e298C, K216, K216, K216, K217, K217, "TinyExpressionP4::ExternalNumberInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7429:7448:body/4/optional", true, false, "node", false, K316); + if (s.bypassCapture) { Match r = f.matched ? e298M(s, f) : e298C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e298M : TinyExpressionP4Parser::e298C, K518, K517, K236, K237, K237, "TinyExpressionP4::ExternalBooleanInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7675:7685:body/4/0/1/tokenRef", false, true, "textAlternative", false, K314); } private static Match e298C(Session s, Frame f) { - return s.optional(f, TinyExpressionP4Parser::e299); + return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K315,K316); } private static Match e298M(Session s, Frame f) { - return s.optional(f, TinyExpressionP4Parser::e299); + return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K315,K316); } private static Match e299(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e299M(s, f) : e299C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e299M : TinyExpressionP4Parser::e299C, K493, K482, K225, K226, K226, "TinyExpressionP4::ExternalNumberInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7431:7440:body/4/0/ruleRef", false, false, "node", false, K227); + if (s.bypassWrap) { Match r = f.matched ? e299M(s, f) : e299C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e299M : TinyExpressionP4Parser::e299C, K227, K227, K227, K228, K228, "TinyExpressionP4::ExternalBooleanInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7698:7701:body/5/literal", false, true, "text", false, K437); } private static Match e299C(Session s, Frame f) { - return parseArguments_39(s, f); + return s.literal(f, "(", true, false, K438); } private static Match e299M(Session s, Frame f) { - return parseArguments_39(s, f); + return s.literal(f, "(", true, false, K438); } private static Match e300(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e300M(s, f) : e300C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e300M : TinyExpressionP4Parser::e300C, K216, K216, K216, K217, K217, "TinyExpressionP4::ExternalNumberInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7449:7452:body/5/literal", false, true, "text", false, K401); + if (s.bypassWrap) { Match r = f.matched ? e300M(s, f) : e300C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e300M : TinyExpressionP4Parser::e300C, K227, K227, K227, K228, K228, "TinyExpressionP4::ExternalBooleanInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7702:7721:body/6/optional", true, false, "node", false, K356); } private static Match e300C(Session s, Frame f) { - return s.literal(f, ")", true, false, K402); + return s.optional(f, TinyExpressionP4Parser::e301); } private static Match e300M(Session s, Frame f) { - return s.literal(f, ")", true, false, K402); + return s.optional(f, TinyExpressionP4Parser::e301); } private static Match e301(Session s, Frame f) { - f.reset = false; - if (s.bypassWrap) { Match r = f.matched ? e301M(s, f) : e301C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e301M : TinyExpressionP4Parser::e301C, K216, K216, K216, K217, K217, "TinyExpressionP4::ExternalStringInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7564:7729:body/seq", false, false, "mixed", true, K4); + if (s.bypassCapture) { Match r = f.matched ? e301M(s, f) : e301C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e301M : TinyExpressionP4Parser::e301C, K519, K520, K236, K237, K237, "TinyExpressionP4::ExternalBooleanInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7704:7713:body/6/0/ruleRef", false, false, "node", false, K238); } private static Match e301C(Session s, Frame f) { - return s.sequence(f, K494, K411); + return parseArguments_39(s, f); } private static Match e301M(Session s, Frame f) { - return s.sequence(f, K494, K411); + return parseArguments_39(s, f); } private static Match e302(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e302M(s, f) : e302C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e302M : TinyExpressionP4Parser::e302C, K216, K216, K216, K217, K217, "TinyExpressionP4::ExternalStringInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7564:7574:body/0/literal", false, true, "text", false, K467); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e302M : TinyExpressionP4Parser::e302C, K227, K227, K227, K228, K228, "TinyExpressionP4::ExternalBooleanInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7722:7725:body/7/literal", false, true, "text", false, K439); } private static Match e302C(Session s, Frame f) { - return s.literal(f, "external", true, false, K468); + return s.literal(f, ")", true, false, K440); } private static Match e302M(Session s, Frame f) { - return s.literal(f, "external", true, false, K468); + return s.literal(f, ")", true, false, K440); } private static Match e303(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e303M(s, f) : e303C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e303M : TinyExpressionP4Parser::e303C, K216, K216, K216, K217, K217, "TinyExpressionP4::ExternalStringInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7575:7599:body/1/optional", true, false, "text", false, K469); + f.reset = false; + if (s.bypassWrap) { Match r = f.matched ? e303M(s, f) : e303C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e303M : TinyExpressionP4Parser::e303C, K227, K227, K227, K228, K228, "TinyExpressionP4::ExternalNumberInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7837:8016:body/seq", false, false, "mixed", true, K4); } private static Match e303C(Session s, Frame f) { - return s.optional(f, TinyExpressionP4Parser::e304); + return s.sequence(f, K521, K301); } private static Match e303M(Session s, Frame f) { - return s.optional(f, TinyExpressionP4Parser::e304); + return s.sequence(f, K521, K301); } private static Match e304(Session s, Frame f) { - f.reset = false; if (s.bypassWrap) { Match r = f.matched ? e304M(s, f) : e304C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e304M : TinyExpressionP4Parser::e304C, K216, K216, K216, K217, K217, "TinyExpressionP4::ExternalStringInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7577:7597:body/1/0/seq", false, false, "text", false, K470); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e304M : TinyExpressionP4Parser::e304C, K227, K227, K227, K228, K228, "TinyExpressionP4::ExternalNumberInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7837:7847:body/0/literal", false, true, "text", false, K505); } private static Match e304C(Session s, Frame f) { - return s.sequence(f, K495, K271); + return s.literal(f, "external", true, false, K506); } private static Match e304M(Session s, Frame f) { - return s.sequence(f, K495, K271); + return s.literal(f, "external", true, false, K506); } private static Match e305(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e305M(s, f) : e305C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e305M : TinyExpressionP4Parser::e305C, K216, K216, K216, K217, K217, "TinyExpressionP4::ExternalStringInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7577:7588:body/1/0/0/literal", false, true, "text", false, K469); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e305M : TinyExpressionP4Parser::e305C, K227, K227, K227, K228, K228, "TinyExpressionP4::ExternalNumberInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7852:7915:body/1/group", false, false, "text", false, K511); } private static Match e305C(Session s, Frame f) { - return s.literal(f, "returning", true, false, K472); + return e306(s, f); } private static Match e305M(Session s, Frame f) { - return s.literal(f, "returning", true, false, K472); + return e306(s, f); } private static Match e306(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e306M(s, f) : e306C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e306M : TinyExpressionP4Parser::e306C, K216, K216, K216, K217, K217, "TinyExpressionP4::ExternalStringInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7589:7597:body/1/0/1/optional", true, false, "text", false, K279); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e306M : TinyExpressionP4Parser::e306C, K227, K227, K227, K228, K228, "TinyExpressionP4::ExternalNumberInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7854:7913:body/1/0/choice", false, false, "text", false, K511); } private static Match e306C(Session s, Frame f) { - return s.optional(f, TinyExpressionP4Parser::e307); + return s.choice(f,K522,false,null,false); } private static Match e306M(Session s, Frame f) { - return s.optional(f, TinyExpressionP4Parser::e307); + return s.choice(f,K522,false,null,false); } private static Match e307(Session s, Frame f) { + f.reset = false; if (s.bypassWrap) { Match r = f.matched ? e307M(s, f) : e307C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e307M : TinyExpressionP4Parser::e307C, K216, K216, K216, K217, K217, "TinyExpressionP4::ExternalStringInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7591:7595:body/1/0/1/0/literal", false, true, "text", false, K279); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e307M : TinyExpressionP4Parser::e307C, K227, K227, K227, K228, K228, "TinyExpressionP4::ExternalNumberInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7854:7903:body/1/0/0/seq", false, false, "text", false, K523); } private static Match e307C(Session s, Frame f) { - return s.literal(f, "as", true, false, K280); + return s.sequence(f, K524, K255); } private static Match e307M(Session s, Frame f) { - return s.literal(f, "as", true, false, K280); + return s.sequence(f, K524, K255); } private static Match e308(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e308M(s, f) : e308C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e308M : TinyExpressionP4Parser::e308C, K216, K216, K216, K217, K217, "TinyExpressionP4::ExternalStringInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7600:7616:body/2/ruleRef", false, false, "text", false, K4); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e308M : TinyExpressionP4Parser::e308C, K227, K227, K227, K228, K228, "TinyExpressionP4::ExternalNumberInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7854:7878:body/1/0/0/0/optional", true, false, "text", false, K507); } private static Match e308C(Session s, Frame f) { - return parseStringReturnType_27(s, f); + return s.optional(f, TinyExpressionP4Parser::e309); } private static Match e308M(Session s, Frame f) { - return parseStringReturnType_27(s, f); + return s.optional(f, TinyExpressionP4Parser::e309); } private static Match e309(Session s, Frame f) { + f.reset = false; if (s.bypassWrap) { Match r = f.matched ? e309M(s, f) : e309C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e309M : TinyExpressionP4Parser::e309C, K216, K216, K216, K217, K217, "TinyExpressionP4::ExternalStringInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7621:7628:body/3/optional", true, false, "text", false, K473); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e309M : TinyExpressionP4Parser::e309C, K227, K227, K227, K228, K228, "TinyExpressionP4::ExternalNumberInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7856:7876:body/1/0/0/0/0/seq", false, false, "text", false, K508); } private static Match e309C(Session s, Frame f) { - return s.optional(f, TinyExpressionP4Parser::e310); + return s.sequence(f, K525, K309); } private static Match e309M(Session s, Frame f) { - return s.optional(f, TinyExpressionP4Parser::e310); + return s.sequence(f, K525, K309); } private static Match e310(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e310M(s, f) : e310C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e310M : TinyExpressionP4Parser::e310C, K216, K216, K216, K217, K217, "TinyExpressionP4::ExternalStringInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7623:7626:body/3/0/literal", false, true, "text", false, K473); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e310M : TinyExpressionP4Parser::e310C, K227, K227, K227, K228, K228, "TinyExpressionP4::ExternalNumberInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7856:7867:body/1/0/0/0/0/0/literal", false, true, "text", false, K507); } private static Match e310C(Session s, Frame f) { - return s.literal(f, ":", true, false, K474); + return s.literal(f, "returning", true, false, K510); } private static Match e310M(Session s, Frame f) { - return s.literal(f, ":", true, false, K474); + return s.literal(f, "returning", true, false, K510); } private static Match e311(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e311M(s, f) : e311C(s, f); s.progress(f); return s.tree ? s.project(r, true) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e311M : TinyExpressionP4Parser::e311C, K216, K216, K216, K217, K217, "TinyExpressionP4::ExternalStringInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7633:7697:body/4/group", false, false, "mixed", false, K269); + if (s.bypassWrap) { Match r = f.matched ? e311M(s, f) : e311C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e311M : TinyExpressionP4Parser::e311C, K227, K227, K227, K228, K228, "TinyExpressionP4::ExternalNumberInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7868:7876:body/1/0/0/0/0/1/optional", true, false, "text", false, K317); } private static Match e311C(Session s, Frame f) { - return e312(s, f); + return s.optional(f, TinyExpressionP4Parser::e312); } private static Match e311M(Session s, Frame f) { - return e312(s, f); + return s.optional(f, TinyExpressionP4Parser::e312); } private static Match e312(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e312M(s, f) : e312C(s, f); s.progress(f); return s.tree ? s.project(r, true) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e312M : TinyExpressionP4Parser::e312C, K216, K216, K216, K217, K217, "TinyExpressionP4::ExternalStringInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7635:7689:body/4/0/choice", false, false, "mixed", false, K269); + if (s.bypassWrap) { Match r = f.matched ? e312M(s, f) : e312C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e312M : TinyExpressionP4Parser::e312C, K227, K227, K227, K228, K228, "TinyExpressionP4::ExternalNumberInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7870:7874:body/1/0/0/0/0/1/0/literal", false, true, "text", false, K317); } private static Match e312C(Session s, Frame f) { - return s.choice(f,K496,false,null,false); + return s.literal(f, "as", true, false, K318); } private static Match e312M(Session s, Frame f) { - return s.choice(f,K496,false,null,false); + return s.literal(f, "as", true, false, K318); } private static Match e313(Session s, Frame f) { - f.reset = false; - if (s.bypassWrap) { Match r = f.matched ? e313M(s, f) : e313C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e313M : TinyExpressionP4Parser::e313C, K216, K216, K216, K217, K217, "TinyExpressionP4::ExternalStringInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7635:7670:body/4/0/0/seq", false, false, "node", false, K269); + if (s.bypassWrap) { Match r = f.matched ? e313M(s, f) : e313C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e313M : TinyExpressionP4Parser::e313C, K227, K227, K227, K228, K228, "TinyExpressionP4::ExternalNumberInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7879:7895:body/1/0/0/1/ruleRef", false, false, "text", false, K4); } private static Match e313C(Session s, Frame f) { - return s.sequence(f, K497, K251); + return parseNumberReturnType_26(s, f); } private static Match e313M(Session s, Frame f) { - return s.sequence(f, K497, K251); + return parseNumberReturnType_26(s, f); } private static Match e314(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e314M(s, f) : e314C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e314M : TinyExpressionP4Parser::e314C, K498, K268, K225, K226, K226, "TinyExpressionP4::ExternalStringInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7635:7644:body/4/0/0/0/ruleRef", false, false, "node", false, K227); + if (s.bypassWrap) { Match r = f.matched ? e314M(s, f) : e314C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e314M : TinyExpressionP4Parser::e314C, K227, K227, K227, K228, K228, "TinyExpressionP4::ExternalNumberInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7896:7903:body/1/0/0/2/optional", true, false, "text", false, K511); } private static Match e314C(Session s, Frame f) { - return parseClassName_3(s, f); + return s.optional(f, TinyExpressionP4Parser::e315); } private static Match e314M(Session s, Frame f) { - return parseClassName_3(s, f); + return s.optional(f, TinyExpressionP4Parser::e315); } private static Match e315(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e315M(s, f) : e315C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e315M : TinyExpressionP4Parser::e315C, K216, K216, K216, K217, K217, "TinyExpressionP4::ExternalStringInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7656:7659:body/4/0/0/1/literal", false, true, "text", false, K269); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e315M : TinyExpressionP4Parser::e315C, K227, K227, K227, K228, K228, "TinyExpressionP4::ExternalNumberInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7898:7901:body/1/0/0/2/0/literal", false, true, "text", false, K511); } private static Match e315C(Session s, Frame f) { - return s.literal(f, "#", true, false, K273); + return s.literal(f, ":", true, false, K512); } private static Match e315M(Session s, Frame f) { - return s.literal(f, "#", true, false, K273); + return s.literal(f, ":", true, false, K512); } private static Match e316(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e316M(s, f) : e316C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e316M : TinyExpressionP4Parser::e316C, K499, K479, K225, K226, K226, "TinyExpressionP4::ExternalStringInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7660:7670:body/4/0/0/2/tokenRef", false, true, "text", false, K276); + if (s.bypassWrap) { Match r = f.matched ? e316M(s, f) : e316C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e316M : TinyExpressionP4Parser::e316C, K227, K227, K227, K228, K228, "TinyExpressionP4::ExternalNumberInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7906:7913:body/1/0/1/optional", true, false, "text", false, K511); } private static Match e316C(Session s, Frame f) { - return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K277,K278); + return s.optional(f, TinyExpressionP4Parser::e317); } private static Match e316M(Session s, Frame f) { - return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K277,K278); + return s.optional(f, TinyExpressionP4Parser::e317); } private static Match e317(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e317M(s, f) : e317C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e317M : TinyExpressionP4Parser::e317C, K500, K479, K225, K226, K226, "TinyExpressionP4::ExternalStringInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7679:7689:body/4/0/1/tokenRef", false, true, "textAlternative", false, K276); + if (s.bypassWrap) { Match r = f.matched ? e317M(s, f) : e317C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e317M : TinyExpressionP4Parser::e317C, K227, K227, K227, K228, K228, "TinyExpressionP4::ExternalNumberInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7908:7911:body/1/0/1/0/literal", false, true, "text", false, K511); } private static Match e317C(Session s, Frame f) { - return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K277,K278); + return s.literal(f, ":", true, false, K512); } private static Match e317M(Session s, Frame f) { - return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K277,K278); + return s.literal(f, ":", true, false, K512); } private static Match e318(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e318M(s, f) : e318C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e318M : TinyExpressionP4Parser::e318C, K216, K216, K216, K217, K217, "TinyExpressionP4::ExternalStringInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7702:7705:body/5/literal", false, true, "text", false, K399); + if (s.bypassWrap) { Match r = f.matched ? e318M(s, f) : e318C(s, f); s.progress(f); return s.tree ? s.project(r, true) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e318M : TinyExpressionP4Parser::e318C, K227, K227, K227, K228, K228, "TinyExpressionP4::ExternalNumberInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7920:7984:body/2/group", false, false, "mixed", false, K307); } private static Match e318C(Session s, Frame f) { - return s.literal(f, "(", true, false, K400); + return e319(s, f); } private static Match e318M(Session s, Frame f) { - return s.literal(f, "(", true, false, K400); + return e319(s, f); } private static Match e319(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e319M(s, f) : e319C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e319M : TinyExpressionP4Parser::e319C, K216, K216, K216, K217, K217, "TinyExpressionP4::ExternalStringInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7706:7725:body/6/optional", true, false, "node", false, K316); + if (s.bypassWrap) { Match r = f.matched ? e319M(s, f) : e319C(s, f); s.progress(f); return s.tree ? s.project(r, true) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e319M : TinyExpressionP4Parser::e319C, K227, K227, K227, K228, K228, "TinyExpressionP4::ExternalNumberInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7922:7976:body/2/0/choice", false, false, "mixed", false, K307); } private static Match e319C(Session s, Frame f) { - return s.optional(f, TinyExpressionP4Parser::e320); + return s.choice(f,K526,false,null,false); } private static Match e319M(Session s, Frame f) { - return s.optional(f, TinyExpressionP4Parser::e320); + return s.choice(f,K526,false,null,false); } private static Match e320(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e320M(s, f) : e320C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e320M : TinyExpressionP4Parser::e320C, K501, K482, K225, K226, K226, "TinyExpressionP4::ExternalStringInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7708:7717:body/6/0/ruleRef", false, false, "node", false, K227); + f.reset = false; + if (s.bypassWrap) { Match r = f.matched ? e320M(s, f) : e320C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e320M : TinyExpressionP4Parser::e320C, K227, K227, K227, K228, K228, "TinyExpressionP4::ExternalNumberInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7922:7957:body/2/0/0/seq", false, false, "node", false, K307); } private static Match e320C(Session s, Frame f) { - return parseArguments_39(s, f); + return s.sequence(f, K527, K255); } private static Match e320M(Session s, Frame f) { - return parseArguments_39(s, f); + return s.sequence(f, K527, K255); } private static Match e321(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e321M(s, f) : e321C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e321M : TinyExpressionP4Parser::e321C, K216, K216, K216, K217, K217, "TinyExpressionP4::ExternalStringInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7726:7729:body/7/literal", false, true, "text", false, K401); + if (s.bypassCapture) { Match r = f.matched ? e321M(s, f) : e321C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e321M : TinyExpressionP4Parser::e321C, K528, K306, K236, K237, K237, "TinyExpressionP4::ExternalNumberInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7922:7931:body/2/0/0/0/ruleRef", false, false, "node", false, K238); } private static Match e321C(Session s, Frame f) { - return s.literal(f, ")", true, false, K402); + return parseClassName_3(s, f); } private static Match e321M(Session s, Frame f) { - return s.literal(f, ")", true, false, K402); + return parseClassName_3(s, f); } private static Match e322(Session s, Frame f) { - f.reset = false; - if (s.bypassWrap) { Match r = f.matched ? e322M(s, f) : e322C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e322M : TinyExpressionP4Parser::e322C, K216, K216, K216, K217, K217, "TinyExpressionP4::ExternalObjectInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7841:8006:body/seq", false, false, "mixed", true, K4); + if (s.bypassWrap) { Match r = f.matched ? e322M(s, f) : e322C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e322M : TinyExpressionP4Parser::e322C, K227, K227, K227, K228, K228, "TinyExpressionP4::ExternalNumberInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7943:7946:body/2/0/0/1/literal", false, true, "text", false, K307); } private static Match e322C(Session s, Frame f) { - return s.sequence(f, K502, K411); + return s.literal(f, "#", true, false, K311); } private static Match e322M(Session s, Frame f) { - return s.sequence(f, K502, K411); + return s.literal(f, "#", true, false, K311); } private static Match e323(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e323M(s, f) : e323C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e323M : TinyExpressionP4Parser::e323C, K216, K216, K216, K217, K217, "TinyExpressionP4::ExternalObjectInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7841:7851:body/0/literal", false, true, "text", false, K467); + if (s.bypassCapture) { Match r = f.matched ? e323M(s, f) : e323C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e323M : TinyExpressionP4Parser::e323C, K529, K517, K236, K237, K237, "TinyExpressionP4::ExternalNumberInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7947:7957:body/2/0/0/2/tokenRef", false, true, "text", false, K314); } private static Match e323C(Session s, Frame f) { - return s.literal(f, "external", true, false, K468); + return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K315,K316); } private static Match e323M(Session s, Frame f) { - return s.literal(f, "external", true, false, K468); + return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K315,K316); } private static Match e324(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e324M(s, f) : e324C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e324M : TinyExpressionP4Parser::e324C, K216, K216, K216, K217, K217, "TinyExpressionP4::ExternalObjectInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7852:7876:body/1/optional", true, false, "text", false, K469); + if (s.bypassCapture) { Match r = f.matched ? e324M(s, f) : e324C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e324M : TinyExpressionP4Parser::e324C, K530, K517, K236, K237, K237, "TinyExpressionP4::ExternalNumberInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7966:7976:body/2/0/1/tokenRef", false, true, "textAlternative", false, K314); } private static Match e324C(Session s, Frame f) { - return s.optional(f, TinyExpressionP4Parser::e325); + return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K315,K316); } private static Match e324M(Session s, Frame f) { - return s.optional(f, TinyExpressionP4Parser::e325); + return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K315,K316); } private static Match e325(Session s, Frame f) { - f.reset = false; if (s.bypassWrap) { Match r = f.matched ? e325M(s, f) : e325C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e325M : TinyExpressionP4Parser::e325C, K216, K216, K216, K217, K217, "TinyExpressionP4::ExternalObjectInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7854:7874:body/1/0/seq", false, false, "text", false, K470); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e325M : TinyExpressionP4Parser::e325C, K227, K227, K227, K228, K228, "TinyExpressionP4::ExternalNumberInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7989:7992:body/3/literal", false, true, "text", false, K437); } private static Match e325C(Session s, Frame f) { - return s.sequence(f, K503, K271); + return s.literal(f, "(", true, false, K438); } private static Match e325M(Session s, Frame f) { - return s.sequence(f, K503, K271); + return s.literal(f, "(", true, false, K438); } private static Match e326(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e326M(s, f) : e326C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e326M : TinyExpressionP4Parser::e326C, K216, K216, K216, K217, K217, "TinyExpressionP4::ExternalObjectInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7854:7865:body/1/0/0/literal", false, true, "text", false, K469); + if (s.bypassWrap) { Match r = f.matched ? e326M(s, f) : e326C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e326M : TinyExpressionP4Parser::e326C, K227, K227, K227, K228, K228, "TinyExpressionP4::ExternalNumberInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7993:8012:body/4/optional", true, false, "node", false, K356); } private static Match e326C(Session s, Frame f) { - return s.literal(f, "returning", true, false, K472); + return s.optional(f, TinyExpressionP4Parser::e327); } private static Match e326M(Session s, Frame f) { - return s.literal(f, "returning", true, false, K472); + return s.optional(f, TinyExpressionP4Parser::e327); } private static Match e327(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e327M(s, f) : e327C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e327M : TinyExpressionP4Parser::e327C, K216, K216, K216, K217, K217, "TinyExpressionP4::ExternalObjectInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7866:7874:body/1/0/1/optional", true, false, "text", false, K279); + if (s.bypassCapture) { Match r = f.matched ? e327M(s, f) : e327C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e327M : TinyExpressionP4Parser::e327C, K531, K520, K236, K237, K237, "TinyExpressionP4::ExternalNumberInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7995:8004:body/4/0/ruleRef", false, false, "node", false, K238); } private static Match e327C(Session s, Frame f) { - return s.optional(f, TinyExpressionP4Parser::e328); + return parseArguments_39(s, f); } private static Match e327M(Session s, Frame f) { - return s.optional(f, TinyExpressionP4Parser::e328); + return parseArguments_39(s, f); } private static Match e328(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e328M(s, f) : e328C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e328M : TinyExpressionP4Parser::e328C, K216, K216, K216, K217, K217, "TinyExpressionP4::ExternalObjectInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7868:7872:body/1/0/1/0/literal", false, true, "text", false, K279); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e328M : TinyExpressionP4Parser::e328C, K227, K227, K227, K228, K228, "TinyExpressionP4::ExternalNumberInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8013:8016:body/5/literal", false, true, "text", false, K439); } private static Match e328C(Session s, Frame f) { - return s.literal(f, "as", true, false, K280); + return s.literal(f, ")", true, false, K440); } private static Match e328M(Session s, Frame f) { - return s.literal(f, "as", true, false, K280); + return s.literal(f, ")", true, false, K440); } private static Match e329(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e329M(s, f) : e329C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e329M : TinyExpressionP4Parser::e329C, K216, K216, K216, K217, K217, "TinyExpressionP4::ExternalObjectInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7877:7893:body/2/ruleRef", false, false, "text", false, K4); + f.reset = false; + if (s.bypassWrap) { Match r = f.matched ? e329M(s, f) : e329C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e329M : TinyExpressionP4Parser::e329C, K227, K227, K227, K228, K228, "TinyExpressionP4::ExternalStringInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8128:8293:body/seq", false, false, "mixed", true, K4); } private static Match e329C(Session s, Frame f) { - return parseObjectReturnType_29(s, f); + return s.sequence(f, K532, K449); } private static Match e329M(Session s, Frame f) { - return parseObjectReturnType_29(s, f); + return s.sequence(f, K532, K449); } private static Match e330(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e330M(s, f) : e330C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e330M : TinyExpressionP4Parser::e330C, K216, K216, K216, K217, K217, "TinyExpressionP4::ExternalObjectInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7898:7905:body/3/optional", true, false, "text", false, K473); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e330M : TinyExpressionP4Parser::e330C, K227, K227, K227, K228, K228, "TinyExpressionP4::ExternalStringInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8128:8138:body/0/literal", false, true, "text", false, K505); } private static Match e330C(Session s, Frame f) { - return s.optional(f, TinyExpressionP4Parser::e331); + return s.literal(f, "external", true, false, K506); } private static Match e330M(Session s, Frame f) { - return s.optional(f, TinyExpressionP4Parser::e331); + return s.literal(f, "external", true, false, K506); } private static Match e331(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e331M(s, f) : e331C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e331M : TinyExpressionP4Parser::e331C, K216, K216, K216, K217, K217, "TinyExpressionP4::ExternalObjectInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7900:7903:body/3/0/literal", false, true, "text", false, K473); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e331M : TinyExpressionP4Parser::e331C, K227, K227, K227, K228, K228, "TinyExpressionP4::ExternalStringInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8139:8163:body/1/optional", true, false, "text", false, K507); } private static Match e331C(Session s, Frame f) { - return s.literal(f, ":", true, false, K474); + return s.optional(f, TinyExpressionP4Parser::e332); } private static Match e331M(Session s, Frame f) { - return s.literal(f, ":", true, false, K474); + return s.optional(f, TinyExpressionP4Parser::e332); } private static Match e332(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e332M(s, f) : e332C(s, f); s.progress(f); return s.tree ? s.project(r, true) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e332M : TinyExpressionP4Parser::e332C, K216, K216, K216, K217, K217, "TinyExpressionP4::ExternalObjectInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7910:7974:body/4/group", false, false, "mixed", false, K269); + f.reset = false; + if (s.bypassWrap) { Match r = f.matched ? e332M(s, f) : e332C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e332M : TinyExpressionP4Parser::e332C, K227, K227, K227, K228, K228, "TinyExpressionP4::ExternalStringInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8141:8161:body/1/0/seq", false, false, "text", false, K508); } private static Match e332C(Session s, Frame f) { - return e333(s, f); + return s.sequence(f, K533, K309); } private static Match e332M(Session s, Frame f) { - return e333(s, f); + return s.sequence(f, K533, K309); } private static Match e333(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e333M(s, f) : e333C(s, f); s.progress(f); return s.tree ? s.project(r, true) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e333M : TinyExpressionP4Parser::e333C, K216, K216, K216, K217, K217, "TinyExpressionP4::ExternalObjectInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7912:7966:body/4/0/choice", false, false, "mixed", false, K269); + if (s.bypassWrap) { Match r = f.matched ? e333M(s, f) : e333C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e333M : TinyExpressionP4Parser::e333C, K227, K227, K227, K228, K228, "TinyExpressionP4::ExternalStringInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8141:8152:body/1/0/0/literal", false, true, "text", false, K507); } private static Match e333C(Session s, Frame f) { - return s.choice(f,K504,false,null,false); + return s.literal(f, "returning", true, false, K510); } private static Match e333M(Session s, Frame f) { - return s.choice(f,K504,false,null,false); + return s.literal(f, "returning", true, false, K510); } private static Match e334(Session s, Frame f) { - f.reset = false; - if (s.bypassWrap) { Match r = f.matched ? e334M(s, f) : e334C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e334M : TinyExpressionP4Parser::e334C, K216, K216, K216, K217, K217, "TinyExpressionP4::ExternalObjectInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7912:7947:body/4/0/0/seq", false, false, "node", false, K269); + if (s.bypassWrap) { Match r = f.matched ? e334M(s, f) : e334C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e334M : TinyExpressionP4Parser::e334C, K227, K227, K227, K228, K228, "TinyExpressionP4::ExternalStringInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8153:8161:body/1/0/1/optional", true, false, "text", false, K317); } private static Match e334C(Session s, Frame f) { - return s.sequence(f, K505, K251); + return s.optional(f, TinyExpressionP4Parser::e335); } private static Match e334M(Session s, Frame f) { - return s.sequence(f, K505, K251); + return s.optional(f, TinyExpressionP4Parser::e335); } private static Match e335(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e335M(s, f) : e335C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e335M : TinyExpressionP4Parser::e335C, K506, K268, K225, K226, K226, "TinyExpressionP4::ExternalObjectInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7912:7921:body/4/0/0/0/ruleRef", false, false, "node", false, K227); + if (s.bypassWrap) { Match r = f.matched ? e335M(s, f) : e335C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e335M : TinyExpressionP4Parser::e335C, K227, K227, K227, K228, K228, "TinyExpressionP4::ExternalStringInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8155:8159:body/1/0/1/0/literal", false, true, "text", false, K317); } private static Match e335C(Session s, Frame f) { - return parseClassName_3(s, f); + return s.literal(f, "as", true, false, K318); } private static Match e335M(Session s, Frame f) { - return parseClassName_3(s, f); + return s.literal(f, "as", true, false, K318); } private static Match e336(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e336M(s, f) : e336C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e336M : TinyExpressionP4Parser::e336C, K216, K216, K216, K217, K217, "TinyExpressionP4::ExternalObjectInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7933:7936:body/4/0/0/1/literal", false, true, "text", false, K269); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e336M : TinyExpressionP4Parser::e336C, K227, K227, K227, K228, K228, "TinyExpressionP4::ExternalStringInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8164:8180:body/2/ruleRef", false, false, "text", false, K4); } private static Match e336C(Session s, Frame f) { - return s.literal(f, "#", true, false, K273); + return parseStringReturnType_27(s, f); } private static Match e336M(Session s, Frame f) { - return s.literal(f, "#", true, false, K273); + return parseStringReturnType_27(s, f); } private static Match e337(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e337M(s, f) : e337C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e337M : TinyExpressionP4Parser::e337C, K507, K479, K225, K226, K226, "TinyExpressionP4::ExternalObjectInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7937:7947:body/4/0/0/2/tokenRef", false, true, "text", false, K276); + if (s.bypassWrap) { Match r = f.matched ? e337M(s, f) : e337C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e337M : TinyExpressionP4Parser::e337C, K227, K227, K227, K228, K228, "TinyExpressionP4::ExternalStringInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8185:8192:body/3/optional", true, false, "text", false, K511); } private static Match e337C(Session s, Frame f) { - return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K277,K278); + return s.optional(f, TinyExpressionP4Parser::e338); } private static Match e337M(Session s, Frame f) { - return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K277,K278); + return s.optional(f, TinyExpressionP4Parser::e338); } private static Match e338(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e338M(s, f) : e338C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e338M : TinyExpressionP4Parser::e338C, K508, K479, K225, K226, K226, "TinyExpressionP4::ExternalObjectInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7956:7966:body/4/0/1/tokenRef", false, true, "textAlternative", false, K276); + if (s.bypassWrap) { Match r = f.matched ? e338M(s, f) : e338C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e338M : TinyExpressionP4Parser::e338C, K227, K227, K227, K228, K228, "TinyExpressionP4::ExternalStringInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8187:8190:body/3/0/literal", false, true, "text", false, K511); } private static Match e338C(Session s, Frame f) { - return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K277,K278); + return s.literal(f, ":", true, false, K512); } private static Match e338M(Session s, Frame f) { - return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K277,K278); + return s.literal(f, ":", true, false, K512); } private static Match e339(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e339M(s, f) : e339C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e339M : TinyExpressionP4Parser::e339C, K216, K216, K216, K217, K217, "TinyExpressionP4::ExternalObjectInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7979:7982:body/5/literal", false, true, "text", false, K399); + if (s.bypassWrap) { Match r = f.matched ? e339M(s, f) : e339C(s, f); s.progress(f); return s.tree ? s.project(r, true) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e339M : TinyExpressionP4Parser::e339C, K227, K227, K227, K228, K228, "TinyExpressionP4::ExternalStringInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8197:8261:body/4/group", false, false, "mixed", false, K307); } private static Match e339C(Session s, Frame f) { - return s.literal(f, "(", true, false, K400); + return e340(s, f); } private static Match e339M(Session s, Frame f) { - return s.literal(f, "(", true, false, K400); + return e340(s, f); } private static Match e340(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e340M(s, f) : e340C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e340M : TinyExpressionP4Parser::e340C, K216, K216, K216, K217, K217, "TinyExpressionP4::ExternalObjectInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7983:8002:body/6/optional", true, false, "node", false, K316); + if (s.bypassWrap) { Match r = f.matched ? e340M(s, f) : e340C(s, f); s.progress(f); return s.tree ? s.project(r, true) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e340M : TinyExpressionP4Parser::e340C, K227, K227, K227, K228, K228, "TinyExpressionP4::ExternalStringInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8199:8253:body/4/0/choice", false, false, "mixed", false, K307); } private static Match e340C(Session s, Frame f) { - return s.optional(f, TinyExpressionP4Parser::e341); + return s.choice(f,K534,false,null,false); } private static Match e340M(Session s, Frame f) { - return s.optional(f, TinyExpressionP4Parser::e341); + return s.choice(f,K534,false,null,false); } private static Match e341(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e341M(s, f) : e341C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e341M : TinyExpressionP4Parser::e341C, K509, K482, K225, K226, K226, "TinyExpressionP4::ExternalObjectInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7985:7994:body/6/0/ruleRef", false, false, "node", false, K227); + f.reset = false; + if (s.bypassWrap) { Match r = f.matched ? e341M(s, f) : e341C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e341M : TinyExpressionP4Parser::e341C, K227, K227, K227, K228, K228, "TinyExpressionP4::ExternalStringInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8199:8234:body/4/0/0/seq", false, false, "node", false, K307); } private static Match e341C(Session s, Frame f) { - return parseArguments_39(s, f); + return s.sequence(f, K535, K255); } private static Match e341M(Session s, Frame f) { - return parseArguments_39(s, f); + return s.sequence(f, K535, K255); } private static Match e342(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e342M(s, f) : e342C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e342M : TinyExpressionP4Parser::e342C, K216, K216, K216, K217, K217, "TinyExpressionP4::ExternalObjectInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8003:8006:body/7/literal", false, true, "text", false, K401); + if (s.bypassCapture) { Match r = f.matched ? e342M(s, f) : e342C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e342M : TinyExpressionP4Parser::e342C, K536, K306, K236, K237, K237, "TinyExpressionP4::ExternalStringInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8199:8208:body/4/0/0/0/ruleRef", false, false, "node", false, K238); } private static Match e342C(Session s, Frame f) { - return s.literal(f, ")", true, false, K402); + return parseClassName_3(s, f); } private static Match e342M(Session s, Frame f) { - return s.literal(f, ")", true, false, K402); + return parseClassName_3(s, f); } private static Match e343(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e343M(s, f) : e343C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e343M : TinyExpressionP4Parser::e343C, K216, K216, K216, K217, K217, "TinyExpressionP4::MethodInvocationHeader", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8211:8245:body/choice", false, false, "text", false, K4); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e343M : TinyExpressionP4Parser::e343C, K227, K227, K227, K228, K228, "TinyExpressionP4::ExternalStringInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8220:8223:body/4/0/0/1/literal", false, true, "text", false, K307); } private static Match e343C(Session s, Frame f) { - return s.choice(f,K515,false,null,false,K514); + return s.literal(f, "#", true, false, K311); } private static Match e343M(Session s, Frame f) { - return s.choice(f,K515,false,null,false,K514); + return s.literal(f, "#", true, false, K311); } private static Match e344(Session s, Frame f) { - f.reset = false; - if (s.bypassWrap) { Match r = f.matched ? e344M(s, f) : e344C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e344M : TinyExpressionP4Parser::e344C, K216, K216, K216, K217, K217, "TinyExpressionP4::MethodInvocationHeader", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8211:8232:body/0/seq", false, false, "text", false, K64); + if (s.bypassCapture) { Match r = f.matched ? e344M(s, f) : e344C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e344M : TinyExpressionP4Parser::e344C, K537, K517, K236, K237, K237, "TinyExpressionP4::ExternalStringInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8224:8234:body/4/0/0/2/tokenRef", false, true, "text", false, K314); } private static Match e344C(Session s, Frame f) { - return s.sequence(f, K516, K271); + return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K315,K316); } private static Match e344M(Session s, Frame f) { - return s.sequence(f, K516, K271); + return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K315,K316); } private static Match e345(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e345M(s, f) : e345C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e345M : TinyExpressionP4Parser::e345C, K216, K216, K216, K217, K217, "TinyExpressionP4::MethodInvocationHeader", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8211:8217:body/0/0/literal", false, true, "text", false, K517); + if (s.bypassCapture) { Match r = f.matched ? e345M(s, f) : e345C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e345M : TinyExpressionP4Parser::e345C, K538, K517, K236, K237, K237, "TinyExpressionP4::ExternalStringInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8243:8253:body/4/0/1/tokenRef", false, true, "textAlternative", false, K314); } private static Match e345C(Session s, Frame f) { - return s.literal(f, "call", true, false, K518); + return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K315,K316); } private static Match e345M(Session s, Frame f) { - return s.literal(f, "call", true, false, K518); + return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K315,K316); } private static Match e346(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e346M(s, f) : e346C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e346M : TinyExpressionP4Parser::e346C, K216, K216, K216, K217, K217, "TinyExpressionP4::MethodInvocationHeader", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8218:8232:body/0/1/optional", true, false, "text", false, K519); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e346M : TinyExpressionP4Parser::e346C, K227, K227, K227, K228, K228, "TinyExpressionP4::ExternalStringInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8266:8269:body/5/literal", false, true, "text", false, K437); } private static Match e346C(Session s, Frame f) { - return s.optional(f, TinyExpressionP4Parser::e347); + return s.literal(f, "(", true, false, K438); } private static Match e346M(Session s, Frame f) { - return s.optional(f, TinyExpressionP4Parser::e347); + return s.literal(f, "(", true, false, K438); } private static Match e347(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e347M(s, f) : e347C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e347M : TinyExpressionP4Parser::e347C, K216, K216, K216, K217, K217, "TinyExpressionP4::MethodInvocationHeader", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8220:8230:body/0/1/0/literal", false, true, "text", false, K519); + if (s.bypassWrap) { Match r = f.matched ? e347M(s, f) : e347C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e347M : TinyExpressionP4Parser::e347C, K227, K227, K227, K228, K228, "TinyExpressionP4::ExternalStringInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8270:8289:body/6/optional", true, false, "node", false, K356); } private static Match e347C(Session s, Frame f) { - return s.literal(f, "internal", true, false, K520); + return s.optional(f, TinyExpressionP4Parser::e348); } private static Match e347M(Session s, Frame f) { - return s.literal(f, "internal", true, false, K520); + return s.optional(f, TinyExpressionP4Parser::e348); } private static Match e348(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e348M(s, f) : e348C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e348M : TinyExpressionP4Parser::e348C, K216, K216, K216, K217, K217, "TinyExpressionP4::MethodInvocationHeader", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8235:8245:body/1/literal", false, true, "text", false, K519); + if (s.bypassCapture) { Match r = f.matched ? e348M(s, f) : e348C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e348M : TinyExpressionP4Parser::e348C, K539, K520, K236, K237, K237, "TinyExpressionP4::ExternalStringInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8272:8281:body/6/0/ruleRef", false, false, "node", false, K238); } private static Match e348C(Session s, Frame f) { - return s.literal(f, "internal", true, false, K520); + return parseArguments_39(s, f); } private static Match e348M(Session s, Frame f) { - return s.literal(f, "internal", true, false, K520); + return parseArguments_39(s, f); } private static Match e349(Session s, Frame f) { - f.reset = false; - if (s.bypassWrap) { Match r = f.matched ? e349M(s, f) : e349C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e349M : TinyExpressionP4Parser::e349C, K216, K216, K216, K217, K217, "TinyExpressionP4::MethodInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8348:8415:body/seq", false, false, "node", false, K4); + if (s.bypassWrap) { Match r = f.matched ? e349M(s, f) : e349C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e349M : TinyExpressionP4Parser::e349C, K227, K227, K227, K228, K228, "TinyExpressionP4::ExternalStringInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8290:8293:body/7/literal", false, true, "text", false, K439); } private static Match e349C(Session s, Frame f) { - return s.sequence(f, K521, K394); + return s.literal(f, ")", true, false, K440); } private static Match e349M(Session s, Frame f) { - return s.sequence(f, K521, K394); + return s.literal(f, ")", true, false, K440); } private static Match e350(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e350M(s, f) : e350C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e350M : TinyExpressionP4Parser::e350C, K216, K216, K216, K217, K217, "TinyExpressionP4::MethodInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8348:8370:body/0/ruleRef", false, false, "text", false, K4); + f.reset = false; + if (s.bypassWrap) { Match r = f.matched ? e350M(s, f) : e350C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e350M : TinyExpressionP4Parser::e350C, K227, K227, K227, K228, K228, "TinyExpressionP4::ExternalObjectInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8405:8570:body/seq", false, false, "mixed", true, K4); } private static Match e350C(Session s, Frame f) { - return parseMethodInvocationHeader_35(s, f); + return s.sequence(f, K540, K449); } private static Match e350M(Session s, Frame f) { - return parseMethodInvocationHeader_35(s, f); + return s.sequence(f, K540, K449); } private static Match e351(Session s, Frame f) { - return s.capture(f, f.matched ? TinyExpressionP4Parser::e351M : TinyExpressionP4Parser::e351C, K522, K479, K225, K226, K315, "TinyExpressionP4::MethodInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8371:8381:body/1/tokenRef", false, true, "text", false, K276); + if (s.bypassWrap) { Match r = f.matched ? e351M(s, f) : e351C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e351M : TinyExpressionP4Parser::e351C, K227, K227, K227, K228, K228, "TinyExpressionP4::ExternalObjectInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8405:8415:body/0/literal", false, true, "text", false, K505); } private static Match e351C(Session s, Frame f) { - return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K277,K278); + return s.literal(f, "external", true, false, K506); } private static Match e351M(Session s, Frame f) { - return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K277,K278); + return s.literal(f, "external", true, false, K506); } private static Match e352(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e352M(s, f) : e352C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e352M : TinyExpressionP4Parser::e352C, K216, K216, K216, K217, K217, "TinyExpressionP4::MethodInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8388:8391:body/2/literal", false, true, "text", false, K399); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e352M : TinyExpressionP4Parser::e352C, K227, K227, K227, K228, K228, "TinyExpressionP4::ExternalObjectInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8416:8440:body/1/optional", true, false, "text", false, K507); } private static Match e352C(Session s, Frame f) { - return s.literal(f, "(", true, false, K400); + return s.optional(f, TinyExpressionP4Parser::e353); } private static Match e352M(Session s, Frame f) { - return s.literal(f, "(", true, false, K400); + return s.optional(f, TinyExpressionP4Parser::e353); } private static Match e353(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e353M(s, f) : e353C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e353M : TinyExpressionP4Parser::e353C, K216, K216, K216, K217, K217, "TinyExpressionP4::MethodInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8392:8411:body/3/optional", true, false, "node", false, K316); + f.reset = false; + if (s.bypassWrap) { Match r = f.matched ? e353M(s, f) : e353C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e353M : TinyExpressionP4Parser::e353C, K227, K227, K227, K228, K228, "TinyExpressionP4::ExternalObjectInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8418:8438:body/1/0/seq", false, false, "text", false, K508); } private static Match e353C(Session s, Frame f) { - return s.optional(f, TinyExpressionP4Parser::e354); + return s.sequence(f, K541, K309); } private static Match e353M(Session s, Frame f) { - return s.optional(f, TinyExpressionP4Parser::e354); + return s.sequence(f, K541, K309); } private static Match e354(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e354M(s, f) : e354C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e354M : TinyExpressionP4Parser::e354C, K523, K482, K225, K226, K226, "TinyExpressionP4::MethodInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8394:8403:body/3/0/ruleRef", false, false, "node", false, K227); + if (s.bypassWrap) { Match r = f.matched ? e354M(s, f) : e354C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e354M : TinyExpressionP4Parser::e354C, K227, K227, K227, K228, K228, "TinyExpressionP4::ExternalObjectInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8418:8429:body/1/0/0/literal", false, true, "text", false, K507); } private static Match e354C(Session s, Frame f) { - return parseArguments_39(s, f); + return s.literal(f, "returning", true, false, K510); } private static Match e354M(Session s, Frame f) { - return parseArguments_39(s, f); + return s.literal(f, "returning", true, false, K510); } private static Match e355(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e355M(s, f) : e355C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e355M : TinyExpressionP4Parser::e355C, K216, K216, K216, K217, K217, "TinyExpressionP4::MethodInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8412:8415:body/4/literal", false, true, "text", false, K401); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e355M : TinyExpressionP4Parser::e355C, K227, K227, K227, K228, K228, "TinyExpressionP4::ExternalObjectInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8430:8438:body/1/0/1/optional", true, false, "text", false, K317); } private static Match e355C(Session s, Frame f) { - return s.literal(f, ")", true, false, K402); + return s.optional(f, TinyExpressionP4Parser::e356); } private static Match e355M(Session s, Frame f) { - return s.literal(f, ")", true, false, K402); + return s.optional(f, TinyExpressionP4Parser::e356); } private static Match e356(Session s, Frame f) { - f.reset = false; - if (s.bypassWrap) { Match r = f.matched ? e356M(s, f) : e356C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e356M : TinyExpressionP4Parser::e356C, K216, K216, K216, K217, K217, "TinyExpressionP4::ArgumentTernary", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8582:8662:body/seq", false, false, "node", true, K4); + if (s.bypassWrap) { Match r = f.matched ? e356M(s, f) : e356C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e356M : TinyExpressionP4Parser::e356C, K227, K227, K227, K228, K228, "TinyExpressionP4::ExternalObjectInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8432:8436:body/1/0/1/0/literal", false, true, "text", false, K317); } private static Match e356C(Session s, Frame f) { - return s.sequence(f, K524, K394); + return s.literal(f, "as", true, false, K318); } private static Match e356M(Session s, Frame f) { - return s.sequence(f, K524, K394); + return s.literal(f, "as", true, false, K318); } private static Match e357(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e357M(s, f) : e357C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e357M : TinyExpressionP4Parser::e357C, K525, K526, K225, K226, K226, "TinyExpressionP4::ArgumentTernary", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8582:8599:body/0/ruleRef", false, false, "node", false, K227); + if (s.bypassWrap) { Match r = f.matched ? e357M(s, f) : e357C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e357M : TinyExpressionP4Parser::e357C, K227, K227, K227, K228, K228, "TinyExpressionP4::ExternalObjectInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8441:8457:body/2/ruleRef", false, false, "text", false, K4); } private static Match e357C(Session s, Frame f) { - return parseBooleanExpression_94(s, f); + return parseObjectReturnType_29(s, f); } private static Match e357M(Session s, Frame f) { - return parseBooleanExpression_94(s, f); + return parseObjectReturnType_29(s, f); } private static Match e358(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e358M(s, f) : e358C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e358M : TinyExpressionP4Parser::e358C, K216, K216, K216, K217, K217, "TinyExpressionP4::ArgumentTernary", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8611:8614:body/1/literal", false, true, "text", false, K527); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e358M : TinyExpressionP4Parser::e358C, K227, K227, K227, K228, K228, "TinyExpressionP4::ExternalObjectInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8462:8469:body/3/optional", true, false, "text", false, K511); } private static Match e358C(Session s, Frame f) { - return s.literal(f, "?", true, false, K528); + return s.optional(f, TinyExpressionP4Parser::e359); } private static Match e358M(Session s, Frame f) { - return s.literal(f, "?", true, false, K528); + return s.optional(f, TinyExpressionP4Parser::e359); } private static Match e359(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e359M(s, f) : e359C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e359M : TinyExpressionP4Parser::e359C, K529, K530, K225, K226, K226, "TinyExpressionP4::ArgumentTernary", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8615:8631:body/2/ruleRef", false, false, "node", false, K227); + if (s.bypassWrap) { Match r = f.matched ? e359M(s, f) : e359C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e359M : TinyExpressionP4Parser::e359C, K227, K227, K227, K228, K228, "TinyExpressionP4::ExternalObjectInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8464:8467:body/3/0/literal", false, true, "text", false, K511); } private static Match e359C(Session s, Frame f) { - return parseBranchExpression_107(s, f); + return s.literal(f, ":", true, false, K512); } private static Match e359M(Session s, Frame f) { - return parseBranchExpression_107(s, f); + return s.literal(f, ":", true, false, K512); } private static Match e360(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e360M(s, f) : e360C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e360M : TinyExpressionP4Parser::e360C, K216, K216, K216, K217, K217, "TinyExpressionP4::ArgumentTernary", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8642:8645:body/3/literal", false, true, "text", false, K473); + if (s.bypassWrap) { Match r = f.matched ? e360M(s, f) : e360C(s, f); s.progress(f); return s.tree ? s.project(r, true) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e360M : TinyExpressionP4Parser::e360C, K227, K227, K227, K228, K228, "TinyExpressionP4::ExternalObjectInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8474:8538:body/4/group", false, false, "mixed", false, K307); } private static Match e360C(Session s, Frame f) { - return s.literal(f, ":", true, false, K474); + return e361(s, f); } private static Match e360M(Session s, Frame f) { - return s.literal(f, ":", true, false, K474); + return e361(s, f); } private static Match e361(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e361M(s, f) : e361C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e361M : TinyExpressionP4Parser::e361C, K531, K532, K225, K226, K226, "TinyExpressionP4::ArgumentTernary", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8646:8662:body/4/ruleRef", false, false, "node", false, K227); + if (s.bypassWrap) { Match r = f.matched ? e361M(s, f) : e361C(s, f); s.progress(f); return s.tree ? s.project(r, true) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e361M : TinyExpressionP4Parser::e361C, K227, K227, K227, K228, K228, "TinyExpressionP4::ExternalObjectInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8476:8530:body/4/0/choice", false, false, "mixed", false, K307); } private static Match e361C(Session s, Frame f) { - return parseBranchExpression_107(s, f); + return s.choice(f,K542,false,null,false); } private static Match e361M(Session s, Frame f) { - return parseBranchExpression_107(s, f); + return s.choice(f,K542,false,null,false); } private static Match e362(Session s, Frame f) { + f.reset = false; if (s.bypassWrap) { Match r = f.matched ? e362M(s, f) : e362C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e362M : TinyExpressionP4Parser::e362C, K216, K216, K216, K217, K217, "TinyExpressionP4::ArgumentExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8758:8871:body/choice", false, false, "node", false, K4); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e362M : TinyExpressionP4Parser::e362C, K227, K227, K227, K228, K228, "TinyExpressionP4::ExternalObjectInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8476:8511:body/4/0/0/seq", false, false, "node", false, K307); } private static Match e362C(Session s, Frame f) { - return s.choice(f,K533,false,null,false); + return s.sequence(f, K543, K255); } private static Match e362M(Session s, Frame f) { - return s.choice(f,K533,false,null,false); + return s.sequence(f, K543, K255); } private static Match e363(Session s, Frame f) { if (s.bypassCapture) { Match r = f.matched ? e363M(s, f) : e363C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e363M : TinyExpressionP4Parser::e363C, K534, K323, K225, K226, K226, "TinyExpressionP4::ArgumentExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8758:8773:body/0/ruleRef", false, false, "node", false, K69); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e363M : TinyExpressionP4Parser::e363C, K544, K306, K236, K237, K237, "TinyExpressionP4::ExternalObjectInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8476:8485:body/4/0/0/0/ruleRef", false, false, "node", false, K238); } private static Match e363C(Session s, Frame f) { - return parseArgumentTernary_37(s, f); + return parseClassName_3(s, f); } private static Match e363M(Session s, Frame f) { - return parseArgumentTernary_37(s, f); + return parseClassName_3(s, f); } private static Match e364(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e364M(s, f) : e364C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e364M : TinyExpressionP4Parser::e364C, K535, K323, K225, K226, K226, "TinyExpressionP4::ArgumentExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8787:8807:body/1/ruleRef", false, false, "node", false, K227); + if (s.bypassWrap) { Match r = f.matched ? e364M(s, f) : e364C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e364M : TinyExpressionP4Parser::e364C, K227, K227, K227, K228, K228, "TinyExpressionP4::ExternalObjectInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8497:8500:body/4/0/0/1/literal", false, true, "text", false, K307); } private static Match e364C(Session s, Frame f) { - return parseComparisonExpression_103(s, f); + return s.literal(f, "#", true, false, K311); } private static Match e364M(Session s, Frame f) { - return parseComparisonExpression_103(s, f); + return s.literal(f, "#", true, false, K311); } private static Match e365(Session s, Frame f) { if (s.bypassCapture) { Match r = f.matched ? e365M(s, f) : e365C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e365M : TinyExpressionP4Parser::e365C, K536, K323, K225, K226, K226, "TinyExpressionP4::ArgumentExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8821:8847:body/2/ruleRef", false, false, "node", false, K227); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e365M : TinyExpressionP4Parser::e365C, K545, K517, K236, K237, K237, "TinyExpressionP4::ExternalObjectInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8501:8511:body/4/0/0/2/tokenRef", false, true, "text", false, K314); } private static Match e365C(Session s, Frame f) { - return parseStringComparisonExpression_101(s, f); + return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K315,K316); } private static Match e365M(Session s, Frame f) { - return parseStringComparisonExpression_101(s, f); + return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K315,K316); } private static Match e366(Session s, Frame f) { if (s.bypassCapture) { Match r = f.matched ? e366M(s, f) : e366C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e366M : TinyExpressionP4Parser::e366C, K537, K323, K225, K226, K226, "TinyExpressionP4::ArgumentExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8861:8871:body/3/ruleRef", false, false, "node", false, K227); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e366M : TinyExpressionP4Parser::e366C, K546, K517, K236, K237, K237, "TinyExpressionP4::ExternalObjectInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8520:8530:body/4/0/1/tokenRef", false, true, "textAlternative", false, K314); } private static Match e366C(Session s, Frame f) { - return parseExpression_123(s, f); + return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K315,K316); } private static Match e366M(Session s, Frame f) { - return parseExpression_123(s, f); + return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K315,K316); } private static Match e367(Session s, Frame f) { - f.reset = false; - if (s.bypassWrap) { Match r = f.matched ? e367M(s, f) : e367C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e367M : TinyExpressionP4Parser::e367C, K216, K216, K216, K217, K217, "TinyExpressionP4::Arguments", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8941:9002:body/seq", false, false, "node", true, K4); + if (s.bypassWrap) { Match r = f.matched ? e367M(s, f) : e367C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e367M : TinyExpressionP4Parser::e367C, K227, K227, K227, K228, K228, "TinyExpressionP4::ExternalObjectInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8543:8546:body/5/literal", false, true, "text", false, K437); } private static Match e367C(Session s, Frame f) { - return s.sequence(f, K538, K271); + return s.literal(f, "(", true, false, K438); } private static Match e367M(Session s, Frame f) { - return s.sequence(f, K538, K271); + return s.literal(f, "(", true, false, K438); } private static Match e368(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e368M(s, f) : e368C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e368M : TinyExpressionP4Parser::e368C, K539, K436, K225, K226, K226, "TinyExpressionP4::Arguments", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8941:8959:body/0/ruleRef", false, false, "node", false, K227); + if (s.bypassWrap) { Match r = f.matched ? e368M(s, f) : e368C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e368M : TinyExpressionP4Parser::e368C, K227, K227, K227, K228, K228, "TinyExpressionP4::ExternalObjectInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8547:8566:body/6/optional", true, false, "node", false, K356); } private static Match e368C(Session s, Frame f) { - return parseArgumentExpression_38(s, f); + return s.optional(f, TinyExpressionP4Parser::e369); } private static Match e368M(Session s, Frame f) { - return parseArgumentExpression_38(s, f); + return s.optional(f, TinyExpressionP4Parser::e369); } private static Match e369(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e369M(s, f) : e369C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e369M : TinyExpressionP4Parser::e369C, K216, K216, K216, K217, K217, "TinyExpressionP4::Arguments", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8968:9002:body/1/repeat", true, false, "node", true, K404); + if (s.bypassCapture) { Match r = f.matched ? e369M(s, f) : e369C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e369M : TinyExpressionP4Parser::e369C, K547, K520, K236, K237, K237, "TinyExpressionP4::ExternalObjectInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8549:8558:body/6/0/ruleRef", false, false, "node", false, K238); } private static Match e369C(Session s, Frame f) { - return s.repeat(f, TinyExpressionP4Parser::e370, 0, Integer.MAX_VALUE, null, Trivia.NONE); + return parseArguments_39(s, f); } private static Match e369M(Session s, Frame f) { - return s.repeat(f, TinyExpressionP4Parser::e370, 0, Integer.MAX_VALUE, null, Trivia.NONE); + return parseArguments_39(s, f); } private static Match e370(Session s, Frame f) { - f.reset = false; - if (s.bypassWrap) { Match r = f.matched ? e370M(s, f) : e370C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e370M : TinyExpressionP4Parser::e370C, K216, K216, K216, K217, K217, "TinyExpressionP4::Arguments", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8970:8992:body/1/0/seq", false, false, "node", false, K404); + if (s.bypassWrap) { Match r = f.matched ? e370M(s, f) : e370C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e370M : TinyExpressionP4Parser::e370C, K227, K227, K227, K228, K228, "TinyExpressionP4::ExternalObjectInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8567:8570:body/7/literal", false, true, "text", false, K439); } private static Match e370C(Session s, Frame f) { - return s.sequence(f, K540, K271); + return s.literal(f, ")", true, false, K440); } private static Match e370M(Session s, Frame f) { - return s.sequence(f, K540, K271); + return s.literal(f, ")", true, false, K440); } private static Match e371(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e371M(s, f) : e371C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e371M : TinyExpressionP4Parser::e371C, K216, K216, K216, K217, K217, "TinyExpressionP4::Arguments", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8970:8973:body/1/0/0/literal", false, true, "text", false, K404); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e371M : TinyExpressionP4Parser::e371C, K227, K227, K227, K228, K228, "TinyExpressionP4::MethodInvocationHeader", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8775:8809:body/choice", false, false, "text", false, K4); } private static Match e371C(Session s, Frame f) { - return s.literal(f, ",", true, false, K407); + return s.choice(f,K553,false,null,false,K552); } private static Match e371M(Session s, Frame f) { - return s.literal(f, ",", true, false, K407); + return s.choice(f,K553,false,null,false,K552); } private static Match e372(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e372M(s, f) : e372C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e372M : TinyExpressionP4Parser::e372C, K541, K436, K225, K226, K226, "TinyExpressionP4::Arguments", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8974:8992:body/1/0/1/ruleRef", false, false, "node", false, K227); + f.reset = false; + if (s.bypassWrap) { Match r = f.matched ? e372M(s, f) : e372C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e372M : TinyExpressionP4Parser::e372C, K227, K227, K227, K228, K228, "TinyExpressionP4::MethodInvocationHeader", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8775:8796:body/0/seq", false, false, "text", false, K64); } private static Match e372C(Session s, Frame f) { - return parseArgumentExpression_38(s, f); + return s.sequence(f, K554, K309); } private static Match e372M(Session s, Frame f) { - return parseArgumentExpression_38(s, f); + return s.sequence(f, K554, K309); } private static Match e373(Session s, Frame f) { - f.reset = false; - if (s.bypassWrap) { Match r = f.matched ? e373M(s, f) : e373C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e373M : TinyExpressionP4Parser::e373C, K216, K216, K216, K217, K217, "TinyExpressionP4::NumberExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9197:9245:body/seq", false, false, "node", true, K4); + if (s.bypassWrap) { Match r = f.matched ? e373M(s, f) : e373C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e373M : TinyExpressionP4Parser::e373C, K227, K227, K227, K228, K228, "TinyExpressionP4::MethodInvocationHeader", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8775:8781:body/0/0/literal", false, true, "text", false, K555); } private static Match e373C(Session s, Frame f) { - return s.sequence(f, K542, K271); + return s.literal(f, "call", true, false, K556); } private static Match e373M(Session s, Frame f) { - return s.sequence(f, K542, K271); + return s.literal(f, "call", true, false, K556); } private static Match e374(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e374M(s, f) : e374C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e374M : TinyExpressionP4Parser::e374C, K543, K544, K225, K226, K226, "TinyExpressionP4::NumberExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9197:9207:body/0/ruleRef", false, false, "node", false, K227); + if (s.bypassWrap) { Match r = f.matched ? e374M(s, f) : e374C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e374M : TinyExpressionP4Parser::e374C, K227, K227, K227, K228, K228, "TinyExpressionP4::MethodInvocationHeader", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8782:8796:body/0/1/optional", true, false, "text", false, K557); } private static Match e374C(Session s, Frame f) { - return parseNumberTerm_41(s, f); + return s.optional(f, TinyExpressionP4Parser::e375); } private static Match e374M(Session s, Frame f) { - return parseNumberTerm_41(s, f); + return s.optional(f, TinyExpressionP4Parser::e375); } private static Match e375(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e375M(s, f) : e375C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e375M : TinyExpressionP4Parser::e375C, K216, K216, K216, K217, K217, "TinyExpressionP4::NumberExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9214:9245:body/1/repeat", true, false, "node", true, K222); + if (s.bypassWrap) { Match r = f.matched ? e375M(s, f) : e375C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e375M : TinyExpressionP4Parser::e375C, K227, K227, K227, K228, K228, "TinyExpressionP4::MethodInvocationHeader", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8784:8794:body/0/1/0/literal", false, true, "text", false, K557); } private static Match e375C(Session s, Frame f) { - return s.repeat(f, TinyExpressionP4Parser::e376, 0, Integer.MAX_VALUE, null, Trivia.NONE); + return s.literal(f, "internal", true, false, K558); } private static Match e375M(Session s, Frame f) { - return s.repeat(f, TinyExpressionP4Parser::e376, 0, Integer.MAX_VALUE, null, Trivia.NONE); + return s.literal(f, "internal", true, false, K558); } private static Match e376(Session s, Frame f) { - f.reset = false; - if (s.bypassWrap) { Match r = f.matched ? e376M(s, f) : e376C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e376M : TinyExpressionP4Parser::e376C, K216, K216, K216, K217, K217, "TinyExpressionP4::NumberExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9216:9236:body/1/0/seq", false, false, "node", false, K545); + if (s.bypassWrap) { Match r = f.matched ? e376M(s, f) : e376C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e376M : TinyExpressionP4Parser::e376C, K227, K227, K227, K228, K228, "TinyExpressionP4::MethodInvocationHeader", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8799:8809:body/1/literal", false, true, "text", false, K557); } private static Match e376C(Session s, Frame f) { - return s.sequence(f, K546, K271); + return s.literal(f, "internal", true, false, K558); } private static Match e376M(Session s, Frame f) { - return s.sequence(f, K546, K271); + return s.literal(f, "internal", true, false, K558); } private static Match e377(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e377M(s, f) : e377C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e377M : TinyExpressionP4Parser::e377C, K547, K548, K225, K226, K226, "TinyExpressionP4::NumberExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9216:9221:body/1/0/0/ruleRef", false, false, "text", false, K78); + f.reset = false; + if (s.bypassWrap) { Match r = f.matched ? e377M(s, f) : e377C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e377M : TinyExpressionP4Parser::e377C, K227, K227, K227, K228, K228, "TinyExpressionP4::MethodInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8912:8979:body/seq", false, false, "node", false, K4); } private static Match e377C(Session s, Frame f) { - return parseAddOp_42(s, f); + return s.sequence(f, K559, K231); } private static Match e377M(Session s, Frame f) { - return parseAddOp_42(s, f); + return s.sequence(f, K559, K231); } private static Match e378(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e378M(s, f) : e378C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e378M : TinyExpressionP4Parser::e378C, K549, K550, K225, K226, K226, "TinyExpressionP4::NumberExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9226:9236:body/1/0/1/ruleRef", false, false, "node", false, K227); + if (s.bypassWrap) { Match r = f.matched ? e378M(s, f) : e378C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e378M : TinyExpressionP4Parser::e378C, K227, K227, K227, K228, K228, "TinyExpressionP4::MethodInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8912:8934:body/0/ruleRef", false, false, "text", false, K4); } private static Match e378C(Session s, Frame f) { - return parseNumberTerm_41(s, f); + return parseMethodInvocationHeader_35(s, f); } private static Match e378M(Session s, Frame f) { - return parseNumberTerm_41(s, f); + return parseMethodInvocationHeader_35(s, f); } private static Match e379(Session s, Frame f) { - f.reset = false; - if (s.bypassWrap) { Match r = f.matched ? e379M(s, f) : e379C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e379M : TinyExpressionP4Parser::e379C, K216, K216, K216, K217, K217, "TinyExpressionP4::NumberTerm", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9352:9404:body/seq", false, false, "mixed", true, K4); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e379M : TinyExpressionP4Parser::e379C, K560, K517, K236, K237, K355, "TinyExpressionP4::MethodInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8935:8945:body/1/tokenRef", false, true, "text", false, K314); } private static Match e379C(Session s, Frame f) { - return s.sequence(f, K551, K271); + return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K315,K316); } private static Match e379M(Session s, Frame f) { - return s.sequence(f, K551, K271); + return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K315,K316); } private static Match e380(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e380M(s, f) : e380C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e380M : TinyExpressionP4Parser::e380C, K552, K544, K225, K226, K226, "TinyExpressionP4::NumberTerm", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9352:9364:body/0/ruleRef", false, false, "mixed", false, K227); + if (s.bypassWrap) { Match r = f.matched ? e380M(s, f) : e380C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e380M : TinyExpressionP4Parser::e380C, K227, K227, K227, K228, K228, "TinyExpressionP4::MethodInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8952:8955:body/2/literal", false, true, "text", false, K437); } private static Match e380C(Session s, Frame f) { - return parseNumberFactor_60(s, f); + return s.literal(f, "(", true, false, K438); } private static Match e380M(Session s, Frame f) { - return parseNumberFactor_60(s, f); + return s.literal(f, "(", true, false, K438); } private static Match e381(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e381M(s, f) : e381C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e381M : TinyExpressionP4Parser::e381C, K216, K216, K216, K217, K217, "TinyExpressionP4::NumberTerm", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9371:9404:body/1/repeat", true, false, "mixed", true, K222); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e381M : TinyExpressionP4Parser::e381C, K227, K227, K227, K228, K228, "TinyExpressionP4::MethodInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8956:8975:body/3/optional", true, false, "node", false, K356); } private static Match e381C(Session s, Frame f) { - return s.repeat(f, TinyExpressionP4Parser::e382, 0, Integer.MAX_VALUE, null, Trivia.NONE); + return s.optional(f, TinyExpressionP4Parser::e382); } private static Match e381M(Session s, Frame f) { - return s.repeat(f, TinyExpressionP4Parser::e382, 0, Integer.MAX_VALUE, null, Trivia.NONE); + return s.optional(f, TinyExpressionP4Parser::e382); } private static Match e382(Session s, Frame f) { - f.reset = false; - if (s.bypassWrap) { Match r = f.matched ? e382M(s, f) : e382C(s, f); s.progress(f); return s.tree ? s.project(r, true) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e382M : TinyExpressionP4Parser::e382C, K216, K216, K216, K217, K217, "TinyExpressionP4::NumberTerm", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9373:9395:body/1/0/seq", false, false, "mixed", false, K553); + if (s.bypassCapture) { Match r = f.matched ? e382M(s, f) : e382C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e382M : TinyExpressionP4Parser::e382C, K561, K520, K236, K237, K237, "TinyExpressionP4::MethodInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8958:8967:body/3/0/ruleRef", false, false, "node", false, K238); } private static Match e382C(Session s, Frame f) { - return s.sequence(f, K554, K271); + return parseArguments_39(s, f); } private static Match e382M(Session s, Frame f) { - return s.sequence(f, K554, K271); + return parseArguments_39(s, f); } private static Match e383(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e383M(s, f) : e383C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e383M : TinyExpressionP4Parser::e383C, K555, K548, K225, K226, K226, "TinyExpressionP4::NumberTerm", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9373:9378:body/1/0/0/ruleRef", false, false, "text", false, K79); + if (s.bypassWrap) { Match r = f.matched ? e383M(s, f) : e383C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e383M : TinyExpressionP4Parser::e383C, K227, K227, K227, K228, K228, "TinyExpressionP4::MethodInvocation", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8976:8979:body/4/literal", false, true, "text", false, K439); } private static Match e383C(Session s, Frame f) { - return parseMulOp_43(s, f); + return s.literal(f, ")", true, false, K440); } private static Match e383M(Session s, Frame f) { - return parseMulOp_43(s, f); + return s.literal(f, ")", true, false, K440); } private static Match e384(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e384M(s, f) : e384C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e384M : TinyExpressionP4Parser::e384C, K556, K550, K225, K226, K226, "TinyExpressionP4::NumberTerm", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9383:9395:body/1/0/1/ruleRef", false, false, "mixed", false, K227); + f.reset = false; + if (s.bypassWrap) { Match r = f.matched ? e384M(s, f) : e384C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e384M : TinyExpressionP4Parser::e384C, K227, K227, K227, K228, K228, "TinyExpressionP4::ArgumentTernary", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9146:9226:body/seq", false, false, "node", true, K4); } private static Match e384C(Session s, Frame f) { - return parseNumberFactor_60(s, f); + return s.sequence(f, K562, K231); } private static Match e384M(Session s, Frame f) { - return parseNumberFactor_60(s, f); + return s.sequence(f, K562, K231); } private static Match e385(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e385M(s, f) : e385C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e385M : TinyExpressionP4Parser::e385C, K216, K216, K216, K217, K217, "TinyExpressionP4::AddOp", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9420:9429:body/choice", false, false, "text", false, K4); + if (s.bypassCapture) { Match r = f.matched ? e385M(s, f) : e385C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e385M : TinyExpressionP4Parser::e385C, K563, K564, K236, K237, K237, "TinyExpressionP4::ArgumentTernary", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9146:9163:body/0/ruleRef", false, false, "node", false, K238); } private static Match e385C(Session s, Frame f) { - if (s.exclusiveReady(f) && switch (s.cp(f.c)) { case 43, 45 -> false; default -> true; }) return s.exclusiveFail(f); return s.choice(f,K557,false,new boolean[]{true,true},false); + return parseBooleanExpression_94(s, f); } private static Match e385M(Session s, Frame f) { - if (s.exclusiveReady(f) && switch (s.cp(f.c)) { case 43, 45 -> false; default -> true; }) return s.exclusiveFail(f); return s.choice(f,K557,false,new boolean[]{true,true},false); + return parseBooleanExpression_94(s, f); } private static Match e386(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e386M(s, f) : e386C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e386M : TinyExpressionP4Parser::e386C, K216, K216, K216, K217, K217, "TinyExpressionP4::AddOp", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9420:9423:body/0/literal", false, true, "text", false, K558); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e386M : TinyExpressionP4Parser::e386C, K227, K227, K227, K228, K228, "TinyExpressionP4::ArgumentTernary", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9175:9178:body/1/literal", false, true, "text", false, K565); } private static Match e386C(Session s, Frame f) { - return s.literal(f, "+", true, false, K559); + return s.literal(f, "?", true, false, K566); } private static Match e386M(Session s, Frame f) { - return s.literal(f, "+", true, false, K559); + return s.literal(f, "?", true, false, K566); } private static Match e387(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e387M(s, f) : e387C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e387M : TinyExpressionP4Parser::e387C, K216, K216, K216, K217, K217, "TinyExpressionP4::AddOp", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9426:9429:body/1/literal", false, true, "text", false, K560); + if (s.bypassCapture) { Match r = f.matched ? e387M(s, f) : e387C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e387M : TinyExpressionP4Parser::e387C, K567, K568, K236, K237, K237, "TinyExpressionP4::ArgumentTernary", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9179:9195:body/2/ruleRef", false, false, "node", false, K238); } private static Match e387C(Session s, Frame f) { - return s.literal(f, "-", true, false, K561); + return parseBranchExpression_107(s, f); } private static Match e387M(Session s, Frame f) { - return s.literal(f, "-", true, false, K561); + return parseBranchExpression_107(s, f); } private static Match e388(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e388M(s, f) : e388C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e388M : TinyExpressionP4Parser::e388C, K216, K216, K216, K217, K217, "TinyExpressionP4::MulOp", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9444:9453:body/choice", false, false, "text", false, K4); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e388M : TinyExpressionP4Parser::e388C, K227, K227, K227, K228, K228, "TinyExpressionP4::ArgumentTernary", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9206:9209:body/3/literal", false, true, "text", false, K511); } private static Match e388C(Session s, Frame f) { - if (s.exclusiveReady(f) && switch (s.cp(f.c)) { case 42, 47 -> false; default -> true; }) return s.exclusiveFail(f); return s.choice(f,K562,false,new boolean[]{true,true},false); + return s.literal(f, ":", true, false, K512); } private static Match e388M(Session s, Frame f) { - if (s.exclusiveReady(f) && switch (s.cp(f.c)) { case 42, 47 -> false; default -> true; }) return s.exclusiveFail(f); return s.choice(f,K562,false,new boolean[]{true,true},false); + return s.literal(f, ":", true, false, K512); } private static Match e389(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e389M(s, f) : e389C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e389M : TinyExpressionP4Parser::e389C, K216, K216, K216, K217, K217, "TinyExpressionP4::MulOp", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9444:9447:body/0/literal", false, true, "text", false, K563); + if (s.bypassCapture) { Match r = f.matched ? e389M(s, f) : e389C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e389M : TinyExpressionP4Parser::e389C, K569, K570, K236, K237, K237, "TinyExpressionP4::ArgumentTernary", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9210:9226:body/4/ruleRef", false, false, "node", false, K238); } private static Match e389C(Session s, Frame f) { - return s.literal(f, "*", true, false, K564); + return parseBranchExpression_107(s, f); } private static Match e389M(Session s, Frame f) { - return s.literal(f, "*", true, false, K564); + return parseBranchExpression_107(s, f); } private static Match e390(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e390M(s, f) : e390C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e390M : TinyExpressionP4Parser::e390C, K216, K216, K216, K217, K217, "TinyExpressionP4::MulOp", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9450:9453:body/1/literal", false, true, "text", false, K565); + if (s.bypassWrap) { Match r = f.matched ? e390M(s, f) : e390C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e390M : TinyExpressionP4Parser::e390C, K227, K227, K227, K228, K228, "TinyExpressionP4::ArgumentExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9322:9435:body/choice", false, false, "node", false, K4); } private static Match e390C(Session s, Frame f) { - return s.literal(f, "/", true, false, K566); + return s.choice(f,K571,false,null,false); } private static Match e390M(Session s, Frame f) { - return s.literal(f, "/", true, false, K566); + return s.choice(f,K571,false,null,false); } private static Match e391(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e391M(s, f) : e391C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e391M : TinyExpressionP4Parser::e391C, K216, K216, K216, K217, K217, "TinyExpressionP4::MathFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9561:9815:body/choice", false, false, "node", false, K4); + if (s.bypassCapture) { Match r = f.matched ? e391M(s, f) : e391C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e391M : TinyExpressionP4Parser::e391C, K572, K363, K236, K237, K237, "TinyExpressionP4::ArgumentExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9322:9337:body/0/ruleRef", false, false, "node", false, K69); } private static Match e391C(Session s, Frame f) { - return s.choice(f,K618,false,null,false,K617); + return parseArgumentTernary_37(s, f); } private static Match e391M(Session s, Frame f) { - return s.choice(f,K618,false,null,false,K617); + return parseArgumentTernary_37(s, f); } private static Match e392(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e392M(s, f) : e392C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e392M : TinyExpressionP4Parser::e392C, K216, K216, K216, K217, K217, "TinyExpressionP4::MathFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9561:9572:body/0/ruleRef", false, false, "node", false, K4); + if (s.bypassCapture) { Match r = f.matched ? e392M(s, f) : e392C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e392M : TinyExpressionP4Parser::e392C, K573, K363, K236, K237, K237, "TinyExpressionP4::ArgumentExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9351:9371:body/1/ruleRef", false, false, "node", false, K238); } private static Match e392C(Session s, Frame f) { - return parseSinFunction_45(s, f); + return parseComparisonExpression_103(s, f); } private static Match e392M(Session s, Frame f) { - return parseSinFunction_45(s, f); + return parseComparisonExpression_103(s, f); } private static Match e393(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e393M(s, f) : e393C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e393M : TinyExpressionP4Parser::e393C, K216, K216, K216, K217, K217, "TinyExpressionP4::MathFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9579:9590:body/1/ruleRef", false, false, "node", false, K4); + if (s.bypassCapture) { Match r = f.matched ? e393M(s, f) : e393C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e393M : TinyExpressionP4Parser::e393C, K574, K363, K236, K237, K237, "TinyExpressionP4::ArgumentExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9385:9411:body/2/ruleRef", false, false, "node", false, K238); } private static Match e393C(Session s, Frame f) { - return parseCosFunction_46(s, f); + return parseStringComparisonExpression_101(s, f); } private static Match e393M(Session s, Frame f) { - return parseCosFunction_46(s, f); + return parseStringComparisonExpression_101(s, f); } private static Match e394(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e394M(s, f) : e394C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e394M : TinyExpressionP4Parser::e394C, K216, K216, K216, K217, K217, "TinyExpressionP4::MathFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9597:9608:body/2/ruleRef", false, false, "node", false, K4); + if (s.bypassCapture) { Match r = f.matched ? e394M(s, f) : e394C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e394M : TinyExpressionP4Parser::e394C, K575, K363, K236, K237, K237, "TinyExpressionP4::ArgumentExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9425:9435:body/3/ruleRef", false, false, "node", false, K238); } private static Match e394C(Session s, Frame f) { - return parseTanFunction_47(s, f); + return parseExpression_123(s, f); } private static Match e394M(Session s, Frame f) { - return parseTanFunction_47(s, f); + return parseExpression_123(s, f); } private static Match e395(Session s, Frame f) { + f.reset = false; if (s.bypassWrap) { Match r = f.matched ? e395M(s, f) : e395C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e395M : TinyExpressionP4Parser::e395C, K216, K216, K216, K217, K217, "TinyExpressionP4::MathFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9615:9627:body/3/ruleRef", false, false, "node", false, K4); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e395M : TinyExpressionP4Parser::e395C, K227, K227, K227, K228, K228, "TinyExpressionP4::Arguments", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9505:9566:body/seq", false, false, "node", true, K4); } private static Match e395C(Session s, Frame f) { - return parseSqrtFunction_48(s, f); + return s.sequence(f, K576, K309); } private static Match e395M(Session s, Frame f) { - return parseSqrtFunction_48(s, f); + return s.sequence(f, K576, K309); } private static Match e396(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e396M(s, f) : e396C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e396M : TinyExpressionP4Parser::e396C, K216, K216, K216, K217, K217, "TinyExpressionP4::MathFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9634:9645:body/4/ruleRef", false, false, "node", false, K4); + if (s.bypassCapture) { Match r = f.matched ? e396M(s, f) : e396C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e396M : TinyExpressionP4Parser::e396C, K577, K474, K236, K237, K237, "TinyExpressionP4::Arguments", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9505:9523:body/0/ruleRef", false, false, "node", false, K238); } private static Match e396C(Session s, Frame f) { - return parseMinFunction_49(s, f); + return parseArgumentExpression_38(s, f); } private static Match e396M(Session s, Frame f) { - return parseMinFunction_49(s, f); + return parseArgumentExpression_38(s, f); } private static Match e397(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e397M(s, f) : e397C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e397M : TinyExpressionP4Parser::e397C, K216, K216, K216, K217, K217, "TinyExpressionP4::MathFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9652:9663:body/5/ruleRef", false, false, "node", false, K4); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e397M : TinyExpressionP4Parser::e397C, K227, K227, K227, K228, K228, "TinyExpressionP4::Arguments", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9532:9566:body/1/repeat", true, false, "node", true, K442); } private static Match e397C(Session s, Frame f) { - return parseMaxFunction_50(s, f); + return s.repeat(f, TinyExpressionP4Parser::e398, 0, Integer.MAX_VALUE, null, Trivia.NONE); } private static Match e397M(Session s, Frame f) { - return parseMaxFunction_50(s, f); + return s.repeat(f, TinyExpressionP4Parser::e398, 0, Integer.MAX_VALUE, null, Trivia.NONE); } private static Match e398(Session s, Frame f) { + f.reset = false; if (s.bypassWrap) { Match r = f.matched ? e398M(s, f) : e398C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e398M : TinyExpressionP4Parser::e398C, K216, K216, K216, K217, K217, "TinyExpressionP4::MathFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9670:9684:body/6/ruleRef", false, false, "node", false, K4); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e398M : TinyExpressionP4Parser::e398C, K227, K227, K227, K228, K228, "TinyExpressionP4::Arguments", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9534:9556:body/1/0/seq", false, false, "node", false, K442); } private static Match e398C(Session s, Frame f) { - return parseRandomFunction_51(s, f); + return s.sequence(f, K578, K309); } private static Match e398M(Session s, Frame f) { - return parseRandomFunction_51(s, f); + return s.sequence(f, K578, K309); } private static Match e399(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e399M(s, f) : e399C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e399M : TinyExpressionP4Parser::e399C, K216, K216, K216, K217, K217, "TinyExpressionP4::MathFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9691:9702:body/7/ruleRef", false, false, "node", false, K4); + if (s.bypassWrap) { Match r = f.matched ? e399M(s, f) : e399C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e399M : TinyExpressionP4Parser::e399C, K227, K227, K227, K228, K228, "TinyExpressionP4::Arguments", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9534:9537:body/1/0/0/literal", false, true, "text", false, K442); } private static Match e399C(Session s, Frame f) { - return parseAbsFunction_52(s, f); + return s.literal(f, ",", true, false, K445); } private static Match e399M(Session s, Frame f) { - return parseAbsFunction_52(s, f); + return s.literal(f, ",", true, false, K445); } private static Match e400(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e400M(s, f) : e400C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e400M : TinyExpressionP4Parser::e400C, K216, K216, K216, K217, K217, "TinyExpressionP4::MathFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9709:9722:body/8/ruleRef", false, false, "node", false, K4); + if (s.bypassCapture) { Match r = f.matched ? e400M(s, f) : e400C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e400M : TinyExpressionP4Parser::e400C, K579, K474, K236, K237, K237, "TinyExpressionP4::Arguments", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9538:9556:body/1/0/1/ruleRef", false, false, "node", false, K238); } private static Match e400C(Session s, Frame f) { - return parseRoundFunction_53(s, f); + return parseArgumentExpression_38(s, f); } private static Match e400M(Session s, Frame f) { - return parseRoundFunction_53(s, f); + return parseArgumentExpression_38(s, f); } private static Match e401(Session s, Frame f) { + f.reset = false; if (s.bypassWrap) { Match r = f.matched ? e401M(s, f) : e401C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e401M : TinyExpressionP4Parser::e401C, K216, K216, K216, K217, K217, "TinyExpressionP4::MathFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9729:9741:body/9/ruleRef", false, false, "node", false, K4); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e401M : TinyExpressionP4Parser::e401C, K227, K227, K227, K228, K228, "TinyExpressionP4::NumberExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9761:9809:body/seq", false, false, "node", true, K4); } private static Match e401C(Session s, Frame f) { - return parseCeilFunction_54(s, f); + return s.sequence(f, K580, K309); } private static Match e401M(Session s, Frame f) { - return parseCeilFunction_54(s, f); + return s.sequence(f, K580, K309); } private static Match e402(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e402M(s, f) : e402C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e402M : TinyExpressionP4Parser::e402C, K216, K216, K216, K217, K217, "TinyExpressionP4::MathFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9748:9761:body/10/ruleRef", false, false, "node", false, K4); + if (s.bypassCapture) { Match r = f.matched ? e402M(s, f) : e402C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e402M : TinyExpressionP4Parser::e402C, K581, K582, K236, K237, K237, "TinyExpressionP4::NumberExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9761:9771:body/0/ruleRef", false, false, "node", false, K238); } private static Match e402C(Session s, Frame f) { - return parseFloorFunction_55(s, f); + return parseNumberTerm_41(s, f); } private static Match e402M(Session s, Frame f) { - return parseFloorFunction_55(s, f); + return parseNumberTerm_41(s, f); } private static Match e403(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e403M(s, f) : e403C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e403M : TinyExpressionP4Parser::e403C, K216, K216, K216, K217, K217, "TinyExpressionP4::MathFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9768:9779:body/11/ruleRef", false, false, "node", false, K4); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e403M : TinyExpressionP4Parser::e403C, K227, K227, K227, K228, K228, "TinyExpressionP4::NumberExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9778:9809:body/1/repeat", true, false, "node", true, K233); } private static Match e403C(Session s, Frame f) { - return parsePowFunction_56(s, f); + return s.repeat(f, TinyExpressionP4Parser::e404, 0, Integer.MAX_VALUE, null, Trivia.NONE); } private static Match e403M(Session s, Frame f) { - return parsePowFunction_56(s, f); + return s.repeat(f, TinyExpressionP4Parser::e404, 0, Integer.MAX_VALUE, null, Trivia.NONE); } private static Match e404(Session s, Frame f) { + f.reset = false; if (s.bypassWrap) { Match r = f.matched ? e404M(s, f) : e404C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e404M : TinyExpressionP4Parser::e404C, K216, K216, K216, K217, K217, "TinyExpressionP4::MathFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9786:9797:body/12/ruleRef", false, false, "node", false, K4); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e404M : TinyExpressionP4Parser::e404C, K227, K227, K227, K228, K228, "TinyExpressionP4::NumberExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9780:9800:body/1/0/seq", false, false, "node", false, K583); } private static Match e404C(Session s, Frame f) { - return parseLogFunction_57(s, f); + return s.sequence(f, K584, K309); } private static Match e404M(Session s, Frame f) { - return parseLogFunction_57(s, f); + return s.sequence(f, K584, K309); } private static Match e405(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e405M(s, f) : e405C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e405M : TinyExpressionP4Parser::e405C, K216, K216, K216, K217, K217, "TinyExpressionP4::MathFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9804:9815:body/13/ruleRef", false, false, "node", false, K4); + if (s.bypassCapture) { Match r = f.matched ? e405M(s, f) : e405C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e405M : TinyExpressionP4Parser::e405C, K585, K586, K236, K237, K237, "TinyExpressionP4::NumberExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9780:9785:body/1/0/0/ruleRef", false, false, "text", false, K78); } private static Match e405C(Session s, Frame f) { - return parseExpFunction_58(s, f); + return parseAddOp_42(s, f); } private static Match e405M(Session s, Frame f) { - return parseExpFunction_58(s, f); + return parseAddOp_42(s, f); } private static Match e406(Session s, Frame f) { - f.reset = false; - if (s.bypassWrap) { Match r = f.matched ? e406M(s, f) : e406C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e406M : TinyExpressionP4Parser::e406C, K216, K216, K216, K217, K217, "TinyExpressionP4::SinFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9871:9908:body/seq", false, false, "node", false, K4); + if (s.bypassCapture) { Match r = f.matched ? e406M(s, f) : e406C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e406M : TinyExpressionP4Parser::e406C, K587, K588, K236, K237, K237, "TinyExpressionP4::NumberExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9790:9800:body/1/0/1/ruleRef", false, false, "node", false, K238); } private static Match e406C(Session s, Frame f) { - return s.sequence(f, K621, K620); + return parseNumberTerm_41(s, f); } private static Match e406M(Session s, Frame f) { - return s.sequence(f, K621, K620); + return parseNumberTerm_41(s, f); } private static Match e407(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e407M(s, f) : e407C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e407M : TinyExpressionP4Parser::e407C, K216, K216, K216, K217, K217, "TinyExpressionP4::SinFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9871:9876:body/0/literal", false, true, "text", false, K622); + f.reset = false; + if (s.bypassWrap) { Match r = f.matched ? e407M(s, f) : e407C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e407M : TinyExpressionP4Parser::e407C, K227, K227, K227, K228, K228, "TinyExpressionP4::NumberTerm", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9916:9968:body/seq", false, false, "mixed", true, K4); } private static Match e407C(Session s, Frame f) { - return s.literal(f, "sin", true, false, K623); + return s.sequence(f, K589, K309); } private static Match e407M(Session s, Frame f) { - return s.literal(f, "sin", true, false, K623); + return s.sequence(f, K589, K309); } private static Match e408(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e408M(s, f) : e408C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e408M : TinyExpressionP4Parser::e408C, K216, K216, K216, K217, K217, "TinyExpressionP4::SinFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9877:9880:body/1/literal", false, true, "text", false, K399); + if (s.bypassCapture) { Match r = f.matched ? e408M(s, f) : e408C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e408M : TinyExpressionP4Parser::e408C, K590, K582, K236, K237, K237, "TinyExpressionP4::NumberTerm", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9916:9928:body/0/ruleRef", false, false, "mixed", false, K238); } private static Match e408C(Session s, Frame f) { - return s.literal(f, "(", true, false, K400); + return parseNumberFactor_60(s, f); } private static Match e408M(Session s, Frame f) { - return s.literal(f, "(", true, false, K400); + return parseNumberFactor_60(s, f); } private static Match e409(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e409M(s, f) : e409C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e409M : TinyExpressionP4Parser::e409C, K624, K625, K225, K226, K226, "TinyExpressionP4::SinFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9881:9899:body/2/ruleRef", false, false, "node", false, K227); + if (s.bypassWrap) { Match r = f.matched ? e409M(s, f) : e409C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e409M : TinyExpressionP4Parser::e409C, K227, K227, K227, K228, K228, "TinyExpressionP4::NumberTerm", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9935:9968:body/1/repeat", true, false, "mixed", true, K233); } private static Match e409C(Session s, Frame f) { - return parseArgumentExpression_38(s, f); + return s.repeat(f, TinyExpressionP4Parser::e410, 0, Integer.MAX_VALUE, null, Trivia.NONE); } private static Match e409M(Session s, Frame f) { - return parseArgumentExpression_38(s, f); + return s.repeat(f, TinyExpressionP4Parser::e410, 0, Integer.MAX_VALUE, null, Trivia.NONE); } private static Match e410(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e410M(s, f) : e410C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e410M : TinyExpressionP4Parser::e410C, K216, K216, K216, K217, K217, "TinyExpressionP4::SinFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9905:9908:body/3/literal", false, true, "text", false, K401); + f.reset = false; + if (s.bypassWrap) { Match r = f.matched ? e410M(s, f) : e410C(s, f); s.progress(f); return s.tree ? s.project(r, true) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e410M : TinyExpressionP4Parser::e410C, K227, K227, K227, K228, K228, "TinyExpressionP4::NumberTerm", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9937:9959:body/1/0/seq", false, false, "mixed", false, K591); } private static Match e410C(Session s, Frame f) { - return s.literal(f, ")", true, false, K402); + return s.sequence(f, K592, K309); } private static Match e410M(Session s, Frame f) { - return s.literal(f, ")", true, false, K402); + return s.sequence(f, K592, K309); } private static Match e411(Session s, Frame f) { - f.reset = false; - if (s.bypassWrap) { Match r = f.matched ? e411M(s, f) : e411C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e411M : TinyExpressionP4Parser::e411C, K216, K216, K216, K217, K217, "TinyExpressionP4::CosFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9964:10001:body/seq", false, false, "node", false, K4); + if (s.bypassCapture) { Match r = f.matched ? e411M(s, f) : e411C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e411M : TinyExpressionP4Parser::e411C, K593, K586, K236, K237, K237, "TinyExpressionP4::NumberTerm", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9937:9942:body/1/0/0/ruleRef", false, false, "text", false, K79); } private static Match e411C(Session s, Frame f) { - return s.sequence(f, K626, K620); + return parseMulOp_43(s, f); } private static Match e411M(Session s, Frame f) { - return s.sequence(f, K626, K620); + return parseMulOp_43(s, f); } private static Match e412(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e412M(s, f) : e412C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e412M : TinyExpressionP4Parser::e412C, K216, K216, K216, K217, K217, "TinyExpressionP4::CosFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9964:9969:body/0/literal", false, true, "text", false, K627); + if (s.bypassCapture) { Match r = f.matched ? e412M(s, f) : e412C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e412M : TinyExpressionP4Parser::e412C, K594, K588, K236, K237, K237, "TinyExpressionP4::NumberTerm", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9947:9959:body/1/0/1/ruleRef", false, false, "mixed", false, K238); } private static Match e412C(Session s, Frame f) { - return s.literal(f, "cos", true, false, K628); + return parseNumberFactor_60(s, f); } private static Match e412M(Session s, Frame f) { - return s.literal(f, "cos", true, false, K628); + return parseNumberFactor_60(s, f); } private static Match e413(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e413M(s, f) : e413C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e413M : TinyExpressionP4Parser::e413C, K216, K216, K216, K217, K217, "TinyExpressionP4::CosFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9970:9973:body/1/literal", false, true, "text", false, K399); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e413M : TinyExpressionP4Parser::e413C, K227, K227, K227, K228, K228, "TinyExpressionP4::AddOp", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9984:9993:body/choice", false, false, "text", false, K4); } private static Match e413C(Session s, Frame f) { - return s.literal(f, "(", true, false, K400); + if (s.exclusiveReady(f) && switch (s.cp(f.c)) { case 43, 45 -> false; default -> true; }) return s.exclusiveFail(f); return s.choice(f,K595,false,new boolean[]{true,true},false); } private static Match e413M(Session s, Frame f) { - return s.literal(f, "(", true, false, K400); + if (s.exclusiveReady(f) && switch (s.cp(f.c)) { case 43, 45 -> false; default -> true; }) return s.exclusiveFail(f); return s.choice(f,K595,false,new boolean[]{true,true},false); } private static Match e414(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e414M(s, f) : e414C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e414M : TinyExpressionP4Parser::e414C, K629, K625, K225, K226, K226, "TinyExpressionP4::CosFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9974:9992:body/2/ruleRef", false, false, "node", false, K227); + if (s.bypassWrap) { Match r = f.matched ? e414M(s, f) : e414C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e414M : TinyExpressionP4Parser::e414C, K227, K227, K227, K228, K228, "TinyExpressionP4::AddOp", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9984:9987:body/0/literal", false, true, "text", false, K596); } private static Match e414C(Session s, Frame f) { - return parseArgumentExpression_38(s, f); + return s.literal(f, "+", true, false, K597); } private static Match e414M(Session s, Frame f) { - return parseArgumentExpression_38(s, f); + return s.literal(f, "+", true, false, K597); } private static Match e415(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e415M(s, f) : e415C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e415M : TinyExpressionP4Parser::e415C, K216, K216, K216, K217, K217, "TinyExpressionP4::CosFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9998:10001:body/3/literal", false, true, "text", false, K401); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e415M : TinyExpressionP4Parser::e415C, K227, K227, K227, K228, K228, "TinyExpressionP4::AddOp", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9990:9993:body/1/literal", false, true, "text", false, K598); } private static Match e415C(Session s, Frame f) { - return s.literal(f, ")", true, false, K402); + return s.literal(f, "-", true, false, K599); } private static Match e415M(Session s, Frame f) { - return s.literal(f, ")", true, false, K402); + return s.literal(f, "-", true, false, K599); } private static Match e416(Session s, Frame f) { - f.reset = false; - if (s.bypassWrap) { Match r = f.matched ? e416M(s, f) : e416C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e416M : TinyExpressionP4Parser::e416C, K216, K216, K216, K217, K217, "TinyExpressionP4::TanFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10057:10094:body/seq", false, false, "node", false, K4); + if (s.bypassWrap) { Match r = f.matched ? e416M(s, f) : e416C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e416M : TinyExpressionP4Parser::e416C, K227, K227, K227, K228, K228, "TinyExpressionP4::MulOp", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10008:10017:body/choice", false, false, "text", false, K4); } private static Match e416C(Session s, Frame f) { - return s.sequence(f, K630, K620); + if (s.exclusiveReady(f) && switch (s.cp(f.c)) { case 42, 47 -> false; default -> true; }) return s.exclusiveFail(f); return s.choice(f,K600,false,new boolean[]{true,true},false); } private static Match e416M(Session s, Frame f) { - return s.sequence(f, K630, K620); + if (s.exclusiveReady(f) && switch (s.cp(f.c)) { case 42, 47 -> false; default -> true; }) return s.exclusiveFail(f); return s.choice(f,K600,false,new boolean[]{true,true},false); } private static Match e417(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e417M(s, f) : e417C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e417M : TinyExpressionP4Parser::e417C, K216, K216, K216, K217, K217, "TinyExpressionP4::TanFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10057:10062:body/0/literal", false, true, "text", false, K631); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e417M : TinyExpressionP4Parser::e417C, K227, K227, K227, K228, K228, "TinyExpressionP4::MulOp", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10008:10011:body/0/literal", false, true, "text", false, K601); } private static Match e417C(Session s, Frame f) { - return s.literal(f, "tan", true, false, K632); + return s.literal(f, "*", true, false, K602); } private static Match e417M(Session s, Frame f) { - return s.literal(f, "tan", true, false, K632); + return s.literal(f, "*", true, false, K602); } private static Match e418(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e418M(s, f) : e418C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e418M : TinyExpressionP4Parser::e418C, K216, K216, K216, K217, K217, "TinyExpressionP4::TanFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10063:10066:body/1/literal", false, true, "text", false, K399); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e418M : TinyExpressionP4Parser::e418C, K227, K227, K227, K228, K228, "TinyExpressionP4::MulOp", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10014:10017:body/1/literal", false, true, "text", false, K603); } private static Match e418C(Session s, Frame f) { - return s.literal(f, "(", true, false, K400); + return s.literal(f, "/", true, false, K604); } private static Match e418M(Session s, Frame f) { - return s.literal(f, "(", true, false, K400); + return s.literal(f, "/", true, false, K604); } private static Match e419(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e419M(s, f) : e419C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e419M : TinyExpressionP4Parser::e419C, K633, K625, K225, K226, K226, "TinyExpressionP4::TanFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10067:10085:body/2/ruleRef", false, false, "node", false, K227); + if (s.bypassWrap) { Match r = f.matched ? e419M(s, f) : e419C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e419M : TinyExpressionP4Parser::e419C, K227, K227, K227, K228, K228, "TinyExpressionP4::MathFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10125:10379:body/choice", false, false, "node", false, K4); } private static Match e419C(Session s, Frame f) { - return parseArgumentExpression_38(s, f); + return s.choice(f,K656,false,null,false,K655); } private static Match e419M(Session s, Frame f) { - return parseArgumentExpression_38(s, f); + return s.choice(f,K656,false,null,false,K655); } private static Match e420(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e420M(s, f) : e420C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e420M : TinyExpressionP4Parser::e420C, K216, K216, K216, K217, K217, "TinyExpressionP4::TanFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10091:10094:body/3/literal", false, true, "text", false, K401); + if (s.bypassWrap) { Match r = f.matched ? e420M(s, f) : e420C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e420M : TinyExpressionP4Parser::e420C, K227, K227, K227, K228, K228, "TinyExpressionP4::MathFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10125:10136:body/0/ruleRef", false, false, "node", false, K4); } private static Match e420C(Session s, Frame f) { - return s.literal(f, ")", true, false, K402); + return parseSinFunction_45(s, f); } private static Match e420M(Session s, Frame f) { - return s.literal(f, ")", true, false, K402); + return parseSinFunction_45(s, f); } private static Match e421(Session s, Frame f) { - f.reset = false; if (s.bypassWrap) { Match r = f.matched ? e421M(s, f) : e421C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e421M : TinyExpressionP4Parser::e421C, K216, K216, K216, K217, K217, "TinyExpressionP4::SqrtFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10152:10190:body/seq", false, false, "node", false, K4); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e421M : TinyExpressionP4Parser::e421C, K227, K227, K227, K228, K228, "TinyExpressionP4::MathFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10143:10154:body/1/ruleRef", false, false, "node", false, K4); } private static Match e421C(Session s, Frame f) { - return s.sequence(f, K634, K620); + return parseCosFunction_46(s, f); } private static Match e421M(Session s, Frame f) { - return s.sequence(f, K634, K620); + return parseCosFunction_46(s, f); } private static Match e422(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e422M(s, f) : e422C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e422M : TinyExpressionP4Parser::e422C, K216, K216, K216, K217, K217, "TinyExpressionP4::SqrtFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10152:10158:body/0/literal", false, true, "text", false, K635); + if (s.bypassWrap) { Match r = f.matched ? e422M(s, f) : e422C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e422M : TinyExpressionP4Parser::e422C, K227, K227, K227, K228, K228, "TinyExpressionP4::MathFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10161:10172:body/2/ruleRef", false, false, "node", false, K4); } private static Match e422C(Session s, Frame f) { - return s.literal(f, "sqrt", true, false, K636); + return parseTanFunction_47(s, f); } private static Match e422M(Session s, Frame f) { - return s.literal(f, "sqrt", true, false, K636); + return parseTanFunction_47(s, f); } private static Match e423(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e423M(s, f) : e423C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e423M : TinyExpressionP4Parser::e423C, K216, K216, K216, K217, K217, "TinyExpressionP4::SqrtFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10159:10162:body/1/literal", false, true, "text", false, K399); + if (s.bypassWrap) { Match r = f.matched ? e423M(s, f) : e423C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e423M : TinyExpressionP4Parser::e423C, K227, K227, K227, K228, K228, "TinyExpressionP4::MathFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10179:10191:body/3/ruleRef", false, false, "node", false, K4); } private static Match e423C(Session s, Frame f) { - return s.literal(f, "(", true, false, K400); + return parseSqrtFunction_48(s, f); } private static Match e423M(Session s, Frame f) { - return s.literal(f, "(", true, false, K400); + return parseSqrtFunction_48(s, f); } private static Match e424(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e424M(s, f) : e424C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e424M : TinyExpressionP4Parser::e424C, K637, K625, K225, K226, K226, "TinyExpressionP4::SqrtFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10163:10181:body/2/ruleRef", false, false, "node", false, K227); + if (s.bypassWrap) { Match r = f.matched ? e424M(s, f) : e424C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e424M : TinyExpressionP4Parser::e424C, K227, K227, K227, K228, K228, "TinyExpressionP4::MathFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10198:10209:body/4/ruleRef", false, false, "node", false, K4); } private static Match e424C(Session s, Frame f) { - return parseArgumentExpression_38(s, f); + return parseMinFunction_49(s, f); } private static Match e424M(Session s, Frame f) { - return parseArgumentExpression_38(s, f); + return parseMinFunction_49(s, f); } private static Match e425(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e425M(s, f) : e425C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e425M : TinyExpressionP4Parser::e425C, K216, K216, K216, K217, K217, "TinyExpressionP4::SqrtFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10187:10190:body/3/literal", false, true, "text", false, K401); + if (s.bypassWrap) { Match r = f.matched ? e425M(s, f) : e425C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e425M : TinyExpressionP4Parser::e425C, K227, K227, K227, K228, K228, "TinyExpressionP4::MathFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10216:10227:body/5/ruleRef", false, false, "node", false, K4); } private static Match e425C(Session s, Frame f) { - return s.literal(f, ")", true, false, K402); + return parseMaxFunction_50(s, f); } private static Match e425M(Session s, Frame f) { - return s.literal(f, ")", true, false, K402); + return parseMaxFunction_50(s, f); } private static Match e426(Session s, Frame f) { - f.reset = false; if (s.bypassWrap) { Match r = f.matched ? e426M(s, f) : e426C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e426M : TinyExpressionP4Parser::e426C, K216, K216, K216, K217, K217, "TinyExpressionP4::MinFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10254:10326:body/seq", false, false, "node", true, K4); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e426M : TinyExpressionP4Parser::e426C, K227, K227, K227, K228, K228, "TinyExpressionP4::MathFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10234:10248:body/6/ruleRef", false, false, "node", false, K4); } private static Match e426C(Session s, Frame f) { - return s.sequence(f, K638, K394); + return parseRandomFunction_51(s, f); } private static Match e426M(Session s, Frame f) { - return s.sequence(f, K638, K394); + return parseRandomFunction_51(s, f); } private static Match e427(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e427M(s, f) : e427C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e427M : TinyExpressionP4Parser::e427C, K216, K216, K216, K217, K217, "TinyExpressionP4::MinFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10254:10259:body/0/literal", false, true, "text", false, K639); + if (s.bypassWrap) { Match r = f.matched ? e427M(s, f) : e427C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e427M : TinyExpressionP4Parser::e427C, K227, K227, K227, K228, K228, "TinyExpressionP4::MathFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10255:10266:body/7/ruleRef", false, false, "node", false, K4); } private static Match e427C(Session s, Frame f) { - return s.literal(f, "min", true, false, K640); + return parseAbsFunction_52(s, f); } private static Match e427M(Session s, Frame f) { - return s.literal(f, "min", true, false, K640); + return parseAbsFunction_52(s, f); } private static Match e428(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e428M(s, f) : e428C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e428M : TinyExpressionP4Parser::e428C, K216, K216, K216, K217, K217, "TinyExpressionP4::MinFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10260:10263:body/1/literal", false, true, "text", false, K399); + if (s.bypassWrap) { Match r = f.matched ? e428M(s, f) : e428C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e428M : TinyExpressionP4Parser::e428C, K227, K227, K227, K228, K228, "TinyExpressionP4::MathFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10273:10286:body/8/ruleRef", false, false, "node", false, K4); } private static Match e428C(Session s, Frame f) { - return s.literal(f, "(", true, false, K400); + return parseRoundFunction_53(s, f); } private static Match e428M(Session s, Frame f) { - return s.literal(f, "(", true, false, K400); + return parseRoundFunction_53(s, f); } private static Match e429(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e429M(s, f) : e429C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e429M : TinyExpressionP4Parser::e429C, K641, K642, K225, K226, K226, "TinyExpressionP4::MinFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10264:10282:body/2/ruleRef", false, false, "node", false, K227); + if (s.bypassWrap) { Match r = f.matched ? e429M(s, f) : e429C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e429M : TinyExpressionP4Parser::e429C, K227, K227, K227, K228, K228, "TinyExpressionP4::MathFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10293:10305:body/9/ruleRef", false, false, "node", false, K4); } private static Match e429C(Session s, Frame f) { - return parseArgumentExpression_38(s, f); + return parseCeilFunction_54(s, f); } private static Match e429M(Session s, Frame f) { - return parseArgumentExpression_38(s, f); + return parseCeilFunction_54(s, f); } private static Match e430(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e430M(s, f) : e430C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e430M : TinyExpressionP4Parser::e430C, K216, K216, K216, K217, K217, "TinyExpressionP4::MinFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10290:10322:body/3/repeat", true, false, "node", true, K404); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e430M : TinyExpressionP4Parser::e430C, K227, K227, K227, K228, K228, "TinyExpressionP4::MathFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10312:10325:body/10/ruleRef", false, false, "node", false, K4); } private static Match e430C(Session s, Frame f) { - return s.repeat(f, TinyExpressionP4Parser::e431, 0, Integer.MAX_VALUE, null, Trivia.NONE); + return parseFloorFunction_55(s, f); } private static Match e430M(Session s, Frame f) { - return s.repeat(f, TinyExpressionP4Parser::e431, 0, Integer.MAX_VALUE, null, Trivia.NONE); + return parseFloorFunction_55(s, f); } private static Match e431(Session s, Frame f) { - f.reset = false; if (s.bypassWrap) { Match r = f.matched ? e431M(s, f) : e431C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e431M : TinyExpressionP4Parser::e431C, K216, K216, K216, K217, K217, "TinyExpressionP4::MinFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10292:10314:body/3/0/seq", false, false, "node", false, K404); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e431M : TinyExpressionP4Parser::e431C, K227, K227, K227, K228, K228, "TinyExpressionP4::MathFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10332:10343:body/11/ruleRef", false, false, "node", false, K4); } private static Match e431C(Session s, Frame f) { - return s.sequence(f, K643, K271); + return parsePowFunction_56(s, f); } private static Match e431M(Session s, Frame f) { - return s.sequence(f, K643, K271); + return parsePowFunction_56(s, f); } private static Match e432(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e432M(s, f) : e432C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e432M : TinyExpressionP4Parser::e432C, K216, K216, K216, K217, K217, "TinyExpressionP4::MinFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10292:10295:body/3/0/0/literal", false, true, "text", false, K404); + if (s.bypassWrap) { Match r = f.matched ? e432M(s, f) : e432C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e432M : TinyExpressionP4Parser::e432C, K227, K227, K227, K228, K228, "TinyExpressionP4::MathFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10350:10361:body/12/ruleRef", false, false, "node", false, K4); } private static Match e432C(Session s, Frame f) { - return s.literal(f, ",", true, false, K407); + return parseLogFunction_57(s, f); } private static Match e432M(Session s, Frame f) { - return s.literal(f, ",", true, false, K407); + return parseLogFunction_57(s, f); } private static Match e433(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e433M(s, f) : e433C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e433M : TinyExpressionP4Parser::e433C, K644, K645, K225, K226, K226, "TinyExpressionP4::MinFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10296:10314:body/3/0/1/ruleRef", false, false, "node", false, K227); + if (s.bypassWrap) { Match r = f.matched ? e433M(s, f) : e433C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e433M : TinyExpressionP4Parser::e433C, K227, K227, K227, K228, K228, "TinyExpressionP4::MathFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10368:10379:body/13/ruleRef", false, false, "node", false, K4); } private static Match e433C(Session s, Frame f) { - return parseArgumentExpression_38(s, f); + return parseExpFunction_58(s, f); } private static Match e433M(Session s, Frame f) { - return parseArgumentExpression_38(s, f); + return parseExpFunction_58(s, f); } private static Match e434(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e434M(s, f) : e434C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e434M : TinyExpressionP4Parser::e434C, K216, K216, K216, K217, K217, "TinyExpressionP4::MinFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10323:10326:body/4/literal", false, true, "text", false, K401); + f.reset = false; + if (s.bypassWrap) { Match r = f.matched ? e434M(s, f) : e434C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e434M : TinyExpressionP4Parser::e434C, K227, K227, K227, K228, K228, "TinyExpressionP4::SinFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10435:10472:body/seq", false, false, "node", false, K4); } private static Match e434C(Session s, Frame f) { - return s.literal(f, ")", true, false, K402); + return s.sequence(f, K659, K658); } private static Match e434M(Session s, Frame f) { - return s.literal(f, ")", true, false, K402); + return s.sequence(f, K659, K658); } private static Match e435(Session s, Frame f) { - f.reset = false; - if (s.bypassWrap) { Match r = f.matched ? e435M(s, f) : e435C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e435M : TinyExpressionP4Parser::e435C, K216, K216, K216, K217, K217, "TinyExpressionP4::MaxFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10390:10462:body/seq", false, false, "node", true, K4); + if (s.bypassWrap) { Match r = f.matched ? e435M(s, f) : e435C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e435M : TinyExpressionP4Parser::e435C, K227, K227, K227, K228, K228, "TinyExpressionP4::SinFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10435:10440:body/0/literal", false, true, "text", false, K660); } private static Match e435C(Session s, Frame f) { - return s.sequence(f, K646, K394); + return s.literal(f, "sin", true, false, K661); } private static Match e435M(Session s, Frame f) { - return s.sequence(f, K646, K394); + return s.literal(f, "sin", true, false, K661); } private static Match e436(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e436M(s, f) : e436C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e436M : TinyExpressionP4Parser::e436C, K216, K216, K216, K217, K217, "TinyExpressionP4::MaxFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10390:10395:body/0/literal", false, true, "text", false, K647); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e436M : TinyExpressionP4Parser::e436C, K227, K227, K227, K228, K228, "TinyExpressionP4::SinFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10441:10444:body/1/literal", false, true, "text", false, K437); } private static Match e436C(Session s, Frame f) { - return s.literal(f, "max", true, false, K648); + return s.literal(f, "(", true, false, K438); } private static Match e436M(Session s, Frame f) { - return s.literal(f, "max", true, false, K648); + return s.literal(f, "(", true, false, K438); } private static Match e437(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e437M(s, f) : e437C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e437M : TinyExpressionP4Parser::e437C, K216, K216, K216, K217, K217, "TinyExpressionP4::MaxFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10396:10399:body/1/literal", false, true, "text", false, K399); + if (s.bypassCapture) { Match r = f.matched ? e437M(s, f) : e437C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e437M : TinyExpressionP4Parser::e437C, K662, K663, K236, K237, K237, "TinyExpressionP4::SinFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10445:10463:body/2/ruleRef", false, false, "node", false, K238); } private static Match e437C(Session s, Frame f) { - return s.literal(f, "(", true, false, K400); + return parseArgumentExpression_38(s, f); } private static Match e437M(Session s, Frame f) { - return s.literal(f, "(", true, false, K400); + return parseArgumentExpression_38(s, f); } private static Match e438(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e438M(s, f) : e438C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e438M : TinyExpressionP4Parser::e438C, K649, K642, K225, K226, K226, "TinyExpressionP4::MaxFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10400:10418:body/2/ruleRef", false, false, "node", false, K227); + if (s.bypassWrap) { Match r = f.matched ? e438M(s, f) : e438C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e438M : TinyExpressionP4Parser::e438C, K227, K227, K227, K228, K228, "TinyExpressionP4::SinFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10469:10472:body/3/literal", false, true, "text", false, K439); } private static Match e438C(Session s, Frame f) { - return parseArgumentExpression_38(s, f); + return s.literal(f, ")", true, false, K440); } private static Match e438M(Session s, Frame f) { - return parseArgumentExpression_38(s, f); + return s.literal(f, ")", true, false, K440); } private static Match e439(Session s, Frame f) { + f.reset = false; if (s.bypassWrap) { Match r = f.matched ? e439M(s, f) : e439C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e439M : TinyExpressionP4Parser::e439C, K216, K216, K216, K217, K217, "TinyExpressionP4::MaxFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10426:10458:body/3/repeat", true, false, "node", true, K404); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e439M : TinyExpressionP4Parser::e439C, K227, K227, K227, K228, K228, "TinyExpressionP4::CosFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10528:10565:body/seq", false, false, "node", false, K4); } private static Match e439C(Session s, Frame f) { - return s.repeat(f, TinyExpressionP4Parser::e440, 0, Integer.MAX_VALUE, null, Trivia.NONE); + return s.sequence(f, K664, K658); } private static Match e439M(Session s, Frame f) { - return s.repeat(f, TinyExpressionP4Parser::e440, 0, Integer.MAX_VALUE, null, Trivia.NONE); + return s.sequence(f, K664, K658); } private static Match e440(Session s, Frame f) { - f.reset = false; - if (s.bypassWrap) { Match r = f.matched ? e440M(s, f) : e440C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e440M : TinyExpressionP4Parser::e440C, K216, K216, K216, K217, K217, "TinyExpressionP4::MaxFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10428:10450:body/3/0/seq", false, false, "node", false, K404); + if (s.bypassWrap) { Match r = f.matched ? e440M(s, f) : e440C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e440M : TinyExpressionP4Parser::e440C, K227, K227, K227, K228, K228, "TinyExpressionP4::CosFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10528:10533:body/0/literal", false, true, "text", false, K665); } private static Match e440C(Session s, Frame f) { - return s.sequence(f, K650, K271); + return s.literal(f, "cos", true, false, K666); } private static Match e440M(Session s, Frame f) { - return s.sequence(f, K650, K271); + return s.literal(f, "cos", true, false, K666); } private static Match e441(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e441M(s, f) : e441C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e441M : TinyExpressionP4Parser::e441C, K216, K216, K216, K217, K217, "TinyExpressionP4::MaxFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10428:10431:body/3/0/0/literal", false, true, "text", false, K404); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e441M : TinyExpressionP4Parser::e441C, K227, K227, K227, K228, K228, "TinyExpressionP4::CosFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10534:10537:body/1/literal", false, true, "text", false, K437); } private static Match e441C(Session s, Frame f) { - return s.literal(f, ",", true, false, K407); + return s.literal(f, "(", true, false, K438); } private static Match e441M(Session s, Frame f) { - return s.literal(f, ",", true, false, K407); + return s.literal(f, "(", true, false, K438); } private static Match e442(Session s, Frame f) { if (s.bypassCapture) { Match r = f.matched ? e442M(s, f) : e442C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e442M : TinyExpressionP4Parser::e442C, K651, K645, K225, K226, K226, "TinyExpressionP4::MaxFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10432:10450:body/3/0/1/ruleRef", false, false, "node", false, K227); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e442M : TinyExpressionP4Parser::e442C, K667, K663, K236, K237, K237, "TinyExpressionP4::CosFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10538:10556:body/2/ruleRef", false, false, "node", false, K238); } private static Match e442C(Session s, Frame f) { return parseArgumentExpression_38(s, f); @@ -5847,191 +5907,191 @@ private static Match e442M(Session s, Frame f) { } private static Match e443(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e443M(s, f) : e443C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e443M : TinyExpressionP4Parser::e443C, K216, K216, K216, K217, K217, "TinyExpressionP4::MaxFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10459:10462:body/4/literal", false, true, "text", false, K401); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e443M : TinyExpressionP4Parser::e443C, K227, K227, K227, K228, K228, "TinyExpressionP4::CosFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10562:10565:body/3/literal", false, true, "text", false, K439); } private static Match e443C(Session s, Frame f) { - return s.literal(f, ")", true, false, K402); + return s.literal(f, ")", true, false, K440); } private static Match e443M(Session s, Frame f) { - return s.literal(f, ")", true, false, K402); + return s.literal(f, ")", true, false, K440); } private static Match e444(Session s, Frame f) { f.reset = false; - if (s.bypassWrap) { Match r = f.matched ? e444M(s, f) : e444C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e444M : TinyExpressionP4Parser::e444C, K216, K216, K216, K217, K217, "TinyExpressionP4::RandomFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10510:10526:body/seq", false, false, "text", false, K4); + if (s.bypassWrap) { Match r = f.matched ? e444M(s, f) : e444C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e444M : TinyExpressionP4Parser::e444C, K227, K227, K227, K228, K228, "TinyExpressionP4::TanFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10621:10658:body/seq", false, false, "node", false, K4); } private static Match e444C(Session s, Frame f) { - return s.sequence(f, K652, K251); + return s.sequence(f, K668, K658); } private static Match e444M(Session s, Frame f) { - return s.sequence(f, K652, K251); + return s.sequence(f, K668, K658); } private static Match e445(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e445M(s, f) : e445C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e445M : TinyExpressionP4Parser::e445C, K216, K216, K216, K217, K217, "TinyExpressionP4::RandomFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10510:10518:body/0/literal", false, true, "text", false, K653); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e445M : TinyExpressionP4Parser::e445C, K227, K227, K227, K228, K228, "TinyExpressionP4::TanFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10621:10626:body/0/literal", false, true, "text", false, K669); } private static Match e445C(Session s, Frame f) { - return s.literal(f, "random", true, false, K654); + return s.literal(f, "tan", true, false, K670); } private static Match e445M(Session s, Frame f) { - return s.literal(f, "random", true, false, K654); + return s.literal(f, "tan", true, false, K670); } private static Match e446(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e446M(s, f) : e446C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e446M : TinyExpressionP4Parser::e446C, K216, K216, K216, K217, K217, "TinyExpressionP4::RandomFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10519:10522:body/1/literal", false, true, "text", false, K399); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e446M : TinyExpressionP4Parser::e446C, K227, K227, K227, K228, K228, "TinyExpressionP4::TanFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10627:10630:body/1/literal", false, true, "text", false, K437); } private static Match e446C(Session s, Frame f) { - return s.literal(f, "(", true, false, K400); + return s.literal(f, "(", true, false, K438); } private static Match e446M(Session s, Frame f) { - return s.literal(f, "(", true, false, K400); + return s.literal(f, "(", true, false, K438); } private static Match e447(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e447M(s, f) : e447C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e447M : TinyExpressionP4Parser::e447C, K216, K216, K216, K217, K217, "TinyExpressionP4::RandomFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10523:10526:body/2/literal", false, true, "text", false, K401); + if (s.bypassCapture) { Match r = f.matched ? e447M(s, f) : e447C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e447M : TinyExpressionP4Parser::e447C, K671, K663, K236, K237, K237, "TinyExpressionP4::TanFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10631:10649:body/2/ruleRef", false, false, "node", false, K238); } private static Match e447C(Session s, Frame f) { - return s.literal(f, ")", true, false, K402); + return parseArgumentExpression_38(s, f); } private static Match e447M(Session s, Frame f) { - return s.literal(f, ")", true, false, K402); + return parseArgumentExpression_38(s, f); } private static Match e448(Session s, Frame f) { - f.reset = false; - if (s.bypassWrap) { Match r = f.matched ? e448M(s, f) : e448C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e448M : TinyExpressionP4Parser::e448C, K216, K216, K216, K217, K217, "TinyExpressionP4::AbsFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10582:10619:body/seq", false, false, "node", false, K4); + if (s.bypassWrap) { Match r = f.matched ? e448M(s, f) : e448C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e448M : TinyExpressionP4Parser::e448C, K227, K227, K227, K228, K228, "TinyExpressionP4::TanFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10655:10658:body/3/literal", false, true, "text", false, K439); } private static Match e448C(Session s, Frame f) { - return s.sequence(f, K655, K620); + return s.literal(f, ")", true, false, K440); } private static Match e448M(Session s, Frame f) { - return s.sequence(f, K655, K620); + return s.literal(f, ")", true, false, K440); } private static Match e449(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e449M(s, f) : e449C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e449M : TinyExpressionP4Parser::e449C, K216, K216, K216, K217, K217, "TinyExpressionP4::AbsFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10582:10587:body/0/literal", false, true, "text", false, K656); + f.reset = false; + if (s.bypassWrap) { Match r = f.matched ? e449M(s, f) : e449C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e449M : TinyExpressionP4Parser::e449C, K227, K227, K227, K228, K228, "TinyExpressionP4::SqrtFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10716:10754:body/seq", false, false, "node", false, K4); } private static Match e449C(Session s, Frame f) { - return s.literal(f, "abs", true, false, K657); + return s.sequence(f, K672, K658); } private static Match e449M(Session s, Frame f) { - return s.literal(f, "abs", true, false, K657); + return s.sequence(f, K672, K658); } private static Match e450(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e450M(s, f) : e450C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e450M : TinyExpressionP4Parser::e450C, K216, K216, K216, K217, K217, "TinyExpressionP4::AbsFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10588:10591:body/1/literal", false, true, "text", false, K399); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e450M : TinyExpressionP4Parser::e450C, K227, K227, K227, K228, K228, "TinyExpressionP4::SqrtFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10716:10722:body/0/literal", false, true, "text", false, K673); } private static Match e450C(Session s, Frame f) { - return s.literal(f, "(", true, false, K400); + return s.literal(f, "sqrt", true, false, K674); } private static Match e450M(Session s, Frame f) { - return s.literal(f, "(", true, false, K400); + return s.literal(f, "sqrt", true, false, K674); } private static Match e451(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e451M(s, f) : e451C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e451M : TinyExpressionP4Parser::e451C, K658, K625, K225, K226, K226, "TinyExpressionP4::AbsFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10592:10610:body/2/ruleRef", false, false, "node", false, K227); + if (s.bypassWrap) { Match r = f.matched ? e451M(s, f) : e451C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e451M : TinyExpressionP4Parser::e451C, K227, K227, K227, K228, K228, "TinyExpressionP4::SqrtFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10723:10726:body/1/literal", false, true, "text", false, K437); } private static Match e451C(Session s, Frame f) { - return parseArgumentExpression_38(s, f); + return s.literal(f, "(", true, false, K438); } private static Match e451M(Session s, Frame f) { - return parseArgumentExpression_38(s, f); + return s.literal(f, "(", true, false, K438); } private static Match e452(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e452M(s, f) : e452C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e452M : TinyExpressionP4Parser::e452C, K216, K216, K216, K217, K217, "TinyExpressionP4::AbsFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10616:10619:body/3/literal", false, true, "text", false, K401); + if (s.bypassCapture) { Match r = f.matched ? e452M(s, f) : e452C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e452M : TinyExpressionP4Parser::e452C, K675, K663, K236, K237, K237, "TinyExpressionP4::SqrtFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10727:10745:body/2/ruleRef", false, false, "node", false, K238); } private static Match e452C(Session s, Frame f) { - return s.literal(f, ")", true, false, K402); + return parseArgumentExpression_38(s, f); } private static Match e452M(Session s, Frame f) { - return s.literal(f, ")", true, false, K402); + return parseArgumentExpression_38(s, f); } private static Match e453(Session s, Frame f) { - f.reset = false; - if (s.bypassWrap) { Match r = f.matched ? e453M(s, f) : e453C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e453M : TinyExpressionP4Parser::e453C, K216, K216, K216, K217, K217, "TinyExpressionP4::RoundFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10679:10718:body/seq", false, false, "node", false, K4); + if (s.bypassWrap) { Match r = f.matched ? e453M(s, f) : e453C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e453M : TinyExpressionP4Parser::e453C, K227, K227, K227, K228, K228, "TinyExpressionP4::SqrtFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10751:10754:body/3/literal", false, true, "text", false, K439); } private static Match e453C(Session s, Frame f) { - return s.sequence(f, K659, K620); + return s.literal(f, ")", true, false, K440); } private static Match e453M(Session s, Frame f) { - return s.sequence(f, K659, K620); + return s.literal(f, ")", true, false, K440); } private static Match e454(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e454M(s, f) : e454C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e454M : TinyExpressionP4Parser::e454C, K216, K216, K216, K217, K217, "TinyExpressionP4::RoundFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10679:10686:body/0/literal", false, true, "text", false, K660); + f.reset = false; + if (s.bypassWrap) { Match r = f.matched ? e454M(s, f) : e454C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e454M : TinyExpressionP4Parser::e454C, K227, K227, K227, K228, K228, "TinyExpressionP4::MinFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10818:10890:body/seq", false, false, "node", true, K4); } private static Match e454C(Session s, Frame f) { - return s.literal(f, "round", true, false, K661); + return s.sequence(f, K676, K231); } private static Match e454M(Session s, Frame f) { - return s.literal(f, "round", true, false, K661); + return s.sequence(f, K676, K231); } private static Match e455(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e455M(s, f) : e455C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e455M : TinyExpressionP4Parser::e455C, K216, K216, K216, K217, K217, "TinyExpressionP4::RoundFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10687:10690:body/1/literal", false, true, "text", false, K399); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e455M : TinyExpressionP4Parser::e455C, K227, K227, K227, K228, K228, "TinyExpressionP4::MinFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10818:10823:body/0/literal", false, true, "text", false, K677); } private static Match e455C(Session s, Frame f) { - return s.literal(f, "(", true, false, K400); + return s.literal(f, "min", true, false, K678); } private static Match e455M(Session s, Frame f) { - return s.literal(f, "(", true, false, K400); + return s.literal(f, "min", true, false, K678); } private static Match e456(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e456M(s, f) : e456C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e456M : TinyExpressionP4Parser::e456C, K662, K625, K225, K226, K226, "TinyExpressionP4::RoundFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10691:10709:body/2/ruleRef", false, false, "node", false, K227); + if (s.bypassWrap) { Match r = f.matched ? e456M(s, f) : e456C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e456M : TinyExpressionP4Parser::e456C, K227, K227, K227, K228, K228, "TinyExpressionP4::MinFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10824:10827:body/1/literal", false, true, "text", false, K437); } private static Match e456C(Session s, Frame f) { - return parseArgumentExpression_38(s, f); + return s.literal(f, "(", true, false, K438); } private static Match e456M(Session s, Frame f) { - return parseArgumentExpression_38(s, f); + return s.literal(f, "(", true, false, K438); } private static Match e457(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e457M(s, f) : e457C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e457M : TinyExpressionP4Parser::e457C, K216, K216, K216, K217, K217, "TinyExpressionP4::RoundFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10715:10718:body/3/literal", false, true, "text", false, K401); + if (s.bypassCapture) { Match r = f.matched ? e457M(s, f) : e457C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e457M : TinyExpressionP4Parser::e457C, K679, K680, K236, K237, K237, "TinyExpressionP4::MinFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10828:10846:body/2/ruleRef", false, false, "node", false, K238); } private static Match e457C(Session s, Frame f) { - return s.literal(f, ")", true, false, K402); + return parseArgumentExpression_38(s, f); } private static Match e457M(Session s, Frame f) { - return s.literal(f, ")", true, false, K402); + return parseArgumentExpression_38(s, f); } private static Match e458(Session s, Frame f) { - f.reset = false; if (s.bypassWrap) { Match r = f.matched ? e458M(s, f) : e458C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e458M : TinyExpressionP4Parser::e458C, K216, K216, K216, K217, K217, "TinyExpressionP4::CeilFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10776:10814:body/seq", false, false, "node", false, K4); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e458M : TinyExpressionP4Parser::e458C, K227, K227, K227, K228, K228, "TinyExpressionP4::MinFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10854:10886:body/3/repeat", true, false, "node", true, K442); } private static Match e458C(Session s, Frame f) { - return s.sequence(f, K663, K620); + return s.repeat(f, TinyExpressionP4Parser::e459, 0, Integer.MAX_VALUE, null, Trivia.NONE); } private static Match e458M(Session s, Frame f) { - return s.sequence(f, K663, K620); + return s.repeat(f, TinyExpressionP4Parser::e459, 0, Integer.MAX_VALUE, null, Trivia.NONE); } private static Match e459(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e459M(s, f) : e459C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e459M : TinyExpressionP4Parser::e459C, K216, K216, K216, K217, K217, "TinyExpressionP4::CeilFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10776:10782:body/0/literal", false, true, "text", false, K664); + f.reset = false; + if (s.bypassWrap) { Match r = f.matched ? e459M(s, f) : e459C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e459M : TinyExpressionP4Parser::e459C, K227, K227, K227, K228, K228, "TinyExpressionP4::MinFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10856:10878:body/3/0/seq", false, false, "node", false, K442); } private static Match e459C(Session s, Frame f) { - return s.literal(f, "ceil", true, false, K665); + return s.sequence(f, K681, K309); } private static Match e459M(Session s, Frame f) { - return s.literal(f, "ceil", true, false, K665); + return s.sequence(f, K681, K309); } private static Match e460(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e460M(s, f) : e460C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e460M : TinyExpressionP4Parser::e460C, K216, K216, K216, K217, K217, "TinyExpressionP4::CeilFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10783:10786:body/1/literal", false, true, "text", false, K399); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e460M : TinyExpressionP4Parser::e460C, K227, K227, K227, K228, K228, "TinyExpressionP4::MinFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10856:10859:body/3/0/0/literal", false, true, "text", false, K442); } private static Match e460C(Session s, Frame f) { - return s.literal(f, "(", true, false, K400); + return s.literal(f, ",", true, false, K445); } private static Match e460M(Session s, Frame f) { - return s.literal(f, "(", true, false, K400); + return s.literal(f, ",", true, false, K445); } private static Match e461(Session s, Frame f) { if (s.bypassCapture) { Match r = f.matched ? e461M(s, f) : e461C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e461M : TinyExpressionP4Parser::e461C, K666, K625, K225, K226, K226, "TinyExpressionP4::CeilFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10787:10805:body/2/ruleRef", false, false, "node", false, K227); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e461M : TinyExpressionP4Parser::e461C, K682, K683, K236, K237, K237, "TinyExpressionP4::MinFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10860:10878:body/3/0/1/ruleRef", false, false, "node", false, K238); } private static Match e461C(Session s, Frame f) { return parseArgumentExpression_38(s, f); @@ -6041,48 +6101,48 @@ private static Match e461M(Session s, Frame f) { } private static Match e462(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e462M(s, f) : e462C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e462M : TinyExpressionP4Parser::e462C, K216, K216, K216, K217, K217, "TinyExpressionP4::CeilFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10811:10814:body/3/literal", false, true, "text", false, K401); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e462M : TinyExpressionP4Parser::e462C, K227, K227, K227, K228, K228, "TinyExpressionP4::MinFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10887:10890:body/4/literal", false, true, "text", false, K439); } private static Match e462C(Session s, Frame f) { - return s.literal(f, ")", true, false, K402); + return s.literal(f, ")", true, false, K440); } private static Match e462M(Session s, Frame f) { - return s.literal(f, ")", true, false, K402); + return s.literal(f, ")", true, false, K440); } private static Match e463(Session s, Frame f) { f.reset = false; if (s.bypassWrap) { Match r = f.matched ? e463M(s, f) : e463C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e463M : TinyExpressionP4Parser::e463C, K216, K216, K216, K217, K217, "TinyExpressionP4::FloorFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10874:10913:body/seq", false, false, "node", false, K4); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e463M : TinyExpressionP4Parser::e463C, K227, K227, K227, K228, K228, "TinyExpressionP4::MaxFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10954:11026:body/seq", false, false, "node", true, K4); } private static Match e463C(Session s, Frame f) { - return s.sequence(f, K667, K620); + return s.sequence(f, K684, K231); } private static Match e463M(Session s, Frame f) { - return s.sequence(f, K667, K620); + return s.sequence(f, K684, K231); } private static Match e464(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e464M(s, f) : e464C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e464M : TinyExpressionP4Parser::e464C, K216, K216, K216, K217, K217, "TinyExpressionP4::FloorFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10874:10881:body/0/literal", false, true, "text", false, K668); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e464M : TinyExpressionP4Parser::e464C, K227, K227, K227, K228, K228, "TinyExpressionP4::MaxFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10954:10959:body/0/literal", false, true, "text", false, K685); } private static Match e464C(Session s, Frame f) { - return s.literal(f, "floor", true, false, K669); + return s.literal(f, "max", true, false, K686); } private static Match e464M(Session s, Frame f) { - return s.literal(f, "floor", true, false, K669); + return s.literal(f, "max", true, false, K686); } private static Match e465(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e465M(s, f) : e465C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e465M : TinyExpressionP4Parser::e465C, K216, K216, K216, K217, K217, "TinyExpressionP4::FloorFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10882:10885:body/1/literal", false, true, "text", false, K399); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e465M : TinyExpressionP4Parser::e465C, K227, K227, K227, K228, K228, "TinyExpressionP4::MaxFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10960:10963:body/1/literal", false, true, "text", false, K437); } private static Match e465C(Session s, Frame f) { - return s.literal(f, "(", true, false, K400); + return s.literal(f, "(", true, false, K438); } private static Match e465M(Session s, Frame f) { - return s.literal(f, "(", true, false, K400); + return s.literal(f, "(", true, false, K438); } private static Match e466(Session s, Frame f) { if (s.bypassCapture) { Match r = f.matched ? e466M(s, f) : e466C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e466M : TinyExpressionP4Parser::e466C, K670, K625, K225, K226, K226, "TinyExpressionP4::FloorFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10886:10904:body/2/ruleRef", false, false, "node", false, K227); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e466M : TinyExpressionP4Parser::e466C, K687, K680, K236, K237, K237, "TinyExpressionP4::MaxFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10964:10982:body/2/ruleRef", false, false, "node", false, K238); } private static Match e466C(Session s, Frame f) { return parseArgumentExpression_38(s, f); @@ -6091,1208 +6151,1209 @@ private static Match e466M(Session s, Frame f) { return parseArgumentExpression_38(s, f); } private static Match e467(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e467M(s, f) : e467C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e467M : TinyExpressionP4Parser::e467C, K216, K216, K216, K217, K217, "TinyExpressionP4::FloorFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10910:10913:body/3/literal", false, true, "text", false, K401); + if (s.bypassWrap) { Match r = f.matched ? e467M(s, f) : e467C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e467M : TinyExpressionP4Parser::e467C, K227, K227, K227, K228, K228, "TinyExpressionP4::MaxFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10990:11022:body/3/repeat", true, false, "node", true, K442); } private static Match e467C(Session s, Frame f) { - return s.literal(f, ")", true, false, K402); + return s.repeat(f, TinyExpressionP4Parser::e468, 0, Integer.MAX_VALUE, null, Trivia.NONE); } private static Match e467M(Session s, Frame f) { - return s.literal(f, ")", true, false, K402); + return s.repeat(f, TinyExpressionP4Parser::e468, 0, Integer.MAX_VALUE, null, Trivia.NONE); } private static Match e468(Session s, Frame f) { f.reset = false; if (s.bypassWrap) { Match r = f.matched ? e468M(s, f) : e468C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e468M : TinyExpressionP4Parser::e468C, K216, K216, K216, K217, K217, "TinyExpressionP4::PowFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10980:11051:body/seq", false, false, "node", true, K4); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e468M : TinyExpressionP4Parser::e468C, K227, K227, K227, K228, K228, "TinyExpressionP4::MaxFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10992:11014:body/3/0/seq", false, false, "node", false, K442); } private static Match e468C(Session s, Frame f) { - return s.sequence(f, K671, K263); + return s.sequence(f, K688, K309); } private static Match e468M(Session s, Frame f) { - return s.sequence(f, K671, K263); + return s.sequence(f, K688, K309); } private static Match e469(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e469M(s, f) : e469C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e469M : TinyExpressionP4Parser::e469C, K216, K216, K216, K217, K217, "TinyExpressionP4::PowFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10980:10985:body/0/literal", false, true, "text", false, K672); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e469M : TinyExpressionP4Parser::e469C, K227, K227, K227, K228, K228, "TinyExpressionP4::MaxFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10992:10995:body/3/0/0/literal", false, true, "text", false, K442); } private static Match e469C(Session s, Frame f) { - return s.literal(f, "pow", true, false, K673); + return s.literal(f, ",", true, false, K445); } private static Match e469M(Session s, Frame f) { - return s.literal(f, "pow", true, false, K673); + return s.literal(f, ",", true, false, K445); } private static Match e470(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e470M(s, f) : e470C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e470M : TinyExpressionP4Parser::e470C, K216, K216, K216, K217, K217, "TinyExpressionP4::PowFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10986:10989:body/1/literal", false, true, "text", false, K399); + if (s.bypassCapture) { Match r = f.matched ? e470M(s, f) : e470C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e470M : TinyExpressionP4Parser::e470C, K689, K683, K236, K237, K237, "TinyExpressionP4::MaxFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10996:11014:body/3/0/1/ruleRef", false, false, "node", false, K238); } private static Match e470C(Session s, Frame f) { - return s.literal(f, "(", true, false, K400); + return parseArgumentExpression_38(s, f); } private static Match e470M(Session s, Frame f) { - return s.literal(f, "(", true, false, K400); + return parseArgumentExpression_38(s, f); } private static Match e471(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e471M(s, f) : e471C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e471M : TinyExpressionP4Parser::e471C, K674, K675, K225, K226, K226, "TinyExpressionP4::PowFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10990:11008:body/2/ruleRef", false, false, "node", false, K227); + if (s.bypassWrap) { Match r = f.matched ? e471M(s, f) : e471C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e471M : TinyExpressionP4Parser::e471C, K227, K227, K227, K228, K228, "TinyExpressionP4::MaxFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11023:11026:body/4/literal", false, true, "text", false, K439); } private static Match e471C(Session s, Frame f) { - return parseArgumentExpression_38(s, f); + return s.literal(f, ")", true, false, K440); } private static Match e471M(Session s, Frame f) { - return parseArgumentExpression_38(s, f); + return s.literal(f, ")", true, false, K440); } private static Match e472(Session s, Frame f) { + f.reset = false; if (s.bypassWrap) { Match r = f.matched ? e472M(s, f) : e472C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e472M : TinyExpressionP4Parser::e472C, K216, K216, K216, K217, K217, "TinyExpressionP4::PowFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11015:11018:body/3/literal", false, true, "text", false, K404); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e472M : TinyExpressionP4Parser::e472C, K227, K227, K227, K228, K228, "TinyExpressionP4::RandomFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11074:11090:body/seq", false, false, "text", false, K4); } private static Match e472C(Session s, Frame f) { - return s.literal(f, ",", true, false, K407); + return s.sequence(f, K690, K255); } private static Match e472M(Session s, Frame f) { - return s.literal(f, ",", true, false, K407); + return s.sequence(f, K690, K255); } private static Match e473(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e473M(s, f) : e473C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e473M : TinyExpressionP4Parser::e473C, K676, K677, K225, K226, K226, "TinyExpressionP4::PowFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11019:11037:body/4/ruleRef", false, false, "node", false, K227); + if (s.bypassWrap) { Match r = f.matched ? e473M(s, f) : e473C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e473M : TinyExpressionP4Parser::e473C, K227, K227, K227, K228, K228, "TinyExpressionP4::RandomFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11074:11082:body/0/literal", false, true, "text", false, K691); } private static Match e473C(Session s, Frame f) { - return parseArgumentExpression_38(s, f); + return s.literal(f, "random", true, false, K692); } private static Match e473M(Session s, Frame f) { - return parseArgumentExpression_38(s, f); + return s.literal(f, "random", true, false, K692); } private static Match e474(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e474M(s, f) : e474C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e474M : TinyExpressionP4Parser::e474C, K216, K216, K216, K217, K217, "TinyExpressionP4::PowFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11048:11051:body/5/literal", false, true, "text", false, K401); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e474M : TinyExpressionP4Parser::e474C, K227, K227, K227, K228, K228, "TinyExpressionP4::RandomFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11083:11086:body/1/literal", false, true, "text", false, K437); } private static Match e474C(Session s, Frame f) { - return s.literal(f, ")", true, false, K402); + return s.literal(f, "(", true, false, K438); } private static Match e474M(Session s, Frame f) { - return s.literal(f, ")", true, false, K402); + return s.literal(f, "(", true, false, K438); } private static Match e475(Session s, Frame f) { - f.reset = false; - if (s.bypassWrap) { Match r = f.matched ? e475M(s, f) : e475C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e475M : TinyExpressionP4Parser::e475C, K216, K216, K216, K217, K217, "TinyExpressionP4::LogFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11107:11144:body/seq", false, false, "node", false, K4); + if (s.bypassWrap) { Match r = f.matched ? e475M(s, f) : e475C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e475M : TinyExpressionP4Parser::e475C, K227, K227, K227, K228, K228, "TinyExpressionP4::RandomFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11087:11090:body/2/literal", false, true, "text", false, K439); } private static Match e475C(Session s, Frame f) { - return s.sequence(f, K678, K620); + return s.literal(f, ")", true, false, K440); } private static Match e475M(Session s, Frame f) { - return s.sequence(f, K678, K620); + return s.literal(f, ")", true, false, K440); } private static Match e476(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e476M(s, f) : e476C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e476M : TinyExpressionP4Parser::e476C, K216, K216, K216, K217, K217, "TinyExpressionP4::LogFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11107:11112:body/0/literal", false, true, "text", false, K679); + f.reset = false; + if (s.bypassWrap) { Match r = f.matched ? e476M(s, f) : e476C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e476M : TinyExpressionP4Parser::e476C, K227, K227, K227, K228, K228, "TinyExpressionP4::AbsFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11146:11183:body/seq", false, false, "node", false, K4); } private static Match e476C(Session s, Frame f) { - return s.literal(f, "log", true, false, K680); + return s.sequence(f, K693, K658); } private static Match e476M(Session s, Frame f) { - return s.literal(f, "log", true, false, K680); + return s.sequence(f, K693, K658); } private static Match e477(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e477M(s, f) : e477C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e477M : TinyExpressionP4Parser::e477C, K216, K216, K216, K217, K217, "TinyExpressionP4::LogFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11113:11116:body/1/literal", false, true, "text", false, K399); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e477M : TinyExpressionP4Parser::e477C, K227, K227, K227, K228, K228, "TinyExpressionP4::AbsFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11146:11151:body/0/literal", false, true, "text", false, K694); } private static Match e477C(Session s, Frame f) { - return s.literal(f, "(", true, false, K400); + return s.literal(f, "abs", true, false, K695); } private static Match e477M(Session s, Frame f) { - return s.literal(f, "(", true, false, K400); + return s.literal(f, "abs", true, false, K695); } private static Match e478(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e478M(s, f) : e478C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e478M : TinyExpressionP4Parser::e478C, K681, K625, K225, K226, K226, "TinyExpressionP4::LogFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11117:11135:body/2/ruleRef", false, false, "node", false, K227); + if (s.bypassWrap) { Match r = f.matched ? e478M(s, f) : e478C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e478M : TinyExpressionP4Parser::e478C, K227, K227, K227, K228, K228, "TinyExpressionP4::AbsFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11152:11155:body/1/literal", false, true, "text", false, K437); } private static Match e478C(Session s, Frame f) { - return parseArgumentExpression_38(s, f); + return s.literal(f, "(", true, false, K438); } private static Match e478M(Session s, Frame f) { - return parseArgumentExpression_38(s, f); + return s.literal(f, "(", true, false, K438); } private static Match e479(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e479M(s, f) : e479C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e479M : TinyExpressionP4Parser::e479C, K216, K216, K216, K217, K217, "TinyExpressionP4::LogFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11141:11144:body/3/literal", false, true, "text", false, K401); + if (s.bypassCapture) { Match r = f.matched ? e479M(s, f) : e479C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e479M : TinyExpressionP4Parser::e479C, K696, K663, K236, K237, K237, "TinyExpressionP4::AbsFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11156:11174:body/2/ruleRef", false, false, "node", false, K238); } private static Match e479C(Session s, Frame f) { - return s.literal(f, ")", true, false, K402); + return parseArgumentExpression_38(s, f); } private static Match e479M(Session s, Frame f) { - return s.literal(f, ")", true, false, K402); + return parseArgumentExpression_38(s, f); } private static Match e480(Session s, Frame f) { - f.reset = false; - if (s.bypassWrap) { Match r = f.matched ? e480M(s, f) : e480C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e480M : TinyExpressionP4Parser::e480C, K216, K216, K216, K217, K217, "TinyExpressionP4::ExpFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11200:11237:body/seq", false, false, "node", false, K4); + if (s.bypassWrap) { Match r = f.matched ? e480M(s, f) : e480C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e480M : TinyExpressionP4Parser::e480C, K227, K227, K227, K228, K228, "TinyExpressionP4::AbsFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11180:11183:body/3/literal", false, true, "text", false, K439); } private static Match e480C(Session s, Frame f) { - return s.sequence(f, K682, K620); + return s.literal(f, ")", true, false, K440); } private static Match e480M(Session s, Frame f) { - return s.sequence(f, K682, K620); + return s.literal(f, ")", true, false, K440); } private static Match e481(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e481M(s, f) : e481C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e481M : TinyExpressionP4Parser::e481C, K216, K216, K216, K217, K217, "TinyExpressionP4::ExpFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11200:11205:body/0/literal", false, true, "text", false, K683); + f.reset = false; + if (s.bypassWrap) { Match r = f.matched ? e481M(s, f) : e481C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e481M : TinyExpressionP4Parser::e481C, K227, K227, K227, K228, K228, "TinyExpressionP4::RoundFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11243:11282:body/seq", false, false, "node", false, K4); } private static Match e481C(Session s, Frame f) { - return s.literal(f, "exp", true, false, K684); + return s.sequence(f, K697, K658); } private static Match e481M(Session s, Frame f) { - return s.literal(f, "exp", true, false, K684); + return s.sequence(f, K697, K658); } private static Match e482(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e482M(s, f) : e482C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e482M : TinyExpressionP4Parser::e482C, K216, K216, K216, K217, K217, "TinyExpressionP4::ExpFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11206:11209:body/1/literal", false, true, "text", false, K399); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e482M : TinyExpressionP4Parser::e482C, K227, K227, K227, K228, K228, "TinyExpressionP4::RoundFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11243:11250:body/0/literal", false, true, "text", false, K698); } private static Match e482C(Session s, Frame f) { - return s.literal(f, "(", true, false, K400); + return s.literal(f, "round", true, false, K699); } private static Match e482M(Session s, Frame f) { - return s.literal(f, "(", true, false, K400); + return s.literal(f, "round", true, false, K699); } private static Match e483(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e483M(s, f) : e483C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e483M : TinyExpressionP4Parser::e483C, K685, K625, K225, K226, K226, "TinyExpressionP4::ExpFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11210:11228:body/2/ruleRef", false, false, "node", false, K227); + if (s.bypassWrap) { Match r = f.matched ? e483M(s, f) : e483C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e483M : TinyExpressionP4Parser::e483C, K227, K227, K227, K228, K228, "TinyExpressionP4::RoundFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11251:11254:body/1/literal", false, true, "text", false, K437); } private static Match e483C(Session s, Frame f) { - return parseArgumentExpression_38(s, f); + return s.literal(f, "(", true, false, K438); } private static Match e483M(Session s, Frame f) { - return parseArgumentExpression_38(s, f); + return s.literal(f, "(", true, false, K438); } private static Match e484(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e484M(s, f) : e484C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e484M : TinyExpressionP4Parser::e484C, K216, K216, K216, K217, K217, "TinyExpressionP4::ExpFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11234:11237:body/3/literal", false, true, "text", false, K401); + if (s.bypassCapture) { Match r = f.matched ? e484M(s, f) : e484C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e484M : TinyExpressionP4Parser::e484C, K700, K663, K236, K237, K237, "TinyExpressionP4::RoundFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11255:11273:body/2/ruleRef", false, false, "node", false, K238); } private static Match e484C(Session s, Frame f) { - return s.literal(f, ")", true, false, K402); + return parseArgumentExpression_38(s, f); } private static Match e484M(Session s, Frame f) { - return s.literal(f, ")", true, false, K402); + return parseArgumentExpression_38(s, f); } private static Match e485(Session s, Frame f) { - f.reset = false; - if (s.bypassWrap) { Match r = f.matched ? e485M(s, f) : e485C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e485M : TinyExpressionP4Parser::e485C, K216, K216, K216, K217, K217, "TinyExpressionP4::ToNumFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11391:11467:body/seq", false, false, "node", true, K4); + if (s.bypassWrap) { Match r = f.matched ? e485M(s, f) : e485C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e485M : TinyExpressionP4Parser::e485C, K227, K227, K227, K228, K228, "TinyExpressionP4::RoundFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11279:11282:body/3/literal", false, true, "text", false, K439); } private static Match e485C(Session s, Frame f) { - return s.sequence(f, K686, K263); + return s.literal(f, ")", true, false, K440); } private static Match e485M(Session s, Frame f) { - return s.sequence(f, K686, K263); + return s.literal(f, ")", true, false, K440); } private static Match e486(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e486M(s, f) : e486C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e486M : TinyExpressionP4Parser::e486C, K216, K216, K216, K217, K217, "TinyExpressionP4::ToNumFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11391:11398:body/0/literal", false, true, "text", false, K687); + f.reset = false; + if (s.bypassWrap) { Match r = f.matched ? e486M(s, f) : e486C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e486M : TinyExpressionP4Parser::e486C, K227, K227, K227, K228, K228, "TinyExpressionP4::CeilFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11340:11378:body/seq", false, false, "node", false, K4); } private static Match e486C(Session s, Frame f) { - return s.literal(f, "toNum", true, false, K688); + return s.sequence(f, K701, K658); } private static Match e486M(Session s, Frame f) { - return s.literal(f, "toNum", true, false, K688); + return s.sequence(f, K701, K658); } private static Match e487(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e487M(s, f) : e487C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e487M : TinyExpressionP4Parser::e487C, K216, K216, K216, K217, K217, "TinyExpressionP4::ToNumFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11399:11402:body/1/literal", false, true, "text", false, K399); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e487M : TinyExpressionP4Parser::e487C, K227, K227, K227, K228, K228, "TinyExpressionP4::CeilFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11340:11346:body/0/literal", false, true, "text", false, K702); } private static Match e487C(Session s, Frame f) { - return s.literal(f, "(", true, false, K400); + return s.literal(f, "ceil", true, false, K703); } private static Match e487M(Session s, Frame f) { - return s.literal(f, "(", true, false, K400); + return s.literal(f, "ceil", true, false, K703); } private static Match e488(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e488M(s, f) : e488C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e488M : TinyExpressionP4Parser::e488C, K689, K323, K225, K226, K226, "TinyExpressionP4::ToNumFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11403:11419:body/2/ruleRef", false, false, "node", false, K227); + if (s.bypassWrap) { Match r = f.matched ? e488M(s, f) : e488C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e488M : TinyExpressionP4Parser::e488C, K227, K227, K227, K228, K228, "TinyExpressionP4::CeilFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11347:11350:body/1/literal", false, true, "text", false, K437); } private static Match e488C(Session s, Frame f) { - return parseStringExpression_89(s, f); + return s.literal(f, "(", true, false, K438); } private static Match e488M(Session s, Frame f) { - return parseStringExpression_89(s, f); + return s.literal(f, "(", true, false, K438); } private static Match e489(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e489M(s, f) : e489C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e489M : TinyExpressionP4Parser::e489C, K216, K216, K216, K217, K217, "TinyExpressionP4::ToNumFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11427:11430:body/3/literal", false, true, "text", false, K404); + if (s.bypassCapture) { Match r = f.matched ? e489M(s, f) : e489C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e489M : TinyExpressionP4Parser::e489C, K704, K663, K236, K237, K237, "TinyExpressionP4::CeilFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11351:11369:body/2/ruleRef", false, false, "node", false, K238); } private static Match e489C(Session s, Frame f) { - return s.literal(f, ",", true, false, K407); + return parseArgumentExpression_38(s, f); } private static Match e489M(Session s, Frame f) { - return s.literal(f, ",", true, false, K407); + return parseArgumentExpression_38(s, f); } private static Match e490(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e490M(s, f) : e490C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e490M : TinyExpressionP4Parser::e490C, K690, K691, K225, K226, K226, "TinyExpressionP4::ToNumFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11431:11449:body/4/ruleRef", false, false, "node", false, K227); + if (s.bypassWrap) { Match r = f.matched ? e490M(s, f) : e490C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e490M : TinyExpressionP4Parser::e490C, K227, K227, K227, K228, K228, "TinyExpressionP4::CeilFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11375:11378:body/3/literal", false, true, "text", false, K439); } private static Match e490C(Session s, Frame f) { - return parseArgumentExpression_38(s, f); + return s.literal(f, ")", true, false, K440); } private static Match e490M(Session s, Frame f) { - return parseArgumentExpression_38(s, f); + return s.literal(f, ")", true, false, K440); } private static Match e491(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e491M(s, f) : e491C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e491M : TinyExpressionP4Parser::e491C, K216, K216, K216, K217, K217, "TinyExpressionP4::ToNumFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11464:11467:body/5/literal", false, true, "text", false, K401); + f.reset = false; + if (s.bypassWrap) { Match r = f.matched ? e491M(s, f) : e491C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e491M : TinyExpressionP4Parser::e491C, K227, K227, K227, K228, K228, "TinyExpressionP4::FloorFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11438:11477:body/seq", false, false, "node", false, K4); } private static Match e491C(Session s, Frame f) { - return s.literal(f, ")", true, false, K402); + return s.sequence(f, K705, K658); } private static Match e491M(Session s, Frame f) { - return s.literal(f, ")", true, false, K402); + return s.sequence(f, K705, K658); } private static Match e492(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e492M(s, f) : e492C(s, f); s.progress(f); return s.tree ? s.project(r, true) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e492M : TinyExpressionP4Parser::e492C, K216, K216, K216, K217, K217, "TinyExpressionP4::NumberFactor", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11496:11776:body/choice", false, false, "mixed", false, K4); + if (s.bypassWrap) { Match r = f.matched ? e492M(s, f) : e492C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e492M : TinyExpressionP4Parser::e492C, K227, K227, K227, K228, K228, "TinyExpressionP4::FloorFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11438:11445:body/0/literal", false, true, "text", false, K706); } private static Match e492C(Session s, Frame f) { - return s.choice(f,K733,false,null,false,K732); + return s.literal(f, "floor", true, false, K707); } private static Match e492M(Session s, Frame f) { - return s.choice(f,K733,false,null,false,K732); + return s.literal(f, "floor", true, false, K707); } private static Match e493(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e493M(s, f) : e493C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e493M : TinyExpressionP4Parser::e493C, K216, K216, K216, K217, K217, "TinyExpressionP4::NumberFactor", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11496:11513:body/0/ruleRef", false, false, "node", false, K4); + if (s.bypassWrap) { Match r = f.matched ? e493M(s, f) : e493C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e493M : TinyExpressionP4Parser::e493C, K227, K227, K227, K228, K228, "TinyExpressionP4::FloorFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11446:11449:body/1/literal", false, true, "text", false, K437); } private static Match e493C(Session s, Frame f) { - return parseTernaryExpression_108(s, f); + return s.literal(f, "(", true, false, K438); } private static Match e493M(Session s, Frame f) { - return parseTernaryExpression_108(s, f); + return s.literal(f, "(", true, false, K438); } private static Match e494(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e494M(s, f) : e494C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e494M : TinyExpressionP4Parser::e494C, K216, K216, K216, K217, K217, "TinyExpressionP4::NumberFactor", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11520:11541:body/1/ruleRef", false, false, "node", false, K4); + if (s.bypassCapture) { Match r = f.matched ? e494M(s, f) : e494C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e494M : TinyExpressionP4Parser::e494C, K708, K663, K236, K237, K237, "TinyExpressionP4::FloorFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11450:11468:body/2/ruleRef", false, false, "node", false, K238); } private static Match e494C(Session s, Frame f) { - return parseNumberMatchExpression_109(s, f); + return parseArgumentExpression_38(s, f); } private static Match e494M(Session s, Frame f) { - return parseNumberMatchExpression_109(s, f); + return parseArgumentExpression_38(s, f); } private static Match e495(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e495M(s, f) : e495C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e495M : TinyExpressionP4Parser::e495C, K216, K216, K216, K217, K217, "TinyExpressionP4::NumberFactor", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11548:11560:body/2/ruleRef", false, false, "node", false, K4); + if (s.bypassWrap) { Match r = f.matched ? e495M(s, f) : e495C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e495M : TinyExpressionP4Parser::e495C, K227, K227, K227, K228, K228, "TinyExpressionP4::FloorFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11474:11477:body/3/literal", false, true, "text", false, K439); } private static Match e495C(Session s, Frame f) { - return parseIfExpression_106(s, f); + return s.literal(f, ")", true, false, K440); } private static Match e495M(Session s, Frame f) { - return parseIfExpression_106(s, f); + return s.literal(f, ")", true, false, K440); } private static Match e496(Session s, Frame f) { + f.reset = false; if (s.bypassWrap) { Match r = f.matched ? e496M(s, f) : e496C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e496M : TinyExpressionP4Parser::e496C, K216, K216, K216, K217, K217, "TinyExpressionP4::NumberFactor", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11567:11579:body/3/ruleRef", false, false, "node", false, K4); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e496M : TinyExpressionP4Parser::e496C, K227, K227, K227, K228, K228, "TinyExpressionP4::PowFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11544:11615:body/seq", false, false, "node", true, K4); } private static Match e496C(Session s, Frame f) { - return parseMathFunction_44(s, f); + return s.sequence(f, K709, K301); } private static Match e496M(Session s, Frame f) { - return parseMathFunction_44(s, f); + return s.sequence(f, K709, K301); } private static Match e497(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e497M(s, f) : e497C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e497M : TinyExpressionP4Parser::e497C, K216, K216, K216, K217, K217, "TinyExpressionP4::NumberFactor", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11586:11599:body/4/ruleRef", false, false, "node", false, K4); + if (s.bypassWrap) { Match r = f.matched ? e497M(s, f) : e497C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e497M : TinyExpressionP4Parser::e497C, K227, K227, K227, K228, K228, "TinyExpressionP4::PowFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11544:11549:body/0/literal", false, true, "text", false, K710); } private static Match e497C(Session s, Frame f) { - return parseToNumFunction_59(s, f); + return s.literal(f, "pow", true, false, K711); } private static Match e497M(Session s, Frame f) { - return parseToNumFunction_59(s, f); + return s.literal(f, "pow", true, false, K711); } private static Match e498(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e498M(s, f) : e498C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e498M : TinyExpressionP4Parser::e498C, K216, K216, K216, K217, K217, "TinyExpressionP4::NumberFactor", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11606:11621:body/5/ruleRef", false, false, "node", false, K4); + if (s.bypassWrap) { Match r = f.matched ? e498M(s, f) : e498C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e498M : TinyExpressionP4Parser::e498C, K227, K227, K227, K228, K228, "TinyExpressionP4::PowFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11550:11553:body/1/literal", false, true, "text", false, K437); } private static Match e498C(Session s, Frame f) { - return parseLengthDotMethod_69(s, f); + return s.literal(f, "(", true, false, K438); } private static Match e498M(Session s, Frame f) { - return parseLengthDotMethod_69(s, f); + return s.literal(f, "(", true, false, K438); } private static Match e499(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e499M(s, f) : e499C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e499M : TinyExpressionP4Parser::e499C, K216, K216, K216, K217, K217, "TinyExpressionP4::NumberFactor", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11628:11639:body/6/ruleRef", false, false, "node", false, K4); + if (s.bypassCapture) { Match r = f.matched ? e499M(s, f) : e499C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e499M : TinyExpressionP4Parser::e499C, K712, K713, K236, K237, K237, "TinyExpressionP4::PowFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11554:11572:body/2/ruleRef", false, false, "node", false, K238); } private static Match e499C(Session s, Frame f) { - return parseLenFunction_65(s, f); + return parseArgumentExpression_38(s, f); } private static Match e499M(Session s, Frame f) { - return parseLenFunction_65(s, f); + return parseArgumentExpression_38(s, f); } private static Match e500(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e500M(s, f) : e500C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e500M : TinyExpressionP4Parser::e500C, K216, K216, K216, K217, K217, "TinyExpressionP4::NumberFactor", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11646:11660:body/7/ruleRef", false, false, "node", false, K4); + if (s.bypassWrap) { Match r = f.matched ? e500M(s, f) : e500C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e500M : TinyExpressionP4Parser::e500C, K227, K227, K227, K228, K228, "TinyExpressionP4::PowFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11579:11582:body/3/literal", false, true, "text", false, K442); } private static Match e500C(Session s, Frame f) { - return parseLengthFunction_64(s, f); + return s.literal(f, ",", true, false, K445); } private static Match e500M(Session s, Frame f) { - return parseLengthFunction_64(s, f); + return s.literal(f, ",", true, false, K445); } private static Match e501(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e501M(s, f) : e501C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e501M : TinyExpressionP4Parser::e501C, K216, K216, K216, K217, K217, "TinyExpressionP4::NumberFactor", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11667:11691:body/8/ruleRef", false, false, "node", false, K4); + if (s.bypassCapture) { Match r = f.matched ? e501M(s, f) : e501C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e501M : TinyExpressionP4Parser::e501C, K714, K715, K236, K237, K237, "TinyExpressionP4::PowFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11583:11601:body/4/ruleRef", false, false, "node", false, K238); } private static Match e501C(Session s, Frame f) { - return parseExternalNumberInvocation_32(s, f); + return parseArgumentExpression_38(s, f); } private static Match e501M(Session s, Frame f) { - return parseExternalNumberInvocation_32(s, f); + return parseArgumentExpression_38(s, f); } private static Match e502(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e502M(s, f) : e502C(s, f); s.progress(f); return s.tree ? s.textAlternative(r) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e502M : TinyExpressionP4Parser::e502C, K216, K216, K216, K217, K217, "TinyExpressionP4::NumberFactor", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11698:11704:body/9/tokenRef", false, true, "textAlternative", false, K734); + if (s.bypassWrap) { Match r = f.matched ? e502M(s, f) : e502C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e502M : TinyExpressionP4Parser::e502C, K227, K227, K227, K228, K228, "TinyExpressionP4::PowFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11612:11615:body/5/literal", false, true, "text", false, K439); } private static Match e502C(Session s, Frame f) { - return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K735,K736); + return s.literal(f, ")", true, false, K440); } private static Match e502M(Session s, Frame f) { - return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K735,K736); + return s.literal(f, ")", true, false, K440); } private static Match e503(Session s, Frame f) { + f.reset = false; if (s.bypassWrap) { Match r = f.matched ? e503M(s, f) : e503C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e503M : TinyExpressionP4Parser::e503C, K216, K216, K216, K217, K217, "TinyExpressionP4::NumberFactor", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11711:11722:body/10/ruleRef", false, false, "node", false, K4); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e503M : TinyExpressionP4Parser::e503C, K227, K227, K227, K228, K228, "TinyExpressionP4::LogFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11671:11708:body/seq", false, false, "node", false, K4); } private static Match e503C(Session s, Frame f) { - return parseVariableRef_121(s, f); + return s.sequence(f, K716, K658); } private static Match e503M(Session s, Frame f) { - return parseVariableRef_121(s, f); + return s.sequence(f, K716, K658); } private static Match e504(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e504M(s, f) : e504C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e504M : TinyExpressionP4Parser::e504C, K216, K216, K216, K217, K217, "TinyExpressionP4::NumberFactor", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11729:11745:body/11/ruleRef", false, false, "node", false, K4); + if (s.bypassWrap) { Match r = f.matched ? e504M(s, f) : e504C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e504M : TinyExpressionP4Parser::e504C, K227, K227, K227, K228, K228, "TinyExpressionP4::LogFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11671:11676:body/0/literal", false, true, "text", false, K717); } private static Match e504C(Session s, Frame f) { - return parseMethodInvocation_36(s, f); + return s.literal(f, "log", true, false, K718); } private static Match e504M(Session s, Frame f) { - return parseMethodInvocation_36(s, f); + return s.literal(f, "log", true, false, K718); } private static Match e505(Session s, Frame f) { - f.reset = false; - if (s.bypassWrap) { Match r = f.matched ? e505M(s, f) : e505C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e505M : TinyExpressionP4Parser::e505C, K216, K216, K216, K217, K217, "TinyExpressionP4::NumberFactor", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11752:11776:body/12/seq", false, false, "node", false, K161); + if (s.bypassWrap) { Match r = f.matched ? e505M(s, f) : e505C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e505M : TinyExpressionP4Parser::e505C, K227, K227, K227, K228, K228, "TinyExpressionP4::LogFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11677:11680:body/1/literal", false, true, "text", false, K437); } private static Match e505C(Session s, Frame f) { - return s.sequence(f, K737, K251); + return s.literal(f, "(", true, false, K438); } private static Match e505M(Session s, Frame f) { - return s.sequence(f, K737, K251); + return s.literal(f, "(", true, false, K438); } private static Match e506(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e506M(s, f) : e506C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e506M : TinyExpressionP4Parser::e506C, K216, K216, K216, K217, K217, "TinyExpressionP4::NumberFactor", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11752:11755:body/12/0/literal", false, true, "text", false, K399); + if (s.bypassCapture) { Match r = f.matched ? e506M(s, f) : e506C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e506M : TinyExpressionP4Parser::e506C, K719, K663, K236, K237, K237, "TinyExpressionP4::LogFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11681:11699:body/2/ruleRef", false, false, "node", false, K238); } private static Match e506C(Session s, Frame f) { - return s.literal(f, "(", true, false, K400); + return parseArgumentExpression_38(s, f); } private static Match e506M(Session s, Frame f) { - return s.literal(f, "(", true, false, K400); + return parseArgumentExpression_38(s, f); } private static Match e507(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e507M(s, f) : e507C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e507M : TinyExpressionP4Parser::e507C, K216, K216, K216, K217, K217, "TinyExpressionP4::NumberFactor", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11756:11772:body/12/1/ruleRef", false, false, "node", false, K4); + if (s.bypassWrap) { Match r = f.matched ? e507M(s, f) : e507C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e507M : TinyExpressionP4Parser::e507C, K227, K227, K227, K228, K228, "TinyExpressionP4::LogFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11705:11708:body/3/literal", false, true, "text", false, K439); } private static Match e507C(Session s, Frame f) { - return parseNumberExpression_40(s, f); + return s.literal(f, ")", true, false, K440); } private static Match e507M(Session s, Frame f) { - return parseNumberExpression_40(s, f); + return s.literal(f, ")", true, false, K440); } private static Match e508(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e508M(s, f) : e508C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e508M : TinyExpressionP4Parser::e508C, K216, K216, K216, K217, K217, "TinyExpressionP4::NumberFactor", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11773:11776:body/12/2/literal", false, true, "text", false, K401); + f.reset = false; + if (s.bypassWrap) { Match r = f.matched ? e508M(s, f) : e508C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e508M : TinyExpressionP4Parser::e508C, K227, K227, K227, K228, K228, "TinyExpressionP4::ExpFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11764:11801:body/seq", false, false, "node", false, K4); } private static Match e508C(Session s, Frame f) { - return s.literal(f, ")", true, false, K402); + return s.sequence(f, K720, K658); } private static Match e508M(Session s, Frame f) { - return s.literal(f, ")", true, false, K402); + return s.sequence(f, K720, K658); } private static Match e509(Session s, Frame f) { - f.reset = false; - if (s.bypassWrap) { Match r = f.matched ? e509M(s, f) : e509C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e509M : TinyExpressionP4Parser::e509C, K216, K216, K216, K217, K217, "TinyExpressionP4::ToUpperCaseFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11929:11974:body/seq", false, false, "node", false, K4); + if (s.bypassWrap) { Match r = f.matched ? e509M(s, f) : e509C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e509M : TinyExpressionP4Parser::e509C, K227, K227, K227, K228, K228, "TinyExpressionP4::ExpFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11764:11769:body/0/literal", false, true, "text", false, K721); } private static Match e509C(Session s, Frame f) { - return s.sequence(f, K738, K620); + return s.literal(f, "exp", true, false, K722); } private static Match e509M(Session s, Frame f) { - return s.sequence(f, K738, K620); + return s.literal(f, "exp", true, false, K722); } private static Match e510(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e510M(s, f) : e510C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e510M : TinyExpressionP4Parser::e510C, K216, K216, K216, K217, K217, "TinyExpressionP4::ToUpperCaseFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11929:11942:body/0/literal", false, true, "text", false, K739); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e510M : TinyExpressionP4Parser::e510C, K227, K227, K227, K228, K228, "TinyExpressionP4::ExpFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11770:11773:body/1/literal", false, true, "text", false, K437); } private static Match e510C(Session s, Frame f) { - return s.literal(f, "toUpperCase", true, false, K740); + return s.literal(f, "(", true, false, K438); } private static Match e510M(Session s, Frame f) { - return s.literal(f, "toUpperCase", true, false, K740); + return s.literal(f, "(", true, false, K438); } private static Match e511(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e511M(s, f) : e511C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e511M : TinyExpressionP4Parser::e511C, K216, K216, K216, K217, K217, "TinyExpressionP4::ToUpperCaseFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11943:11946:body/1/literal", false, true, "text", false, K399); + if (s.bypassCapture) { Match r = f.matched ? e511M(s, f) : e511C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e511M : TinyExpressionP4Parser::e511C, K723, K663, K236, K237, K237, "TinyExpressionP4::ExpFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11774:11792:body/2/ruleRef", false, false, "node", false, K238); } private static Match e511C(Session s, Frame f) { - return s.literal(f, "(", true, false, K400); + return parseArgumentExpression_38(s, f); } private static Match e511M(Session s, Frame f) { - return s.literal(f, "(", true, false, K400); + return parseArgumentExpression_38(s, f); } private static Match e512(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e512M(s, f) : e512C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e512M : TinyExpressionP4Parser::e512C, K741, K323, K225, K226, K226, "TinyExpressionP4::ToUpperCaseFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11947:11963:body/2/ruleRef", false, false, "node", false, K227); + if (s.bypassWrap) { Match r = f.matched ? e512M(s, f) : e512C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e512M : TinyExpressionP4Parser::e512C, K227, K227, K227, K228, K228, "TinyExpressionP4::ExpFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11798:11801:body/3/literal", false, true, "text", false, K439); } private static Match e512C(Session s, Frame f) { - return parseStringExpression_89(s, f); + return s.literal(f, ")", true, false, K440); } private static Match e512M(Session s, Frame f) { - return parseStringExpression_89(s, f); + return s.literal(f, ")", true, false, K440); } private static Match e513(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e513M(s, f) : e513C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e513M : TinyExpressionP4Parser::e513C, K216, K216, K216, K217, K217, "TinyExpressionP4::ToUpperCaseFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11971:11974:body/3/literal", false, true, "text", false, K401); + f.reset = false; + if (s.bypassWrap) { Match r = f.matched ? e513M(s, f) : e513C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e513M : TinyExpressionP4Parser::e513C, K227, K227, K227, K228, K228, "TinyExpressionP4::ToNumFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11955:12031:body/seq", false, false, "node", true, K4); } private static Match e513C(Session s, Frame f) { - return s.literal(f, ")", true, false, K402); + return s.sequence(f, K724, K301); } private static Match e513M(Session s, Frame f) { - return s.literal(f, ")", true, false, K402); + return s.sequence(f, K724, K301); } private static Match e514(Session s, Frame f) { - f.reset = false; - if (s.bypassWrap) { Match r = f.matched ? e514M(s, f) : e514C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e514M : TinyExpressionP4Parser::e514C, K216, K216, K216, K217, K217, "TinyExpressionP4::ToLowerCaseFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12048:12093:body/seq", false, false, "node", false, K4); + if (s.bypassWrap) { Match r = f.matched ? e514M(s, f) : e514C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e514M : TinyExpressionP4Parser::e514C, K227, K227, K227, K228, K228, "TinyExpressionP4::ToNumFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11955:11962:body/0/literal", false, true, "text", false, K725); } private static Match e514C(Session s, Frame f) { - return s.sequence(f, K742, K620); + return s.literal(f, "toNum", true, false, K726); } private static Match e514M(Session s, Frame f) { - return s.sequence(f, K742, K620); + return s.literal(f, "toNum", true, false, K726); } private static Match e515(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e515M(s, f) : e515C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e515M : TinyExpressionP4Parser::e515C, K216, K216, K216, K217, K217, "TinyExpressionP4::ToLowerCaseFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12048:12061:body/0/literal", false, true, "text", false, K743); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e515M : TinyExpressionP4Parser::e515C, K227, K227, K227, K228, K228, "TinyExpressionP4::ToNumFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11963:11966:body/1/literal", false, true, "text", false, K437); } private static Match e515C(Session s, Frame f) { - return s.literal(f, "toLowerCase", true, false, K744); + return s.literal(f, "(", true, false, K438); } private static Match e515M(Session s, Frame f) { - return s.literal(f, "toLowerCase", true, false, K744); + return s.literal(f, "(", true, false, K438); } private static Match e516(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e516M(s, f) : e516C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e516M : TinyExpressionP4Parser::e516C, K216, K216, K216, K217, K217, "TinyExpressionP4::ToLowerCaseFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12062:12065:body/1/literal", false, true, "text", false, K399); + if (s.bypassCapture) { Match r = f.matched ? e516M(s, f) : e516C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e516M : TinyExpressionP4Parser::e516C, K727, K363, K236, K237, K237, "TinyExpressionP4::ToNumFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11967:11983:body/2/ruleRef", false, false, "node", false, K238); } private static Match e516C(Session s, Frame f) { - return s.literal(f, "(", true, false, K400); + return parseStringExpression_89(s, f); } private static Match e516M(Session s, Frame f) { - return s.literal(f, "(", true, false, K400); + return parseStringExpression_89(s, f); } private static Match e517(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e517M(s, f) : e517C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e517M : TinyExpressionP4Parser::e517C, K745, K323, K225, K226, K226, "TinyExpressionP4::ToLowerCaseFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12066:12082:body/2/ruleRef", false, false, "node", false, K227); + if (s.bypassWrap) { Match r = f.matched ? e517M(s, f) : e517C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e517M : TinyExpressionP4Parser::e517C, K227, K227, K227, K228, K228, "TinyExpressionP4::ToNumFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11991:11994:body/3/literal", false, true, "text", false, K442); } private static Match e517C(Session s, Frame f) { - return parseStringExpression_89(s, f); + return s.literal(f, ",", true, false, K445); } private static Match e517M(Session s, Frame f) { - return parseStringExpression_89(s, f); + return s.literal(f, ",", true, false, K445); } private static Match e518(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e518M(s, f) : e518C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e518M : TinyExpressionP4Parser::e518C, K216, K216, K216, K217, K217, "TinyExpressionP4::ToLowerCaseFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12090:12093:body/3/literal", false, true, "text", false, K401); + if (s.bypassCapture) { Match r = f.matched ? e518M(s, f) : e518C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e518M : TinyExpressionP4Parser::e518C, K728, K729, K236, K237, K237, "TinyExpressionP4::ToNumFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11995:12013:body/4/ruleRef", false, false, "node", false, K238); } private static Match e518C(Session s, Frame f) { - return s.literal(f, ")", true, false, K402); + return parseArgumentExpression_38(s, f); } private static Match e518M(Session s, Frame f) { - return s.literal(f, ")", true, false, K402); + return parseArgumentExpression_38(s, f); } private static Match e519(Session s, Frame f) { - f.reset = false; - if (s.bypassWrap) { Match r = f.matched ? e519M(s, f) : e519C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e519M : TinyExpressionP4Parser::e519C, K216, K216, K216, K217, K217, "TinyExpressionP4::TrimFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12153:12191:body/seq", false, false, "node", false, K4); + if (s.bypassWrap) { Match r = f.matched ? e519M(s, f) : e519C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e519M : TinyExpressionP4Parser::e519C, K227, K227, K227, K228, K228, "TinyExpressionP4::ToNumFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12028:12031:body/5/literal", false, true, "text", false, K439); } private static Match e519C(Session s, Frame f) { - return s.sequence(f, K746, K620); + return s.literal(f, ")", true, false, K440); } private static Match e519M(Session s, Frame f) { - return s.sequence(f, K746, K620); + return s.literal(f, ")", true, false, K440); } private static Match e520(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e520M(s, f) : e520C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e520M : TinyExpressionP4Parser::e520C, K216, K216, K216, K217, K217, "TinyExpressionP4::TrimFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12153:12159:body/0/literal", false, true, "text", false, K747); + if (s.bypassWrap) { Match r = f.matched ? e520M(s, f) : e520C(s, f); s.progress(f); return s.tree ? s.project(r, true) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e520M : TinyExpressionP4Parser::e520C, K227, K227, K227, K228, K228, "TinyExpressionP4::NumberFactor", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12060:12340:body/choice", false, false, "mixed", false, K4); } private static Match e520C(Session s, Frame f) { - return s.literal(f, "trim", true, false, K748); + return s.choice(f,K768,false,null,false,K767); } private static Match e520M(Session s, Frame f) { - return s.literal(f, "trim", true, false, K748); + return s.choice(f,K768,false,null,false,K767); } private static Match e521(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e521M(s, f) : e521C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e521M : TinyExpressionP4Parser::e521C, K216, K216, K216, K217, K217, "TinyExpressionP4::TrimFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12160:12163:body/1/literal", false, true, "text", false, K399); + if (s.bypassWrap) { Match r = f.matched ? e521M(s, f) : e521C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e521M : TinyExpressionP4Parser::e521C, K227, K227, K227, K228, K228, "TinyExpressionP4::NumberFactor", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12060:12077:body/0/ruleRef", false, false, "node", false, K4); } private static Match e521C(Session s, Frame f) { - return s.literal(f, "(", true, false, K400); + return parseTernaryExpression_108(s, f); } private static Match e521M(Session s, Frame f) { - return s.literal(f, "(", true, false, K400); + return parseTernaryExpression_108(s, f); } private static Match e522(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e522M(s, f) : e522C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e522M : TinyExpressionP4Parser::e522C, K749, K323, K225, K226, K226, "TinyExpressionP4::TrimFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12164:12180:body/2/ruleRef", false, false, "node", false, K227); + if (s.bypassWrap) { Match r = f.matched ? e522M(s, f) : e522C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e522M : TinyExpressionP4Parser::e522C, K227, K227, K227, K228, K228, "TinyExpressionP4::NumberFactor", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12084:12105:body/1/ruleRef", false, false, "node", false, K4); } private static Match e522C(Session s, Frame f) { - return parseStringExpression_89(s, f); + return parseNumberMatchExpression_109(s, f); } private static Match e522M(Session s, Frame f) { - return parseStringExpression_89(s, f); + return parseNumberMatchExpression_109(s, f); } private static Match e523(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e523M(s, f) : e523C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e523M : TinyExpressionP4Parser::e523C, K216, K216, K216, K217, K217, "TinyExpressionP4::TrimFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12188:12191:body/3/literal", false, true, "text", false, K401); + if (s.bypassWrap) { Match r = f.matched ? e523M(s, f) : e523C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e523M : TinyExpressionP4Parser::e523C, K227, K227, K227, K228, K228, "TinyExpressionP4::NumberFactor", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12112:12124:body/2/ruleRef", false, false, "node", false, K4); } private static Match e523C(Session s, Frame f) { - return s.literal(f, ")", true, false, K402); + return parseIfExpression_106(s, f); } private static Match e523M(Session s, Frame f) { - return s.literal(f, ")", true, false, K402); + return parseIfExpression_106(s, f); } private static Match e524(Session s, Frame f) { - f.reset = false; if (s.bypassWrap) { Match r = f.matched ? e524M(s, f) : e524C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e524M : TinyExpressionP4Parser::e524C, K216, K216, K216, K217, K217, "TinyExpressionP4::LengthFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12255:12295:body/seq", false, false, "node", false, K4); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e524M : TinyExpressionP4Parser::e524C, K227, K227, K227, K228, K228, "TinyExpressionP4::NumberFactor", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12131:12143:body/3/ruleRef", false, false, "node", false, K4); } private static Match e524C(Session s, Frame f) { - return s.sequence(f, K750, K620); + return parseMathFunction_44(s, f); } private static Match e524M(Session s, Frame f) { - return s.sequence(f, K750, K620); + return parseMathFunction_44(s, f); } private static Match e525(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e525M(s, f) : e525C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e525M : TinyExpressionP4Parser::e525C, K216, K216, K216, K217, K217, "TinyExpressionP4::LengthFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12255:12263:body/0/literal", false, true, "text", false, K751); + if (s.bypassWrap) { Match r = f.matched ? e525M(s, f) : e525C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e525M : TinyExpressionP4Parser::e525C, K227, K227, K227, K228, K228, "TinyExpressionP4::NumberFactor", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12150:12163:body/4/ruleRef", false, false, "node", false, K4); } private static Match e525C(Session s, Frame f) { - return s.literal(f, "length", true, false, K752); + return parseToNumFunction_59(s, f); } private static Match e525M(Session s, Frame f) { - return s.literal(f, "length", true, false, K752); + return parseToNumFunction_59(s, f); } private static Match e526(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e526M(s, f) : e526C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e526M : TinyExpressionP4Parser::e526C, K216, K216, K216, K217, K217, "TinyExpressionP4::LengthFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12264:12267:body/1/literal", false, true, "text", false, K399); + if (s.bypassWrap) { Match r = f.matched ? e526M(s, f) : e526C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e526M : TinyExpressionP4Parser::e526C, K227, K227, K227, K228, K228, "TinyExpressionP4::NumberFactor", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12170:12185:body/5/ruleRef", false, false, "node", false, K4); } private static Match e526C(Session s, Frame f) { - return s.literal(f, "(", true, false, K400); + return parseLengthDotMethod_69(s, f); } private static Match e526M(Session s, Frame f) { - return s.literal(f, "(", true, false, K400); + return parseLengthDotMethod_69(s, f); } private static Match e527(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e527M(s, f) : e527C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e527M : TinyExpressionP4Parser::e527C, K753, K323, K225, K226, K226, "TinyExpressionP4::LengthFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12268:12284:body/2/ruleRef", false, false, "node", false, K227); + if (s.bypassWrap) { Match r = f.matched ? e527M(s, f) : e527C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e527M : TinyExpressionP4Parser::e527C, K227, K227, K227, K228, K228, "TinyExpressionP4::NumberFactor", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12192:12203:body/6/ruleRef", false, false, "node", false, K4); } private static Match e527C(Session s, Frame f) { - return parseStringExpression_89(s, f); + return parseLenFunction_65(s, f); } private static Match e527M(Session s, Frame f) { - return parseStringExpression_89(s, f); + return parseLenFunction_65(s, f); } private static Match e528(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e528M(s, f) : e528C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e528M : TinyExpressionP4Parser::e528C, K216, K216, K216, K217, K217, "TinyExpressionP4::LengthFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12292:12295:body/3/literal", false, true, "text", false, K401); + if (s.bypassWrap) { Match r = f.matched ? e528M(s, f) : e528C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e528M : TinyExpressionP4Parser::e528C, K227, K227, K227, K228, K228, "TinyExpressionP4::NumberFactor", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12210:12224:body/7/ruleRef", false, false, "node", false, K4); } private static Match e528C(Session s, Frame f) { - return s.literal(f, ")", true, false, K402); + return parseLengthFunction_64(s, f); } private static Match e528M(Session s, Frame f) { - return s.literal(f, ")", true, false, K402); + return parseLengthFunction_64(s, f); } private static Match e529(Session s, Frame f) { - f.reset = false; if (s.bypassWrap) { Match r = f.matched ? e529M(s, f) : e529C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e529M : TinyExpressionP4Parser::e529C, K216, K216, K216, K217, K217, "TinyExpressionP4::LenFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12356:12393:body/seq", false, false, "node", false, K4); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e529M : TinyExpressionP4Parser::e529C, K227, K227, K227, K228, K228, "TinyExpressionP4::NumberFactor", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12231:12255:body/8/ruleRef", false, false, "node", false, K4); } private static Match e529C(Session s, Frame f) { - return s.sequence(f, K754, K620); + return parseExternalNumberInvocation_32(s, f); } private static Match e529M(Session s, Frame f) { - return s.sequence(f, K754, K620); + return parseExternalNumberInvocation_32(s, f); } private static Match e530(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e530M(s, f) : e530C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e530M : TinyExpressionP4Parser::e530C, K216, K216, K216, K217, K217, "TinyExpressionP4::LenFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12356:12361:body/0/literal", false, true, "text", false, K755); + if (s.bypassWrap) { Match r = f.matched ? e530M(s, f) : e530C(s, f); s.progress(f); return s.tree ? s.textAlternative(r) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e530M : TinyExpressionP4Parser::e530C, K227, K227, K227, K228, K228, "TinyExpressionP4::NumberFactor", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12262:12268:body/9/tokenRef", false, true, "textAlternative", false, K769); } private static Match e530C(Session s, Frame f) { - return s.literal(f, "len", true, false, K756); + return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K770,K771); } private static Match e530M(Session s, Frame f) { - return s.literal(f, "len", true, false, K756); + return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K770,K771); } private static Match e531(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e531M(s, f) : e531C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e531M : TinyExpressionP4Parser::e531C, K216, K216, K216, K217, K217, "TinyExpressionP4::LenFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12362:12365:body/1/literal", false, true, "text", false, K399); + if (s.bypassWrap) { Match r = f.matched ? e531M(s, f) : e531C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e531M : TinyExpressionP4Parser::e531C, K227, K227, K227, K228, K228, "TinyExpressionP4::NumberFactor", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12275:12286:body/10/ruleRef", false, false, "node", false, K4); } private static Match e531C(Session s, Frame f) { - return s.literal(f, "(", true, false, K400); + return parseVariableRef_121(s, f); } private static Match e531M(Session s, Frame f) { - return s.literal(f, "(", true, false, K400); + return parseVariableRef_121(s, f); } private static Match e532(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e532M(s, f) : e532C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e532M : TinyExpressionP4Parser::e532C, K757, K323, K225, K226, K226, "TinyExpressionP4::LenFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12366:12382:body/2/ruleRef", false, false, "node", false, K227); + if (s.bypassWrap) { Match r = f.matched ? e532M(s, f) : e532C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e532M : TinyExpressionP4Parser::e532C, K227, K227, K227, K228, K228, "TinyExpressionP4::NumberFactor", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12293:12309:body/11/ruleRef", false, false, "node", false, K4); } private static Match e532C(Session s, Frame f) { - return parseStringExpression_89(s, f); + return parseMethodInvocation_36(s, f); } private static Match e532M(Session s, Frame f) { - return parseStringExpression_89(s, f); + return parseMethodInvocation_36(s, f); } private static Match e533(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e533M(s, f) : e533C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e533M : TinyExpressionP4Parser::e533C, K216, K216, K216, K217, K217, "TinyExpressionP4::LenFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12390:12393:body/3/literal", false, true, "text", false, K401); + f.reset = false; + if (s.bypassWrap) { Match r = f.matched ? e533M(s, f) : e533C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e533M : TinyExpressionP4Parser::e533C, K227, K227, K227, K228, K228, "TinyExpressionP4::NumberFactor", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12316:12340:body/12/seq", false, false, "node", false, K161); } private static Match e533C(Session s, Frame f) { - return s.literal(f, ")", true, false, K402); + return s.sequence(f, K772, K255); } private static Match e533M(Session s, Frame f) { - return s.literal(f, ")", true, false, K402); + return s.sequence(f, K772, K255); } private static Match e534(Session s, Frame f) { - f.reset = false; - if (s.bypassWrap) { Match r = f.matched ? e534M(s, f) : e534C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e534M : TinyExpressionP4Parser::e534C, K216, K216, K216, K217, K217, "TinyExpressionP4::ToUpperCaseDotMethod", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12718:12759:body/seq", false, false, "node", false, K4); + if (s.bypassWrap) { Match r = f.matched ? e534M(s, f) : e534C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e534M : TinyExpressionP4Parser::e534C, K227, K227, K227, K228, K228, "TinyExpressionP4::NumberFactor", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12316:12319:body/12/0/literal", false, true, "text", false, K437); } private static Match e534C(Session s, Frame f) { - return s.sequence(f, K758, K620); + return s.literal(f, "(", true, false, K438); } private static Match e534M(Session s, Frame f) { - return s.sequence(f, K758, K620); + return s.literal(f, "(", true, false, K438); } private static Match e535(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e535M(s, f) : e535C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e535M : TinyExpressionP4Parser::e535C, K759, K323, K225, K226, K226, "TinyExpressionP4::ToUpperCaseDotMethod", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12718:12729:body/0/ruleRef", false, false, "node", false, K50); + if (s.bypassWrap) { Match r = f.matched ? e535M(s, f) : e535C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e535M : TinyExpressionP4Parser::e535C, K227, K227, K227, K228, K228, "TinyExpressionP4::NumberFactor", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12320:12336:body/12/1/ruleRef", false, false, "node", false, K4); } private static Match e535C(Session s, Frame f) { - return parseVariableRef_121(s, f); + return parseNumberExpression_40(s, f); } private static Match e535M(Session s, Frame f) { - return parseVariableRef_121(s, f); + return parseNumberExpression_40(s, f); } private static Match e536(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e536M(s, f) : e536C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e536M : TinyExpressionP4Parser::e536C, K216, K216, K216, K217, K217, "TinyExpressionP4::ToUpperCaseDotMethod", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12737:12751:body/1/literal", false, true, "text", false, K760); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e536M : TinyExpressionP4Parser::e536C, K227, K227, K227, K228, K228, "TinyExpressionP4::NumberFactor", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12337:12340:body/12/2/literal", false, true, "text", false, K439); } private static Match e536C(Session s, Frame f) { - return s.literal(f, ".toUpperCase", true, false, K761); + return s.literal(f, ")", true, false, K440); } private static Match e536M(Session s, Frame f) { - return s.literal(f, ".toUpperCase", true, false, K761); + return s.literal(f, ")", true, false, K440); } private static Match e537(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e537M(s, f) : e537C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e537M : TinyExpressionP4Parser::e537C, K216, K216, K216, K217, K217, "TinyExpressionP4::ToUpperCaseDotMethod", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12752:12755:body/2/literal", false, true, "text", false, K399); + f.reset = false; + if (s.bypassWrap) { Match r = f.matched ? e537M(s, f) : e537C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e537M : TinyExpressionP4Parser::e537C, K227, K227, K227, K228, K228, "TinyExpressionP4::ToUpperCaseFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12493:12538:body/seq", false, false, "node", false, K4); } private static Match e537C(Session s, Frame f) { - return s.literal(f, "(", true, false, K400); + return s.sequence(f, K773, K658); } private static Match e537M(Session s, Frame f) { - return s.literal(f, "(", true, false, K400); + return s.sequence(f, K773, K658); } private static Match e538(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e538M(s, f) : e538C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e538M : TinyExpressionP4Parser::e538C, K216, K216, K216, K217, K217, "TinyExpressionP4::ToUpperCaseDotMethod", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12756:12759:body/3/literal", false, true, "text", false, K401); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e538M : TinyExpressionP4Parser::e538C, K227, K227, K227, K228, K228, "TinyExpressionP4::ToUpperCaseFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12493:12506:body/0/literal", false, true, "text", false, K774); } private static Match e538C(Session s, Frame f) { - return s.literal(f, ")", true, false, K402); + return s.literal(f, "toUpperCase", true, false, K775); } private static Match e538M(Session s, Frame f) { - return s.literal(f, ")", true, false, K402); + return s.literal(f, "toUpperCase", true, false, K775); } private static Match e539(Session s, Frame f) { - f.reset = false; - if (s.bypassWrap) { Match r = f.matched ? e539M(s, f) : e539C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e539M : TinyExpressionP4Parser::e539C, K216, K216, K216, K217, K217, "TinyExpressionP4::ToLowerCaseDotMethod", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12837:12878:body/seq", false, false, "node", false, K4); + if (s.bypassWrap) { Match r = f.matched ? e539M(s, f) : e539C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e539M : TinyExpressionP4Parser::e539C, K227, K227, K227, K228, K228, "TinyExpressionP4::ToUpperCaseFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12507:12510:body/1/literal", false, true, "text", false, K437); } private static Match e539C(Session s, Frame f) { - return s.sequence(f, K762, K620); + return s.literal(f, "(", true, false, K438); } private static Match e539M(Session s, Frame f) { - return s.sequence(f, K762, K620); + return s.literal(f, "(", true, false, K438); } private static Match e540(Session s, Frame f) { if (s.bypassCapture) { Match r = f.matched ? e540M(s, f) : e540C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e540M : TinyExpressionP4Parser::e540C, K763, K323, K225, K226, K226, "TinyExpressionP4::ToLowerCaseDotMethod", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12837:12848:body/0/ruleRef", false, false, "node", false, K50); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e540M : TinyExpressionP4Parser::e540C, K776, K363, K236, K237, K237, "TinyExpressionP4::ToUpperCaseFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12511:12527:body/2/ruleRef", false, false, "node", false, K238); } private static Match e540C(Session s, Frame f) { - return parseVariableRef_121(s, f); + return parseStringExpression_89(s, f); } private static Match e540M(Session s, Frame f) { - return parseVariableRef_121(s, f); + return parseStringExpression_89(s, f); } private static Match e541(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e541M(s, f) : e541C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e541M : TinyExpressionP4Parser::e541C, K216, K216, K216, K217, K217, "TinyExpressionP4::ToLowerCaseDotMethod", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12856:12870:body/1/literal", false, true, "text", false, K764); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e541M : TinyExpressionP4Parser::e541C, K227, K227, K227, K228, K228, "TinyExpressionP4::ToUpperCaseFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12535:12538:body/3/literal", false, true, "text", false, K439); } private static Match e541C(Session s, Frame f) { - return s.literal(f, ".toLowerCase", true, false, K765); + return s.literal(f, ")", true, false, K440); } private static Match e541M(Session s, Frame f) { - return s.literal(f, ".toLowerCase", true, false, K765); + return s.literal(f, ")", true, false, K440); } private static Match e542(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e542M(s, f) : e542C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e542M : TinyExpressionP4Parser::e542C, K216, K216, K216, K217, K217, "TinyExpressionP4::ToLowerCaseDotMethod", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12871:12874:body/2/literal", false, true, "text", false, K399); + f.reset = false; + if (s.bypassWrap) { Match r = f.matched ? e542M(s, f) : e542C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e542M : TinyExpressionP4Parser::e542C, K227, K227, K227, K228, K228, "TinyExpressionP4::ToLowerCaseFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12612:12657:body/seq", false, false, "node", false, K4); } private static Match e542C(Session s, Frame f) { - return s.literal(f, "(", true, false, K400); + return s.sequence(f, K777, K658); } private static Match e542M(Session s, Frame f) { - return s.literal(f, "(", true, false, K400); + return s.sequence(f, K777, K658); } private static Match e543(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e543M(s, f) : e543C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e543M : TinyExpressionP4Parser::e543C, K216, K216, K216, K217, K217, "TinyExpressionP4::ToLowerCaseDotMethod", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12875:12878:body/3/literal", false, true, "text", false, K401); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e543M : TinyExpressionP4Parser::e543C, K227, K227, K227, K228, K228, "TinyExpressionP4::ToLowerCaseFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12612:12625:body/0/literal", false, true, "text", false, K778); } private static Match e543C(Session s, Frame f) { - return s.literal(f, ")", true, false, K402); + return s.literal(f, "toLowerCase", true, false, K779); } private static Match e543M(Session s, Frame f) { - return s.literal(f, ")", true, false, K402); + return s.literal(f, "toLowerCase", true, false, K779); } private static Match e544(Session s, Frame f) { - f.reset = false; - if (s.bypassWrap) { Match r = f.matched ? e544M(s, f) : e544C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e544M : TinyExpressionP4Parser::e544C, K216, K216, K216, K217, K217, "TinyExpressionP4::TrimDotMethod", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12942:12976:body/seq", false, false, "node", false, K4); + if (s.bypassWrap) { Match r = f.matched ? e544M(s, f) : e544C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e544M : TinyExpressionP4Parser::e544C, K227, K227, K227, K228, K228, "TinyExpressionP4::ToLowerCaseFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12626:12629:body/1/literal", false, true, "text", false, K437); } private static Match e544C(Session s, Frame f) { - return s.sequence(f, K766, K620); + return s.literal(f, "(", true, false, K438); } private static Match e544M(Session s, Frame f) { - return s.sequence(f, K766, K620); + return s.literal(f, "(", true, false, K438); } private static Match e545(Session s, Frame f) { if (s.bypassCapture) { Match r = f.matched ? e545M(s, f) : e545C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e545M : TinyExpressionP4Parser::e545C, K767, K323, K225, K226, K226, "TinyExpressionP4::TrimDotMethod", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12942:12953:body/0/ruleRef", false, false, "node", false, K50); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e545M : TinyExpressionP4Parser::e545C, K780, K363, K236, K237, K237, "TinyExpressionP4::ToLowerCaseFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12630:12646:body/2/ruleRef", false, false, "node", false, K238); } private static Match e545C(Session s, Frame f) { - return parseVariableRef_121(s, f); + return parseStringExpression_89(s, f); } private static Match e545M(Session s, Frame f) { - return parseVariableRef_121(s, f); + return parseStringExpression_89(s, f); } private static Match e546(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e546M(s, f) : e546C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e546M : TinyExpressionP4Parser::e546C, K216, K216, K216, K217, K217, "TinyExpressionP4::TrimDotMethod", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12961:12968:body/1/literal", false, true, "text", false, K768); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e546M : TinyExpressionP4Parser::e546C, K227, K227, K227, K228, K228, "TinyExpressionP4::ToLowerCaseFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12654:12657:body/3/literal", false, true, "text", false, K439); } private static Match e546C(Session s, Frame f) { - return s.literal(f, ".trim", true, false, K769); + return s.literal(f, ")", true, false, K440); } private static Match e546M(Session s, Frame f) { - return s.literal(f, ".trim", true, false, K769); + return s.literal(f, ")", true, false, K440); } private static Match e547(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e547M(s, f) : e547C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e547M : TinyExpressionP4Parser::e547C, K216, K216, K216, K217, K217, "TinyExpressionP4::TrimDotMethod", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12969:12972:body/2/literal", false, true, "text", false, K399); + f.reset = false; + if (s.bypassWrap) { Match r = f.matched ? e547M(s, f) : e547C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e547M : TinyExpressionP4Parser::e547C, K227, K227, K227, K228, K228, "TinyExpressionP4::TrimFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12717:12755:body/seq", false, false, "node", false, K4); } private static Match e547C(Session s, Frame f) { - return s.literal(f, "(", true, false, K400); + return s.sequence(f, K781, K658); } private static Match e547M(Session s, Frame f) { - return s.literal(f, "(", true, false, K400); + return s.sequence(f, K781, K658); } private static Match e548(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e548M(s, f) : e548C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e548M : TinyExpressionP4Parser::e548C, K216, K216, K216, K217, K217, "TinyExpressionP4::TrimDotMethod", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12973:12976:body/3/literal", false, true, "text", false, K401); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e548M : TinyExpressionP4Parser::e548C, K227, K227, K227, K228, K228, "TinyExpressionP4::TrimFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12717:12723:body/0/literal", false, true, "text", false, K782); } private static Match e548C(Session s, Frame f) { - return s.literal(f, ")", true, false, K402); + return s.literal(f, "trim", true, false, K783); } private static Match e548M(Session s, Frame f) { - return s.literal(f, ")", true, false, K402); + return s.literal(f, "trim", true, false, K783); } private static Match e549(Session s, Frame f) { - f.reset = false; - if (s.bypassWrap) { Match r = f.matched ? e549M(s, f) : e549C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e549M : TinyExpressionP4Parser::e549C, K216, K216, K216, K217, K217, "TinyExpressionP4::LengthDotMethod", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13044:13080:body/seq", false, false, "node", false, K4); + if (s.bypassWrap) { Match r = f.matched ? e549M(s, f) : e549C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e549M : TinyExpressionP4Parser::e549C, K227, K227, K227, K228, K228, "TinyExpressionP4::TrimFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12724:12727:body/1/literal", false, true, "text", false, K437); } private static Match e549C(Session s, Frame f) { - return s.sequence(f, K770, K620); + return s.literal(f, "(", true, false, K438); } private static Match e549M(Session s, Frame f) { - return s.sequence(f, K770, K620); + return s.literal(f, "(", true, false, K438); } private static Match e550(Session s, Frame f) { if (s.bypassCapture) { Match r = f.matched ? e550M(s, f) : e550C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e550M : TinyExpressionP4Parser::e550C, K771, K323, K225, K226, K226, "TinyExpressionP4::LengthDotMethod", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13044:13055:body/0/ruleRef", false, false, "node", false, K50); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e550M : TinyExpressionP4Parser::e550C, K784, K363, K236, K237, K237, "TinyExpressionP4::TrimFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12728:12744:body/2/ruleRef", false, false, "node", false, K238); } private static Match e550C(Session s, Frame f) { - return parseVariableRef_121(s, f); + return parseStringExpression_89(s, f); } private static Match e550M(Session s, Frame f) { - return parseVariableRef_121(s, f); + return parseStringExpression_89(s, f); } private static Match e551(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e551M(s, f) : e551C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e551M : TinyExpressionP4Parser::e551C, K216, K216, K216, K217, K217, "TinyExpressionP4::LengthDotMethod", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13063:13072:body/1/literal", false, true, "text", false, K772); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e551M : TinyExpressionP4Parser::e551C, K227, K227, K227, K228, K228, "TinyExpressionP4::TrimFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12752:12755:body/3/literal", false, true, "text", false, K439); } private static Match e551C(Session s, Frame f) { - return s.literal(f, ".length", true, false, K773); + return s.literal(f, ")", true, false, K440); } private static Match e551M(Session s, Frame f) { - return s.literal(f, ".length", true, false, K773); + return s.literal(f, ")", true, false, K440); } private static Match e552(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e552M(s, f) : e552C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e552M : TinyExpressionP4Parser::e552C, K216, K216, K216, K217, K217, "TinyExpressionP4::LengthDotMethod", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13073:13076:body/2/literal", false, true, "text", false, K399); + f.reset = false; + if (s.bypassWrap) { Match r = f.matched ? e552M(s, f) : e552C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e552M : TinyExpressionP4Parser::e552C, K227, K227, K227, K228, K228, "TinyExpressionP4::LengthFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12819:12859:body/seq", false, false, "node", false, K4); } private static Match e552C(Session s, Frame f) { - return s.literal(f, "(", true, false, K400); + return s.sequence(f, K785, K658); } private static Match e552M(Session s, Frame f) { - return s.literal(f, "(", true, false, K400); + return s.sequence(f, K785, K658); } private static Match e553(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e553M(s, f) : e553C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e553M : TinyExpressionP4Parser::e553C, K216, K216, K216, K217, K217, "TinyExpressionP4::LengthDotMethod", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13077:13080:body/3/literal", false, true, "text", false, K401); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e553M : TinyExpressionP4Parser::e553C, K227, K227, K227, K228, K228, "TinyExpressionP4::LengthFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12819:12827:body/0/literal", false, true, "text", false, K786); } private static Match e553C(Session s, Frame f) { - return s.literal(f, ")", true, false, K402); + return s.literal(f, "length", true, false, K787); } private static Match e553M(Session s, Frame f) { - return s.literal(f, ")", true, false, K402); + return s.literal(f, "length", true, false, K787); } private static Match e554(Session s, Frame f) { - f.reset = false; - if (s.bypassWrap) { Match r = f.matched ? e554M(s, f) : e554C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e554M : TinyExpressionP4Parser::e554C, K216, K216, K216, K217, K217, "TinyExpressionP4::StartsWithFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13300:13414:body/seq", false, false, "node", true, K4); + if (s.bypassWrap) { Match r = f.matched ? e554M(s, f) : e554C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e554M : TinyExpressionP4Parser::e554C, K227, K227, K227, K228, K228, "TinyExpressionP4::LengthFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12828:12831:body/1/literal", false, true, "text", false, K437); } private static Match e554C(Session s, Frame f) { - return s.sequence(f, K774, K220); + return s.literal(f, "(", true, false, K438); } private static Match e554M(Session s, Frame f) { - return s.sequence(f, K774, K220); + return s.literal(f, "(", true, false, K438); } private static Match e555(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e555M(s, f) : e555C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e555M : TinyExpressionP4Parser::e555C, K216, K216, K216, K217, K217, "TinyExpressionP4::StartsWithFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13300:13312:body/0/literal", false, true, "text", false, K775); + if (s.bypassCapture) { Match r = f.matched ? e555M(s, f) : e555C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e555M : TinyExpressionP4Parser::e555C, K788, K363, K236, K237, K237, "TinyExpressionP4::LengthFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12832:12848:body/2/ruleRef", false, false, "node", false, K238); } private static Match e555C(Session s, Frame f) { - return s.literal(f, "startsWith", true, false, K776); + return parseStringExpression_89(s, f); } private static Match e555M(Session s, Frame f) { - return s.literal(f, "startsWith", true, false, K776); + return parseStringExpression_89(s, f); } private static Match e556(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e556M(s, f) : e556C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e556M : TinyExpressionP4Parser::e556C, K216, K216, K216, K217, K217, "TinyExpressionP4::StartsWithFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13313:13316:body/1/literal", false, true, "text", false, K399); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e556M : TinyExpressionP4Parser::e556C, K227, K227, K227, K228, K228, "TinyExpressionP4::LengthFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12856:12859:body/3/literal", false, true, "text", false, K439); } private static Match e556C(Session s, Frame f) { - return s.literal(f, "(", true, false, K400); + return s.literal(f, ")", true, false, K440); } private static Match e556M(Session s, Frame f) { - return s.literal(f, "(", true, false, K400); + return s.literal(f, ")", true, false, K440); } private static Match e557(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e557M(s, f) : e557C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e557M : TinyExpressionP4Parser::e557C, K777, K323, K225, K226, K226, "TinyExpressionP4::StartsWithFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13317:13333:body/2/ruleRef", false, false, "node", false, K227); + f.reset = false; + if (s.bypassWrap) { Match r = f.matched ? e557M(s, f) : e557C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e557M : TinyExpressionP4Parser::e557C, K227, K227, K227, K228, K228, "TinyExpressionP4::LenFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12920:12957:body/seq", false, false, "node", false, K4); } private static Match e557C(Session s, Frame f) { - return parseStringExpression_89(s, f); + return s.sequence(f, K789, K658); } private static Match e557M(Session s, Frame f) { - return parseStringExpression_89(s, f); + return s.sequence(f, K789, K658); } private static Match e558(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e558M(s, f) : e558C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e558M : TinyExpressionP4Parser::e558C, K216, K216, K216, K217, K217, "TinyExpressionP4::StartsWithFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13341:13344:body/3/literal", false, true, "text", false, K404); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e558M : TinyExpressionP4Parser::e558C, K227, K227, K227, K228, K228, "TinyExpressionP4::LenFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12920:12925:body/0/literal", false, true, "text", false, K790); } private static Match e558C(Session s, Frame f) { - return s.literal(f, ",", true, false, K407); + return s.literal(f, "len", true, false, K791); } private static Match e558M(Session s, Frame f) { - return s.literal(f, ",", true, false, K407); + return s.literal(f, "len", true, false, K791); } private static Match e559(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e559M(s, f) : e559C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e559M : TinyExpressionP4Parser::e559C, K778, K779, K225, K226, K226, "TinyExpressionP4::StartsWithFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13345:13361:body/4/ruleRef", false, false, "node", false, K227); + if (s.bypassWrap) { Match r = f.matched ? e559M(s, f) : e559C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e559M : TinyExpressionP4Parser::e559C, K227, K227, K227, K228, K228, "TinyExpressionP4::LenFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12926:12929:body/1/literal", false, true, "text", false, K437); } private static Match e559C(Session s, Frame f) { - return parseStringExpression_89(s, f); + return s.literal(f, "(", true, false, K438); } private static Match e559M(Session s, Frame f) { - return parseStringExpression_89(s, f); + return s.literal(f, "(", true, false, K438); } private static Match e560(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e560M(s, f) : e560C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e560M : TinyExpressionP4Parser::e560C, K216, K216, K216, K217, K217, "TinyExpressionP4::StartsWithFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13376:13410:body/5/repeat", true, false, "node", true, K404); + if (s.bypassCapture) { Match r = f.matched ? e560M(s, f) : e560C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e560M : TinyExpressionP4Parser::e560C, K792, K363, K236, K237, K237, "TinyExpressionP4::LenFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12930:12946:body/2/ruleRef", false, false, "node", false, K238); } private static Match e560C(Session s, Frame f) { - return s.repeat(f, TinyExpressionP4Parser::e561, 0, Integer.MAX_VALUE, null, Trivia.NONE); + return parseStringExpression_89(s, f); } private static Match e560M(Session s, Frame f) { - return s.repeat(f, TinyExpressionP4Parser::e561, 0, Integer.MAX_VALUE, null, Trivia.NONE); + return parseStringExpression_89(s, f); } private static Match e561(Session s, Frame f) { - f.reset = false; - if (s.bypassWrap) { Match r = f.matched ? e561M(s, f) : e561C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e561M : TinyExpressionP4Parser::e561C, K216, K216, K216, K217, K217, "TinyExpressionP4::StartsWithFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13378:13398:body/5/0/seq", false, false, "node", false, K404); + if (s.bypassWrap) { Match r = f.matched ? e561M(s, f) : e561C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e561M : TinyExpressionP4Parser::e561C, K227, K227, K227, K228, K228, "TinyExpressionP4::LenFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12954:12957:body/3/literal", false, true, "text", false, K439); } private static Match e561C(Session s, Frame f) { - return s.sequence(f, K780, K271); + return s.literal(f, ")", true, false, K440); } private static Match e561M(Session s, Frame f) { - return s.sequence(f, K780, K271); + return s.literal(f, ")", true, false, K440); } private static Match e562(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e562M(s, f) : e562C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e562M : TinyExpressionP4Parser::e562C, K216, K216, K216, K217, K217, "TinyExpressionP4::StartsWithFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13378:13381:body/5/0/0/literal", false, true, "text", false, K404); + f.reset = false; + if (s.bypassWrap) { Match r = f.matched ? e562M(s, f) : e562C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e562M : TinyExpressionP4Parser::e562C, K227, K227, K227, K228, K228, "TinyExpressionP4::ToUpperCaseDotMethod", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13282:13323:body/seq", false, false, "node", false, K4); } private static Match e562C(Session s, Frame f) { - return s.literal(f, ",", true, false, K407); + return s.sequence(f, K793, K658); } private static Match e562M(Session s, Frame f) { - return s.literal(f, ",", true, false, K407); + return s.sequence(f, K793, K658); } private static Match e563(Session s, Frame f) { if (s.bypassCapture) { Match r = f.matched ? e563M(s, f) : e563C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e563M : TinyExpressionP4Parser::e563C, K781, K779, K225, K226, K226, "TinyExpressionP4::StartsWithFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13382:13398:body/5/0/1/ruleRef", false, false, "node", false, K227); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e563M : TinyExpressionP4Parser::e563C, K794, K363, K236, K237, K237, "TinyExpressionP4::ToUpperCaseDotMethod", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13282:13293:body/0/ruleRef", false, false, "node", false, K50); } private static Match e563C(Session s, Frame f) { - return parseStringExpression_89(s, f); + return parseVariableRef_121(s, f); } private static Match e563M(Session s, Frame f) { - return parseStringExpression_89(s, f); + return parseVariableRef_121(s, f); } private static Match e564(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e564M(s, f) : e564C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e564M : TinyExpressionP4Parser::e564C, K216, K216, K216, K217, K217, "TinyExpressionP4::StartsWithFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13411:13414:body/6/literal", false, true, "text", false, K401); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e564M : TinyExpressionP4Parser::e564C, K227, K227, K227, K228, K228, "TinyExpressionP4::ToUpperCaseDotMethod", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13301:13315:body/1/literal", false, true, "text", false, K795); } private static Match e564C(Session s, Frame f) { - return s.literal(f, ")", true, false, K402); + return s.literal(f, ".toUpperCase", true, false, K796); } private static Match e564M(Session s, Frame f) { - return s.literal(f, ")", true, false, K402); + return s.literal(f, ".toUpperCase", true, false, K796); } private static Match e565(Session s, Frame f) { - f.reset = false; - if (s.bypassWrap) { Match r = f.matched ? e565M(s, f) : e565C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e565M : TinyExpressionP4Parser::e565C, K216, K216, K216, K217, K217, "TinyExpressionP4::EndsWithFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13492:13604:body/seq", false, false, "node", true, K4); + if (s.bypassWrap) { Match r = f.matched ? e565M(s, f) : e565C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e565M : TinyExpressionP4Parser::e565C, K227, K227, K227, K228, K228, "TinyExpressionP4::ToUpperCaseDotMethod", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13316:13319:body/2/literal", false, true, "text", false, K437); } private static Match e565C(Session s, Frame f) { - return s.sequence(f, K782, K220); + return s.literal(f, "(", true, false, K438); } private static Match e565M(Session s, Frame f) { - return s.sequence(f, K782, K220); + return s.literal(f, "(", true, false, K438); } private static Match e566(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e566M(s, f) : e566C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e566M : TinyExpressionP4Parser::e566C, K216, K216, K216, K217, K217, "TinyExpressionP4::EndsWithFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13492:13502:body/0/literal", false, true, "text", false, K783); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e566M : TinyExpressionP4Parser::e566C, K227, K227, K227, K228, K228, "TinyExpressionP4::ToUpperCaseDotMethod", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13320:13323:body/3/literal", false, true, "text", false, K439); } private static Match e566C(Session s, Frame f) { - return s.literal(f, "endsWith", true, false, K784); + return s.literal(f, ")", true, false, K440); } private static Match e566M(Session s, Frame f) { - return s.literal(f, "endsWith", true, false, K784); + return s.literal(f, ")", true, false, K440); } private static Match e567(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e567M(s, f) : e567C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e567M : TinyExpressionP4Parser::e567C, K216, K216, K216, K217, K217, "TinyExpressionP4::EndsWithFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13503:13506:body/1/literal", false, true, "text", false, K399); + f.reset = false; + if (s.bypassWrap) { Match r = f.matched ? e567M(s, f) : e567C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e567M : TinyExpressionP4Parser::e567C, K227, K227, K227, K228, K228, "TinyExpressionP4::ToLowerCaseDotMethod", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13401:13442:body/seq", false, false, "node", false, K4); } private static Match e567C(Session s, Frame f) { - return s.literal(f, "(", true, false, K400); + return s.sequence(f, K797, K658); } private static Match e567M(Session s, Frame f) { - return s.literal(f, "(", true, false, K400); + return s.sequence(f, K797, K658); } private static Match e568(Session s, Frame f) { if (s.bypassCapture) { Match r = f.matched ? e568M(s, f) : e568C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e568M : TinyExpressionP4Parser::e568C, K785, K323, K225, K226, K226, "TinyExpressionP4::EndsWithFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13507:13523:body/2/ruleRef", false, false, "node", false, K227); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e568M : TinyExpressionP4Parser::e568C, K798, K363, K236, K237, K237, "TinyExpressionP4::ToLowerCaseDotMethod", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13401:13412:body/0/ruleRef", false, false, "node", false, K50); } private static Match e568C(Session s, Frame f) { - return parseStringExpression_89(s, f); + return parseVariableRef_121(s, f); } private static Match e568M(Session s, Frame f) { - return parseStringExpression_89(s, f); + return parseVariableRef_121(s, f); } private static Match e569(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e569M(s, f) : e569C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e569M : TinyExpressionP4Parser::e569C, K216, K216, K216, K217, K217, "TinyExpressionP4::EndsWithFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13531:13534:body/3/literal", false, true, "text", false, K404); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e569M : TinyExpressionP4Parser::e569C, K227, K227, K227, K228, K228, "TinyExpressionP4::ToLowerCaseDotMethod", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13420:13434:body/1/literal", false, true, "text", false, K799); } private static Match e569C(Session s, Frame f) { - return s.literal(f, ",", true, false, K407); + return s.literal(f, ".toLowerCase", true, false, K800); } private static Match e569M(Session s, Frame f) { - return s.literal(f, ",", true, false, K407); + return s.literal(f, ".toLowerCase", true, false, K800); } private static Match e570(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e570M(s, f) : e570C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e570M : TinyExpressionP4Parser::e570C, K786, K779, K225, K226, K226, "TinyExpressionP4::EndsWithFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13535:13551:body/4/ruleRef", false, false, "node", false, K227); + if (s.bypassWrap) { Match r = f.matched ? e570M(s, f) : e570C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e570M : TinyExpressionP4Parser::e570C, K227, K227, K227, K228, K228, "TinyExpressionP4::ToLowerCaseDotMethod", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13435:13438:body/2/literal", false, true, "text", false, K437); } private static Match e570C(Session s, Frame f) { - return parseStringExpression_89(s, f); + return s.literal(f, "(", true, false, K438); } private static Match e570M(Session s, Frame f) { - return parseStringExpression_89(s, f); + return s.literal(f, "(", true, false, K438); } private static Match e571(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e571M(s, f) : e571C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e571M : TinyExpressionP4Parser::e571C, K216, K216, K216, K217, K217, "TinyExpressionP4::EndsWithFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13566:13600:body/5/repeat", true, false, "node", true, K404); + if (s.bypassWrap) { Match r = f.matched ? e571M(s, f) : e571C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e571M : TinyExpressionP4Parser::e571C, K227, K227, K227, K228, K228, "TinyExpressionP4::ToLowerCaseDotMethod", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13439:13442:body/3/literal", false, true, "text", false, K439); } private static Match e571C(Session s, Frame f) { - return s.repeat(f, TinyExpressionP4Parser::e572, 0, Integer.MAX_VALUE, null, Trivia.NONE); + return s.literal(f, ")", true, false, K440); } private static Match e571M(Session s, Frame f) { - return s.repeat(f, TinyExpressionP4Parser::e572, 0, Integer.MAX_VALUE, null, Trivia.NONE); + return s.literal(f, ")", true, false, K440); } private static Match e572(Session s, Frame f) { f.reset = false; if (s.bypassWrap) { Match r = f.matched ? e572M(s, f) : e572C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e572M : TinyExpressionP4Parser::e572C, K216, K216, K216, K217, K217, "TinyExpressionP4::EndsWithFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13568:13588:body/5/0/seq", false, false, "node", false, K404); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e572M : TinyExpressionP4Parser::e572C, K227, K227, K227, K228, K228, "TinyExpressionP4::TrimDotMethod", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13506:13540:body/seq", false, false, "node", false, K4); } private static Match e572C(Session s, Frame f) { - return s.sequence(f, K787, K271); + return s.sequence(f, K801, K658); } private static Match e572M(Session s, Frame f) { - return s.sequence(f, K787, K271); + return s.sequence(f, K801, K658); } private static Match e573(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e573M(s, f) : e573C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e573M : TinyExpressionP4Parser::e573C, K216, K216, K216, K217, K217, "TinyExpressionP4::EndsWithFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13568:13571:body/5/0/0/literal", false, true, "text", false, K404); + if (s.bypassCapture) { Match r = f.matched ? e573M(s, f) : e573C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e573M : TinyExpressionP4Parser::e573C, K802, K363, K236, K237, K237, "TinyExpressionP4::TrimDotMethod", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13506:13517:body/0/ruleRef", false, false, "node", false, K50); } private static Match e573C(Session s, Frame f) { - return s.literal(f, ",", true, false, K407); + return parseVariableRef_121(s, f); } private static Match e573M(Session s, Frame f) { - return s.literal(f, ",", true, false, K407); + return parseVariableRef_121(s, f); } private static Match e574(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e574M(s, f) : e574C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e574M : TinyExpressionP4Parser::e574C, K788, K779, K225, K226, K226, "TinyExpressionP4::EndsWithFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13572:13588:body/5/0/1/ruleRef", false, false, "node", false, K227); + if (s.bypassWrap) { Match r = f.matched ? e574M(s, f) : e574C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e574M : TinyExpressionP4Parser::e574C, K227, K227, K227, K228, K228, "TinyExpressionP4::TrimDotMethod", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13525:13532:body/1/literal", false, true, "text", false, K803); } private static Match e574C(Session s, Frame f) { - return parseStringExpression_89(s, f); + return s.literal(f, ".trim", true, false, K804); } private static Match e574M(Session s, Frame f) { - return parseStringExpression_89(s, f); + return s.literal(f, ".trim", true, false, K804); } private static Match e575(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e575M(s, f) : e575C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e575M : TinyExpressionP4Parser::e575C, K216, K216, K216, K217, K217, "TinyExpressionP4::EndsWithFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13601:13604:body/6/literal", false, true, "text", false, K401); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e575M : TinyExpressionP4Parser::e575C, K227, K227, K227, K228, K228, "TinyExpressionP4::TrimDotMethod", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13533:13536:body/2/literal", false, true, "text", false, K437); } private static Match e575C(Session s, Frame f) { - return s.literal(f, ")", true, false, K402); + return s.literal(f, "(", true, false, K438); } private static Match e575M(Session s, Frame f) { - return s.literal(f, ")", true, false, K402); + return s.literal(f, "(", true, false, K438); } private static Match e576(Session s, Frame f) { - f.reset = false; - if (s.bypassWrap) { Match r = f.matched ? e576M(s, f) : e576C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e576M : TinyExpressionP4Parser::e576C, K216, K216, K216, K217, K217, "TinyExpressionP4::ContainsFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13682:13794:body/seq", false, false, "node", true, K4); + if (s.bypassWrap) { Match r = f.matched ? e576M(s, f) : e576C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e576M : TinyExpressionP4Parser::e576C, K227, K227, K227, K228, K228, "TinyExpressionP4::TrimDotMethod", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13537:13540:body/3/literal", false, true, "text", false, K439); } private static Match e576C(Session s, Frame f) { - return s.sequence(f, K789, K220); + return s.literal(f, ")", true, false, K440); } private static Match e576M(Session s, Frame f) { - return s.sequence(f, K789, K220); + return s.literal(f, ")", true, false, K440); } private static Match e577(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e577M(s, f) : e577C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e577M : TinyExpressionP4Parser::e577C, K216, K216, K216, K217, K217, "TinyExpressionP4::ContainsFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13682:13692:body/0/literal", false, true, "text", false, K790); + f.reset = false; + if (s.bypassWrap) { Match r = f.matched ? e577M(s, f) : e577C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e577M : TinyExpressionP4Parser::e577C, K227, K227, K227, K228, K228, "TinyExpressionP4::LengthDotMethod", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13608:13644:body/seq", false, false, "node", false, K4); } private static Match e577C(Session s, Frame f) { - return s.literal(f, "contains", true, false, K791); + return s.sequence(f, K805, K658); } private static Match e577M(Session s, Frame f) { - return s.literal(f, "contains", true, false, K791); + return s.sequence(f, K805, K658); } private static Match e578(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e578M(s, f) : e578C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e578M : TinyExpressionP4Parser::e578C, K216, K216, K216, K217, K217, "TinyExpressionP4::ContainsFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13693:13696:body/1/literal", false, true, "text", false, K399); + if (s.bypassCapture) { Match r = f.matched ? e578M(s, f) : e578C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e578M : TinyExpressionP4Parser::e578C, K806, K363, K236, K237, K237, "TinyExpressionP4::LengthDotMethod", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13608:13619:body/0/ruleRef", false, false, "node", false, K50); } private static Match e578C(Session s, Frame f) { - return s.literal(f, "(", true, false, K400); + return parseVariableRef_121(s, f); } private static Match e578M(Session s, Frame f) { - return s.literal(f, "(", true, false, K400); + return parseVariableRef_121(s, f); } private static Match e579(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e579M(s, f) : e579C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e579M : TinyExpressionP4Parser::e579C, K792, K323, K225, K226, K226, "TinyExpressionP4::ContainsFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13697:13713:body/2/ruleRef", false, false, "node", false, K227); + if (s.bypassWrap) { Match r = f.matched ? e579M(s, f) : e579C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e579M : TinyExpressionP4Parser::e579C, K227, K227, K227, K228, K228, "TinyExpressionP4::LengthDotMethod", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13627:13636:body/1/literal", false, true, "text", false, K807); } private static Match e579C(Session s, Frame f) { - return parseStringExpression_89(s, f); + return s.literal(f, ".length", true, false, K808); } private static Match e579M(Session s, Frame f) { - return parseStringExpression_89(s, f); + return s.literal(f, ".length", true, false, K808); } private static Match e580(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e580M(s, f) : e580C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e580M : TinyExpressionP4Parser::e580C, K216, K216, K216, K217, K217, "TinyExpressionP4::ContainsFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13721:13724:body/3/literal", false, true, "text", false, K404); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e580M : TinyExpressionP4Parser::e580C, K227, K227, K227, K228, K228, "TinyExpressionP4::LengthDotMethod", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13637:13640:body/2/literal", false, true, "text", false, K437); } private static Match e580C(Session s, Frame f) { - return s.literal(f, ",", true, false, K407); + return s.literal(f, "(", true, false, K438); } private static Match e580M(Session s, Frame f) { - return s.literal(f, ",", true, false, K407); + return s.literal(f, "(", true, false, K438); } private static Match e581(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e581M(s, f) : e581C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e581M : TinyExpressionP4Parser::e581C, K793, K779, K225, K226, K226, "TinyExpressionP4::ContainsFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13725:13741:body/4/ruleRef", false, false, "node", false, K227); + if (s.bypassWrap) { Match r = f.matched ? e581M(s, f) : e581C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e581M : TinyExpressionP4Parser::e581C, K227, K227, K227, K228, K228, "TinyExpressionP4::LengthDotMethod", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13641:13644:body/3/literal", false, true, "text", false, K439); } private static Match e581C(Session s, Frame f) { - return parseStringExpression_89(s, f); + return s.literal(f, ")", true, false, K440); } private static Match e581M(Session s, Frame f) { - return parseStringExpression_89(s, f); + return s.literal(f, ")", true, false, K440); } private static Match e582(Session s, Frame f) { + f.reset = false; if (s.bypassWrap) { Match r = f.matched ? e582M(s, f) : e582C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e582M : TinyExpressionP4Parser::e582C, K216, K216, K216, K217, K217, "TinyExpressionP4::ContainsFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13756:13790:body/5/repeat", true, false, "node", true, K404); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e582M : TinyExpressionP4Parser::e582C, K227, K227, K227, K228, K228, "TinyExpressionP4::StartsWithFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13864:13978:body/seq", false, false, "node", true, K4); } private static Match e582C(Session s, Frame f) { - return s.repeat(f, TinyExpressionP4Parser::e583, 0, Integer.MAX_VALUE, null, Trivia.NONE); + return s.sequence(f, K809, K344); } private static Match e582M(Session s, Frame f) { - return s.repeat(f, TinyExpressionP4Parser::e583, 0, Integer.MAX_VALUE, null, Trivia.NONE); + return s.sequence(f, K809, K344); } private static Match e583(Session s, Frame f) { - f.reset = false; - if (s.bypassWrap) { Match r = f.matched ? e583M(s, f) : e583C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e583M : TinyExpressionP4Parser::e583C, K216, K216, K216, K217, K217, "TinyExpressionP4::ContainsFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13758:13778:body/5/0/seq", false, false, "node", false, K404); + if (s.bypassWrap) { Match r = f.matched ? e583M(s, f) : e583C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e583M : TinyExpressionP4Parser::e583C, K227, K227, K227, K228, K228, "TinyExpressionP4::StartsWithFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13864:13876:body/0/literal", false, true, "text", false, K810); } private static Match e583C(Session s, Frame f) { - return s.sequence(f, K794, K271); + return s.literal(f, "startsWith", true, false, K811); } private static Match e583M(Session s, Frame f) { - return s.sequence(f, K794, K271); + return s.literal(f, "startsWith", true, false, K811); } private static Match e584(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e584M(s, f) : e584C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e584M : TinyExpressionP4Parser::e584C, K216, K216, K216, K217, K217, "TinyExpressionP4::ContainsFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13758:13761:body/5/0/0/literal", false, true, "text", false, K404); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e584M : TinyExpressionP4Parser::e584C, K227, K227, K227, K228, K228, "TinyExpressionP4::StartsWithFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13877:13880:body/1/literal", false, true, "text", false, K437); } private static Match e584C(Session s, Frame f) { - return s.literal(f, ",", true, false, K407); + return s.literal(f, "(", true, false, K438); } private static Match e584M(Session s, Frame f) { - return s.literal(f, ",", true, false, K407); + return s.literal(f, "(", true, false, K438); } private static Match e585(Session s, Frame f) { if (s.bypassCapture) { Match r = f.matched ? e585M(s, f) : e585C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e585M : TinyExpressionP4Parser::e585C, K795, K779, K225, K226, K226, "TinyExpressionP4::ContainsFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13762:13778:body/5/0/1/ruleRef", false, false, "node", false, K227); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e585M : TinyExpressionP4Parser::e585C, K812, K363, K236, K237, K237, "TinyExpressionP4::StartsWithFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13881:13897:body/2/ruleRef", false, false, "node", false, K238); } private static Match e585C(Session s, Frame f) { return parseStringExpression_89(s, f); @@ -7302,58 +7363,58 @@ private static Match e585M(Session s, Frame f) { } private static Match e586(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e586M(s, f) : e586C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e586M : TinyExpressionP4Parser::e586C, K216, K216, K216, K217, K217, "TinyExpressionP4::ContainsFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13791:13794:body/6/literal", false, true, "text", false, K401); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e586M : TinyExpressionP4Parser::e586C, K227, K227, K227, K228, K228, "TinyExpressionP4::StartsWithFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13905:13908:body/3/literal", false, true, "text", false, K442); } private static Match e586C(Session s, Frame f) { - return s.literal(f, ")", true, false, K402); + return s.literal(f, ",", true, false, K445); } private static Match e586M(Session s, Frame f) { - return s.literal(f, ")", true, false, K402); + return s.literal(f, ",", true, false, K445); } private static Match e587(Session s, Frame f) { - f.reset = false; - if (s.bypassWrap) { Match r = f.matched ? e587M(s, f) : e587C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e587M : TinyExpressionP4Parser::e587C, K216, K216, K216, K217, K217, "TinyExpressionP4::InMethod", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13860:13963:body/seq", false, false, "node", true, K4); + if (s.bypassCapture) { Match r = f.matched ? e587M(s, f) : e587C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e587M : TinyExpressionP4Parser::e587C, K813, K814, K236, K237, K237, "TinyExpressionP4::StartsWithFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13909:13925:body/4/ruleRef", false, false, "node", false, K238); } private static Match e587C(Session s, Frame f) { - return s.sequence(f, K796, K263); + return parseStringExpression_89(s, f); } private static Match e587M(Session s, Frame f) { - return s.sequence(f, K796, K263); + return parseStringExpression_89(s, f); } private static Match e588(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e588M(s, f) : e588C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e588M : TinyExpressionP4Parser::e588C, K797, K323, K225, K226, K226, "TinyExpressionP4::InMethod", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13860:13876:body/0/ruleRef", false, false, "node", false, K227); + if (s.bypassWrap) { Match r = f.matched ? e588M(s, f) : e588C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e588M : TinyExpressionP4Parser::e588C, K227, K227, K227, K228, K228, "TinyExpressionP4::StartsWithFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13940:13974:body/5/repeat", true, false, "node", true, K442); } private static Match e588C(Session s, Frame f) { - return parseStringExpression_89(s, f); + return s.repeat(f, TinyExpressionP4Parser::e589, 0, Integer.MAX_VALUE, null, Trivia.NONE); } private static Match e588M(Session s, Frame f) { - return parseStringExpression_89(s, f); + return s.repeat(f, TinyExpressionP4Parser::e589, 0, Integer.MAX_VALUE, null, Trivia.NONE); } private static Match e589(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e589M(s, f) : e589C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e589M : TinyExpressionP4Parser::e589C, K216, K216, K216, K217, K217, "TinyExpressionP4::InMethod", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13884:13889:body/1/literal", false, true, "text", false, K798); + f.reset = false; + if (s.bypassWrap) { Match r = f.matched ? e589M(s, f) : e589C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e589M : TinyExpressionP4Parser::e589C, K227, K227, K227, K228, K228, "TinyExpressionP4::StartsWithFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13942:13962:body/5/0/seq", false, false, "node", false, K442); } private static Match e589C(Session s, Frame f) { - return s.literal(f, ".in", true, false, K799); + return s.sequence(f, K815, K309); } private static Match e589M(Session s, Frame f) { - return s.literal(f, ".in", true, false, K799); + return s.sequence(f, K815, K309); } private static Match e590(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e590M(s, f) : e590C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e590M : TinyExpressionP4Parser::e590C, K216, K216, K216, K217, K217, "TinyExpressionP4::InMethod", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13890:13893:body/2/literal", false, true, "text", false, K399); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e590M : TinyExpressionP4Parser::e590C, K227, K227, K227, K228, K228, "TinyExpressionP4::StartsWithFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13942:13945:body/5/0/0/literal", false, true, "text", false, K442); } private static Match e590C(Session s, Frame f) { - return s.literal(f, "(", true, false, K400); + return s.literal(f, ",", true, false, K445); } private static Match e590M(Session s, Frame f) { - return s.literal(f, "(", true, false, K400); + return s.literal(f, ",", true, false, K445); } private static Match e591(Session s, Frame f) { if (s.bypassCapture) { Match r = f.matched ? e591M(s, f) : e591C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e591M : TinyExpressionP4Parser::e591C, K800, K801, K225, K226, K226, "TinyExpressionP4::InMethod", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13894:13910:body/3/ruleRef", false, false, "node", false, K227); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e591M : TinyExpressionP4Parser::e591C, K816, K814, K236, K237, K237, "TinyExpressionP4::StartsWithFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13946:13962:body/5/0/1/ruleRef", false, false, "node", false, K238); } private static Match e591C(Session s, Frame f) { return parseStringExpression_89(s, f); @@ -7362,1388 +7423,1389 @@ private static Match e591M(Session s, Frame f) { return parseStringExpression_89(s, f); } private static Match e592(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e592M(s, f) : e592C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e592M : TinyExpressionP4Parser::e592C, K216, K216, K216, K217, K217, "TinyExpressionP4::InMethod", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13923:13959:body/4/repeat", true, false, "node", true, K404); + if (s.bypassWrap) { Match r = f.matched ? e592M(s, f) : e592C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e592M : TinyExpressionP4Parser::e592C, K227, K227, K227, K228, K228, "TinyExpressionP4::StartsWithFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13975:13978:body/6/literal", false, true, "text", false, K439); } private static Match e592C(Session s, Frame f) { - return s.repeat(f, TinyExpressionP4Parser::e593, 0, Integer.MAX_VALUE, null, Trivia.NONE); + return s.literal(f, ")", true, false, K440); } private static Match e592M(Session s, Frame f) { - return s.repeat(f, TinyExpressionP4Parser::e593, 0, Integer.MAX_VALUE, null, Trivia.NONE); + return s.literal(f, ")", true, false, K440); } private static Match e593(Session s, Frame f) { f.reset = false; if (s.bypassWrap) { Match r = f.matched ? e593M(s, f) : e593C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e593M : TinyExpressionP4Parser::e593C, K216, K216, K216, K217, K217, "TinyExpressionP4::InMethod", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13925:13945:body/4/0/seq", false, false, "node", false, K404); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e593M : TinyExpressionP4Parser::e593C, K227, K227, K227, K228, K228, "TinyExpressionP4::EndsWithFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14056:14168:body/seq", false, false, "node", true, K4); } private static Match e593C(Session s, Frame f) { - return s.sequence(f, K802, K271); + return s.sequence(f, K817, K344); } private static Match e593M(Session s, Frame f) { - return s.sequence(f, K802, K271); + return s.sequence(f, K817, K344); } private static Match e594(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e594M(s, f) : e594C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e594M : TinyExpressionP4Parser::e594C, K216, K216, K216, K217, K217, "TinyExpressionP4::InMethod", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13925:13928:body/4/0/0/literal", false, true, "text", false, K404); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e594M : TinyExpressionP4Parser::e594C, K227, K227, K227, K228, K228, "TinyExpressionP4::EndsWithFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14056:14066:body/0/literal", false, true, "text", false, K818); } private static Match e594C(Session s, Frame f) { - return s.literal(f, ",", true, false, K407); + return s.literal(f, "endsWith", true, false, K819); } private static Match e594M(Session s, Frame f) { - return s.literal(f, ",", true, false, K407); + return s.literal(f, "endsWith", true, false, K819); } private static Match e595(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e595M(s, f) : e595C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e595M : TinyExpressionP4Parser::e595C, K803, K801, K225, K226, K226, "TinyExpressionP4::InMethod", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13929:13945:body/4/0/1/ruleRef", false, false, "node", false, K227); + if (s.bypassWrap) { Match r = f.matched ? e595M(s, f) : e595C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e595M : TinyExpressionP4Parser::e595C, K227, K227, K227, K228, K228, "TinyExpressionP4::EndsWithFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14067:14070:body/1/literal", false, true, "text", false, K437); } private static Match e595C(Session s, Frame f) { - return parseStringExpression_89(s, f); + return s.literal(f, "(", true, false, K438); } private static Match e595M(Session s, Frame f) { - return parseStringExpression_89(s, f); + return s.literal(f, "(", true, false, K438); } private static Match e596(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e596M(s, f) : e596C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e596M : TinyExpressionP4Parser::e596C, K216, K216, K216, K217, K217, "TinyExpressionP4::InMethod", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13960:13963:body/5/literal", false, true, "text", false, K401); + if (s.bypassCapture) { Match r = f.matched ? e596M(s, f) : e596C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e596M : TinyExpressionP4Parser::e596C, K820, K363, K236, K237, K237, "TinyExpressionP4::EndsWithFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14071:14087:body/2/ruleRef", false, false, "node", false, K238); } private static Match e596C(Session s, Frame f) { - return s.literal(f, ")", true, false, K402); + return parseStringExpression_89(s, f); } private static Match e596M(Session s, Frame f) { - return s.literal(f, ")", true, false, K402); + return parseStringExpression_89(s, f); } private static Match e597(Session s, Frame f) { - f.reset = false; - if (s.bypassWrap) { Match r = f.matched ? e597M(s, f) : e597C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e597M : TinyExpressionP4Parser::e597C, K216, K216, K216, K217, K217, "TinyExpressionP4::StartsWithDotMethod", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14128:14246:body/seq", false, false, "node", true, K4); + if (s.bypassWrap) { Match r = f.matched ? e597M(s, f) : e597C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e597M : TinyExpressionP4Parser::e597C, K227, K227, K227, K228, K228, "TinyExpressionP4::EndsWithFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14095:14098:body/3/literal", false, true, "text", false, K442); } private static Match e597C(Session s, Frame f) { - return s.sequence(f, K804, K263); + return s.literal(f, ",", true, false, K445); } private static Match e597M(Session s, Frame f) { - return s.sequence(f, K804, K263); + return s.literal(f, ",", true, false, K445); } private static Match e598(Session s, Frame f) { if (s.bypassCapture) { Match r = f.matched ? e598M(s, f) : e598C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e598M : TinyExpressionP4Parser::e598C, K805, K323, K225, K226, K226, "TinyExpressionP4::StartsWithDotMethod", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14128:14151:body/0/ruleRef", false, false, "node", false, K227); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e598M : TinyExpressionP4Parser::e598C, K821, K814, K236, K237, K237, "TinyExpressionP4::EndsWithFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14099:14115:body/4/ruleRef", false, false, "node", false, K238); } private static Match e598C(Session s, Frame f) { - return parseStringPredicateReceiver_77(s, f); + return parseStringExpression_89(s, f); } private static Match e598M(Session s, Frame f) { - return parseStringPredicateReceiver_77(s, f); + return parseStringExpression_89(s, f); } private static Match e599(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e599M(s, f) : e599C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e599M : TinyExpressionP4Parser::e599C, K216, K216, K216, K217, K217, "TinyExpressionP4::StartsWithDotMethod", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14159:14172:body/1/literal", false, true, "text", false, K806); + if (s.bypassWrap) { Match r = f.matched ? e599M(s, f) : e599C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e599M : TinyExpressionP4Parser::e599C, K227, K227, K227, K228, K228, "TinyExpressionP4::EndsWithFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14130:14164:body/5/repeat", true, false, "node", true, K442); } private static Match e599C(Session s, Frame f) { - return s.literal(f, ".startsWith", true, false, K807); + return s.repeat(f, TinyExpressionP4Parser::e600, 0, Integer.MAX_VALUE, null, Trivia.NONE); } private static Match e599M(Session s, Frame f) { - return s.literal(f, ".startsWith", true, false, K807); + return s.repeat(f, TinyExpressionP4Parser::e600, 0, Integer.MAX_VALUE, null, Trivia.NONE); } private static Match e600(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e600M(s, f) : e600C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e600M : TinyExpressionP4Parser::e600C, K216, K216, K216, K217, K217, "TinyExpressionP4::StartsWithDotMethod", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14173:14176:body/2/literal", false, true, "text", false, K399); + f.reset = false; + if (s.bypassWrap) { Match r = f.matched ? e600M(s, f) : e600C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e600M : TinyExpressionP4Parser::e600C, K227, K227, K227, K228, K228, "TinyExpressionP4::EndsWithFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14132:14152:body/5/0/seq", false, false, "node", false, K442); } private static Match e600C(Session s, Frame f) { - return s.literal(f, "(", true, false, K400); + return s.sequence(f, K822, K309); } private static Match e600M(Session s, Frame f) { - return s.literal(f, "(", true, false, K400); + return s.sequence(f, K822, K309); } private static Match e601(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e601M(s, f) : e601C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e601M : TinyExpressionP4Parser::e601C, K808, K779, K225, K226, K226, "TinyExpressionP4::StartsWithDotMethod", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14177:14193:body/3/ruleRef", false, false, "node", false, K227); + if (s.bypassWrap) { Match r = f.matched ? e601M(s, f) : e601C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e601M : TinyExpressionP4Parser::e601C, K227, K227, K227, K228, K228, "TinyExpressionP4::EndsWithFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14132:14135:body/5/0/0/literal", false, true, "text", false, K442); } private static Match e601C(Session s, Frame f) { - return parseStringExpression_89(s, f); + return s.literal(f, ",", true, false, K445); } private static Match e601M(Session s, Frame f) { - return parseStringExpression_89(s, f); + return s.literal(f, ",", true, false, K445); } private static Match e602(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e602M(s, f) : e602C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e602M : TinyExpressionP4Parser::e602C, K216, K216, K216, K217, K217, "TinyExpressionP4::StartsWithDotMethod", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14208:14242:body/4/repeat", true, false, "node", true, K404); + if (s.bypassCapture) { Match r = f.matched ? e602M(s, f) : e602C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e602M : TinyExpressionP4Parser::e602C, K823, K814, K236, K237, K237, "TinyExpressionP4::EndsWithFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14136:14152:body/5/0/1/ruleRef", false, false, "node", false, K238); } private static Match e602C(Session s, Frame f) { - return s.repeat(f, TinyExpressionP4Parser::e603, 0, Integer.MAX_VALUE, null, Trivia.NONE); + return parseStringExpression_89(s, f); } private static Match e602M(Session s, Frame f) { - return s.repeat(f, TinyExpressionP4Parser::e603, 0, Integer.MAX_VALUE, null, Trivia.NONE); + return parseStringExpression_89(s, f); } private static Match e603(Session s, Frame f) { - f.reset = false; - if (s.bypassWrap) { Match r = f.matched ? e603M(s, f) : e603C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e603M : TinyExpressionP4Parser::e603C, K216, K216, K216, K217, K217, "TinyExpressionP4::StartsWithDotMethod", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14210:14230:body/4/0/seq", false, false, "node", false, K404); + if (s.bypassWrap) { Match r = f.matched ? e603M(s, f) : e603C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e603M : TinyExpressionP4Parser::e603C, K227, K227, K227, K228, K228, "TinyExpressionP4::EndsWithFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14165:14168:body/6/literal", false, true, "text", false, K439); } private static Match e603C(Session s, Frame f) { - return s.sequence(f, K809, K271); + return s.literal(f, ")", true, false, K440); } private static Match e603M(Session s, Frame f) { - return s.sequence(f, K809, K271); + return s.literal(f, ")", true, false, K440); } private static Match e604(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e604M(s, f) : e604C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e604M : TinyExpressionP4Parser::e604C, K216, K216, K216, K217, K217, "TinyExpressionP4::StartsWithDotMethod", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14210:14213:body/4/0/0/literal", false, true, "text", false, K404); + f.reset = false; + if (s.bypassWrap) { Match r = f.matched ? e604M(s, f) : e604C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e604M : TinyExpressionP4Parser::e604C, K227, K227, K227, K228, K228, "TinyExpressionP4::ContainsFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14246:14358:body/seq", false, false, "node", true, K4); } private static Match e604C(Session s, Frame f) { - return s.literal(f, ",", true, false, K407); + return s.sequence(f, K824, K344); } private static Match e604M(Session s, Frame f) { - return s.literal(f, ",", true, false, K407); + return s.sequence(f, K824, K344); } private static Match e605(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e605M(s, f) : e605C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e605M : TinyExpressionP4Parser::e605C, K810, K779, K225, K226, K226, "TinyExpressionP4::StartsWithDotMethod", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14214:14230:body/4/0/1/ruleRef", false, false, "node", false, K227); + if (s.bypassWrap) { Match r = f.matched ? e605M(s, f) : e605C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e605M : TinyExpressionP4Parser::e605C, K227, K227, K227, K228, K228, "TinyExpressionP4::ContainsFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14246:14256:body/0/literal", false, true, "text", false, K825); } private static Match e605C(Session s, Frame f) { - return parseStringExpression_89(s, f); + return s.literal(f, "contains", true, false, K826); } private static Match e605M(Session s, Frame f) { - return parseStringExpression_89(s, f); + return s.literal(f, "contains", true, false, K826); } private static Match e606(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e606M(s, f) : e606C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e606M : TinyExpressionP4Parser::e606C, K216, K216, K216, K217, K217, "TinyExpressionP4::StartsWithDotMethod", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14243:14246:body/5/literal", false, true, "text", false, K401); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e606M : TinyExpressionP4Parser::e606C, K227, K227, K227, K228, K228, "TinyExpressionP4::ContainsFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14257:14260:body/1/literal", false, true, "text", false, K437); } private static Match e606C(Session s, Frame f) { - return s.literal(f, ")", true, false, K402); + return s.literal(f, "(", true, false, K438); } private static Match e606M(Session s, Frame f) { - return s.literal(f, ")", true, false, K402); + return s.literal(f, "(", true, false, K438); } private static Match e607(Session s, Frame f) { - f.reset = false; - if (s.bypassWrap) { Match r = f.matched ? e607M(s, f) : e607C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e607M : TinyExpressionP4Parser::e607C, K216, K216, K216, K217, K217, "TinyExpressionP4::EndsWithDotMethod", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14328:14444:body/seq", false, false, "node", true, K4); + if (s.bypassCapture) { Match r = f.matched ? e607M(s, f) : e607C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e607M : TinyExpressionP4Parser::e607C, K827, K363, K236, K237, K237, "TinyExpressionP4::ContainsFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14261:14277:body/2/ruleRef", false, false, "node", false, K238); } private static Match e607C(Session s, Frame f) { - return s.sequence(f, K811, K263); + return parseStringExpression_89(s, f); } private static Match e607M(Session s, Frame f) { - return s.sequence(f, K811, K263); + return parseStringExpression_89(s, f); } private static Match e608(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e608M(s, f) : e608C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e608M : TinyExpressionP4Parser::e608C, K812, K323, K225, K226, K226, "TinyExpressionP4::EndsWithDotMethod", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14328:14351:body/0/ruleRef", false, false, "node", false, K227); + if (s.bypassWrap) { Match r = f.matched ? e608M(s, f) : e608C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e608M : TinyExpressionP4Parser::e608C, K227, K227, K227, K228, K228, "TinyExpressionP4::ContainsFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14285:14288:body/3/literal", false, true, "text", false, K442); } private static Match e608C(Session s, Frame f) { - return parseStringPredicateReceiver_77(s, f); + return s.literal(f, ",", true, false, K445); } private static Match e608M(Session s, Frame f) { - return parseStringPredicateReceiver_77(s, f); + return s.literal(f, ",", true, false, K445); } private static Match e609(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e609M(s, f) : e609C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e609M : TinyExpressionP4Parser::e609C, K216, K216, K216, K217, K217, "TinyExpressionP4::EndsWithDotMethod", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14359:14370:body/1/literal", false, true, "text", false, K813); + if (s.bypassCapture) { Match r = f.matched ? e609M(s, f) : e609C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e609M : TinyExpressionP4Parser::e609C, K828, K814, K236, K237, K237, "TinyExpressionP4::ContainsFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14289:14305:body/4/ruleRef", false, false, "node", false, K238); } private static Match e609C(Session s, Frame f) { - return s.literal(f, ".endsWith", true, false, K814); + return parseStringExpression_89(s, f); } private static Match e609M(Session s, Frame f) { - return s.literal(f, ".endsWith", true, false, K814); + return parseStringExpression_89(s, f); } private static Match e610(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e610M(s, f) : e610C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e610M : TinyExpressionP4Parser::e610C, K216, K216, K216, K217, K217, "TinyExpressionP4::EndsWithDotMethod", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14371:14374:body/2/literal", false, true, "text", false, K399); + if (s.bypassWrap) { Match r = f.matched ? e610M(s, f) : e610C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e610M : TinyExpressionP4Parser::e610C, K227, K227, K227, K228, K228, "TinyExpressionP4::ContainsFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14320:14354:body/5/repeat", true, false, "node", true, K442); } private static Match e610C(Session s, Frame f) { - return s.literal(f, "(", true, false, K400); + return s.repeat(f, TinyExpressionP4Parser::e611, 0, Integer.MAX_VALUE, null, Trivia.NONE); } private static Match e610M(Session s, Frame f) { - return s.literal(f, "(", true, false, K400); + return s.repeat(f, TinyExpressionP4Parser::e611, 0, Integer.MAX_VALUE, null, Trivia.NONE); } private static Match e611(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e611M(s, f) : e611C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e611M : TinyExpressionP4Parser::e611C, K815, K779, K225, K226, K226, "TinyExpressionP4::EndsWithDotMethod", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14375:14391:body/3/ruleRef", false, false, "node", false, K227); + f.reset = false; + if (s.bypassWrap) { Match r = f.matched ? e611M(s, f) : e611C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e611M : TinyExpressionP4Parser::e611C, K227, K227, K227, K228, K228, "TinyExpressionP4::ContainsFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14322:14342:body/5/0/seq", false, false, "node", false, K442); } private static Match e611C(Session s, Frame f) { - return parseStringExpression_89(s, f); + return s.sequence(f, K829, K309); } private static Match e611M(Session s, Frame f) { - return parseStringExpression_89(s, f); + return s.sequence(f, K829, K309); } private static Match e612(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e612M(s, f) : e612C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e612M : TinyExpressionP4Parser::e612C, K216, K216, K216, K217, K217, "TinyExpressionP4::EndsWithDotMethod", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14406:14440:body/4/repeat", true, false, "node", true, K404); + if (s.bypassWrap) { Match r = f.matched ? e612M(s, f) : e612C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e612M : TinyExpressionP4Parser::e612C, K227, K227, K227, K228, K228, "TinyExpressionP4::ContainsFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14322:14325:body/5/0/0/literal", false, true, "text", false, K442); } private static Match e612C(Session s, Frame f) { - return s.repeat(f, TinyExpressionP4Parser::e613, 0, Integer.MAX_VALUE, null, Trivia.NONE); + return s.literal(f, ",", true, false, K445); } private static Match e612M(Session s, Frame f) { - return s.repeat(f, TinyExpressionP4Parser::e613, 0, Integer.MAX_VALUE, null, Trivia.NONE); + return s.literal(f, ",", true, false, K445); } private static Match e613(Session s, Frame f) { - f.reset = false; - if (s.bypassWrap) { Match r = f.matched ? e613M(s, f) : e613C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e613M : TinyExpressionP4Parser::e613C, K216, K216, K216, K217, K217, "TinyExpressionP4::EndsWithDotMethod", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14408:14428:body/4/0/seq", false, false, "node", false, K404); + if (s.bypassCapture) { Match r = f.matched ? e613M(s, f) : e613C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e613M : TinyExpressionP4Parser::e613C, K830, K814, K236, K237, K237, "TinyExpressionP4::ContainsFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14326:14342:body/5/0/1/ruleRef", false, false, "node", false, K238); } private static Match e613C(Session s, Frame f) { - return s.sequence(f, K816, K271); + return parseStringExpression_89(s, f); } private static Match e613M(Session s, Frame f) { - return s.sequence(f, K816, K271); + return parseStringExpression_89(s, f); } private static Match e614(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e614M(s, f) : e614C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e614M : TinyExpressionP4Parser::e614C, K216, K216, K216, K217, K217, "TinyExpressionP4::EndsWithDotMethod", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14408:14411:body/4/0/0/literal", false, true, "text", false, K404); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e614M : TinyExpressionP4Parser::e614C, K227, K227, K227, K228, K228, "TinyExpressionP4::ContainsFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14355:14358:body/6/literal", false, true, "text", false, K439); } private static Match e614C(Session s, Frame f) { - return s.literal(f, ",", true, false, K407); + return s.literal(f, ")", true, false, K440); } private static Match e614M(Session s, Frame f) { - return s.literal(f, ",", true, false, K407); + return s.literal(f, ")", true, false, K440); } private static Match e615(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e615M(s, f) : e615C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e615M : TinyExpressionP4Parser::e615C, K817, K779, K225, K226, K226, "TinyExpressionP4::EndsWithDotMethod", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14412:14428:body/4/0/1/ruleRef", false, false, "node", false, K227); + f.reset = false; + if (s.bypassWrap) { Match r = f.matched ? e615M(s, f) : e615C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e615M : TinyExpressionP4Parser::e615C, K227, K227, K227, K228, K228, "TinyExpressionP4::InMethod", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14424:14527:body/seq", false, false, "node", true, K4); } private static Match e615C(Session s, Frame f) { - return parseStringExpression_89(s, f); + return s.sequence(f, K831, K301); } private static Match e615M(Session s, Frame f) { - return parseStringExpression_89(s, f); + return s.sequence(f, K831, K301); } private static Match e616(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e616M(s, f) : e616C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e616M : TinyExpressionP4Parser::e616C, K216, K216, K216, K217, K217, "TinyExpressionP4::EndsWithDotMethod", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14441:14444:body/5/literal", false, true, "text", false, K401); + if (s.bypassCapture) { Match r = f.matched ? e616M(s, f) : e616C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e616M : TinyExpressionP4Parser::e616C, K832, K363, K236, K237, K237, "TinyExpressionP4::InMethod", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14424:14440:body/0/ruleRef", false, false, "node", false, K238); } private static Match e616C(Session s, Frame f) { - return s.literal(f, ")", true, false, K402); + return parseStringExpression_89(s, f); } private static Match e616M(Session s, Frame f) { - return s.literal(f, ")", true, false, K402); + return parseStringExpression_89(s, f); } private static Match e617(Session s, Frame f) { - f.reset = false; - if (s.bypassWrap) { Match r = f.matched ? e617M(s, f) : e617C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e617M : TinyExpressionP4Parser::e617C, K216, K216, K216, K217, K217, "TinyExpressionP4::ContainsDotMethod", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14526:14642:body/seq", false, false, "node", true, K4); + if (s.bypassWrap) { Match r = f.matched ? e617M(s, f) : e617C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e617M : TinyExpressionP4Parser::e617C, K227, K227, K227, K228, K228, "TinyExpressionP4::InMethod", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14448:14453:body/1/literal", false, true, "text", false, K833); } private static Match e617C(Session s, Frame f) { - return s.sequence(f, K818, K263); + return s.literal(f, ".in", true, false, K834); } private static Match e617M(Session s, Frame f) { - return s.sequence(f, K818, K263); + return s.literal(f, ".in", true, false, K834); } private static Match e618(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e618M(s, f) : e618C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e618M : TinyExpressionP4Parser::e618C, K819, K323, K225, K226, K226, "TinyExpressionP4::ContainsDotMethod", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14526:14549:body/0/ruleRef", false, false, "node", false, K227); + if (s.bypassWrap) { Match r = f.matched ? e618M(s, f) : e618C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e618M : TinyExpressionP4Parser::e618C, K227, K227, K227, K228, K228, "TinyExpressionP4::InMethod", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14454:14457:body/2/literal", false, true, "text", false, K437); } private static Match e618C(Session s, Frame f) { - return parseStringPredicateReceiver_77(s, f); + return s.literal(f, "(", true, false, K438); } private static Match e618M(Session s, Frame f) { - return parseStringPredicateReceiver_77(s, f); + return s.literal(f, "(", true, false, K438); } private static Match e619(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e619M(s, f) : e619C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e619M : TinyExpressionP4Parser::e619C, K216, K216, K216, K217, K217, "TinyExpressionP4::ContainsDotMethod", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14557:14568:body/1/literal", false, true, "text", false, K820); + if (s.bypassCapture) { Match r = f.matched ? e619M(s, f) : e619C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e619M : TinyExpressionP4Parser::e619C, K835, K836, K236, K237, K237, "TinyExpressionP4::InMethod", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14458:14474:body/3/ruleRef", false, false, "node", false, K238); } private static Match e619C(Session s, Frame f) { - return s.literal(f, ".contains", true, false, K821); + return parseStringExpression_89(s, f); } private static Match e619M(Session s, Frame f) { - return s.literal(f, ".contains", true, false, K821); + return parseStringExpression_89(s, f); } private static Match e620(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e620M(s, f) : e620C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e620M : TinyExpressionP4Parser::e620C, K216, K216, K216, K217, K217, "TinyExpressionP4::ContainsDotMethod", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14569:14572:body/2/literal", false, true, "text", false, K399); + if (s.bypassWrap) { Match r = f.matched ? e620M(s, f) : e620C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e620M : TinyExpressionP4Parser::e620C, K227, K227, K227, K228, K228, "TinyExpressionP4::InMethod", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14487:14523:body/4/repeat", true, false, "node", true, K442); } private static Match e620C(Session s, Frame f) { - return s.literal(f, "(", true, false, K400); + return s.repeat(f, TinyExpressionP4Parser::e621, 0, Integer.MAX_VALUE, null, Trivia.NONE); } private static Match e620M(Session s, Frame f) { - return s.literal(f, "(", true, false, K400); + return s.repeat(f, TinyExpressionP4Parser::e621, 0, Integer.MAX_VALUE, null, Trivia.NONE); } private static Match e621(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e621M(s, f) : e621C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e621M : TinyExpressionP4Parser::e621C, K822, K779, K225, K226, K226, "TinyExpressionP4::ContainsDotMethod", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14573:14589:body/3/ruleRef", false, false, "node", false, K227); + f.reset = false; + if (s.bypassWrap) { Match r = f.matched ? e621M(s, f) : e621C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e621M : TinyExpressionP4Parser::e621C, K227, K227, K227, K228, K228, "TinyExpressionP4::InMethod", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14489:14509:body/4/0/seq", false, false, "node", false, K442); } private static Match e621C(Session s, Frame f) { - return parseStringExpression_89(s, f); + return s.sequence(f, K837, K309); } private static Match e621M(Session s, Frame f) { - return parseStringExpression_89(s, f); + return s.sequence(f, K837, K309); } private static Match e622(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e622M(s, f) : e622C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e622M : TinyExpressionP4Parser::e622C, K216, K216, K216, K217, K217, "TinyExpressionP4::ContainsDotMethod", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14604:14638:body/4/repeat", true, false, "node", true, K404); + if (s.bypassWrap) { Match r = f.matched ? e622M(s, f) : e622C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e622M : TinyExpressionP4Parser::e622C, K227, K227, K227, K228, K228, "TinyExpressionP4::InMethod", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14489:14492:body/4/0/0/literal", false, true, "text", false, K442); } private static Match e622C(Session s, Frame f) { - return s.repeat(f, TinyExpressionP4Parser::e623, 0, Integer.MAX_VALUE, null, Trivia.NONE); + return s.literal(f, ",", true, false, K445); } private static Match e622M(Session s, Frame f) { - return s.repeat(f, TinyExpressionP4Parser::e623, 0, Integer.MAX_VALUE, null, Trivia.NONE); + return s.literal(f, ",", true, false, K445); } private static Match e623(Session s, Frame f) { - f.reset = false; - if (s.bypassWrap) { Match r = f.matched ? e623M(s, f) : e623C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e623M : TinyExpressionP4Parser::e623C, K216, K216, K216, K217, K217, "TinyExpressionP4::ContainsDotMethod", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14606:14626:body/4/0/seq", false, false, "node", false, K404); + if (s.bypassCapture) { Match r = f.matched ? e623M(s, f) : e623C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e623M : TinyExpressionP4Parser::e623C, K838, K836, K236, K237, K237, "TinyExpressionP4::InMethod", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14493:14509:body/4/0/1/ruleRef", false, false, "node", false, K238); } private static Match e623C(Session s, Frame f) { - return s.sequence(f, K823, K271); + return parseStringExpression_89(s, f); } private static Match e623M(Session s, Frame f) { - return s.sequence(f, K823, K271); + return parseStringExpression_89(s, f); } private static Match e624(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e624M(s, f) : e624C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e624M : TinyExpressionP4Parser::e624C, K216, K216, K216, K217, K217, "TinyExpressionP4::ContainsDotMethod", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14606:14609:body/4/0/0/literal", false, true, "text", false, K404); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e624M : TinyExpressionP4Parser::e624C, K227, K227, K227, K228, K228, "TinyExpressionP4::InMethod", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14524:14527:body/5/literal", false, true, "text", false, K439); } private static Match e624C(Session s, Frame f) { - return s.literal(f, ",", true, false, K407); + return s.literal(f, ")", true, false, K440); } private static Match e624M(Session s, Frame f) { - return s.literal(f, ",", true, false, K407); + return s.literal(f, ")", true, false, K440); } private static Match e625(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e625M(s, f) : e625C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e625M : TinyExpressionP4Parser::e625C, K824, K779, K225, K226, K226, "TinyExpressionP4::ContainsDotMethod", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14610:14626:body/4/0/1/ruleRef", false, false, "node", false, K227); + f.reset = false; + if (s.bypassWrap) { Match r = f.matched ? e625M(s, f) : e625C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e625M : TinyExpressionP4Parser::e625C, K227, K227, K227, K228, K228, "TinyExpressionP4::StartsWithDotMethod", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14692:14810:body/seq", false, false, "node", true, K4); } private static Match e625C(Session s, Frame f) { - return parseStringExpression_89(s, f); + return s.sequence(f, K839, K301); } private static Match e625M(Session s, Frame f) { - return parseStringExpression_89(s, f); + return s.sequence(f, K839, K301); } private static Match e626(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e626M(s, f) : e626C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e626M : TinyExpressionP4Parser::e626C, K216, K216, K216, K217, K217, "TinyExpressionP4::ContainsDotMethod", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14639:14642:body/5/literal", false, true, "text", false, K401); + if (s.bypassCapture) { Match r = f.matched ? e626M(s, f) : e626C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e626M : TinyExpressionP4Parser::e626C, K840, K363, K236, K237, K237, "TinyExpressionP4::StartsWithDotMethod", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14692:14715:body/0/ruleRef", false, false, "node", false, K238); } private static Match e626C(Session s, Frame f) { - return s.literal(f, ")", true, false, K402); + return parseStringPredicateReceiver_77(s, f); } private static Match e626M(Session s, Frame f) { - return s.literal(f, ")", true, false, K402); + return parseStringPredicateReceiver_77(s, f); } private static Match e627(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e627M(s, f) : e627C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e627M : TinyExpressionP4Parser::e627C, K216, K216, K216, K217, K217, "TinyExpressionP4::StringPredicateReceiver", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14676:14746:body/choice", false, false, "node", false, K4); + if (s.bypassWrap) { Match r = f.matched ? e627M(s, f) : e627C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e627M : TinyExpressionP4Parser::e627C, K227, K227, K227, K228, K228, "TinyExpressionP4::StartsWithDotMethod", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14723:14736:body/1/literal", false, true, "text", false, K841); } private static Match e627C(Session s, Frame f) { - return s.choice(f,K835,false,null,false,K834); + return s.literal(f, ".startsWith", true, false, K842); } private static Match e627M(Session s, Frame f) { - return s.choice(f,K835,false,null,false,K834); + return s.literal(f, ".startsWith", true, false, K842); } private static Match e628(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e628M(s, f) : e628C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e628M : TinyExpressionP4Parser::e628C, K216, K216, K216, K217, K217, "TinyExpressionP4::StringPredicateReceiver", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14676:14695:body/0/ruleRef", false, false, "node", false, K4); + if (s.bypassWrap) { Match r = f.matched ? e628M(s, f) : e628C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e628M : TinyExpressionP4Parser::e628C, K227, K227, K227, K228, K228, "TinyExpressionP4::StartsWithDotMethod", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14737:14740:body/2/literal", false, true, "text", false, K437); } private static Match e628C(Session s, Frame f) { - return parseToLowerCaseFunction_62(s, f); + return s.literal(f, "(", true, false, K438); } private static Match e628M(Session s, Frame f) { - return parseToLowerCaseFunction_62(s, f); + return s.literal(f, "(", true, false, K438); } private static Match e629(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e629M(s, f) : e629C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e629M : TinyExpressionP4Parser::e629C, K216, K216, K216, K217, K217, "TinyExpressionP4::StringPredicateReceiver", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14698:14717:body/1/ruleRef", false, false, "node", false, K4); + if (s.bypassCapture) { Match r = f.matched ? e629M(s, f) : e629C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e629M : TinyExpressionP4Parser::e629C, K843, K814, K236, K237, K237, "TinyExpressionP4::StartsWithDotMethod", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14741:14757:body/3/ruleRef", false, false, "node", false, K238); } private static Match e629C(Session s, Frame f) { - return parseToUpperCaseFunction_61(s, f); + return parseStringExpression_89(s, f); } private static Match e629M(Session s, Frame f) { - return parseToUpperCaseFunction_61(s, f); + return parseStringExpression_89(s, f); } private static Match e630(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e630M(s, f) : e630C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e630M : TinyExpressionP4Parser::e630C, K216, K216, K216, K217, K217, "TinyExpressionP4::StringPredicateReceiver", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14720:14732:body/2/ruleRef", false, false, "node", false, K4); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e630M : TinyExpressionP4Parser::e630C, K227, K227, K227, K228, K228, "TinyExpressionP4::StartsWithDotMethod", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14772:14806:body/4/repeat", true, false, "node", true, K442); } private static Match e630C(Session s, Frame f) { - return parseTrimFunction_63(s, f); + return s.repeat(f, TinyExpressionP4Parser::e631, 0, Integer.MAX_VALUE, null, Trivia.NONE); } private static Match e630M(Session s, Frame f) { - return parseTrimFunction_63(s, f); + return s.repeat(f, TinyExpressionP4Parser::e631, 0, Integer.MAX_VALUE, null, Trivia.NONE); } private static Match e631(Session s, Frame f) { + f.reset = false; if (s.bypassWrap) { Match r = f.matched ? e631M(s, f) : e631C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e631M : TinyExpressionP4Parser::e631C, K216, K216, K216, K217, K217, "TinyExpressionP4::StringPredicateReceiver", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14735:14746:body/3/ruleRef", false, false, "node", false, K4); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e631M : TinyExpressionP4Parser::e631C, K227, K227, K227, K228, K228, "TinyExpressionP4::StartsWithDotMethod", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14774:14794:body/4/0/seq", false, false, "node", false, K442); } private static Match e631C(Session s, Frame f) { - return parseVariableRef_121(s, f); + return s.sequence(f, K844, K309); } private static Match e631M(Session s, Frame f) { - return parseVariableRef_121(s, f); + return s.sequence(f, K844, K309); } private static Match e632(Session s, Frame f) { - f.reset = false; - if (s.bypassWrap) { Match r = f.matched ? e632M(s, f) : e632C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e632M : TinyExpressionP4Parser::e632C, K216, K216, K216, K217, K217, "TinyExpressionP4::IsPresentFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14895:14933:body/seq", false, false, "node", false, K4); + if (s.bypassWrap) { Match r = f.matched ? e632M(s, f) : e632C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e632M : TinyExpressionP4Parser::e632C, K227, K227, K227, K228, K228, "TinyExpressionP4::StartsWithDotMethod", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14774:14777:body/4/0/0/literal", false, true, "text", false, K442); } private static Match e632C(Session s, Frame f) { - return s.sequence(f, K836, K620); + return s.literal(f, ",", true, false, K445); } private static Match e632M(Session s, Frame f) { - return s.sequence(f, K836, K620); + return s.literal(f, ",", true, false, K445); } private static Match e633(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e633M(s, f) : e633C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e633M : TinyExpressionP4Parser::e633C, K216, K216, K216, K217, K217, "TinyExpressionP4::IsPresentFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14895:14906:body/0/literal", false, true, "text", false, K837); + if (s.bypassCapture) { Match r = f.matched ? e633M(s, f) : e633C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e633M : TinyExpressionP4Parser::e633C, K845, K814, K236, K237, K237, "TinyExpressionP4::StartsWithDotMethod", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14778:14794:body/4/0/1/ruleRef", false, false, "node", false, K238); } private static Match e633C(Session s, Frame f) { - return s.literal(f, "isPresent", true, false, K838); + return parseStringExpression_89(s, f); } private static Match e633M(Session s, Frame f) { - return s.literal(f, "isPresent", true, false, K838); + return parseStringExpression_89(s, f); } private static Match e634(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e634M(s, f) : e634C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e634M : TinyExpressionP4Parser::e634C, K216, K216, K216, K217, K217, "TinyExpressionP4::IsPresentFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14907:14910:body/1/literal", false, true, "text", false, K399); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e634M : TinyExpressionP4Parser::e634C, K227, K227, K227, K228, K228, "TinyExpressionP4::StartsWithDotMethod", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14807:14810:body/5/literal", false, true, "text", false, K439); } private static Match e634C(Session s, Frame f) { - return s.literal(f, "(", true, false, K400); + return s.literal(f, ")", true, false, K440); } private static Match e634M(Session s, Frame f) { - return s.literal(f, "(", true, false, K400); + return s.literal(f, ")", true, false, K440); } private static Match e635(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e635M(s, f) : e635C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e635M : TinyExpressionP4Parser::e635C, K839, K323, K225, K226, K226, "TinyExpressionP4::IsPresentFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14911:14922:body/2/ruleRef", false, false, "node", false, K50); + f.reset = false; + if (s.bypassWrap) { Match r = f.matched ? e635M(s, f) : e635C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e635M : TinyExpressionP4Parser::e635C, K227, K227, K227, K228, K228, "TinyExpressionP4::EndsWithDotMethod", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14892:15008:body/seq", false, false, "node", true, K4); } private static Match e635C(Session s, Frame f) { - return parseVariableRef_121(s, f); + return s.sequence(f, K846, K301); } private static Match e635M(Session s, Frame f) { - return parseVariableRef_121(s, f); + return s.sequence(f, K846, K301); } private static Match e636(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e636M(s, f) : e636C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e636M : TinyExpressionP4Parser::e636C, K216, K216, K216, K217, K217, "TinyExpressionP4::IsPresentFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14930:14933:body/3/literal", false, true, "text", false, K401); + if (s.bypassCapture) { Match r = f.matched ? e636M(s, f) : e636C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e636M : TinyExpressionP4Parser::e636C, K847, K363, K236, K237, K237, "TinyExpressionP4::EndsWithDotMethod", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14892:14915:body/0/ruleRef", false, false, "node", false, K238); } private static Match e636C(Session s, Frame f) { - return s.literal(f, ")", true, false, K402); + return parseStringPredicateReceiver_77(s, f); } private static Match e636M(Session s, Frame f) { - return s.literal(f, ")", true, false, K402); + return parseStringPredicateReceiver_77(s, f); } private static Match e637(Session s, Frame f) { - f.reset = false; - if (s.bypassWrap) { Match r = f.matched ? e637M(s, f) : e637C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e637M : TinyExpressionP4Parser::e637C, K216, K216, K216, K217, K217, "TinyExpressionP4::InTimeRangeFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15097:15176:body/seq", false, false, "node", true, K4); + if (s.bypassWrap) { Match r = f.matched ? e637M(s, f) : e637C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e637M : TinyExpressionP4Parser::e637C, K227, K227, K227, K228, K228, "TinyExpressionP4::EndsWithDotMethod", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14923:14934:body/1/literal", false, true, "text", false, K848); } private static Match e637C(Session s, Frame f) { - return s.sequence(f, K840, K263); + return s.literal(f, ".endsWith", true, false, K849); } private static Match e637M(Session s, Frame f) { - return s.sequence(f, K840, K263); + return s.literal(f, ".endsWith", true, false, K849); } private static Match e638(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e638M(s, f) : e638C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e638M : TinyExpressionP4Parser::e638C, K216, K216, K216, K217, K217, "TinyExpressionP4::InTimeRangeFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15097:15110:body/0/literal", false, true, "text", false, K841); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e638M : TinyExpressionP4Parser::e638C, K227, K227, K227, K228, K228, "TinyExpressionP4::EndsWithDotMethod", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14935:14938:body/2/literal", false, true, "text", false, K437); } private static Match e638C(Session s, Frame f) { - return s.literal(f, "inTimeRange", true, false, K842); + return s.literal(f, "(", true, false, K438); } private static Match e638M(Session s, Frame f) { - return s.literal(f, "inTimeRange", true, false, K842); + return s.literal(f, "(", true, false, K438); } private static Match e639(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e639M(s, f) : e639C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e639M : TinyExpressionP4Parser::e639C, K216, K216, K216, K217, K217, "TinyExpressionP4::InTimeRangeFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15111:15114:body/1/literal", false, true, "text", false, K399); + if (s.bypassCapture) { Match r = f.matched ? e639M(s, f) : e639C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e639M : TinyExpressionP4Parser::e639C, K850, K814, K236, K237, K237, "TinyExpressionP4::EndsWithDotMethod", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14939:14955:body/3/ruleRef", false, false, "node", false, K238); } private static Match e639C(Session s, Frame f) { - return s.literal(f, "(", true, false, K400); + return parseStringExpression_89(s, f); } private static Match e639M(Session s, Frame f) { - return s.literal(f, "(", true, false, K400); + return parseStringExpression_89(s, f); } private static Match e640(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e640M(s, f) : e640C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e640M : TinyExpressionP4Parser::e640C, K843, K844, K225, K226, K226, "TinyExpressionP4::InTimeRangeFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15115:15131:body/2/ruleRef", false, false, "node", false, K227); + if (s.bypassWrap) { Match r = f.matched ? e640M(s, f) : e640C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e640M : TinyExpressionP4Parser::e640C, K227, K227, K227, K228, K228, "TinyExpressionP4::EndsWithDotMethod", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14970:15004:body/4/repeat", true, false, "node", true, K442); } private static Match e640C(Session s, Frame f) { - return parseNumberExpression_40(s, f); + return s.repeat(f, TinyExpressionP4Parser::e641, 0, Integer.MAX_VALUE, null, Trivia.NONE); } private static Match e640M(Session s, Frame f) { - return parseNumberExpression_40(s, f); + return s.repeat(f, TinyExpressionP4Parser::e641, 0, Integer.MAX_VALUE, null, Trivia.NONE); } private static Match e641(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e641M(s, f) : e641C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e641M : TinyExpressionP4Parser::e641C, K216, K216, K216, K217, K217, "TinyExpressionP4::InTimeRangeFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15143:15146:body/3/literal", false, true, "text", false, K404); + f.reset = false; + if (s.bypassWrap) { Match r = f.matched ? e641M(s, f) : e641C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e641M : TinyExpressionP4Parser::e641C, K227, K227, K227, K228, K228, "TinyExpressionP4::EndsWithDotMethod", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14972:14992:body/4/0/seq", false, false, "node", false, K442); } private static Match e641C(Session s, Frame f) { - return s.literal(f, ",", true, false, K407); + return s.sequence(f, K851, K309); } private static Match e641M(Session s, Frame f) { - return s.literal(f, ",", true, false, K407); + return s.sequence(f, K851, K309); } private static Match e642(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e642M(s, f) : e642C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e642M : TinyExpressionP4Parser::e642C, K845, K846, K225, K226, K226, "TinyExpressionP4::InTimeRangeFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15147:15163:body/4/ruleRef", false, false, "node", false, K227); + if (s.bypassWrap) { Match r = f.matched ? e642M(s, f) : e642C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e642M : TinyExpressionP4Parser::e642C, K227, K227, K227, K228, K228, "TinyExpressionP4::EndsWithDotMethod", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14972:14975:body/4/0/0/literal", false, true, "text", false, K442); } private static Match e642C(Session s, Frame f) { - return parseNumberExpression_40(s, f); + return s.literal(f, ",", true, false, K445); } private static Match e642M(Session s, Frame f) { - return parseNumberExpression_40(s, f); + return s.literal(f, ",", true, false, K445); } private static Match e643(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e643M(s, f) : e643C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e643M : TinyExpressionP4Parser::e643C, K216, K216, K216, K217, K217, "TinyExpressionP4::InTimeRangeFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15173:15176:body/5/literal", false, true, "text", false, K401); + if (s.bypassCapture) { Match r = f.matched ? e643M(s, f) : e643C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e643M : TinyExpressionP4Parser::e643C, K852, K814, K236, K237, K237, "TinyExpressionP4::EndsWithDotMethod", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14976:14992:body/4/0/1/ruleRef", false, false, "node", false, K238); } private static Match e643C(Session s, Frame f) { - return s.literal(f, ")", true, false, K402); + return parseStringExpression_89(s, f); } private static Match e643M(Session s, Frame f) { - return s.literal(f, ")", true, false, K402); + return parseStringExpression_89(s, f); } private static Match e644(Session s, Frame f) { - f.reset = false; - if (s.bypassWrap) { Match r = f.matched ? e644M(s, f) : e644C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e644M : TinyExpressionP4Parser::e644C, K216, K216, K216, K217, K217, "TinyExpressionP4::InDayTimeRangeFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15287:15415:body/seq", false, false, "node", true, K4); + if (s.bypassWrap) { Match r = f.matched ? e644M(s, f) : e644C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e644M : TinyExpressionP4Parser::e644C, K227, K227, K227, K228, K228, "TinyExpressionP4::EndsWithDotMethod", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15005:15008:body/5/literal", false, true, "text", false, K439); } private static Match e644C(Session s, Frame f) { - return s.sequence(f, K849, K848); + return s.literal(f, ")", true, false, K440); } private static Match e644M(Session s, Frame f) { - return s.sequence(f, K849, K848); + return s.literal(f, ")", true, false, K440); } private static Match e645(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e645M(s, f) : e645C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e645M : TinyExpressionP4Parser::e645C, K216, K216, K216, K217, K217, "TinyExpressionP4::InDayTimeRangeFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15287:15303:body/0/literal", false, true, "text", false, K850); + f.reset = false; + if (s.bypassWrap) { Match r = f.matched ? e645M(s, f) : e645C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e645M : TinyExpressionP4Parser::e645C, K227, K227, K227, K228, K228, "TinyExpressionP4::ContainsDotMethod", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15090:15206:body/seq", false, false, "node", true, K4); } private static Match e645C(Session s, Frame f) { - return s.literal(f, "inDayTimeRange", true, false, K851); + return s.sequence(f, K853, K301); } private static Match e645M(Session s, Frame f) { - return s.literal(f, "inDayTimeRange", true, false, K851); + return s.sequence(f, K853, K301); } private static Match e646(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e646M(s, f) : e646C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e646M : TinyExpressionP4Parser::e646C, K216, K216, K216, K217, K217, "TinyExpressionP4::InDayTimeRangeFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15304:15307:body/1/literal", false, true, "text", false, K399); + if (s.bypassCapture) { Match r = f.matched ? e646M(s, f) : e646C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e646M : TinyExpressionP4Parser::e646C, K854, K363, K236, K237, K237, "TinyExpressionP4::ContainsDotMethod", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15090:15113:body/0/ruleRef", false, false, "node", false, K238); } private static Match e646C(Session s, Frame f) { - return s.literal(f, "(", true, false, K400); + return parseStringPredicateReceiver_77(s, f); } private static Match e646M(Session s, Frame f) { - return s.literal(f, "(", true, false, K400); + return parseStringPredicateReceiver_77(s, f); } private static Match e647(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e647M(s, f) : e647C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e647M : TinyExpressionP4Parser::e647C, K852, K853, K225, K226, K226, "TinyExpressionP4::InDayTimeRangeFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15308:15317:body/2/ruleRef", false, false, "text", false, K150); + if (s.bypassWrap) { Match r = f.matched ? e647M(s, f) : e647C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e647M : TinyExpressionP4Parser::e647C, K227, K227, K227, K228, K228, "TinyExpressionP4::ContainsDotMethod", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15121:15132:body/1/literal", false, true, "text", false, K855); } private static Match e647C(Session s, Frame f) { - return parseDayOfWeek_81(s, f); + return s.literal(f, ".contains", true, false, K856); } private static Match e647M(Session s, Frame f) { - return parseDayOfWeek_81(s, f); + return s.literal(f, ".contains", true, false, K856); } private static Match e648(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e648M(s, f) : e648C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e648M : TinyExpressionP4Parser::e648C, K216, K216, K216, K217, K217, "TinyExpressionP4::InDayTimeRangeFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15328:15331:body/3/literal", false, true, "text", false, K404); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e648M : TinyExpressionP4Parser::e648C, K227, K227, K227, K228, K228, "TinyExpressionP4::ContainsDotMethod", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15133:15136:body/2/literal", false, true, "text", false, K437); } private static Match e648C(Session s, Frame f) { - return s.literal(f, ",", true, false, K407); + return s.literal(f, "(", true, false, K438); } private static Match e648M(Session s, Frame f) { - return s.literal(f, ",", true, false, K407); + return s.literal(f, "(", true, false, K438); } private static Match e649(Session s, Frame f) { if (s.bypassCapture) { Match r = f.matched ? e649M(s, f) : e649C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e649M : TinyExpressionP4Parser::e649C, K854, K844, K225, K226, K226, "TinyExpressionP4::InDayTimeRangeFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15332:15348:body/4/ruleRef", false, false, "node", false, K227); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e649M : TinyExpressionP4Parser::e649C, K857, K814, K236, K237, K237, "TinyExpressionP4::ContainsDotMethod", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15137:15153:body/3/ruleRef", false, false, "node", false, K238); } private static Match e649C(Session s, Frame f) { - return parseNumberExpression_40(s, f); + return parseStringExpression_89(s, f); } private static Match e649M(Session s, Frame f) { - return parseNumberExpression_40(s, f); + return parseStringExpression_89(s, f); } private static Match e650(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e650M(s, f) : e650C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e650M : TinyExpressionP4Parser::e650C, K216, K216, K216, K217, K217, "TinyExpressionP4::InDayTimeRangeFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15360:15363:body/5/literal", false, true, "text", false, K404); + if (s.bypassWrap) { Match r = f.matched ? e650M(s, f) : e650C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e650M : TinyExpressionP4Parser::e650C, K227, K227, K227, K228, K228, "TinyExpressionP4::ContainsDotMethod", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15168:15202:body/4/repeat", true, false, "node", true, K442); } private static Match e650C(Session s, Frame f) { - return s.literal(f, ",", true, false, K407); + return s.repeat(f, TinyExpressionP4Parser::e651, 0, Integer.MAX_VALUE, null, Trivia.NONE); } private static Match e650M(Session s, Frame f) { - return s.literal(f, ",", true, false, K407); + return s.repeat(f, TinyExpressionP4Parser::e651, 0, Integer.MAX_VALUE, null, Trivia.NONE); } private static Match e651(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e651M(s, f) : e651C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e651M : TinyExpressionP4Parser::e651C, K855, K856, K225, K226, K226, "TinyExpressionP4::InDayTimeRangeFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15364:15373:body/6/ruleRef", false, false, "text", false, K150); + f.reset = false; + if (s.bypassWrap) { Match r = f.matched ? e651M(s, f) : e651C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e651M : TinyExpressionP4Parser::e651C, K227, K227, K227, K228, K228, "TinyExpressionP4::ContainsDotMethod", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15170:15190:body/4/0/seq", false, false, "node", false, K442); } private static Match e651C(Session s, Frame f) { - return parseDayOfWeek_81(s, f); + return s.sequence(f, K858, K309); } private static Match e651M(Session s, Frame f) { - return parseDayOfWeek_81(s, f); + return s.sequence(f, K858, K309); } private static Match e652(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e652M(s, f) : e652C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e652M : TinyExpressionP4Parser::e652C, K216, K216, K216, K217, K217, "TinyExpressionP4::InDayTimeRangeFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15382:15385:body/7/literal", false, true, "text", false, K404); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e652M : TinyExpressionP4Parser::e652C, K227, K227, K227, K228, K228, "TinyExpressionP4::ContainsDotMethod", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15170:15173:body/4/0/0/literal", false, true, "text", false, K442); } private static Match e652C(Session s, Frame f) { - return s.literal(f, ",", true, false, K407); + return s.literal(f, ",", true, false, K445); } private static Match e652M(Session s, Frame f) { - return s.literal(f, ",", true, false, K407); + return s.literal(f, ",", true, false, K445); } private static Match e653(Session s, Frame f) { if (s.bypassCapture) { Match r = f.matched ? e653M(s, f) : e653C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e653M : TinyExpressionP4Parser::e653C, K857, K846, K225, K226, K226, "TinyExpressionP4::InDayTimeRangeFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15386:15402:body/8/ruleRef", false, false, "node", false, K227); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e653M : TinyExpressionP4Parser::e653C, K859, K814, K236, K237, K237, "TinyExpressionP4::ContainsDotMethod", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15174:15190:body/4/0/1/ruleRef", false, false, "node", false, K238); } private static Match e653C(Session s, Frame f) { - return parseNumberExpression_40(s, f); + return parseStringExpression_89(s, f); } private static Match e653M(Session s, Frame f) { - return parseNumberExpression_40(s, f); + return parseStringExpression_89(s, f); } private static Match e654(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e654M(s, f) : e654C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e654M : TinyExpressionP4Parser::e654C, K216, K216, K216, K217, K217, "TinyExpressionP4::InDayTimeRangeFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15412:15415:body/9/literal", false, true, "text", false, K401); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e654M : TinyExpressionP4Parser::e654C, K227, K227, K227, K228, K228, "TinyExpressionP4::ContainsDotMethod", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15203:15206:body/5/literal", false, true, "text", false, K439); } private static Match e654C(Session s, Frame f) { - return s.literal(f, ")", true, false, K402); + return s.literal(f, ")", true, false, K440); } private static Match e654M(Session s, Frame f) { - return s.literal(f, ")", true, false, K402); + return s.literal(f, ")", true, false, K440); } private static Match e655(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e655M(s, f) : e655C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e655M : TinyExpressionP4Parser::e655C, K216, K216, K216, K217, K217, "TinyExpressionP4::DayOfWeek", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15435:15517:body/choice", false, false, "text", false, K4); + if (s.bypassWrap) { Match r = f.matched ? e655M(s, f) : e655C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e655M : TinyExpressionP4Parser::e655C, K227, K227, K227, K228, K228, "TinyExpressionP4::StringPredicateReceiver", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15240:15310:body/choice", false, false, "node", false, K4); } private static Match e655C(Session s, Frame f) { - return s.choice(f,K858,false,null,false); + return s.choice(f,K870,false,null,false,K869); } private static Match e655M(Session s, Frame f) { - return s.choice(f,K858,false,null,false); + return s.choice(f,K870,false,null,false,K869); } private static Match e656(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e656M(s, f) : e656C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e656M : TinyExpressionP4Parser::e656C, K216, K216, K216, K217, K217, "TinyExpressionP4::DayOfWeek", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15435:15443:body/0/literal", false, true, "text", false, K859); + if (s.bypassWrap) { Match r = f.matched ? e656M(s, f) : e656C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e656M : TinyExpressionP4Parser::e656C, K227, K227, K227, K228, K228, "TinyExpressionP4::StringPredicateReceiver", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15240:15259:body/0/ruleRef", false, false, "node", false, K4); } private static Match e656C(Session s, Frame f) { - return s.literal(f, "MONDAY", true, false, K860); + return parseToLowerCaseFunction_62(s, f); } private static Match e656M(Session s, Frame f) { - return s.literal(f, "MONDAY", true, false, K860); + return parseToLowerCaseFunction_62(s, f); } private static Match e657(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e657M(s, f) : e657C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e657M : TinyExpressionP4Parser::e657C, K216, K216, K216, K217, K217, "TinyExpressionP4::DayOfWeek", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15446:15455:body/1/literal", false, true, "text", false, K861); + if (s.bypassWrap) { Match r = f.matched ? e657M(s, f) : e657C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e657M : TinyExpressionP4Parser::e657C, K227, K227, K227, K228, K228, "TinyExpressionP4::StringPredicateReceiver", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15262:15281:body/1/ruleRef", false, false, "node", false, K4); } private static Match e657C(Session s, Frame f) { - return s.literal(f, "TUESDAY", true, false, K862); + return parseToUpperCaseFunction_61(s, f); } private static Match e657M(Session s, Frame f) { - return s.literal(f, "TUESDAY", true, false, K862); + return parseToUpperCaseFunction_61(s, f); } private static Match e658(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e658M(s, f) : e658C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e658M : TinyExpressionP4Parser::e658C, K216, K216, K216, K217, K217, "TinyExpressionP4::DayOfWeek", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15458:15469:body/2/literal", false, true, "text", false, K863); + if (s.bypassWrap) { Match r = f.matched ? e658M(s, f) : e658C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e658M : TinyExpressionP4Parser::e658C, K227, K227, K227, K228, K228, "TinyExpressionP4::StringPredicateReceiver", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15284:15296:body/2/ruleRef", false, false, "node", false, K4); } private static Match e658C(Session s, Frame f) { - return s.literal(f, "WEDNESDAY", true, false, K864); + return parseTrimFunction_63(s, f); } private static Match e658M(Session s, Frame f) { - return s.literal(f, "WEDNESDAY", true, false, K864); + return parseTrimFunction_63(s, f); } private static Match e659(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e659M(s, f) : e659C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e659M : TinyExpressionP4Parser::e659C, K216, K216, K216, K217, K217, "TinyExpressionP4::DayOfWeek", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15472:15482:body/3/literal", false, true, "text", false, K865); + if (s.bypassWrap) { Match r = f.matched ? e659M(s, f) : e659C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e659M : TinyExpressionP4Parser::e659C, K227, K227, K227, K228, K228, "TinyExpressionP4::StringPredicateReceiver", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15299:15310:body/3/ruleRef", false, false, "node", false, K4); } private static Match e659C(Session s, Frame f) { - return s.literal(f, "THURSDAY", true, false, K866); + return parseVariableRef_121(s, f); } private static Match e659M(Session s, Frame f) { - return s.literal(f, "THURSDAY", true, false, K866); + return parseVariableRef_121(s, f); } private static Match e660(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e660M(s, f) : e660C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e660M : TinyExpressionP4Parser::e660C, K216, K216, K216, K217, K217, "TinyExpressionP4::DayOfWeek", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15485:15493:body/4/literal", false, true, "text", false, K867); + f.reset = false; + if (s.bypassWrap) { Match r = f.matched ? e660M(s, f) : e660C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e660M : TinyExpressionP4Parser::e660C, K227, K227, K227, K228, K228, "TinyExpressionP4::IsPresentFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15459:15497:body/seq", false, false, "node", false, K4); } private static Match e660C(Session s, Frame f) { - return s.literal(f, "FRIDAY", true, false, K868); + return s.sequence(f, K871, K658); } private static Match e660M(Session s, Frame f) { - return s.literal(f, "FRIDAY", true, false, K868); + return s.sequence(f, K871, K658); } private static Match e661(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e661M(s, f) : e661C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e661M : TinyExpressionP4Parser::e661C, K216, K216, K216, K217, K217, "TinyExpressionP4::DayOfWeek", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15496:15506:body/5/literal", false, true, "text", false, K869); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e661M : TinyExpressionP4Parser::e661C, K227, K227, K227, K228, K228, "TinyExpressionP4::IsPresentFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15459:15470:body/0/literal", false, true, "text", false, K872); } private static Match e661C(Session s, Frame f) { - return s.literal(f, "SATURDAY", true, false, K870); + return s.literal(f, "isPresent", true, false, K873); } private static Match e661M(Session s, Frame f) { - return s.literal(f, "SATURDAY", true, false, K870); + return s.literal(f, "isPresent", true, false, K873); } private static Match e662(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e662M(s, f) : e662C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e662M : TinyExpressionP4Parser::e662C, K216, K216, K216, K217, K217, "TinyExpressionP4::DayOfWeek", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15509:15517:body/6/literal", false, true, "text", false, K871); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e662M : TinyExpressionP4Parser::e662C, K227, K227, K227, K228, K228, "TinyExpressionP4::IsPresentFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15471:15474:body/1/literal", false, true, "text", false, K437); } private static Match e662C(Session s, Frame f) { - return s.literal(f, "SUNDAY", true, false, K872); + return s.literal(f, "(", true, false, K438); } private static Match e662M(Session s, Frame f) { - return s.literal(f, "SUNDAY", true, false, K872); + return s.literal(f, "(", true, false, K438); } private static Match e663(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e663M(s, f) : e663C(s, f); s.progress(f); return s.tree ? s.project(r, true) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e663M : TinyExpressionP4Parser::e663C, K216, K216, K216, K217, K217, "TinyExpressionP4::SliceBaseReceiver", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15685:15954:body/choice", false, false, "mixed", false, K4); + if (s.bypassCapture) { Match r = f.matched ? e663M(s, f) : e663C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e663M : TinyExpressionP4Parser::e663C, K874, K363, K236, K237, K237, "TinyExpressionP4::IsPresentFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15475:15486:body/2/ruleRef", false, false, "node", false, K50); } private static Match e663C(Session s, Frame f) { - return s.choice(f,K890,false,null,false,K889); + return parseVariableRef_121(s, f); } private static Match e663M(Session s, Frame f) { - return s.choice(f,K890,false,null,false,K889); + return parseVariableRef_121(s, f); } private static Match e664(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e664M(s, f) : e664C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e664M : TinyExpressionP4Parser::e664C, K216, K216, K216, K217, K217, "TinyExpressionP4::SliceBaseReceiver", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15685:15709:body/0/ruleRef", false, false, "node", false, K4); + if (s.bypassWrap) { Match r = f.matched ? e664M(s, f) : e664C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e664M : TinyExpressionP4Parser::e664C, K227, K227, K227, K228, K228, "TinyExpressionP4::IsPresentFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15494:15497:body/3/literal", false, true, "text", false, K439); } private static Match e664C(Session s, Frame f) { - return parseExternalStringInvocation_33(s, f); + return s.literal(f, ")", true, false, K440); } private static Match e664M(Session s, Frame f) { - return parseExternalStringInvocation_33(s, f); + return s.literal(f, ")", true, false, K440); } private static Match e665(Session s, Frame f) { f.reset = false; if (s.bypassWrap) { Match r = f.matched ? e665M(s, f) : e665C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e665M : TinyExpressionP4Parser::e665C, K216, K216, K216, K217, K217, "TinyExpressionP4::SliceBaseReceiver", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15716:15735:body/1/seq", false, false, "node", false, K891); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e665M : TinyExpressionP4Parser::e665C, K227, K227, K227, K228, K228, "TinyExpressionP4::InTimeRangeFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15661:15740:body/seq", false, false, "node", true, K4); } private static Match e665C(Session s, Frame f) { - return s.sequence(f, K892, K251); + return s.sequence(f, K875, K301); } private static Match e665M(Session s, Frame f) { - return s.sequence(f, K892, K251); + return s.sequence(f, K875, K301); } private static Match e666(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e666M(s, f) : e666C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e666M : TinyExpressionP4Parser::e666C, K216, K216, K216, K217, K217, "TinyExpressionP4::SliceBaseReceiver", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15716:15719:body/1/0/literal", false, true, "text", false, K399); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e666M : TinyExpressionP4Parser::e666C, K227, K227, K227, K228, K228, "TinyExpressionP4::InTimeRangeFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15661:15674:body/0/literal", false, true, "text", false, K876); } private static Match e666C(Session s, Frame f) { - return s.literal(f, "(", true, false, K400); + return s.literal(f, "inTimeRange", true, false, K877); } private static Match e666M(Session s, Frame f) { - return s.literal(f, "(", true, false, K400); + return s.literal(f, "inTimeRange", true, false, K877); } private static Match e667(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e667M(s, f) : e667C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e667M : TinyExpressionP4Parser::e667C, K216, K216, K216, K217, K217, "TinyExpressionP4::SliceBaseReceiver", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15720:15731:body/1/1/ruleRef", false, false, "node", false, K4); + if (s.bypassWrap) { Match r = f.matched ? e667M(s, f) : e667C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e667M : TinyExpressionP4Parser::e667C, K227, K227, K227, K228, K228, "TinyExpressionP4::InTimeRangeFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15675:15678:body/1/literal", false, true, "text", false, K437); } private static Match e667C(Session s, Frame f) { - return parseVariableRef_121(s, f); + return s.literal(f, "(", true, false, K438); } private static Match e667M(Session s, Frame f) { - return parseVariableRef_121(s, f); + return s.literal(f, "(", true, false, K438); } private static Match e668(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e668M(s, f) : e668C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e668M : TinyExpressionP4Parser::e668C, K216, K216, K216, K217, K217, "TinyExpressionP4::SliceBaseReceiver", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15732:15735:body/1/2/literal", false, true, "text", false, K401); + if (s.bypassCapture) { Match r = f.matched ? e668M(s, f) : e668C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e668M : TinyExpressionP4Parser::e668C, K878, K879, K236, K237, K237, "TinyExpressionP4::InTimeRangeFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15679:15695:body/2/ruleRef", false, false, "node", false, K238); } private static Match e668C(Session s, Frame f) { - return s.literal(f, ")", true, false, K402); + return parseNumberExpression_40(s, f); } private static Match e668M(Session s, Frame f) { - return s.literal(f, ")", true, false, K402); + return parseNumberExpression_40(s, f); } private static Match e669(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e669M(s, f) : e669C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e669M : TinyExpressionP4Parser::e669C, K216, K216, K216, K217, K217, "TinyExpressionP4::SliceBaseReceiver", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15742:15771:body/2/ruleRef", false, false, "node", false, K4); + if (s.bypassWrap) { Match r = f.matched ? e669M(s, f) : e669C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e669M : TinyExpressionP4Parser::e669C, K227, K227, K227, K228, K228, "TinyExpressionP4::InTimeRangeFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15707:15710:body/3/literal", false, true, "text", false, K442); } private static Match e669C(Session s, Frame f) { - return parseParenthesizedStringExpression_90(s, f); + return s.literal(f, ",", true, false, K445); } private static Match e669M(Session s, Frame f) { - return parseParenthesizedStringExpression_90(s, f); + return s.literal(f, ",", true, false, K445); } private static Match e670(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e670M(s, f) : e670C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e670M : TinyExpressionP4Parser::e670C, K216, K216, K216, K217, K217, "TinyExpressionP4::SliceBaseReceiver", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15778:15797:body/3/ruleRef", false, false, "node", false, K4); + if (s.bypassCapture) { Match r = f.matched ? e670M(s, f) : e670C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e670M : TinyExpressionP4Parser::e670C, K880, K881, K236, K237, K237, "TinyExpressionP4::InTimeRangeFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15711:15727:body/4/ruleRef", false, false, "node", false, K238); } private static Match e670C(Session s, Frame f) { - return parseToUpperCaseFunction_61(s, f); + return parseNumberExpression_40(s, f); } private static Match e670M(Session s, Frame f) { - return parseToUpperCaseFunction_61(s, f); + return parseNumberExpression_40(s, f); } private static Match e671(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e671M(s, f) : e671C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e671M : TinyExpressionP4Parser::e671C, K216, K216, K216, K217, K217, "TinyExpressionP4::SliceBaseReceiver", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15800:15819:body/4/ruleRef", false, false, "node", false, K4); + if (s.bypassWrap) { Match r = f.matched ? e671M(s, f) : e671C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e671M : TinyExpressionP4Parser::e671C, K227, K227, K227, K228, K228, "TinyExpressionP4::InTimeRangeFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15737:15740:body/5/literal", false, true, "text", false, K439); } private static Match e671C(Session s, Frame f) { - return parseToLowerCaseFunction_62(s, f); + return s.literal(f, ")", true, false, K440); } private static Match e671M(Session s, Frame f) { - return parseToLowerCaseFunction_62(s, f); + return s.literal(f, ")", true, false, K440); } private static Match e672(Session s, Frame f) { + f.reset = false; if (s.bypassWrap) { Match r = f.matched ? e672M(s, f) : e672C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e672M : TinyExpressionP4Parser::e672C, K216, K216, K216, K217, K217, "TinyExpressionP4::SliceBaseReceiver", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15822:15834:body/5/ruleRef", false, false, "node", false, K4); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e672M : TinyExpressionP4Parser::e672C, K227, K227, K227, K228, K228, "TinyExpressionP4::InDayTimeRangeFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15851:15979:body/seq", false, false, "node", true, K4); } private static Match e672C(Session s, Frame f) { - return parseTrimFunction_63(s, f); + return s.sequence(f, K884, K883); } private static Match e672M(Session s, Frame f) { - return parseTrimFunction_63(s, f); + return s.sequence(f, K884, K883); } private static Match e673(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e673M(s, f) : e673C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e673M : TinyExpressionP4Parser::e673C, K216, K216, K216, K217, K217, "TinyExpressionP4::SliceBaseReceiver", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15841:15861:body/6/ruleRef", false, false, "node", false, K4); + if (s.bypassWrap) { Match r = f.matched ? e673M(s, f) : e673C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e673M : TinyExpressionP4Parser::e673C, K227, K227, K227, K228, K228, "TinyExpressionP4::InDayTimeRangeFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15851:15867:body/0/literal", false, true, "text", false, K885); } private static Match e673C(Session s, Frame f) { - return parseToUpperCaseDotMethod_66(s, f); + return s.literal(f, "inDayTimeRange", true, false, K886); } private static Match e673M(Session s, Frame f) { - return parseToUpperCaseDotMethod_66(s, f); + return s.literal(f, "inDayTimeRange", true, false, K886); } private static Match e674(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e674M(s, f) : e674C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e674M : TinyExpressionP4Parser::e674C, K216, K216, K216, K217, K217, "TinyExpressionP4::SliceBaseReceiver", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15864:15884:body/7/ruleRef", false, false, "node", false, K4); + if (s.bypassWrap) { Match r = f.matched ? e674M(s, f) : e674C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e674M : TinyExpressionP4Parser::e674C, K227, K227, K227, K228, K228, "TinyExpressionP4::InDayTimeRangeFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15868:15871:body/1/literal", false, true, "text", false, K437); } private static Match e674C(Session s, Frame f) { - return parseToLowerCaseDotMethod_67(s, f); + return s.literal(f, "(", true, false, K438); } private static Match e674M(Session s, Frame f) { - return parseToLowerCaseDotMethod_67(s, f); + return s.literal(f, "(", true, false, K438); } private static Match e675(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e675M(s, f) : e675C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e675M : TinyExpressionP4Parser::e675C, K216, K216, K216, K217, K217, "TinyExpressionP4::SliceBaseReceiver", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15887:15900:body/8/ruleRef", false, false, "node", false, K4); + if (s.bypassCapture) { Match r = f.matched ? e675M(s, f) : e675C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e675M : TinyExpressionP4Parser::e675C, K887, K888, K236, K237, K237, "TinyExpressionP4::InDayTimeRangeFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15872:15881:body/2/ruleRef", false, false, "text", false, K150); } private static Match e675C(Session s, Frame f) { - return parseTrimDotMethod_68(s, f); + return parseDayOfWeek_81(s, f); } private static Match e675M(Session s, Frame f) { - return parseTrimDotMethod_68(s, f); + return parseDayOfWeek_81(s, f); } private static Match e676(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e676M(s, f) : e676C(s, f); s.progress(f); return s.tree ? s.textAlternative(r) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e676M : TinyExpressionP4Parser::e676C, K216, K216, K216, K217, K217, "TinyExpressionP4::SliceBaseReceiver", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15907:15913:body/9/tokenRef", false, true, "textAlternative", false, K390); + if (s.bypassWrap) { Match r = f.matched ? e676M(s, f) : e676C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e676M : TinyExpressionP4Parser::e676C, K227, K227, K227, K228, K228, "TinyExpressionP4::InDayTimeRangeFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15892:15895:body/3/literal", false, true, "text", false, K442); } private static Match e676C(Session s, Frame f) { - return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K391,K392); + return s.literal(f, ",", true, false, K445); } private static Match e676M(Session s, Frame f) { - return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K391,K392); + return s.literal(f, ",", true, false, K445); } private static Match e677(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e677M(s, f) : e677C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e677M : TinyExpressionP4Parser::e677C, K216, K216, K216, K217, K217, "TinyExpressionP4::SliceBaseReceiver", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15920:15931:body/10/ruleRef", false, false, "node", false, K4); + if (s.bypassCapture) { Match r = f.matched ? e677M(s, f) : e677C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e677M : TinyExpressionP4Parser::e677C, K889, K879, K236, K237, K237, "TinyExpressionP4::InDayTimeRangeFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15896:15912:body/4/ruleRef", false, false, "node", false, K238); } private static Match e677C(Session s, Frame f) { - return parseVariableRef_121(s, f); + return parseNumberExpression_40(s, f); } private static Match e677M(Session s, Frame f) { - return parseVariableRef_121(s, f); + return parseNumberExpression_40(s, f); } private static Match e678(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e678M(s, f) : e678C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e678M : TinyExpressionP4Parser::e678C, K216, K216, K216, K217, K217, "TinyExpressionP4::SliceBaseReceiver", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15938:15954:body/11/ruleRef", false, false, "node", false, K4); + if (s.bypassWrap) { Match r = f.matched ? e678M(s, f) : e678C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e678M : TinyExpressionP4Parser::e678C, K227, K227, K227, K228, K228, "TinyExpressionP4::InDayTimeRangeFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15924:15927:body/5/literal", false, true, "text", false, K442); } private static Match e678C(Session s, Frame f) { - return parseMethodInvocation_36(s, f); + return s.literal(f, ",", true, false, K445); } private static Match e678M(Session s, Frame f) { - return parseMethodInvocation_36(s, f); + return s.literal(f, ",", true, false, K445); } private static Match e679(Session s, Frame f) { - f.reset = false; - if (s.bypassWrap) { Match r = f.matched ? e679M(s, f) : e679C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e679M : TinyExpressionP4Parser::e679C, K216, K216, K216, K217, K217, "TinyExpressionP4::SliceStartIndex", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16470:16486:body/seq", false, false, "node", false, K4); + if (s.bypassCapture) { Match r = f.matched ? e679M(s, f) : e679C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e679M : TinyExpressionP4Parser::e679C, K890, K891, K236, K237, K237, "TinyExpressionP4::InDayTimeRangeFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15928:15937:body/6/ruleRef", false, false, "text", false, K150); } private static Match e679C(Session s, Frame f) { - return s.sequence(f, K893, K240); + return parseDayOfWeek_81(s, f); } private static Match e679M(Session s, Frame f) { - return s.sequence(f, K893, K240); + return parseDayOfWeek_81(s, f); } private static Match e680(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e680M(s, f) : e680C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e680M : TinyExpressionP4Parser::e680C, K216, K216, K216, K217, K217, "TinyExpressionP4::SliceStartIndex", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16470:16486:body/0/ruleRef", false, false, "node", false, K4); + if (s.bypassWrap) { Match r = f.matched ? e680M(s, f) : e680C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e680M : TinyExpressionP4Parser::e680C, K227, K227, K227, K228, K228, "TinyExpressionP4::InDayTimeRangeFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15946:15949:body/7/literal", false, true, "text", false, K442); } private static Match e680C(Session s, Frame f) { - return parseNumberExpression_40(s, f); + return s.literal(f, ",", true, false, K445); } private static Match e680M(Session s, Frame f) { - return parseNumberExpression_40(s, f); + return s.literal(f, ",", true, false, K445); } private static Match e681(Session s, Frame f) { - f.reset = false; - if (s.bypassWrap) { Match r = f.matched ? e681M(s, f) : e681C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e681M : TinyExpressionP4Parser::e681C, K216, K216, K216, K217, K217, "TinyExpressionP4::SliceEndIndex", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16511:16527:body/seq", false, false, "node", false, K4); + if (s.bypassCapture) { Match r = f.matched ? e681M(s, f) : e681C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e681M : TinyExpressionP4Parser::e681C, K892, K881, K236, K237, K237, "TinyExpressionP4::InDayTimeRangeFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15950:15966:body/8/ruleRef", false, false, "node", false, K238); } private static Match e681C(Session s, Frame f) { - return s.sequence(f, K894, K240); + return parseNumberExpression_40(s, f); } private static Match e681M(Session s, Frame f) { - return s.sequence(f, K894, K240); + return parseNumberExpression_40(s, f); } private static Match e682(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e682M(s, f) : e682C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e682M : TinyExpressionP4Parser::e682C, K216, K216, K216, K217, K217, "TinyExpressionP4::SliceEndIndex", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16511:16527:body/0/ruleRef", false, false, "node", false, K4); + if (s.bypassWrap) { Match r = f.matched ? e682M(s, f) : e682C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e682M : TinyExpressionP4Parser::e682C, K227, K227, K227, K228, K228, "TinyExpressionP4::InDayTimeRangeFunction", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15976:15979:body/9/literal", false, true, "text", false, K439); } private static Match e682C(Session s, Frame f) { - return parseNumberExpression_40(s, f); + return s.literal(f, ")", true, false, K440); } private static Match e682M(Session s, Frame f) { - return parseNumberExpression_40(s, f); + return s.literal(f, ")", true, false, K440); } private static Match e683(Session s, Frame f) { - f.reset = false; - if (s.bypassWrap) { Match r = f.matched ? e683M(s, f) : e683C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e683M : TinyExpressionP4Parser::e683C, K216, K216, K216, K217, K217, "TinyExpressionP4::SliceStepIndex", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16552:16568:body/seq", false, false, "node", false, K4); + if (s.bypassWrap) { Match r = f.matched ? e683M(s, f) : e683C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e683M : TinyExpressionP4Parser::e683C, K227, K227, K227, K228, K228, "TinyExpressionP4::DayOfWeek", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15999:16081:body/choice", false, false, "text", false, K4); } private static Match e683C(Session s, Frame f) { - return s.sequence(f, K895, K240); + return s.choice(f,K893,false,null,false); } private static Match e683M(Session s, Frame f) { - return s.sequence(f, K895, K240); + return s.choice(f,K893,false,null,false); } private static Match e684(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e684M(s, f) : e684C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e684M : TinyExpressionP4Parser::e684C, K216, K216, K216, K217, K217, "TinyExpressionP4::SliceStepIndex", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16552:16568:body/0/ruleRef", false, false, "node", false, K4); + if (s.bypassWrap) { Match r = f.matched ? e684M(s, f) : e684C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e684M : TinyExpressionP4Parser::e684C, K227, K227, K227, K228, K228, "TinyExpressionP4::DayOfWeek", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15999:16007:body/0/literal", false, true, "text", false, K894); } private static Match e684C(Session s, Frame f) { - return parseNumberExpression_40(s, f); + return s.literal(f, "MONDAY", true, false, K895); } private static Match e684M(Session s, Frame f) { - return parseNumberExpression_40(s, f); + return s.literal(f, "MONDAY", true, false, K895); } private static Match e685(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e685M(s, f) : e685C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e685M : TinyExpressionP4Parser::e685C, K216, K216, K216, K217, K217, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16660:17265:body/choice", false, false, "mixed", true, K4); + if (s.bypassWrap) { Match r = f.matched ? e685M(s, f) : e685C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e685M : TinyExpressionP4Parser::e685C, K227, K227, K227, K228, K228, "TinyExpressionP4::DayOfWeek", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16010:16019:body/1/literal", false, true, "text", false, K896); } private static Match e685C(Session s, Frame f) { - return s.choice(f,K920,false,null,false,null,K919); + return s.literal(f, "TUESDAY", true, false, K897); } private static Match e685M(Session s, Frame f) { - return s.choice(f,K920,false,null,false,null,K919); + return s.literal(f, "TUESDAY", true, false, K897); } private static Match e686(Session s, Frame f) { - f.reset = false; - if (s.bypassWrap) { Match r = f.matched ? e686M(s, f) : e686C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e686M : TinyExpressionP4Parser::e686C, K216, K216, K216, K217, K217, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16660:16763:body/0/seq", false, false, "mixed", true, K156); + if (s.bypassWrap) { Match r = f.matched ? e686M(s, f) : e686C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e686M : TinyExpressionP4Parser::e686C, K227, K227, K227, K228, K228, "TinyExpressionP4::DayOfWeek", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16022:16033:body/2/literal", false, true, "text", false, K898); } private static Match e686C(Session s, Frame f) { - return s.sequence(f, K921, K411); + return s.literal(f, "WEDNESDAY", true, false, K899); } private static Match e686M(Session s, Frame f) { - return s.sequence(f, K921, K411); + return s.literal(f, "WEDNESDAY", true, false, K899); } private static Match e687(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e687M(s, f) : e687C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e687M : TinyExpressionP4Parser::e687C, K922, K323, K225, K226, K226, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16660:16677:body/0/0/ruleRef", false, false, "mixed", false, K227); + if (s.bypassWrap) { Match r = f.matched ? e687M(s, f) : e687C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e687M : TinyExpressionP4Parser::e687C, K227, K227, K227, K228, K228, "TinyExpressionP4::DayOfWeek", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16036:16046:body/3/literal", false, true, "text", false, K900); } private static Match e687C(Session s, Frame f) { - return parseSliceBaseReceiver_82(s, f); + return s.literal(f, "THURSDAY", true, false, K901); } private static Match e687M(Session s, Frame f) { - return parseSliceBaseReceiver_82(s, f); + return s.literal(f, "THURSDAY", true, false, K901); } private static Match e688(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e688M(s, f) : e688C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e688M : TinyExpressionP4Parser::e688C, K216, K216, K216, K217, K217, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16685:16688:body/0/1/literal", false, true, "text", false, K923); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e688M : TinyExpressionP4Parser::e688C, K227, K227, K227, K228, K228, "TinyExpressionP4::DayOfWeek", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16049:16057:body/4/literal", false, true, "text", false, K902); } private static Match e688C(Session s, Frame f) { - return s.literal(f, "[", true, false, K924); + return s.literal(f, "FRIDAY", true, false, K903); } private static Match e688M(Session s, Frame f) { - return s.literal(f, "[", true, false, K924); + return s.literal(f, "FRIDAY", true, false, K903); } private static Match e689(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e689M(s, f) : e689C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e689M : TinyExpressionP4Parser::e689C, K925, K926, K225, K226, K226, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16689:16704:body/0/2/ruleRef", false, false, "node", false, K227); + if (s.bypassWrap) { Match r = f.matched ? e689M(s, f) : e689C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e689M : TinyExpressionP4Parser::e689C, K227, K227, K227, K228, K228, "TinyExpressionP4::DayOfWeek", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16060:16070:body/5/literal", false, true, "text", false, K904); } private static Match e689C(Session s, Frame f) { - return parseSliceStartIndex_83(s, f); + return s.literal(f, "SATURDAY", true, false, K905); } private static Match e689M(Session s, Frame f) { - return parseSliceStartIndex_83(s, f); + return s.literal(f, "SATURDAY", true, false, K905); } private static Match e690(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e690M(s, f) : e690C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e690M : TinyExpressionP4Parser::e690C, K216, K216, K216, K217, K217, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16712:16715:body/0/3/literal", false, true, "text", false, K473); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e690M : TinyExpressionP4Parser::e690C, K227, K227, K227, K228, K228, "TinyExpressionP4::DayOfWeek", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16073:16081:body/6/literal", false, true, "text", false, K906); } private static Match e690C(Session s, Frame f) { - return s.literal(f, ":", true, false, K474); + return s.literal(f, "SUNDAY", true, false, K907); } private static Match e690M(Session s, Frame f) { - return s.literal(f, ":", true, false, K474); + return s.literal(f, "SUNDAY", true, false, K907); } private static Match e691(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e691M(s, f) : e691C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e691M : TinyExpressionP4Parser::e691C, K927, K928, K225, K226, K226, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16716:16729:body/0/4/ruleRef", false, false, "node", false, K227); + if (s.bypassWrap) { Match r = f.matched ? e691M(s, f) : e691C(s, f); s.progress(f); return s.tree ? s.project(r, true) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e691M : TinyExpressionP4Parser::e691C, K227, K227, K227, K228, K228, "TinyExpressionP4::SliceBaseReceiver", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16249:16518:body/choice", false, false, "mixed", false, K4); } private static Match e691C(Session s, Frame f) { - return parseSliceEndIndex_84(s, f); + return s.choice(f,K925,false,null,false,K924); } private static Match e691M(Session s, Frame f) { - return parseSliceEndIndex_84(s, f); + return s.choice(f,K925,false,null,false,K924); } private static Match e692(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e692M(s, f) : e692C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e692M : TinyExpressionP4Parser::e692C, K216, K216, K216, K217, K217, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16735:16738:body/0/5/literal", false, true, "text", false, K473); + if (s.bypassWrap) { Match r = f.matched ? e692M(s, f) : e692C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e692M : TinyExpressionP4Parser::e692C, K227, K227, K227, K228, K228, "TinyExpressionP4::SliceBaseReceiver", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16249:16273:body/0/ruleRef", false, false, "node", false, K4); } private static Match e692C(Session s, Frame f) { - return s.literal(f, ":", true, false, K474); + return parseExternalStringInvocation_33(s, f); } private static Match e692M(Session s, Frame f) { - return s.literal(f, ":", true, false, K474); + return parseExternalStringInvocation_33(s, f); } private static Match e693(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e693M(s, f) : e693C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e693M : TinyExpressionP4Parser::e693C, K929, K930, K225, K226, K226, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16739:16753:body/0/6/ruleRef", false, false, "node", false, K227); + f.reset = false; + if (s.bypassWrap) { Match r = f.matched ? e693M(s, f) : e693C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e693M : TinyExpressionP4Parser::e693C, K227, K227, K227, K228, K228, "TinyExpressionP4::SliceBaseReceiver", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16280:16299:body/1/seq", false, false, "node", false, K926); } private static Match e693C(Session s, Frame f) { - return parseSliceStepIndex_85(s, f); + return s.sequence(f, K927, K255); } private static Match e693M(Session s, Frame f) { - return parseSliceStepIndex_85(s, f); + return s.sequence(f, K927, K255); } private static Match e694(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e694M(s, f) : e694C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e694M : TinyExpressionP4Parser::e694C, K216, K216, K216, K217, K217, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16760:16763:body/0/7/literal", false, true, "text", false, K931); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e694M : TinyExpressionP4Parser::e694C, K227, K227, K227, K228, K228, "TinyExpressionP4::SliceBaseReceiver", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16280:16283:body/1/0/literal", false, true, "text", false, K437); } private static Match e694C(Session s, Frame f) { - return s.literal(f, "]", true, false, K932); + return s.literal(f, "(", true, false, K438); } private static Match e694M(Session s, Frame f) { - return s.literal(f, "]", true, false, K932); + return s.literal(f, "(", true, false, K438); } private static Match e695(Session s, Frame f) { - f.reset = false; if (s.bypassWrap) { Match r = f.matched ? e695M(s, f) : e695C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e695M : TinyExpressionP4Parser::e695C, K216, K216, K216, K217, K217, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16770:16848:body/1/seq", false, false, "mixed", true, K156); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e695M : TinyExpressionP4Parser::e695C, K227, K227, K227, K228, K228, "TinyExpressionP4::SliceBaseReceiver", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16284:16295:body/1/1/ruleRef", false, false, "node", false, K4); } private static Match e695C(Session s, Frame f) { - return s.sequence(f, K933, K263); + return parseVariableRef_121(s, f); } private static Match e695M(Session s, Frame f) { - return s.sequence(f, K933, K263); + return parseVariableRef_121(s, f); } private static Match e696(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e696M(s, f) : e696C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e696M : TinyExpressionP4Parser::e696C, K934, K323, K225, K226, K226, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16770:16787:body/1/0/ruleRef", false, false, "mixed", false, K227); + if (s.bypassWrap) { Match r = f.matched ? e696M(s, f) : e696C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e696M : TinyExpressionP4Parser::e696C, K227, K227, K227, K228, K228, "TinyExpressionP4::SliceBaseReceiver", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16296:16299:body/1/2/literal", false, true, "text", false, K439); } private static Match e696C(Session s, Frame f) { - return parseSliceBaseReceiver_82(s, f); + return s.literal(f, ")", true, false, K440); } private static Match e696M(Session s, Frame f) { - return parseSliceBaseReceiver_82(s, f); + return s.literal(f, ")", true, false, K440); } private static Match e697(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e697M(s, f) : e697C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e697M : TinyExpressionP4Parser::e697C, K216, K216, K216, K217, K217, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16795:16798:body/1/1/literal", false, true, "text", false, K923); + if (s.bypassWrap) { Match r = f.matched ? e697M(s, f) : e697C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e697M : TinyExpressionP4Parser::e697C, K227, K227, K227, K228, K228, "TinyExpressionP4::SliceBaseReceiver", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16306:16335:body/2/ruleRef", false, false, "node", false, K4); } private static Match e697C(Session s, Frame f) { - return s.literal(f, "[", true, false, K924); + return parseParenthesizedStringExpression_90(s, f); } private static Match e697M(Session s, Frame f) { - return s.literal(f, "[", true, false, K924); + return parseParenthesizedStringExpression_90(s, f); } private static Match e698(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e698M(s, f) : e698C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e698M : TinyExpressionP4Parser::e698C, K935, K926, K225, K226, K226, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16799:16814:body/1/2/ruleRef", false, false, "node", false, K227); + if (s.bypassWrap) { Match r = f.matched ? e698M(s, f) : e698C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e698M : TinyExpressionP4Parser::e698C, K227, K227, K227, K228, K228, "TinyExpressionP4::SliceBaseReceiver", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16342:16361:body/3/ruleRef", false, false, "node", false, K4); } private static Match e698C(Session s, Frame f) { - return parseSliceStartIndex_83(s, f); + return parseToUpperCaseFunction_61(s, f); } private static Match e698M(Session s, Frame f) { - return parseSliceStartIndex_83(s, f); + return parseToUpperCaseFunction_61(s, f); } private static Match e699(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e699M(s, f) : e699C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e699M : TinyExpressionP4Parser::e699C, K216, K216, K216, K217, K217, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16822:16825:body/1/3/literal", false, true, "text", false, K473); + if (s.bypassWrap) { Match r = f.matched ? e699M(s, f) : e699C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e699M : TinyExpressionP4Parser::e699C, K227, K227, K227, K228, K228, "TinyExpressionP4::SliceBaseReceiver", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16364:16383:body/4/ruleRef", false, false, "node", false, K4); } private static Match e699C(Session s, Frame f) { - return s.literal(f, ":", true, false, K474); + return parseToLowerCaseFunction_62(s, f); } private static Match e699M(Session s, Frame f) { - return s.literal(f, ":", true, false, K474); + return parseToLowerCaseFunction_62(s, f); } private static Match e700(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e700M(s, f) : e700C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e700M : TinyExpressionP4Parser::e700C, K936, K928, K225, K226, K226, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16826:16839:body/1/4/ruleRef", false, false, "node", false, K227); + if (s.bypassWrap) { Match r = f.matched ? e700M(s, f) : e700C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e700M : TinyExpressionP4Parser::e700C, K227, K227, K227, K228, K228, "TinyExpressionP4::SliceBaseReceiver", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16386:16398:body/5/ruleRef", false, false, "node", false, K4); } private static Match e700C(Session s, Frame f) { - return parseSliceEndIndex_84(s, f); + return parseTrimFunction_63(s, f); } private static Match e700M(Session s, Frame f) { - return parseSliceEndIndex_84(s, f); + return parseTrimFunction_63(s, f); } private static Match e701(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e701M(s, f) : e701C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e701M : TinyExpressionP4Parser::e701C, K216, K216, K216, K217, K217, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16845:16848:body/1/5/literal", false, true, "text", false, K931); + if (s.bypassWrap) { Match r = f.matched ? e701M(s, f) : e701C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e701M : TinyExpressionP4Parser::e701C, K227, K227, K227, K228, K228, "TinyExpressionP4::SliceBaseReceiver", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16405:16425:body/6/ruleRef", false, false, "node", false, K4); } private static Match e701C(Session s, Frame f) { - return s.literal(f, "]", true, false, K932); + return parseToUpperCaseDotMethod_66(s, f); } private static Match e701M(Session s, Frame f) { - return s.literal(f, "]", true, false, K932); + return parseToUpperCaseDotMethod_66(s, f); } private static Match e702(Session s, Frame f) { - f.reset = false; if (s.bypassWrap) { Match r = f.matched ? e702M(s, f) : e702C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e702M : TinyExpressionP4Parser::e702C, K216, K216, K216, K217, K217, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16855:16939:body/2/seq", false, false, "mixed", true, K156); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e702M : TinyExpressionP4Parser::e702C, K227, K227, K227, K228, K228, "TinyExpressionP4::SliceBaseReceiver", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16428:16448:body/7/ruleRef", false, false, "node", false, K4); } private static Match e702C(Session s, Frame f) { - return s.sequence(f, K937, K220); + return parseToLowerCaseDotMethod_67(s, f); } private static Match e702M(Session s, Frame f) { - return s.sequence(f, K937, K220); + return parseToLowerCaseDotMethod_67(s, f); } private static Match e703(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e703M(s, f) : e703C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e703M : TinyExpressionP4Parser::e703C, K938, K323, K225, K226, K226, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16855:16872:body/2/0/ruleRef", false, false, "mixed", false, K227); + if (s.bypassWrap) { Match r = f.matched ? e703M(s, f) : e703C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e703M : TinyExpressionP4Parser::e703C, K227, K227, K227, K228, K228, "TinyExpressionP4::SliceBaseReceiver", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16451:16464:body/8/ruleRef", false, false, "node", false, K4); } private static Match e703C(Session s, Frame f) { - return parseSliceBaseReceiver_82(s, f); + return parseTrimDotMethod_68(s, f); } private static Match e703M(Session s, Frame f) { - return parseSliceBaseReceiver_82(s, f); + return parseTrimDotMethod_68(s, f); } private static Match e704(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e704M(s, f) : e704C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e704M : TinyExpressionP4Parser::e704C, K216, K216, K216, K217, K217, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16880:16883:body/2/1/literal", false, true, "text", false, K923); + if (s.bypassWrap) { Match r = f.matched ? e704M(s, f) : e704C(s, f); s.progress(f); return s.tree ? s.textAlternative(r) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e704M : TinyExpressionP4Parser::e704C, K227, K227, K227, K228, K228, "TinyExpressionP4::SliceBaseReceiver", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16471:16477:body/9/tokenRef", false, true, "textAlternative", false, K430); } private static Match e704C(Session s, Frame f) { - return s.literal(f, "[", true, false, K924); + return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K431,K432); } private static Match e704M(Session s, Frame f) { - return s.literal(f, "[", true, false, K924); + return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K431,K432); } private static Match e705(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e705M(s, f) : e705C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e705M : TinyExpressionP4Parser::e705C, K939, K926, K225, K226, K226, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16884:16899:body/2/2/ruleRef", false, false, "node", false, K227); + if (s.bypassWrap) { Match r = f.matched ? e705M(s, f) : e705C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e705M : TinyExpressionP4Parser::e705C, K227, K227, K227, K228, K228, "TinyExpressionP4::SliceBaseReceiver", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16484:16495:body/10/ruleRef", false, false, "node", false, K4); } private static Match e705C(Session s, Frame f) { - return parseSliceStartIndex_83(s, f); + return parseVariableRef_121(s, f); } private static Match e705M(Session s, Frame f) { - return parseSliceStartIndex_83(s, f); + return parseVariableRef_121(s, f); } private static Match e706(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e706M(s, f) : e706C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e706M : TinyExpressionP4Parser::e706C, K216, K216, K216, K217, K217, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16907:16910:body/2/3/literal", false, true, "text", false, K473); + if (s.bypassWrap) { Match r = f.matched ? e706M(s, f) : e706C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e706M : TinyExpressionP4Parser::e706C, K227, K227, K227, K228, K228, "TinyExpressionP4::SliceBaseReceiver", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16502:16518:body/11/ruleRef", false, false, "node", false, K4); } private static Match e706C(Session s, Frame f) { - return s.literal(f, ":", true, false, K474); + return parseMethodInvocation_36(s, f); } private static Match e706M(Session s, Frame f) { - return s.literal(f, ":", true, false, K474); + return parseMethodInvocation_36(s, f); } private static Match e707(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e707M(s, f) : e707C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e707M : TinyExpressionP4Parser::e707C, K216, K216, K216, K217, K217, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16911:16914:body/2/4/literal", false, true, "text", false, K473); + f.reset = false; + if (s.bypassWrap) { Match r = f.matched ? e707M(s, f) : e707C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e707M : TinyExpressionP4Parser::e707C, K227, K227, K227, K228, K228, "TinyExpressionP4::SliceStartIndex", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17034:17050:body/seq", false, false, "node", false, K4); } private static Match e707C(Session s, Frame f) { - return s.literal(f, ":", true, false, K474); + return s.sequence(f, K928, K280); } private static Match e707M(Session s, Frame f) { - return s.literal(f, ":", true, false, K474); + return s.sequence(f, K928, K280); } private static Match e708(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e708M(s, f) : e708C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e708M : TinyExpressionP4Parser::e708C, K940, K930, K225, K226, K226, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16915:16929:body/2/5/ruleRef", false, false, "node", false, K227); + if (s.bypassWrap) { Match r = f.matched ? e708M(s, f) : e708C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e708M : TinyExpressionP4Parser::e708C, K227, K227, K227, K228, K228, "TinyExpressionP4::SliceStartIndex", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17034:17050:body/0/ruleRef", false, false, "node", false, K4); } private static Match e708C(Session s, Frame f) { - return parseSliceStepIndex_85(s, f); + return parseNumberExpression_40(s, f); } private static Match e708M(Session s, Frame f) { - return parseSliceStepIndex_85(s, f); + return parseNumberExpression_40(s, f); } private static Match e709(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e709M(s, f) : e709C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e709M : TinyExpressionP4Parser::e709C, K216, K216, K216, K217, K217, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16936:16939:body/2/6/literal", false, true, "text", false, K931); + f.reset = false; + if (s.bypassWrap) { Match r = f.matched ? e709M(s, f) : e709C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e709M : TinyExpressionP4Parser::e709C, K227, K227, K227, K228, K228, "TinyExpressionP4::SliceEndIndex", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17075:17091:body/seq", false, false, "node", false, K4); } private static Match e709C(Session s, Frame f) { - return s.literal(f, "]", true, false, K932); + return s.sequence(f, K929, K280); } private static Match e709M(Session s, Frame f) { - return s.literal(f, "]", true, false, K932); + return s.sequence(f, K929, K280); } private static Match e710(Session s, Frame f) { - f.reset = false; if (s.bypassWrap) { Match r = f.matched ? e710M(s, f) : e710C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e710M : TinyExpressionP4Parser::e710C, K216, K216, K216, K217, K217, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16946:17005:body/3/seq", false, false, "mixed", true, K156); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e710M : TinyExpressionP4Parser::e710C, K227, K227, K227, K228, K228, "TinyExpressionP4::SliceEndIndex", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17075:17091:body/0/ruleRef", false, false, "node", false, K4); } private static Match e710C(Session s, Frame f) { - return s.sequence(f, K941, K394); + return parseNumberExpression_40(s, f); } private static Match e710M(Session s, Frame f) { - return s.sequence(f, K941, K394); + return parseNumberExpression_40(s, f); } private static Match e711(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e711M(s, f) : e711C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e711M : TinyExpressionP4Parser::e711C, K942, K323, K225, K226, K226, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16946:16963:body/3/0/ruleRef", false, false, "mixed", false, K227); + f.reset = false; + if (s.bypassWrap) { Match r = f.matched ? e711M(s, f) : e711C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e711M : TinyExpressionP4Parser::e711C, K227, K227, K227, K228, K228, "TinyExpressionP4::SliceStepIndex", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17116:17132:body/seq", false, false, "node", false, K4); } private static Match e711C(Session s, Frame f) { - return parseSliceBaseReceiver_82(s, f); + return s.sequence(f, K930, K280); } private static Match e711M(Session s, Frame f) { - return parseSliceBaseReceiver_82(s, f); + return s.sequence(f, K930, K280); } private static Match e712(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e712M(s, f) : e712C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e712M : TinyExpressionP4Parser::e712C, K216, K216, K216, K217, K217, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16971:16974:body/3/1/literal", false, true, "text", false, K923); + if (s.bypassWrap) { Match r = f.matched ? e712M(s, f) : e712C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e712M : TinyExpressionP4Parser::e712C, K227, K227, K227, K228, K228, "TinyExpressionP4::SliceStepIndex", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17116:17132:body/0/ruleRef", false, false, "node", false, K4); } private static Match e712C(Session s, Frame f) { - return s.literal(f, "[", true, false, K924); + return parseNumberExpression_40(s, f); } private static Match e712M(Session s, Frame f) { - return s.literal(f, "[", true, false, K924); + return parseNumberExpression_40(s, f); } private static Match e713(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e713M(s, f) : e713C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e713M : TinyExpressionP4Parser::e713C, K943, K926, K225, K226, K226, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16975:16990:body/3/2/ruleRef", false, false, "node", false, K227); + if (s.bypassWrap) { Match r = f.matched ? e713M(s, f) : e713C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e713M : TinyExpressionP4Parser::e713C, K227, K227, K227, K228, K228, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17224:17829:body/choice", false, false, "mixed", true, K4); } private static Match e713C(Session s, Frame f) { - return parseSliceStartIndex_83(s, f); + return s.choice(f,K955,false,null,false,null,K954); } private static Match e713M(Session s, Frame f) { - return parseSliceStartIndex_83(s, f); + return s.choice(f,K955,false,null,false,null,K954); } private static Match e714(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e714M(s, f) : e714C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e714M : TinyExpressionP4Parser::e714C, K216, K216, K216, K217, K217, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16998:17001:body/3/3/literal", false, true, "text", false, K473); + f.reset = false; + if (s.bypassWrap) { Match r = f.matched ? e714M(s, f) : e714C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e714M : TinyExpressionP4Parser::e714C, K227, K227, K227, K228, K228, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17224:17327:body/0/seq", false, false, "mixed", true, K156); } private static Match e714C(Session s, Frame f) { - return s.literal(f, ":", true, false, K474); + return s.sequence(f, K956, K449); } private static Match e714M(Session s, Frame f) { - return s.literal(f, ":", true, false, K474); + return s.sequence(f, K956, K449); } private static Match e715(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e715M(s, f) : e715C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e715M : TinyExpressionP4Parser::e715C, K216, K216, K216, K217, K217, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17002:17005:body/3/4/literal", false, true, "text", false, K931); + if (s.bypassCapture) { Match r = f.matched ? e715M(s, f) : e715C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e715M : TinyExpressionP4Parser::e715C, K957, K363, K236, K237, K237, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17224:17241:body/0/0/ruleRef", false, false, "mixed", false, K238); } private static Match e715C(Session s, Frame f) { - return s.literal(f, "]", true, false, K932); + return parseSliceBaseReceiver_82(s, f); } private static Match e715M(Session s, Frame f) { - return s.literal(f, "]", true, false, K932); + return parseSliceBaseReceiver_82(s, f); } private static Match e716(Session s, Frame f) { - f.reset = false; - if (s.bypassWrap) { Match r = f.matched ? e716M(s, f) : e716C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e716M : TinyExpressionP4Parser::e716C, K216, K216, K216, K217, K217, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17012:17092:body/4/seq", false, false, "mixed", true, K156); + if (s.bypassWrap) { Match r = f.matched ? e716M(s, f) : e716C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e716M : TinyExpressionP4Parser::e716C, K227, K227, K227, K228, K228, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17249:17252:body/0/1/literal", false, true, "text", false, K958); } private static Match e716C(Session s, Frame f) { - return s.sequence(f, K944, K220); + return s.literal(f, "[", true, false, K959); } private static Match e716M(Session s, Frame f) { - return s.sequence(f, K944, K220); + return s.literal(f, "[", true, false, K959); } private static Match e717(Session s, Frame f) { if (s.bypassCapture) { Match r = f.matched ? e717M(s, f) : e717C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e717M : TinyExpressionP4Parser::e717C, K945, K323, K225, K226, K226, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17012:17029:body/4/0/ruleRef", false, false, "mixed", false, K227); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e717M : TinyExpressionP4Parser::e717C, K960, K961, K236, K237, K237, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17253:17268:body/0/2/ruleRef", false, false, "node", false, K238); } private static Match e717C(Session s, Frame f) { - return parseSliceBaseReceiver_82(s, f); + return parseSliceStartIndex_83(s, f); } private static Match e717M(Session s, Frame f) { - return parseSliceBaseReceiver_82(s, f); + return parseSliceStartIndex_83(s, f); } private static Match e718(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e718M(s, f) : e718C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e718M : TinyExpressionP4Parser::e718C, K216, K216, K216, K217, K217, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17037:17040:body/4/1/literal", false, true, "text", false, K923); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e718M : TinyExpressionP4Parser::e718C, K227, K227, K227, K228, K228, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17276:17279:body/0/3/literal", false, true, "text", false, K511); } private static Match e718C(Session s, Frame f) { - return s.literal(f, "[", true, false, K924); + return s.literal(f, ":", true, false, K512); } private static Match e718M(Session s, Frame f) { - return s.literal(f, "[", true, false, K924); + return s.literal(f, ":", true, false, K512); } private static Match e719(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e719M(s, f) : e719C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e719M : TinyExpressionP4Parser::e719C, K216, K216, K216, K217, K217, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17041:17044:body/4/2/literal", false, true, "text", false, K473); + if (s.bypassCapture) { Match r = f.matched ? e719M(s, f) : e719C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e719M : TinyExpressionP4Parser::e719C, K962, K963, K236, K237, K237, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17280:17293:body/0/4/ruleRef", false, false, "node", false, K238); } private static Match e719C(Session s, Frame f) { - return s.literal(f, ":", true, false, K474); + return parseSliceEndIndex_84(s, f); } private static Match e719M(Session s, Frame f) { - return s.literal(f, ":", true, false, K474); + return parseSliceEndIndex_84(s, f); } private static Match e720(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e720M(s, f) : e720C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e720M : TinyExpressionP4Parser::e720C, K946, K928, K225, K226, K226, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17045:17058:body/4/3/ruleRef", false, false, "node", false, K227); + if (s.bypassWrap) { Match r = f.matched ? e720M(s, f) : e720C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e720M : TinyExpressionP4Parser::e720C, K227, K227, K227, K228, K228, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17299:17302:body/0/5/literal", false, true, "text", false, K511); } private static Match e720C(Session s, Frame f) { - return parseSliceEndIndex_84(s, f); + return s.literal(f, ":", true, false, K512); } private static Match e720M(Session s, Frame f) { - return parseSliceEndIndex_84(s, f); + return s.literal(f, ":", true, false, K512); } private static Match e721(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e721M(s, f) : e721C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e721M : TinyExpressionP4Parser::e721C, K216, K216, K216, K217, K217, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17064:17067:body/4/4/literal", false, true, "text", false, K473); + if (s.bypassCapture) { Match r = f.matched ? e721M(s, f) : e721C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e721M : TinyExpressionP4Parser::e721C, K964, K965, K236, K237, K237, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17303:17317:body/0/6/ruleRef", false, false, "node", false, K238); } private static Match e721C(Session s, Frame f) { - return s.literal(f, ":", true, false, K474); + return parseSliceStepIndex_85(s, f); } private static Match e721M(Session s, Frame f) { - return s.literal(f, ":", true, false, K474); + return parseSliceStepIndex_85(s, f); } private static Match e722(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e722M(s, f) : e722C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e722M : TinyExpressionP4Parser::e722C, K947, K930, K225, K226, K226, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17068:17082:body/4/5/ruleRef", false, false, "node", false, K227); + if (s.bypassWrap) { Match r = f.matched ? e722M(s, f) : e722C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e722M : TinyExpressionP4Parser::e722C, K227, K227, K227, K228, K228, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17324:17327:body/0/7/literal", false, true, "text", false, K966); } private static Match e722C(Session s, Frame f) { - return parseSliceStepIndex_85(s, f); + return s.literal(f, "]", true, false, K967); } private static Match e722M(Session s, Frame f) { - return parseSliceStepIndex_85(s, f); + return s.literal(f, "]", true, false, K967); } private static Match e723(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e723M(s, f) : e723C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e723M : TinyExpressionP4Parser::e723C, K216, K216, K216, K217, K217, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17089:17092:body/4/6/literal", false, true, "text", false, K931); + f.reset = false; + if (s.bypassWrap) { Match r = f.matched ? e723M(s, f) : e723C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e723M : TinyExpressionP4Parser::e723C, K227, K227, K227, K228, K228, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17334:17412:body/1/seq", false, false, "mixed", true, K156); } private static Match e723C(Session s, Frame f) { - return s.literal(f, "]", true, false, K932); + return s.sequence(f, K968, K301); } private static Match e723M(Session s, Frame f) { - return s.literal(f, "]", true, false, K932); + return s.sequence(f, K968, K301); } private static Match e724(Session s, Frame f) { - f.reset = false; - if (s.bypassWrap) { Match r = f.matched ? e724M(s, f) : e724C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e724M : TinyExpressionP4Parser::e724C, K216, K216, K216, K217, K217, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17099:17154:body/5/seq", false, false, "mixed", true, K156); + if (s.bypassCapture) { Match r = f.matched ? e724M(s, f) : e724C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e724M : TinyExpressionP4Parser::e724C, K969, K363, K236, K237, K237, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17334:17351:body/1/0/ruleRef", false, false, "mixed", false, K238); } private static Match e724C(Session s, Frame f) { - return s.sequence(f, K948, K394); + return parseSliceBaseReceiver_82(s, f); } private static Match e724M(Session s, Frame f) { - return s.sequence(f, K948, K394); + return parseSliceBaseReceiver_82(s, f); } private static Match e725(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e725M(s, f) : e725C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e725M : TinyExpressionP4Parser::e725C, K949, K323, K225, K226, K226, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17099:17116:body/5/0/ruleRef", false, false, "mixed", false, K227); + if (s.bypassWrap) { Match r = f.matched ? e725M(s, f) : e725C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e725M : TinyExpressionP4Parser::e725C, K227, K227, K227, K228, K228, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17359:17362:body/1/1/literal", false, true, "text", false, K958); } private static Match e725C(Session s, Frame f) { - return parseSliceBaseReceiver_82(s, f); + return s.literal(f, "[", true, false, K959); } private static Match e725M(Session s, Frame f) { - return parseSliceBaseReceiver_82(s, f); + return s.literal(f, "[", true, false, K959); } private static Match e726(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e726M(s, f) : e726C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e726M : TinyExpressionP4Parser::e726C, K216, K216, K216, K217, K217, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17124:17127:body/5/1/literal", false, true, "text", false, K923); + if (s.bypassCapture) { Match r = f.matched ? e726M(s, f) : e726C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e726M : TinyExpressionP4Parser::e726C, K970, K961, K236, K237, K237, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17363:17378:body/1/2/ruleRef", false, false, "node", false, K238); } private static Match e726C(Session s, Frame f) { - return s.literal(f, "[", true, false, K924); + return parseSliceStartIndex_83(s, f); } private static Match e726M(Session s, Frame f) { - return s.literal(f, "[", true, false, K924); + return parseSliceStartIndex_83(s, f); } private static Match e727(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e727M(s, f) : e727C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e727M : TinyExpressionP4Parser::e727C, K216, K216, K216, K217, K217, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17128:17131:body/5/2/literal", false, true, "text", false, K473); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e727M : TinyExpressionP4Parser::e727C, K227, K227, K227, K228, K228, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17386:17389:body/1/3/literal", false, true, "text", false, K511); } private static Match e727C(Session s, Frame f) { - return s.literal(f, ":", true, false, K474); + return s.literal(f, ":", true, false, K512); } private static Match e727M(Session s, Frame f) { - return s.literal(f, ":", true, false, K474); + return s.literal(f, ":", true, false, K512); } private static Match e728(Session s, Frame f) { if (s.bypassCapture) { Match r = f.matched ? e728M(s, f) : e728C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e728M : TinyExpressionP4Parser::e728C, K950, K928, K225, K226, K226, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17132:17145:body/5/3/ruleRef", false, false, "node", false, K227); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e728M : TinyExpressionP4Parser::e728C, K971, K963, K236, K237, K237, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17390:17403:body/1/4/ruleRef", false, false, "node", false, K238); } private static Match e728C(Session s, Frame f) { return parseSliceEndIndex_84(s, f); @@ -8753,28 +8815,28 @@ private static Match e728M(Session s, Frame f) { } private static Match e729(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e729M(s, f) : e729C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e729M : TinyExpressionP4Parser::e729C, K216, K216, K216, K217, K217, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17151:17154:body/5/4/literal", false, true, "text", false, K931); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e729M : TinyExpressionP4Parser::e729C, K227, K227, K227, K228, K228, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17409:17412:body/1/5/literal", false, true, "text", false, K966); } private static Match e729C(Session s, Frame f) { - return s.literal(f, "]", true, false, K932); + return s.literal(f, "]", true, false, K967); } private static Match e729M(Session s, Frame f) { - return s.literal(f, "]", true, false, K932); + return s.literal(f, "]", true, false, K967); } private static Match e730(Session s, Frame f) { f.reset = false; if (s.bypassWrap) { Match r = f.matched ? e730M(s, f) : e730C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e730M : TinyExpressionP4Parser::e730C, K216, K216, K216, K217, K217, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17161:17222:body/6/seq", false, false, "mixed", true, K156); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e730M : TinyExpressionP4Parser::e730C, K227, K227, K227, K228, K228, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17419:17503:body/2/seq", false, false, "mixed", true, K156); } private static Match e730C(Session s, Frame f) { - return s.sequence(f, K951, K263); + return s.sequence(f, K972, K344); } private static Match e730M(Session s, Frame f) { - return s.sequence(f, K951, K263); + return s.sequence(f, K972, K344); } private static Match e731(Session s, Frame f) { if (s.bypassCapture) { Match r = f.matched ? e731M(s, f) : e731C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e731M : TinyExpressionP4Parser::e731C, K952, K323, K225, K226, K226, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17161:17178:body/6/0/ruleRef", false, false, "mixed", false, K227); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e731M : TinyExpressionP4Parser::e731C, K973, K363, K236, K237, K237, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17419:17436:body/2/0/ruleRef", false, false, "mixed", false, K238); } private static Match e731C(Session s, Frame f) { return parseSliceBaseReceiver_82(s, f); @@ -8784,169 +8846,169 @@ private static Match e731M(Session s, Frame f) { } private static Match e732(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e732M(s, f) : e732C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e732M : TinyExpressionP4Parser::e732C, K216, K216, K216, K217, K217, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17186:17189:body/6/1/literal", false, true, "text", false, K923); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e732M : TinyExpressionP4Parser::e732C, K227, K227, K227, K228, K228, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17444:17447:body/2/1/literal", false, true, "text", false, K958); } private static Match e732C(Session s, Frame f) { - return s.literal(f, "[", true, false, K924); + return s.literal(f, "[", true, false, K959); } private static Match e732M(Session s, Frame f) { - return s.literal(f, "[", true, false, K924); + return s.literal(f, "[", true, false, K959); } private static Match e733(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e733M(s, f) : e733C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e733M : TinyExpressionP4Parser::e733C, K216, K216, K216, K217, K217, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17190:17193:body/6/2/literal", false, true, "text", false, K473); + if (s.bypassCapture) { Match r = f.matched ? e733M(s, f) : e733C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e733M : TinyExpressionP4Parser::e733C, K974, K961, K236, K237, K237, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17448:17463:body/2/2/ruleRef", false, false, "node", false, K238); } private static Match e733C(Session s, Frame f) { - return s.literal(f, ":", true, false, K474); + return parseSliceStartIndex_83(s, f); } private static Match e733M(Session s, Frame f) { - return s.literal(f, ":", true, false, K474); + return parseSliceStartIndex_83(s, f); } private static Match e734(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e734M(s, f) : e734C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e734M : TinyExpressionP4Parser::e734C, K216, K216, K216, K217, K217, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17194:17197:body/6/3/literal", false, true, "text", false, K473); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e734M : TinyExpressionP4Parser::e734C, K227, K227, K227, K228, K228, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17471:17474:body/2/3/literal", false, true, "text", false, K511); } private static Match e734C(Session s, Frame f) { - return s.literal(f, ":", true, false, K474); + return s.literal(f, ":", true, false, K512); } private static Match e734M(Session s, Frame f) { - return s.literal(f, ":", true, false, K474); + return s.literal(f, ":", true, false, K512); } private static Match e735(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e735M(s, f) : e735C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e735M : TinyExpressionP4Parser::e735C, K953, K930, K225, K226, K226, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17198:17212:body/6/4/ruleRef", false, false, "node", false, K227); + if (s.bypassWrap) { Match r = f.matched ? e735M(s, f) : e735C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e735M : TinyExpressionP4Parser::e735C, K227, K227, K227, K228, K228, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17475:17478:body/2/4/literal", false, true, "text", false, K511); } private static Match e735C(Session s, Frame f) { - return parseSliceStepIndex_85(s, f); + return s.literal(f, ":", true, false, K512); } private static Match e735M(Session s, Frame f) { - return parseSliceStepIndex_85(s, f); + return s.literal(f, ":", true, false, K512); } private static Match e736(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e736M(s, f) : e736C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e736M : TinyExpressionP4Parser::e736C, K216, K216, K216, K217, K217, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17219:17222:body/6/5/literal", false, true, "text", false, K931); + if (s.bypassCapture) { Match r = f.matched ? e736M(s, f) : e736C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e736M : TinyExpressionP4Parser::e736C, K975, K965, K236, K237, K237, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17479:17493:body/2/5/ruleRef", false, false, "node", false, K238); } private static Match e736C(Session s, Frame f) { - return s.literal(f, "]", true, false, K932); + return parseSliceStepIndex_85(s, f); } private static Match e736M(Session s, Frame f) { - return s.literal(f, "]", true, false, K932); + return parseSliceStepIndex_85(s, f); } private static Match e737(Session s, Frame f) { - f.reset = false; - if (s.bypassWrap) { Match r = f.matched ? e737M(s, f) : e737C(s, f); s.progress(f); return s.tree ? s.project(r, true) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e737M : TinyExpressionP4Parser::e737C, K216, K216, K216, K217, K217, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17229:17265:body/7/seq", false, false, "mixed", false, K156); + if (s.bypassWrap) { Match r = f.matched ? e737M(s, f) : e737C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e737M : TinyExpressionP4Parser::e737C, K227, K227, K227, K228, K228, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17500:17503:body/2/6/literal", false, true, "text", false, K966); } private static Match e737C(Session s, Frame f) { - return s.sequence(f, K954, K620); + return s.literal(f, "]", true, false, K967); } private static Match e737M(Session s, Frame f) { - return s.sequence(f, K954, K620); + return s.literal(f, "]", true, false, K967); } private static Match e738(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e738M(s, f) : e738C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e738M : TinyExpressionP4Parser::e738C, K955, K323, K225, K226, K226, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17229:17246:body/7/0/ruleRef", false, false, "mixed", false, K227); + f.reset = false; + if (s.bypassWrap) { Match r = f.matched ? e738M(s, f) : e738C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e738M : TinyExpressionP4Parser::e738C, K227, K227, K227, K228, K228, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17510:17569:body/3/seq", false, false, "mixed", true, K156); } private static Match e738C(Session s, Frame f) { - return parseSliceBaseReceiver_82(s, f); + return s.sequence(f, K976, K231); } private static Match e738M(Session s, Frame f) { - return parseSliceBaseReceiver_82(s, f); + return s.sequence(f, K976, K231); } private static Match e739(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e739M(s, f) : e739C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e739M : TinyExpressionP4Parser::e739C, K216, K216, K216, K217, K217, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17254:17257:body/7/1/literal", false, true, "text", false, K923); + if (s.bypassCapture) { Match r = f.matched ? e739M(s, f) : e739C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e739M : TinyExpressionP4Parser::e739C, K977, K363, K236, K237, K237, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17510:17527:body/3/0/ruleRef", false, false, "mixed", false, K238); } private static Match e739C(Session s, Frame f) { - return s.literal(f, "[", true, false, K924); + return parseSliceBaseReceiver_82(s, f); } private static Match e739M(Session s, Frame f) { - return s.literal(f, "[", true, false, K924); + return parseSliceBaseReceiver_82(s, f); } private static Match e740(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e740M(s, f) : e740C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e740M : TinyExpressionP4Parser::e740C, K216, K216, K216, K217, K217, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17258:17261:body/7/2/literal", false, true, "text", false, K473); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e740M : TinyExpressionP4Parser::e740C, K227, K227, K227, K228, K228, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17535:17538:body/3/1/literal", false, true, "text", false, K958); } private static Match e740C(Session s, Frame f) { - return s.literal(f, ":", true, false, K474); + return s.literal(f, "[", true, false, K959); } private static Match e740M(Session s, Frame f) { - return s.literal(f, ":", true, false, K474); + return s.literal(f, "[", true, false, K959); } private static Match e741(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e741M(s, f) : e741C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e741M : TinyExpressionP4Parser::e741C, K216, K216, K216, K217, K217, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17262:17265:body/7/3/literal", false, true, "text", false, K931); + if (s.bypassCapture) { Match r = f.matched ? e741M(s, f) : e741C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e741M : TinyExpressionP4Parser::e741C, K978, K961, K236, K237, K237, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17539:17554:body/3/2/ruleRef", false, false, "node", false, K238); } private static Match e741C(Session s, Frame f) { - return s.literal(f, "]", true, false, K932); + return parseSliceStartIndex_83(s, f); } private static Match e741M(Session s, Frame f) { - return s.literal(f, "]", true, false, K932); + return parseSliceStartIndex_83(s, f); } private static Match e742(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e742M(s, f) : e742C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e742M : TinyExpressionP4Parser::e742C, K216, K216, K216, K217, K217, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17359:17980:body/choice", false, false, "node", true, K4); + if (s.bypassWrap) { Match r = f.matched ? e742M(s, f) : e742C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e742M : TinyExpressionP4Parser::e742C, K227, K227, K227, K228, K228, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17562:17565:body/3/3/literal", false, true, "text", false, K511); } private static Match e742C(Session s, Frame f) { - return s.choice(f,K980,false,null,false,null,K979); + return s.literal(f, ":", true, false, K512); } private static Match e742M(Session s, Frame f) { - return s.choice(f,K980,false,null,false,null,K979); + return s.literal(f, ":", true, false, K512); } private static Match e743(Session s, Frame f) { - f.reset = false; - if (s.bypassWrap) { Match r = f.matched ? e743M(s, f) : e743C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e743M : TinyExpressionP4Parser::e743C, K216, K216, K216, K217, K217, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17359:17464:body/0/seq", false, false, "node", true, K156); + if (s.bypassWrap) { Match r = f.matched ? e743M(s, f) : e743C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e743M : TinyExpressionP4Parser::e743C, K227, K227, K227, K228, K228, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17566:17569:body/3/4/literal", false, true, "text", false, K966); } private static Match e743C(Session s, Frame f) { - return s.sequence(f, K981, K411); + return s.literal(f, "]", true, false, K967); } private static Match e743M(Session s, Frame f) { - return s.sequence(f, K981, K411); + return s.literal(f, "]", true, false, K967); } private static Match e744(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e744M(s, f) : e744C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e744M : TinyExpressionP4Parser::e744C, K982, K323, K225, K226, K226, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17359:17378:body/0/0/ruleRef", false, false, "node", false, K227); + f.reset = false; + if (s.bypassWrap) { Match r = f.matched ? e744M(s, f) : e744C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e744M : TinyExpressionP4Parser::e744C, K227, K227, K227, K228, K228, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17576:17656:body/4/seq", false, false, "mixed", true, K156); } private static Match e744C(Session s, Frame f) { - return parseSliceBaseExpression_86(s, f); + return s.sequence(f, K979, K344); } private static Match e744M(Session s, Frame f) { - return parseSliceBaseExpression_86(s, f); + return s.sequence(f, K979, K344); } private static Match e745(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e745M(s, f) : e745C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e745M : TinyExpressionP4Parser::e745C, K216, K216, K216, K217, K217, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17386:17389:body/0/1/literal", false, true, "text", false, K923); + if (s.bypassCapture) { Match r = f.matched ? e745M(s, f) : e745C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e745M : TinyExpressionP4Parser::e745C, K980, K363, K236, K237, K237, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17576:17593:body/4/0/ruleRef", false, false, "mixed", false, K238); } private static Match e745C(Session s, Frame f) { - return s.literal(f, "[", true, false, K924); + return parseSliceBaseReceiver_82(s, f); } private static Match e745M(Session s, Frame f) { - return s.literal(f, "[", true, false, K924); + return parseSliceBaseReceiver_82(s, f); } private static Match e746(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e746M(s, f) : e746C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e746M : TinyExpressionP4Parser::e746C, K983, K926, K225, K226, K226, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17390:17405:body/0/2/ruleRef", false, false, "node", false, K227); + if (s.bypassWrap) { Match r = f.matched ? e746M(s, f) : e746C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e746M : TinyExpressionP4Parser::e746C, K227, K227, K227, K228, K228, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17601:17604:body/4/1/literal", false, true, "text", false, K958); } private static Match e746C(Session s, Frame f) { - return parseSliceStartIndex_83(s, f); + return s.literal(f, "[", true, false, K959); } private static Match e746M(Session s, Frame f) { - return parseSliceStartIndex_83(s, f); + return s.literal(f, "[", true, false, K959); } private static Match e747(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e747M(s, f) : e747C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e747M : TinyExpressionP4Parser::e747C, K216, K216, K216, K217, K217, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17413:17416:body/0/3/literal", false, true, "text", false, K473); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e747M : TinyExpressionP4Parser::e747C, K227, K227, K227, K228, K228, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17605:17608:body/4/2/literal", false, true, "text", false, K511); } private static Match e747C(Session s, Frame f) { - return s.literal(f, ":", true, false, K474); + return s.literal(f, ":", true, false, K512); } private static Match e747M(Session s, Frame f) { - return s.literal(f, ":", true, false, K474); + return s.literal(f, ":", true, false, K512); } private static Match e748(Session s, Frame f) { if (s.bypassCapture) { Match r = f.matched ? e748M(s, f) : e748C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e748M : TinyExpressionP4Parser::e748C, K984, K928, K225, K226, K226, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17417:17430:body/0/4/ruleRef", false, false, "node", false, K227); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e748M : TinyExpressionP4Parser::e748C, K981, K963, K236, K237, K237, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17609:17622:body/4/3/ruleRef", false, false, "node", false, K238); } private static Match e748C(Session s, Frame f) { return parseSliceEndIndex_84(s, f); @@ -8956,17 +9018,17 @@ private static Match e748M(Session s, Frame f) { } private static Match e749(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e749M(s, f) : e749C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e749M : TinyExpressionP4Parser::e749C, K216, K216, K216, K217, K217, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17436:17439:body/0/5/literal", false, true, "text", false, K473); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e749M : TinyExpressionP4Parser::e749C, K227, K227, K227, K228, K228, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17628:17631:body/4/4/literal", false, true, "text", false, K511); } private static Match e749C(Session s, Frame f) { - return s.literal(f, ":", true, false, K474); + return s.literal(f, ":", true, false, K512); } private static Match e749M(Session s, Frame f) { - return s.literal(f, ":", true, false, K474); + return s.literal(f, ":", true, false, K512); } private static Match e750(Session s, Frame f) { if (s.bypassCapture) { Match r = f.matched ? e750M(s, f) : e750C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e750M : TinyExpressionP4Parser::e750C, K985, K930, K225, K226, K226, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17440:17454:body/0/6/ruleRef", false, false, "node", false, K227); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e750M : TinyExpressionP4Parser::e750C, K982, K965, K236, K237, K237, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17632:17646:body/4/5/ruleRef", false, false, "node", false, K238); } private static Match e750C(Session s, Frame f) { return parseSliceStepIndex_85(s, f); @@ -8976,352 +9038,352 @@ private static Match e750M(Session s, Frame f) { } private static Match e751(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e751M(s, f) : e751C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e751M : TinyExpressionP4Parser::e751C, K216, K216, K216, K217, K217, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17461:17464:body/0/7/literal", false, true, "text", false, K931); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e751M : TinyExpressionP4Parser::e751C, K227, K227, K227, K228, K228, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17653:17656:body/4/6/literal", false, true, "text", false, K966); } private static Match e751C(Session s, Frame f) { - return s.literal(f, "]", true, false, K932); + return s.literal(f, "]", true, false, K967); } private static Match e751M(Session s, Frame f) { - return s.literal(f, "]", true, false, K932); + return s.literal(f, "]", true, false, K967); } private static Match e752(Session s, Frame f) { f.reset = false; if (s.bypassWrap) { Match r = f.matched ? e752M(s, f) : e752C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e752M : TinyExpressionP4Parser::e752C, K216, K216, K216, K217, K217, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17471:17551:body/1/seq", false, false, "node", true, K156); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e752M : TinyExpressionP4Parser::e752C, K227, K227, K227, K228, K228, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17663:17718:body/5/seq", false, false, "mixed", true, K156); } private static Match e752C(Session s, Frame f) { - return s.sequence(f, K986, K263); + return s.sequence(f, K983, K231); } private static Match e752M(Session s, Frame f) { - return s.sequence(f, K986, K263); + return s.sequence(f, K983, K231); } private static Match e753(Session s, Frame f) { if (s.bypassCapture) { Match r = f.matched ? e753M(s, f) : e753C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e753M : TinyExpressionP4Parser::e753C, K987, K323, K225, K226, K226, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17471:17490:body/1/0/ruleRef", false, false, "node", false, K227); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e753M : TinyExpressionP4Parser::e753C, K984, K363, K236, K237, K237, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17663:17680:body/5/0/ruleRef", false, false, "mixed", false, K238); } private static Match e753C(Session s, Frame f) { - return parseSliceBaseExpression_86(s, f); + return parseSliceBaseReceiver_82(s, f); } private static Match e753M(Session s, Frame f) { - return parseSliceBaseExpression_86(s, f); + return parseSliceBaseReceiver_82(s, f); } private static Match e754(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e754M(s, f) : e754C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e754M : TinyExpressionP4Parser::e754C, K216, K216, K216, K217, K217, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17498:17501:body/1/1/literal", false, true, "text", false, K923); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e754M : TinyExpressionP4Parser::e754C, K227, K227, K227, K228, K228, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17688:17691:body/5/1/literal", false, true, "text", false, K958); } private static Match e754C(Session s, Frame f) { - return s.literal(f, "[", true, false, K924); + return s.literal(f, "[", true, false, K959); } private static Match e754M(Session s, Frame f) { - return s.literal(f, "[", true, false, K924); + return s.literal(f, "[", true, false, K959); } private static Match e755(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e755M(s, f) : e755C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e755M : TinyExpressionP4Parser::e755C, K988, K926, K225, K226, K226, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17502:17517:body/1/2/ruleRef", false, false, "node", false, K227); + if (s.bypassWrap) { Match r = f.matched ? e755M(s, f) : e755C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e755M : TinyExpressionP4Parser::e755C, K227, K227, K227, K228, K228, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17692:17695:body/5/2/literal", false, true, "text", false, K511); } private static Match e755C(Session s, Frame f) { - return parseSliceStartIndex_83(s, f); + return s.literal(f, ":", true, false, K512); } private static Match e755M(Session s, Frame f) { - return parseSliceStartIndex_83(s, f); + return s.literal(f, ":", true, false, K512); } private static Match e756(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e756M(s, f) : e756C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e756M : TinyExpressionP4Parser::e756C, K216, K216, K216, K217, K217, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17525:17528:body/1/3/literal", false, true, "text", false, K473); + if (s.bypassCapture) { Match r = f.matched ? e756M(s, f) : e756C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e756M : TinyExpressionP4Parser::e756C, K985, K963, K236, K237, K237, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17696:17709:body/5/3/ruleRef", false, false, "node", false, K238); } private static Match e756C(Session s, Frame f) { - return s.literal(f, ":", true, false, K474); + return parseSliceEndIndex_84(s, f); } private static Match e756M(Session s, Frame f) { - return s.literal(f, ":", true, false, K474); + return parseSliceEndIndex_84(s, f); } private static Match e757(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e757M(s, f) : e757C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e757M : TinyExpressionP4Parser::e757C, K989, K928, K225, K226, K226, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17529:17542:body/1/4/ruleRef", false, false, "node", false, K227); + if (s.bypassWrap) { Match r = f.matched ? e757M(s, f) : e757C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e757M : TinyExpressionP4Parser::e757C, K227, K227, K227, K228, K228, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17715:17718:body/5/4/literal", false, true, "text", false, K966); } private static Match e757C(Session s, Frame f) { - return parseSliceEndIndex_84(s, f); + return s.literal(f, "]", true, false, K967); } private static Match e757M(Session s, Frame f) { - return parseSliceEndIndex_84(s, f); + return s.literal(f, "]", true, false, K967); } private static Match e758(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e758M(s, f) : e758C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e758M : TinyExpressionP4Parser::e758C, K216, K216, K216, K217, K217, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17548:17551:body/1/5/literal", false, true, "text", false, K931); + f.reset = false; + if (s.bypassWrap) { Match r = f.matched ? e758M(s, f) : e758C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e758M : TinyExpressionP4Parser::e758C, K227, K227, K227, K228, K228, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17725:17786:body/6/seq", false, false, "mixed", true, K156); } private static Match e758C(Session s, Frame f) { - return s.literal(f, "]", true, false, K932); + return s.sequence(f, K986, K301); } private static Match e758M(Session s, Frame f) { - return s.literal(f, "]", true, false, K932); + return s.sequence(f, K986, K301); } private static Match e759(Session s, Frame f) { - f.reset = false; - if (s.bypassWrap) { Match r = f.matched ? e759M(s, f) : e759C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e759M : TinyExpressionP4Parser::e759C, K216, K216, K216, K217, K217, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17558:17644:body/2/seq", false, false, "node", true, K156); + if (s.bypassCapture) { Match r = f.matched ? e759M(s, f) : e759C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e759M : TinyExpressionP4Parser::e759C, K987, K363, K236, K237, K237, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17725:17742:body/6/0/ruleRef", false, false, "mixed", false, K238); } private static Match e759C(Session s, Frame f) { - return s.sequence(f, K990, K220); + return parseSliceBaseReceiver_82(s, f); } private static Match e759M(Session s, Frame f) { - return s.sequence(f, K990, K220); + return parseSliceBaseReceiver_82(s, f); } private static Match e760(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e760M(s, f) : e760C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e760M : TinyExpressionP4Parser::e760C, K991, K323, K225, K226, K226, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17558:17577:body/2/0/ruleRef", false, false, "node", false, K227); + if (s.bypassWrap) { Match r = f.matched ? e760M(s, f) : e760C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e760M : TinyExpressionP4Parser::e760C, K227, K227, K227, K228, K228, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17750:17753:body/6/1/literal", false, true, "text", false, K958); } private static Match e760C(Session s, Frame f) { - return parseSliceBaseExpression_86(s, f); + return s.literal(f, "[", true, false, K959); } private static Match e760M(Session s, Frame f) { - return parseSliceBaseExpression_86(s, f); + return s.literal(f, "[", true, false, K959); } private static Match e761(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e761M(s, f) : e761C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e761M : TinyExpressionP4Parser::e761C, K216, K216, K216, K217, K217, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17585:17588:body/2/1/literal", false, true, "text", false, K923); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e761M : TinyExpressionP4Parser::e761C, K227, K227, K227, K228, K228, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17754:17757:body/6/2/literal", false, true, "text", false, K511); } private static Match e761C(Session s, Frame f) { - return s.literal(f, "[", true, false, K924); + return s.literal(f, ":", true, false, K512); } private static Match e761M(Session s, Frame f) { - return s.literal(f, "[", true, false, K924); + return s.literal(f, ":", true, false, K512); } private static Match e762(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e762M(s, f) : e762C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e762M : TinyExpressionP4Parser::e762C, K992, K926, K225, K226, K226, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17589:17604:body/2/2/ruleRef", false, false, "node", false, K227); + if (s.bypassWrap) { Match r = f.matched ? e762M(s, f) : e762C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e762M : TinyExpressionP4Parser::e762C, K227, K227, K227, K228, K228, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17758:17761:body/6/3/literal", false, true, "text", false, K511); } private static Match e762C(Session s, Frame f) { - return parseSliceStartIndex_83(s, f); + return s.literal(f, ":", true, false, K512); } private static Match e762M(Session s, Frame f) { - return parseSliceStartIndex_83(s, f); + return s.literal(f, ":", true, false, K512); } private static Match e763(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e763M(s, f) : e763C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e763M : TinyExpressionP4Parser::e763C, K216, K216, K216, K217, K217, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17612:17615:body/2/3/literal", false, true, "text", false, K473); + if (s.bypassCapture) { Match r = f.matched ? e763M(s, f) : e763C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e763M : TinyExpressionP4Parser::e763C, K988, K965, K236, K237, K237, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17762:17776:body/6/4/ruleRef", false, false, "node", false, K238); } private static Match e763C(Session s, Frame f) { - return s.literal(f, ":", true, false, K474); + return parseSliceStepIndex_85(s, f); } private static Match e763M(Session s, Frame f) { - return s.literal(f, ":", true, false, K474); + return parseSliceStepIndex_85(s, f); } private static Match e764(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e764M(s, f) : e764C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e764M : TinyExpressionP4Parser::e764C, K216, K216, K216, K217, K217, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17616:17619:body/2/4/literal", false, true, "text", false, K473); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e764M : TinyExpressionP4Parser::e764C, K227, K227, K227, K228, K228, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17783:17786:body/6/5/literal", false, true, "text", false, K966); } private static Match e764C(Session s, Frame f) { - return s.literal(f, ":", true, false, K474); + return s.literal(f, "]", true, false, K967); } private static Match e764M(Session s, Frame f) { - return s.literal(f, ":", true, false, K474); + return s.literal(f, "]", true, false, K967); } private static Match e765(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e765M(s, f) : e765C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e765M : TinyExpressionP4Parser::e765C, K993, K930, K225, K226, K226, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17620:17634:body/2/5/ruleRef", false, false, "node", false, K227); + f.reset = false; + if (s.bypassWrap) { Match r = f.matched ? e765M(s, f) : e765C(s, f); s.progress(f); return s.tree ? s.project(r, true) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e765M : TinyExpressionP4Parser::e765C, K227, K227, K227, K228, K228, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17793:17829:body/7/seq", false, false, "mixed", false, K156); } private static Match e765C(Session s, Frame f) { - return parseSliceStepIndex_85(s, f); + return s.sequence(f, K989, K658); } private static Match e765M(Session s, Frame f) { - return parseSliceStepIndex_85(s, f); + return s.sequence(f, K989, K658); } private static Match e766(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e766M(s, f) : e766C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e766M : TinyExpressionP4Parser::e766C, K216, K216, K216, K217, K217, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17641:17644:body/2/6/literal", false, true, "text", false, K931); + if (s.bypassCapture) { Match r = f.matched ? e766M(s, f) : e766C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e766M : TinyExpressionP4Parser::e766C, K990, K363, K236, K237, K237, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17793:17810:body/7/0/ruleRef", false, false, "mixed", false, K238); } private static Match e766C(Session s, Frame f) { - return s.literal(f, "]", true, false, K932); + return parseSliceBaseReceiver_82(s, f); } private static Match e766M(Session s, Frame f) { - return s.literal(f, "]", true, false, K932); + return parseSliceBaseReceiver_82(s, f); } private static Match e767(Session s, Frame f) { - f.reset = false; - if (s.bypassWrap) { Match r = f.matched ? e767M(s, f) : e767C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e767M : TinyExpressionP4Parser::e767C, K216, K216, K216, K217, K217, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17651:17712:body/3/seq", false, false, "node", true, K156); + if (s.bypassWrap) { Match r = f.matched ? e767M(s, f) : e767C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e767M : TinyExpressionP4Parser::e767C, K227, K227, K227, K228, K228, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17818:17821:body/7/1/literal", false, true, "text", false, K958); } private static Match e767C(Session s, Frame f) { - return s.sequence(f, K994, K394); + return s.literal(f, "[", true, false, K959); } private static Match e767M(Session s, Frame f) { - return s.sequence(f, K994, K394); + return s.literal(f, "[", true, false, K959); } private static Match e768(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e768M(s, f) : e768C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e768M : TinyExpressionP4Parser::e768C, K995, K323, K225, K226, K226, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17651:17670:body/3/0/ruleRef", false, false, "node", false, K227); + if (s.bypassWrap) { Match r = f.matched ? e768M(s, f) : e768C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e768M : TinyExpressionP4Parser::e768C, K227, K227, K227, K228, K228, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17822:17825:body/7/2/literal", false, true, "text", false, K511); } private static Match e768C(Session s, Frame f) { - return parseSliceBaseExpression_86(s, f); + return s.literal(f, ":", true, false, K512); } private static Match e768M(Session s, Frame f) { - return parseSliceBaseExpression_86(s, f); + return s.literal(f, ":", true, false, K512); } private static Match e769(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e769M(s, f) : e769C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e769M : TinyExpressionP4Parser::e769C, K216, K216, K216, K217, K217, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17678:17681:body/3/1/literal", false, true, "text", false, K923); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e769M : TinyExpressionP4Parser::e769C, K227, K227, K227, K228, K228, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17826:17829:body/7/3/literal", false, true, "text", false, K966); } private static Match e769C(Session s, Frame f) { - return s.literal(f, "[", true, false, K924); + return s.literal(f, "]", true, false, K967); } private static Match e769M(Session s, Frame f) { - return s.literal(f, "[", true, false, K924); + return s.literal(f, "]", true, false, K967); } private static Match e770(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e770M(s, f) : e770C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e770M : TinyExpressionP4Parser::e770C, K996, K926, K225, K226, K226, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17682:17697:body/3/2/ruleRef", false, false, "node", false, K227); + if (s.bypassWrap) { Match r = f.matched ? e770M(s, f) : e770C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e770M : TinyExpressionP4Parser::e770C, K227, K227, K227, K228, K228, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17923:18544:body/choice", false, false, "node", true, K4); } private static Match e770C(Session s, Frame f) { - return parseSliceStartIndex_83(s, f); + return s.choice(f,K1015,false,null,false,null,K1014); } private static Match e770M(Session s, Frame f) { - return parseSliceStartIndex_83(s, f); + return s.choice(f,K1015,false,null,false,null,K1014); } private static Match e771(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e771M(s, f) : e771C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e771M : TinyExpressionP4Parser::e771C, K216, K216, K216, K217, K217, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17705:17708:body/3/3/literal", false, true, "text", false, K473); + f.reset = false; + if (s.bypassWrap) { Match r = f.matched ? e771M(s, f) : e771C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e771M : TinyExpressionP4Parser::e771C, K227, K227, K227, K228, K228, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17923:18028:body/0/seq", false, false, "node", true, K156); } private static Match e771C(Session s, Frame f) { - return s.literal(f, ":", true, false, K474); + return s.sequence(f, K1016, K449); } private static Match e771M(Session s, Frame f) { - return s.literal(f, ":", true, false, K474); + return s.sequence(f, K1016, K449); } private static Match e772(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e772M(s, f) : e772C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e772M : TinyExpressionP4Parser::e772C, K216, K216, K216, K217, K217, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17709:17712:body/3/4/literal", false, true, "text", false, K931); + if (s.bypassCapture) { Match r = f.matched ? e772M(s, f) : e772C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e772M : TinyExpressionP4Parser::e772C, K1017, K363, K236, K237, K237, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17923:17942:body/0/0/ruleRef", false, false, "node", false, K238); } private static Match e772C(Session s, Frame f) { - return s.literal(f, "]", true, false, K932); + return parseSliceBaseExpression_86(s, f); } private static Match e772M(Session s, Frame f) { - return s.literal(f, "]", true, false, K932); + return parseSliceBaseExpression_86(s, f); } private static Match e773(Session s, Frame f) { - f.reset = false; - if (s.bypassWrap) { Match r = f.matched ? e773M(s, f) : e773C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e773M : TinyExpressionP4Parser::e773C, K216, K216, K216, K217, K217, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17719:17801:body/4/seq", false, false, "node", true, K156); + if (s.bypassWrap) { Match r = f.matched ? e773M(s, f) : e773C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e773M : TinyExpressionP4Parser::e773C, K227, K227, K227, K228, K228, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17950:17953:body/0/1/literal", false, true, "text", false, K958); } private static Match e773C(Session s, Frame f) { - return s.sequence(f, K997, K220); + return s.literal(f, "[", true, false, K959); } private static Match e773M(Session s, Frame f) { - return s.sequence(f, K997, K220); + return s.literal(f, "[", true, false, K959); } private static Match e774(Session s, Frame f) { if (s.bypassCapture) { Match r = f.matched ? e774M(s, f) : e774C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e774M : TinyExpressionP4Parser::e774C, K998, K323, K225, K226, K226, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17719:17738:body/4/0/ruleRef", false, false, "node", false, K227); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e774M : TinyExpressionP4Parser::e774C, K1018, K961, K236, K237, K237, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17954:17969:body/0/2/ruleRef", false, false, "node", false, K238); } private static Match e774C(Session s, Frame f) { - return parseSliceBaseExpression_86(s, f); + return parseSliceStartIndex_83(s, f); } private static Match e774M(Session s, Frame f) { - return parseSliceBaseExpression_86(s, f); + return parseSliceStartIndex_83(s, f); } private static Match e775(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e775M(s, f) : e775C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e775M : TinyExpressionP4Parser::e775C, K216, K216, K216, K217, K217, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17746:17749:body/4/1/literal", false, true, "text", false, K923); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e775M : TinyExpressionP4Parser::e775C, K227, K227, K227, K228, K228, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17977:17980:body/0/3/literal", false, true, "text", false, K511); } private static Match e775C(Session s, Frame f) { - return s.literal(f, "[", true, false, K924); + return s.literal(f, ":", true, false, K512); } private static Match e775M(Session s, Frame f) { - return s.literal(f, "[", true, false, K924); + return s.literal(f, ":", true, false, K512); } private static Match e776(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e776M(s, f) : e776C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e776M : TinyExpressionP4Parser::e776C, K216, K216, K216, K217, K217, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17750:17753:body/4/2/literal", false, true, "text", false, K473); + if (s.bypassCapture) { Match r = f.matched ? e776M(s, f) : e776C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e776M : TinyExpressionP4Parser::e776C, K1019, K963, K236, K237, K237, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17981:17994:body/0/4/ruleRef", false, false, "node", false, K238); } private static Match e776C(Session s, Frame f) { - return s.literal(f, ":", true, false, K474); + return parseSliceEndIndex_84(s, f); } private static Match e776M(Session s, Frame f) { - return s.literal(f, ":", true, false, K474); + return parseSliceEndIndex_84(s, f); } private static Match e777(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e777M(s, f) : e777C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e777M : TinyExpressionP4Parser::e777C, K999, K928, K225, K226, K226, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17754:17767:body/4/3/ruleRef", false, false, "node", false, K227); + if (s.bypassWrap) { Match r = f.matched ? e777M(s, f) : e777C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e777M : TinyExpressionP4Parser::e777C, K227, K227, K227, K228, K228, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18000:18003:body/0/5/literal", false, true, "text", false, K511); } private static Match e777C(Session s, Frame f) { - return parseSliceEndIndex_84(s, f); + return s.literal(f, ":", true, false, K512); } private static Match e777M(Session s, Frame f) { - return parseSliceEndIndex_84(s, f); + return s.literal(f, ":", true, false, K512); } private static Match e778(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e778M(s, f) : e778C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e778M : TinyExpressionP4Parser::e778C, K216, K216, K216, K217, K217, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17773:17776:body/4/4/literal", false, true, "text", false, K473); + if (s.bypassCapture) { Match r = f.matched ? e778M(s, f) : e778C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e778M : TinyExpressionP4Parser::e778C, K1020, K965, K236, K237, K237, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18004:18018:body/0/6/ruleRef", false, false, "node", false, K238); } private static Match e778C(Session s, Frame f) { - return s.literal(f, ":", true, false, K474); + return parseSliceStepIndex_85(s, f); } private static Match e778M(Session s, Frame f) { - return s.literal(f, ":", true, false, K474); + return parseSliceStepIndex_85(s, f); } private static Match e779(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e779M(s, f) : e779C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e779M : TinyExpressionP4Parser::e779C, K1000, K930, K225, K226, K226, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17777:17791:body/4/5/ruleRef", false, false, "node", false, K227); + if (s.bypassWrap) { Match r = f.matched ? e779M(s, f) : e779C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e779M : TinyExpressionP4Parser::e779C, K227, K227, K227, K228, K228, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18025:18028:body/0/7/literal", false, true, "text", false, K966); } private static Match e779C(Session s, Frame f) { - return parseSliceStepIndex_85(s, f); + return s.literal(f, "]", true, false, K967); } private static Match e779M(Session s, Frame f) { - return parseSliceStepIndex_85(s, f); + return s.literal(f, "]", true, false, K967); } private static Match e780(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e780M(s, f) : e780C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e780M : TinyExpressionP4Parser::e780C, K216, K216, K216, K217, K217, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17798:17801:body/4/6/literal", false, true, "text", false, K931); + f.reset = false; + if (s.bypassWrap) { Match r = f.matched ? e780M(s, f) : e780C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e780M : TinyExpressionP4Parser::e780C, K227, K227, K227, K228, K228, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18035:18115:body/1/seq", false, false, "node", true, K156); } private static Match e780C(Session s, Frame f) { - return s.literal(f, "]", true, false, K932); + return s.sequence(f, K1021, K301); } private static Match e780M(Session s, Frame f) { - return s.literal(f, "]", true, false, K932); + return s.sequence(f, K1021, K301); } private static Match e781(Session s, Frame f) { - f.reset = false; - if (s.bypassWrap) { Match r = f.matched ? e781M(s, f) : e781C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e781M : TinyExpressionP4Parser::e781C, K216, K216, K216, K217, K217, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17808:17865:body/5/seq", false, false, "node", true, K156); + if (s.bypassCapture) { Match r = f.matched ? e781M(s, f) : e781C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e781M : TinyExpressionP4Parser::e781C, K1022, K363, K236, K237, K237, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18035:18054:body/1/0/ruleRef", false, false, "node", false, K238); } private static Match e781C(Session s, Frame f) { - return s.sequence(f, K1001, K394); + return parseSliceBaseExpression_86(s, f); } private static Match e781M(Session s, Frame f) { - return s.sequence(f, K1001, K394); + return parseSliceBaseExpression_86(s, f); } private static Match e782(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e782M(s, f) : e782C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e782M : TinyExpressionP4Parser::e782C, K1002, K323, K225, K226, K226, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17808:17827:body/5/0/ruleRef", false, false, "node", false, K227); + if (s.bypassWrap) { Match r = f.matched ? e782M(s, f) : e782C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e782M : TinyExpressionP4Parser::e782C, K227, K227, K227, K228, K228, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18062:18065:body/1/1/literal", false, true, "text", false, K958); } private static Match e782C(Session s, Frame f) { - return parseSliceBaseExpression_86(s, f); + return s.literal(f, "[", true, false, K959); } private static Match e782M(Session s, Frame f) { - return parseSliceBaseExpression_86(s, f); + return s.literal(f, "[", true, false, K959); } private static Match e783(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e783M(s, f) : e783C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e783M : TinyExpressionP4Parser::e783C, K216, K216, K216, K217, K217, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17835:17838:body/5/1/literal", false, true, "text", false, K923); + if (s.bypassCapture) { Match r = f.matched ? e783M(s, f) : e783C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e783M : TinyExpressionP4Parser::e783C, K1023, K961, K236, K237, K237, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18066:18081:body/1/2/ruleRef", false, false, "node", false, K238); } private static Match e783C(Session s, Frame f) { - return s.literal(f, "[", true, false, K924); + return parseSliceStartIndex_83(s, f); } private static Match e783M(Session s, Frame f) { - return s.literal(f, "[", true, false, K924); + return parseSliceStartIndex_83(s, f); } private static Match e784(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e784M(s, f) : e784C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e784M : TinyExpressionP4Parser::e784C, K216, K216, K216, K217, K217, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17839:17842:body/5/2/literal", false, true, "text", false, K473); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e784M : TinyExpressionP4Parser::e784C, K227, K227, K227, K228, K228, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18089:18092:body/1/3/literal", false, true, "text", false, K511); } private static Match e784C(Session s, Frame f) { - return s.literal(f, ":", true, false, K474); + return s.literal(f, ":", true, false, K512); } private static Match e784M(Session s, Frame f) { - return s.literal(f, ":", true, false, K474); + return s.literal(f, ":", true, false, K512); } private static Match e785(Session s, Frame f) { if (s.bypassCapture) { Match r = f.matched ? e785M(s, f) : e785C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e785M : TinyExpressionP4Parser::e785C, K1003, K928, K225, K226, K226, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17843:17856:body/5/3/ruleRef", false, false, "node", false, K227); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e785M : TinyExpressionP4Parser::e785C, K1024, K963, K236, K237, K237, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18093:18106:body/1/4/ruleRef", false, false, "node", false, K238); } private static Match e785C(Session s, Frame f) { return parseSliceEndIndex_84(s, f); @@ -9331,28 +9393,28 @@ private static Match e785M(Session s, Frame f) { } private static Match e786(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e786M(s, f) : e786C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e786M : TinyExpressionP4Parser::e786C, K216, K216, K216, K217, K217, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17862:17865:body/5/4/literal", false, true, "text", false, K931); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e786M : TinyExpressionP4Parser::e786C, K227, K227, K227, K228, K228, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18112:18115:body/1/5/literal", false, true, "text", false, K966); } private static Match e786C(Session s, Frame f) { - return s.literal(f, "]", true, false, K932); + return s.literal(f, "]", true, false, K967); } private static Match e786M(Session s, Frame f) { - return s.literal(f, "]", true, false, K932); + return s.literal(f, "]", true, false, K967); } private static Match e787(Session s, Frame f) { f.reset = false; if (s.bypassWrap) { Match r = f.matched ? e787M(s, f) : e787C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e787M : TinyExpressionP4Parser::e787C, K216, K216, K216, K217, K217, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17872:17935:body/6/seq", false, false, "node", true, K156); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e787M : TinyExpressionP4Parser::e787C, K227, K227, K227, K228, K228, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18122:18208:body/2/seq", false, false, "node", true, K156); } private static Match e787C(Session s, Frame f) { - return s.sequence(f, K1004, K263); + return s.sequence(f, K1025, K344); } private static Match e787M(Session s, Frame f) { - return s.sequence(f, K1004, K263); + return s.sequence(f, K1025, K344); } private static Match e788(Session s, Frame f) { if (s.bypassCapture) { Match r = f.matched ? e788M(s, f) : e788C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e788M : TinyExpressionP4Parser::e788C, K1005, K323, K225, K226, K226, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17872:17891:body/6/0/ruleRef", false, false, "node", false, K227); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e788M : TinyExpressionP4Parser::e788C, K1026, K363, K236, K237, K237, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18122:18141:body/2/0/ruleRef", false, false, "node", false, K238); } private static Match e788C(Session s, Frame f) { return parseSliceBaseExpression_86(s, f); @@ -9362,2644 +9424,3074 @@ private static Match e788M(Session s, Frame f) { } private static Match e789(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e789M(s, f) : e789C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e789M : TinyExpressionP4Parser::e789C, K216, K216, K216, K217, K217, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17899:17902:body/6/1/literal", false, true, "text", false, K923); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e789M : TinyExpressionP4Parser::e789C, K227, K227, K227, K228, K228, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18149:18152:body/2/1/literal", false, true, "text", false, K958); } private static Match e789C(Session s, Frame f) { - return s.literal(f, "[", true, false, K924); + return s.literal(f, "[", true, false, K959); } private static Match e789M(Session s, Frame f) { - return s.literal(f, "[", true, false, K924); + return s.literal(f, "[", true, false, K959); } private static Match e790(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e790M(s, f) : e790C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e790M : TinyExpressionP4Parser::e790C, K216, K216, K216, K217, K217, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17903:17906:body/6/2/literal", false, true, "text", false, K473); + if (s.bypassCapture) { Match r = f.matched ? e790M(s, f) : e790C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e790M : TinyExpressionP4Parser::e790C, K1027, K961, K236, K237, K237, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18153:18168:body/2/2/ruleRef", false, false, "node", false, K238); } private static Match e790C(Session s, Frame f) { - return s.literal(f, ":", true, false, K474); + return parseSliceStartIndex_83(s, f); } private static Match e790M(Session s, Frame f) { - return s.literal(f, ":", true, false, K474); + return parseSliceStartIndex_83(s, f); } private static Match e791(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e791M(s, f) : e791C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e791M : TinyExpressionP4Parser::e791C, K216, K216, K216, K217, K217, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17907:17910:body/6/3/literal", false, true, "text", false, K473); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e791M : TinyExpressionP4Parser::e791C, K227, K227, K227, K228, K228, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18176:18179:body/2/3/literal", false, true, "text", false, K511); } private static Match e791C(Session s, Frame f) { - return s.literal(f, ":", true, false, K474); + return s.literal(f, ":", true, false, K512); } private static Match e791M(Session s, Frame f) { - return s.literal(f, ":", true, false, K474); + return s.literal(f, ":", true, false, K512); } private static Match e792(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e792M(s, f) : e792C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e792M : TinyExpressionP4Parser::e792C, K1006, K930, K225, K226, K226, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17911:17925:body/6/4/ruleRef", false, false, "node", false, K227); + if (s.bypassWrap) { Match r = f.matched ? e792M(s, f) : e792C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e792M : TinyExpressionP4Parser::e792C, K227, K227, K227, K228, K228, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18180:18183:body/2/4/literal", false, true, "text", false, K511); } private static Match e792C(Session s, Frame f) { - return parseSliceStepIndex_85(s, f); + return s.literal(f, ":", true, false, K512); } private static Match e792M(Session s, Frame f) { - return parseSliceStepIndex_85(s, f); + return s.literal(f, ":", true, false, K512); } private static Match e793(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e793M(s, f) : e793C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e793M : TinyExpressionP4Parser::e793C, K216, K216, K216, K217, K217, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17932:17935:body/6/5/literal", false, true, "text", false, K931); + if (s.bypassCapture) { Match r = f.matched ? e793M(s, f) : e793C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e793M : TinyExpressionP4Parser::e793C, K1028, K965, K236, K237, K237, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18184:18198:body/2/5/ruleRef", false, false, "node", false, K238); } private static Match e793C(Session s, Frame f) { - return s.literal(f, "]", true, false, K932); + return parseSliceStepIndex_85(s, f); } private static Match e793M(Session s, Frame f) { - return s.literal(f, "]", true, false, K932); + return parseSliceStepIndex_85(s, f); } private static Match e794(Session s, Frame f) { - f.reset = false; - if (s.bypassWrap) { Match r = f.matched ? e794M(s, f) : e794C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e794M : TinyExpressionP4Parser::e794C, K216, K216, K216, K217, K217, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17942:17980:body/7/seq", false, false, "node", false, K156); + if (s.bypassWrap) { Match r = f.matched ? e794M(s, f) : e794C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e794M : TinyExpressionP4Parser::e794C, K227, K227, K227, K228, K228, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18205:18208:body/2/6/literal", false, true, "text", false, K966); } private static Match e794C(Session s, Frame f) { - return s.sequence(f, K1007, K620); + return s.literal(f, "]", true, false, K967); } private static Match e794M(Session s, Frame f) { - return s.sequence(f, K1007, K620); + return s.literal(f, "]", true, false, K967); } private static Match e795(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e795M(s, f) : e795C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e795M : TinyExpressionP4Parser::e795C, K1008, K323, K225, K226, K226, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17942:17961:body/7/0/ruleRef", false, false, "node", false, K227); + f.reset = false; + if (s.bypassWrap) { Match r = f.matched ? e795M(s, f) : e795C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e795M : TinyExpressionP4Parser::e795C, K227, K227, K227, K228, K228, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18215:18276:body/3/seq", false, false, "node", true, K156); } private static Match e795C(Session s, Frame f) { - return parseSliceBaseExpression_86(s, f); + return s.sequence(f, K1029, K231); } private static Match e795M(Session s, Frame f) { - return parseSliceBaseExpression_86(s, f); + return s.sequence(f, K1029, K231); } private static Match e796(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e796M(s, f) : e796C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e796M : TinyExpressionP4Parser::e796C, K216, K216, K216, K217, K217, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17969:17972:body/7/1/literal", false, true, "text", false, K923); + if (s.bypassCapture) { Match r = f.matched ? e796M(s, f) : e796C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e796M : TinyExpressionP4Parser::e796C, K1030, K363, K236, K237, K237, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18215:18234:body/3/0/ruleRef", false, false, "node", false, K238); } private static Match e796C(Session s, Frame f) { - return s.literal(f, "[", true, false, K924); + return parseSliceBaseExpression_86(s, f); } private static Match e796M(Session s, Frame f) { - return s.literal(f, "[", true, false, K924); + return parseSliceBaseExpression_86(s, f); } private static Match e797(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e797M(s, f) : e797C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e797M : TinyExpressionP4Parser::e797C, K216, K216, K216, K217, K217, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17973:17976:body/7/2/literal", false, true, "text", false, K473); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e797M : TinyExpressionP4Parser::e797C, K227, K227, K227, K228, K228, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18242:18245:body/3/1/literal", false, true, "text", false, K958); } private static Match e797C(Session s, Frame f) { - return s.literal(f, ":", true, false, K474); + return s.literal(f, "[", true, false, K959); } private static Match e797M(Session s, Frame f) { - return s.literal(f, ":", true, false, K474); + return s.literal(f, "[", true, false, K959); } private static Match e798(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e798M(s, f) : e798C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e798M : TinyExpressionP4Parser::e798C, K216, K216, K216, K217, K217, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17977:17980:body/7/3/literal", false, true, "text", false, K931); + if (s.bypassCapture) { Match r = f.matched ? e798M(s, f) : e798C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e798M : TinyExpressionP4Parser::e798C, K1031, K961, K236, K237, K237, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18246:18261:body/3/2/ruleRef", false, false, "node", false, K238); } private static Match e798C(Session s, Frame f) { - return s.literal(f, "]", true, false, K932); + return parseSliceStartIndex_83(s, f); } private static Match e798M(Session s, Frame f) { - return s.literal(f, "]", true, false, K932); + return parseSliceStartIndex_83(s, f); } private static Match e799(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e799M(s, f) : e799C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e799M : TinyExpressionP4Parser::e799C, K216, K216, K216, K217, K217, "TinyExpressionP4::SliceExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18006:18049:body/choice", false, false, "node", false, K4); + if (s.bypassWrap) { Match r = f.matched ? e799M(s, f) : e799C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e799M : TinyExpressionP4Parser::e799C, K227, K227, K227, K228, K228, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18269:18272:body/3/3/literal", false, true, "text", false, K511); } private static Match e799C(Session s, Frame f) { - return s.choice(f,K1009,false,null,false); + return s.literal(f, ":", true, false, K512); } private static Match e799M(Session s, Frame f) { - return s.choice(f,K1009,false,null,false); + return s.literal(f, ":", true, false, K512); } private static Match e800(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e800M(s, f) : e800C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e800M : TinyExpressionP4Parser::e800C, K216, K216, K216, K217, K217, "TinyExpressionP4::SliceExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18006:18027:body/0/ruleRef", false, false, "node", false, K4); + if (s.bypassWrap) { Match r = f.matched ? e800M(s, f) : e800C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e800M : TinyExpressionP4Parser::e800C, K227, K227, K227, K228, K228, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18273:18276:body/3/4/literal", false, true, "text", false, K966); } private static Match e800C(Session s, Frame f) { - return parseSliceNestedExpression_87(s, f); + return s.literal(f, "]", true, false, K967); } private static Match e800M(Session s, Frame f) { - return parseSliceNestedExpression_87(s, f); + return s.literal(f, "]", true, false, K967); } private static Match e801(Session s, Frame f) { + f.reset = false; if (s.bypassWrap) { Match r = f.matched ? e801M(s, f) : e801C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e801M : TinyExpressionP4Parser::e801C, K216, K216, K216, K217, K217, "TinyExpressionP4::SliceExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18030:18049:body/1/ruleRef", false, false, "node", false, K4); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e801M : TinyExpressionP4Parser::e801C, K227, K227, K227, K228, K228, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18283:18365:body/4/seq", false, false, "node", true, K156); } private static Match e801C(Session s, Frame f) { - return parseSliceBaseExpression_86(s, f); + return s.sequence(f, K1032, K344); } private static Match e801M(Session s, Frame f) { - return parseSliceBaseExpression_86(s, f); + return s.sequence(f, K1032, K344); } private static Match e802(Session s, Frame f) { - f.reset = false; - if (s.bypassWrap) { Match r = f.matched ? e802M(s, f) : e802C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e802M : TinyExpressionP4Parser::e802C, K216, K216, K216, K217, K217, "TinyExpressionP4::StringExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18250:18296:body/seq", false, false, "mixed", true, K4); + if (s.bypassCapture) { Match r = f.matched ? e802M(s, f) : e802C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e802M : TinyExpressionP4Parser::e802C, K1033, K363, K236, K237, K237, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18283:18302:body/4/0/ruleRef", false, false, "node", false, K238); } private static Match e802C(Session s, Frame f) { - return s.sequence(f, K1010, K271); + return parseSliceBaseExpression_86(s, f); } private static Match e802M(Session s, Frame f) { - return s.sequence(f, K1010, K271); + return parseSliceBaseExpression_86(s, f); } private static Match e803(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e803M(s, f) : e803C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e803M : TinyExpressionP4Parser::e803C, K1011, K544, K225, K226, K226, "TinyExpressionP4::StringExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18250:18260:body/0/ruleRef", false, false, "mixed", false, K227); + if (s.bypassWrap) { Match r = f.matched ? e803M(s, f) : e803C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e803M : TinyExpressionP4Parser::e803C, K227, K227, K227, K228, K228, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18310:18313:body/4/1/literal", false, true, "text", false, K958); } private static Match e803C(Session s, Frame f) { - return parseStringTerm_91(s, f); + return s.literal(f, "[", true, false, K959); } private static Match e803M(Session s, Frame f) { - return parseStringTerm_91(s, f); + return s.literal(f, "[", true, false, K959); } private static Match e804(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e804M(s, f) : e804C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e804M : TinyExpressionP4Parser::e804C, K216, K216, K216, K217, K217, "TinyExpressionP4::StringExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18267:18296:body/1/repeat", true, false, "mixed", true, K222); + if (s.bypassWrap) { Match r = f.matched ? e804M(s, f) : e804C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e804M : TinyExpressionP4Parser::e804C, K227, K227, K227, K228, K228, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18314:18317:body/4/2/literal", false, true, "text", false, K511); } private static Match e804C(Session s, Frame f) { - return s.repeat(f, TinyExpressionP4Parser::e805, 0, Integer.MAX_VALUE, null, Trivia.NONE); + return s.literal(f, ":", true, false, K512); } private static Match e804M(Session s, Frame f) { - return s.repeat(f, TinyExpressionP4Parser::e805, 0, Integer.MAX_VALUE, null, Trivia.NONE); + return s.literal(f, ":", true, false, K512); } private static Match e805(Session s, Frame f) { - f.reset = false; - if (s.bypassWrap) { Match r = f.matched ? e805M(s, f) : e805C(s, f); s.progress(f); return s.tree ? s.project(r, true) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e805M : TinyExpressionP4Parser::e805C, K216, K216, K216, K217, K217, "TinyExpressionP4::StringExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18269:18287:body/1/0/seq", false, false, "mixed", false, K558); + if (s.bypassCapture) { Match r = f.matched ? e805M(s, f) : e805C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e805M : TinyExpressionP4Parser::e805C, K1034, K963, K236, K237, K237, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18318:18331:body/4/3/ruleRef", false, false, "node", false, K238); } private static Match e805C(Session s, Frame f) { - return s.sequence(f, K1012, K271); + return parseSliceEndIndex_84(s, f); } private static Match e805M(Session s, Frame f) { - return s.sequence(f, K1012, K271); + return parseSliceEndIndex_84(s, f); } private static Match e806(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e806M(s, f) : e806C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e806M : TinyExpressionP4Parser::e806C, K1013, K548, K225, K226, K226, "TinyExpressionP4::StringExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18269:18272:body/1/0/0/literal", false, true, "text", false, K558); + if (s.bypassWrap) { Match r = f.matched ? e806M(s, f) : e806C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e806M : TinyExpressionP4Parser::e806C, K227, K227, K227, K228, K228, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18337:18340:body/4/4/literal", false, true, "text", false, K511); } private static Match e806C(Session s, Frame f) { - return s.literal(f, "+", true, false, K559); + return s.literal(f, ":", true, false, K512); } private static Match e806M(Session s, Frame f) { - return s.literal(f, "+", true, false, K559); + return s.literal(f, ":", true, false, K512); } private static Match e807(Session s, Frame f) { if (s.bypassCapture) { Match r = f.matched ? e807M(s, f) : e807C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e807M : TinyExpressionP4Parser::e807C, K1014, K550, K225, K226, K226, "TinyExpressionP4::StringExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18277:18287:body/1/0/1/ruleRef", false, false, "mixed", false, K227); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e807M : TinyExpressionP4Parser::e807C, K1035, K965, K236, K237, K237, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18341:18355:body/4/5/ruleRef", false, false, "node", false, K238); } private static Match e807C(Session s, Frame f) { - return parseStringTerm_91(s, f); + return parseSliceStepIndex_85(s, f); } private static Match e807M(Session s, Frame f) { - return parseStringTerm_91(s, f); + return parseSliceStepIndex_85(s, f); } private static Match e808(Session s, Frame f) { - f.reset = false; - if (s.bypassWrap) { Match r = f.matched ? e808M(s, f) : e808C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e808M : TinyExpressionP4Parser::e808C, K216, K216, K216, K217, K217, "TinyExpressionP4::ParenthesizedStringExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18336:18360:body/seq", false, false, "node", false, K4); + if (s.bypassWrap) { Match r = f.matched ? e808M(s, f) : e808C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e808M : TinyExpressionP4Parser::e808C, K227, K227, K227, K228, K228, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18362:18365:body/4/6/literal", false, true, "text", false, K966); } private static Match e808C(Session s, Frame f) { - return s.sequence(f, K1015, K251); + return s.literal(f, "]", true, false, K967); } private static Match e808M(Session s, Frame f) { - return s.sequence(f, K1015, K251); + return s.literal(f, "]", true, false, K967); } private static Match e809(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e809M(s, f) : e809C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e809M : TinyExpressionP4Parser::e809C, K216, K216, K216, K217, K217, "TinyExpressionP4::ParenthesizedStringExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18336:18339:body/0/literal", false, true, "text", false, K399); + f.reset = false; + if (s.bypassWrap) { Match r = f.matched ? e809M(s, f) : e809C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e809M : TinyExpressionP4Parser::e809C, K227, K227, K227, K228, K228, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18372:18429:body/5/seq", false, false, "node", true, K156); } private static Match e809C(Session s, Frame f) { - return s.literal(f, "(", true, false, K400); + return s.sequence(f, K1036, K231); } private static Match e809M(Session s, Frame f) { - return s.literal(f, "(", true, false, K400); + return s.sequence(f, K1036, K231); } private static Match e810(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e810M(s, f) : e810C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e810M : TinyExpressionP4Parser::e810C, K216, K216, K216, K217, K217, "TinyExpressionP4::ParenthesizedStringExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18340:18356:body/1/ruleRef", false, false, "node", false, K4); + if (s.bypassCapture) { Match r = f.matched ? e810M(s, f) : e810C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e810M : TinyExpressionP4Parser::e810C, K1037, K363, K236, K237, K237, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18372:18391:body/5/0/ruleRef", false, false, "node", false, K238); } private static Match e810C(Session s, Frame f) { - return parseStringExpression_89(s, f); + return parseSliceBaseExpression_86(s, f); } private static Match e810M(Session s, Frame f) { - return parseStringExpression_89(s, f); + return parseSliceBaseExpression_86(s, f); } private static Match e811(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e811M(s, f) : e811C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e811M : TinyExpressionP4Parser::e811C, K216, K216, K216, K217, K217, "TinyExpressionP4::ParenthesizedStringExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18357:18360:body/2/literal", false, true, "text", false, K401); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e811M : TinyExpressionP4Parser::e811C, K227, K227, K227, K228, K228, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18399:18402:body/5/1/literal", false, true, "text", false, K958); } private static Match e811C(Session s, Frame f) { - return s.literal(f, ")", true, false, K402); + return s.literal(f, "[", true, false, K959); } private static Match e811M(Session s, Frame f) { - return s.literal(f, ")", true, false, K402); + return s.literal(f, "[", true, false, K959); } private static Match e812(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e812M(s, f) : e812C(s, f); s.progress(f); return s.tree ? s.project(r, true) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e812M : TinyExpressionP4Parser::e812C, K216, K216, K216, K217, K217, "TinyExpressionP4::StringTerm", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18567:18930:body/choice", false, false, "mixed", false, K4); + if (s.bypassWrap) { Match r = f.matched ? e812M(s, f) : e812C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e812M : TinyExpressionP4Parser::e812C, K227, K227, K227, K228, K228, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18403:18406:body/5/2/literal", false, true, "text", false, K511); } private static Match e812C(Session s, Frame f) { - return s.choice(f,K1025,false,null,false,K1024); + return s.literal(f, ":", true, false, K512); } private static Match e812M(Session s, Frame f) { - return s.choice(f,K1025,false,null,false,K1024); + return s.literal(f, ":", true, false, K512); } private static Match e813(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e813M(s, f) : e813C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e813M : TinyExpressionP4Parser::e813C, K216, K216, K216, K217, K217, "TinyExpressionP4::StringTerm", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18567:18588:body/0/ruleRef", false, false, "node", false, K4); + if (s.bypassCapture) { Match r = f.matched ? e813M(s, f) : e813C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e813M : TinyExpressionP4Parser::e813C, K1038, K963, K236, K237, K237, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18407:18420:body/5/3/ruleRef", false, false, "node", false, K238); } private static Match e813C(Session s, Frame f) { - return parseStringMatchExpression_113(s, f); + return parseSliceEndIndex_84(s, f); } private static Match e813M(Session s, Frame f) { - return parseStringMatchExpression_113(s, f); + return parseSliceEndIndex_84(s, f); } private static Match e814(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e814M(s, f) : e814C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e814M : TinyExpressionP4Parser::e814C, K216, K216, K216, K217, K217, "TinyExpressionP4::StringTerm", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18595:18607:body/1/ruleRef", false, false, "node", false, K4); + if (s.bypassWrap) { Match r = f.matched ? e814M(s, f) : e814C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e814M : TinyExpressionP4Parser::e814C, K227, K227, K227, K228, K228, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18426:18429:body/5/4/literal", false, true, "text", false, K966); } private static Match e814C(Session s, Frame f) { - return parseIfExpression_106(s, f); + return s.literal(f, "]", true, false, K967); } private static Match e814M(Session s, Frame f) { - return parseIfExpression_106(s, f); + return s.literal(f, "]", true, false, K967); } private static Match e815(Session s, Frame f) { + f.reset = false; if (s.bypassWrap) { Match r = f.matched ? e815M(s, f) : e815C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e815M : TinyExpressionP4Parser::e815C, K216, K216, K216, K217, K217, "TinyExpressionP4::StringTerm", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18614:18632:body/2/ruleRef", false, false, "node", false, K4); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e815M : TinyExpressionP4Parser::e815C, K227, K227, K227, K228, K228, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18436:18499:body/6/seq", false, false, "node", true, K156); } private static Match e815C(Session s, Frame f) { - return parseStringCastVariable_92(s, f); + return s.sequence(f, K1039, K301); } private static Match e815M(Session s, Frame f) { - return parseStringCastVariable_92(s, f); + return s.sequence(f, K1039, K301); } private static Match e816(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e816M(s, f) : e816C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e816M : TinyExpressionP4Parser::e816C, K216, K216, K216, K217, K217, "TinyExpressionP4::StringTerm", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18639:18658:body/3/ruleRef", false, false, "node", false, K4); + if (s.bypassCapture) { Match r = f.matched ? e816M(s, f) : e816C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e816M : TinyExpressionP4Parser::e816C, K1040, K363, K236, K237, K237, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18436:18455:body/6/0/ruleRef", false, false, "node", false, K238); } private static Match e816C(Session s, Frame f) { - return parseStringTypedVariable_93(s, f); + return parseSliceBaseExpression_86(s, f); } private static Match e816M(Session s, Frame f) { - return parseStringTypedVariable_93(s, f); + return parseSliceBaseExpression_86(s, f); } private static Match e817(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e817M(s, f) : e817C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e817M : TinyExpressionP4Parser::e817C, K216, K216, K216, K217, K217, "TinyExpressionP4::StringTerm", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18665:18680:body/4/ruleRef", false, false, "node", false, K4); + if (s.bypassWrap) { Match r = f.matched ? e817M(s, f) : e817C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e817M : TinyExpressionP4Parser::e817C, K227, K227, K227, K228, K228, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18463:18466:body/6/1/literal", false, true, "text", false, K958); } private static Match e817C(Session s, Frame f) { - return parseSliceExpression_88(s, f); + return s.literal(f, "[", true, false, K959); } private static Match e817M(Session s, Frame f) { - return parseSliceExpression_88(s, f); + return s.literal(f, "[", true, false, K959); } private static Match e818(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e818M(s, f) : e818C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e818M : TinyExpressionP4Parser::e818C, K216, K216, K216, K217, K217, "TinyExpressionP4::StringTerm", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18687:18716:body/5/ruleRef", false, false, "node", false, K4); + if (s.bypassWrap) { Match r = f.matched ? e818M(s, f) : e818C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e818M : TinyExpressionP4Parser::e818C, K227, K227, K227, K228, K228, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18467:18470:body/6/2/literal", false, true, "text", false, K511); } private static Match e818C(Session s, Frame f) { - return parseParenthesizedStringExpression_90(s, f); + return s.literal(f, ":", true, false, K512); } private static Match e818M(Session s, Frame f) { - return parseParenthesizedStringExpression_90(s, f); + return s.literal(f, ":", true, false, K512); } private static Match e819(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e819M(s, f) : e819C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e819M : TinyExpressionP4Parser::e819C, K216, K216, K216, K217, K217, "TinyExpressionP4::StringTerm", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18723:18747:body/6/ruleRef", false, false, "node", false, K4); + if (s.bypassWrap) { Match r = f.matched ? e819M(s, f) : e819C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e819M : TinyExpressionP4Parser::e819C, K227, K227, K227, K228, K228, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18471:18474:body/6/3/literal", false, true, "text", false, K511); } private static Match e819C(Session s, Frame f) { - return parseExternalStringInvocation_33(s, f); + return s.literal(f, ":", true, false, K512); } private static Match e819M(Session s, Frame f) { - return parseExternalStringInvocation_33(s, f); + return s.literal(f, ":", true, false, K512); } private static Match e820(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e820M(s, f) : e820C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e820M : TinyExpressionP4Parser::e820C, K216, K216, K216, K217, K217, "TinyExpressionP4::StringTerm", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18754:18773:body/7/ruleRef", false, false, "node", false, K4); + if (s.bypassCapture) { Match r = f.matched ? e820M(s, f) : e820C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e820M : TinyExpressionP4Parser::e820C, K1041, K965, K236, K237, K237, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18475:18489:body/6/4/ruleRef", false, false, "node", false, K238); } private static Match e820C(Session s, Frame f) { - return parseToUpperCaseFunction_61(s, f); + return parseSliceStepIndex_85(s, f); } private static Match e820M(Session s, Frame f) { - return parseToUpperCaseFunction_61(s, f); + return parseSliceStepIndex_85(s, f); } private static Match e821(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e821M(s, f) : e821C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e821M : TinyExpressionP4Parser::e821C, K216, K216, K216, K217, K217, "TinyExpressionP4::StringTerm", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18776:18795:body/8/ruleRef", false, false, "node", false, K4); + if (s.bypassWrap) { Match r = f.matched ? e821M(s, f) : e821C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e821M : TinyExpressionP4Parser::e821C, K227, K227, K227, K228, K228, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18496:18499:body/6/5/literal", false, true, "text", false, K966); } private static Match e821C(Session s, Frame f) { - return parseToLowerCaseFunction_62(s, f); + return s.literal(f, "]", true, false, K967); } private static Match e821M(Session s, Frame f) { - return parseToLowerCaseFunction_62(s, f); + return s.literal(f, "]", true, false, K967); } private static Match e822(Session s, Frame f) { + f.reset = false; if (s.bypassWrap) { Match r = f.matched ? e822M(s, f) : e822C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e822M : TinyExpressionP4Parser::e822C, K216, K216, K216, K217, K217, "TinyExpressionP4::StringTerm", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18798:18810:body/9/ruleRef", false, false, "node", false, K4); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e822M : TinyExpressionP4Parser::e822C, K227, K227, K227, K228, K228, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18506:18544:body/7/seq", false, false, "node", false, K156); } private static Match e822C(Session s, Frame f) { - return parseTrimFunction_63(s, f); + return s.sequence(f, K1042, K658); } private static Match e822M(Session s, Frame f) { - return parseTrimFunction_63(s, f); + return s.sequence(f, K1042, K658); } private static Match e823(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e823M(s, f) : e823C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e823M : TinyExpressionP4Parser::e823C, K216, K216, K216, K217, K217, "TinyExpressionP4::StringTerm", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18817:18837:body/10/ruleRef", false, false, "node", false, K4); + if (s.bypassCapture) { Match r = f.matched ? e823M(s, f) : e823C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e823M : TinyExpressionP4Parser::e823C, K1043, K363, K236, K237, K237, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18506:18525:body/7/0/ruleRef", false, false, "node", false, K238); } private static Match e823C(Session s, Frame f) { - return parseToUpperCaseDotMethod_66(s, f); + return parseSliceBaseExpression_86(s, f); } private static Match e823M(Session s, Frame f) { - return parseToUpperCaseDotMethod_66(s, f); + return parseSliceBaseExpression_86(s, f); } private static Match e824(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e824M(s, f) : e824C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e824M : TinyExpressionP4Parser::e824C, K216, K216, K216, K217, K217, "TinyExpressionP4::StringTerm", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18840:18860:body/11/ruleRef", false, false, "node", false, K4); + if (s.bypassWrap) { Match r = f.matched ? e824M(s, f) : e824C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e824M : TinyExpressionP4Parser::e824C, K227, K227, K227, K228, K228, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18533:18536:body/7/1/literal", false, true, "text", false, K958); } private static Match e824C(Session s, Frame f) { - return parseToLowerCaseDotMethod_67(s, f); + return s.literal(f, "[", true, false, K959); } private static Match e824M(Session s, Frame f) { - return parseToLowerCaseDotMethod_67(s, f); + return s.literal(f, "[", true, false, K959); } private static Match e825(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e825M(s, f) : e825C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e825M : TinyExpressionP4Parser::e825C, K216, K216, K216, K217, K217, "TinyExpressionP4::StringTerm", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18863:18876:body/12/ruleRef", false, false, "node", false, K4); + if (s.bypassWrap) { Match r = f.matched ? e825M(s, f) : e825C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e825M : TinyExpressionP4Parser::e825C, K227, K227, K227, K228, K228, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18537:18540:body/7/2/literal", false, true, "text", false, K511); } private static Match e825C(Session s, Frame f) { - return parseTrimDotMethod_68(s, f); + return s.literal(f, ":", true, false, K512); } private static Match e825M(Session s, Frame f) { - return parseTrimDotMethod_68(s, f); + return s.literal(f, ":", true, false, K512); } private static Match e826(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e826M(s, f) : e826C(s, f); s.progress(f); return s.tree ? s.textAlternative(r) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e826M : TinyExpressionP4Parser::e826C, K216, K216, K216, K217, K217, "TinyExpressionP4::StringTerm", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18883:18889:body/13/tokenRef", false, true, "textAlternative", false, K390); + if (s.bypassWrap) { Match r = f.matched ? e826M(s, f) : e826C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e826M : TinyExpressionP4Parser::e826C, K227, K227, K227, K228, K228, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18541:18544:body/7/3/literal", false, true, "text", false, K966); } private static Match e826C(Session s, Frame f) { - return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K391,K392); + return s.literal(f, "]", true, false, K967); } private static Match e826M(Session s, Frame f) { - return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K391,K392); + return s.literal(f, "]", true, false, K967); } private static Match e827(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e827M(s, f) : e827C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e827M : TinyExpressionP4Parser::e827C, K216, K216, K216, K217, K217, "TinyExpressionP4::StringTerm", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18896:18907:body/14/ruleRef", false, false, "node", false, K4); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e827M : TinyExpressionP4Parser::e827C, K227, K227, K227, K228, K228, "TinyExpressionP4::SliceExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18570:18613:body/choice", false, false, "node", false, K4); } private static Match e827C(Session s, Frame f) { - return parseVariableRef_121(s, f); + return s.choice(f,K1044,false,null,false); } private static Match e827M(Session s, Frame f) { - return parseVariableRef_121(s, f); + return s.choice(f,K1044,false,null,false); } private static Match e828(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e828M(s, f) : e828C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e828M : TinyExpressionP4Parser::e828C, K216, K216, K216, K217, K217, "TinyExpressionP4::StringTerm", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18914:18930:body/15/ruleRef", false, false, "node", false, K4); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e828M : TinyExpressionP4Parser::e828C, K227, K227, K227, K228, K228, "TinyExpressionP4::SliceExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18570:18591:body/0/ruleRef", false, false, "node", false, K4); } private static Match e828C(Session s, Frame f) { - return parseMethodInvocation_36(s, f); + return parseSliceNestedExpression_87(s, f); } private static Match e828M(Session s, Frame f) { - return parseMethodInvocation_36(s, f); + return parseSliceNestedExpression_87(s, f); } private static Match e829(Session s, Frame f) { - f.reset = false; - if (s.bypassWrap) { Match r = f.matched ? e829M(s, f) : e829C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e829M : TinyExpressionP4Parser::e829C, K216, K216, K216, K217, K217, "TinyExpressionP4::StringCastVariable", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19012:19058:body/seq", false, false, "text", false, K4); + if (s.bypassWrap) { Match r = f.matched ? e829M(s, f) : e829C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e829M : TinyExpressionP4Parser::e829C, K227, K227, K227, K228, K228, "TinyExpressionP4::SliceExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18594:18613:body/1/ruleRef", false, false, "node", false, K4); } private static Match e829C(Session s, Frame f) { - return s.sequence(f, K1026, K394); + return parseSliceBaseExpression_86(s, f); } private static Match e829M(Session s, Frame f) { - return s.sequence(f, K1026, K394); + return parseSliceBaseExpression_86(s, f); } private static Match e830(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e830M(s, f) : e830C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e830M : TinyExpressionP4Parser::e830C, K216, K216, K216, K217, K217, "TinyExpressionP4::StringCastVariable", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19012:19015:body/0/literal", false, true, "text", false, K399); + f.reset = false; + if (s.bypassWrap) { Match r = f.matched ? e830M(s, f) : e830C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e830M : TinyExpressionP4Parser::e830C, K227, K227, K227, K228, K228, "TinyExpressionP4::StringExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18814:18860:body/seq", false, false, "mixed", true, K4); } private static Match e830C(Session s, Frame f) { - return s.literal(f, "(", true, false, K400); + return s.sequence(f, K1045, K309); } private static Match e830M(Session s, Frame f) { - return s.literal(f, "(", true, false, K400); + return s.sequence(f, K1045, K309); } private static Match e831(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e831M(s, f) : e831C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e831M : TinyExpressionP4Parser::e831C, K216, K216, K216, K217, K217, "TinyExpressionP4::StringCastVariable", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19016:19039:body/1/group", false, false, "text", false, K371); + if (s.bypassCapture) { Match r = f.matched ? e831M(s, f) : e831C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e831M : TinyExpressionP4Parser::e831C, K1046, K582, K236, K237, K237, "TinyExpressionP4::StringExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18814:18824:body/0/ruleRef", false, false, "mixed", false, K238); } private static Match e831C(Session s, Frame f) { - return e832(s, f); + return parseStringTerm_91(s, f); } private static Match e831M(Session s, Frame f) { - return e832(s, f); + return parseStringTerm_91(s, f); } private static Match e832(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e832M(s, f) : e832C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e832M : TinyExpressionP4Parser::e832C, K216, K216, K216, K217, K217, "TinyExpressionP4::StringCastVariable", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19018:19037:body/1/0/choice", false, false, "text", false, K371); + if (s.bypassWrap) { Match r = f.matched ? e832M(s, f) : e832C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e832M : TinyExpressionP4Parser::e832C, K227, K227, K227, K228, K228, "TinyExpressionP4::StringExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18831:18860:body/1/repeat", true, false, "mixed", true, K233); } private static Match e832C(Session s, Frame f) { - return s.choice(f,K1027,false,null,false); + return s.repeat(f, TinyExpressionP4Parser::e833, 0, Integer.MAX_VALUE, null, Trivia.NONE); } private static Match e832M(Session s, Frame f) { - return s.choice(f,K1027,false,null,false); + return s.repeat(f, TinyExpressionP4Parser::e833, 0, Integer.MAX_VALUE, null, Trivia.NONE); } private static Match e833(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e833M(s, f) : e833C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e833M : TinyExpressionP4Parser::e833C, K216, K216, K216, K217, K217, "TinyExpressionP4::StringCastVariable", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19018:19026:body/1/0/0/literal", false, true, "text", false, K52); + f.reset = false; + if (s.bypassWrap) { Match r = f.matched ? e833M(s, f) : e833C(s, f); s.progress(f); return s.tree ? s.project(r, true) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e833M : TinyExpressionP4Parser::e833C, K227, K227, K227, K228, K228, "TinyExpressionP4::StringExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18833:18851:body/1/0/seq", false, false, "mixed", false, K596); } private static Match e833C(Session s, Frame f) { - return s.literal(f, "string", true, false, K354); + return s.sequence(f, K1047, K309); } private static Match e833M(Session s, Frame f) { - return s.literal(f, "string", true, false, K354); + return s.sequence(f, K1047, K309); } private static Match e834(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e834M(s, f) : e834C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e834M : TinyExpressionP4Parser::e834C, K216, K216, K216, K217, K217, "TinyExpressionP4::StringCastVariable", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19029:19037:body/1/0/1/literal", false, true, "text", false, K355); + if (s.bypassCapture) { Match r = f.matched ? e834M(s, f) : e834C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e834M : TinyExpressionP4Parser::e834C, K1048, K586, K236, K237, K237, "TinyExpressionP4::StringExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18833:18836:body/1/0/0/literal", false, true, "text", false, K596); } private static Match e834C(Session s, Frame f) { - return s.literal(f, "String", true, false, K356); + return s.literal(f, "+", true, false, K597); } private static Match e834M(Session s, Frame f) { - return s.literal(f, "String", true, false, K356); + return s.literal(f, "+", true, false, K597); } private static Match e835(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e835M(s, f) : e835C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e835M : TinyExpressionP4Parser::e835C, K216, K216, K216, K217, K217, "TinyExpressionP4::StringCastVariable", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19040:19043:body/2/literal", false, true, "text", false, K401); + if (s.bypassCapture) { Match r = f.matched ? e835M(s, f) : e835C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e835M : TinyExpressionP4Parser::e835C, K1049, K588, K236, K237, K237, "TinyExpressionP4::StringExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18841:18851:body/1/0/1/ruleRef", false, false, "mixed", false, K238); } private static Match e835C(Session s, Frame f) { - return s.literal(f, ")", true, false, K402); + return parseStringTerm_91(s, f); } private static Match e835M(Session s, Frame f) { - return s.literal(f, ")", true, false, K402); + return parseStringTerm_91(s, f); } private static Match e836(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e836M(s, f) : e836C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e836M : TinyExpressionP4Parser::e836C, K216, K216, K216, K217, K217, "TinyExpressionP4::StringCastVariable", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19044:19047:body/3/literal", false, true, "text", false, K50); + f.reset = false; + if (s.bypassWrap) { Match r = f.matched ? e836M(s, f) : e836C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e836M : TinyExpressionP4Parser::e836C, K227, K227, K227, K228, K228, "TinyExpressionP4::ParenthesizedStringExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18900:18924:body/seq", false, false, "node", false, K4); } private static Match e836C(Session s, Frame f) { - return s.literal(f, "$", true, false, K312); + return s.sequence(f, K1050, K255); } private static Match e836M(Session s, Frame f) { - return s.literal(f, "$", true, false, K312); + return s.sequence(f, K1050, K255); } private static Match e837(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e837M(s, f) : e837C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e837M : TinyExpressionP4Parser::e837C, K1028, K479, K225, K226, K226, "TinyExpressionP4::StringCastVariable", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19048:19058:body/4/tokenRef", false, true, "text", false, K276); + if (s.bypassWrap) { Match r = f.matched ? e837M(s, f) : e837C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e837M : TinyExpressionP4Parser::e837C, K227, K227, K227, K228, K228, "TinyExpressionP4::ParenthesizedStringExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18900:18903:body/0/literal", false, true, "text", false, K437); } private static Match e837C(Session s, Frame f) { - return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K277,K278); + return s.literal(f, "(", true, false, K438); } private static Match e837M(Session s, Frame f) { - return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K277,K278); + return s.literal(f, "(", true, false, K438); } private static Match e838(Session s, Frame f) { - f.reset = false; - if (s.bypassWrap) { Match r = f.matched ? e838M(s, f) : e838C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e838M : TinyExpressionP4Parser::e838C, K216, K216, K216, K217, K217, "TinyExpressionP4::StringTypedVariable", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19148:19197:body/seq", false, false, "text", false, K4); + if (s.bypassWrap) { Match r = f.matched ? e838M(s, f) : e838C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e838M : TinyExpressionP4Parser::e838C, K227, K227, K227, K228, K228, "TinyExpressionP4::ParenthesizedStringExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18904:18920:body/1/ruleRef", false, false, "node", false, K4); } private static Match e838C(Session s, Frame f) { - return s.sequence(f, K1029, K620); + return parseStringExpression_89(s, f); } private static Match e838M(Session s, Frame f) { - return s.sequence(f, K1029, K620); + return parseStringExpression_89(s, f); } private static Match e839(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e839M(s, f) : e839C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e839M : TinyExpressionP4Parser::e839C, K216, K216, K216, K217, K217, "TinyExpressionP4::StringTypedVariable", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19148:19151:body/0/literal", false, true, "text", false, K50); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e839M : TinyExpressionP4Parser::e839C, K227, K227, K227, K228, K228, "TinyExpressionP4::ParenthesizedStringExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18921:18924:body/2/literal", false, true, "text", false, K439); } private static Match e839C(Session s, Frame f) { - return s.literal(f, "$", true, false, K312); + return s.literal(f, ")", true, false, K440); } private static Match e839M(Session s, Frame f) { - return s.literal(f, "$", true, false, K312); + return s.literal(f, ")", true, false, K440); } private static Match e840(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e840M(s, f) : e840C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e840M : TinyExpressionP4Parser::e840C, K1030, K479, K225, K226, K226, "TinyExpressionP4::StringTypedVariable", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19152:19162:body/1/tokenRef", false, true, "text", false, K276); + if (s.bypassWrap) { Match r = f.matched ? e840M(s, f) : e840C(s, f); s.progress(f); return s.tree ? s.project(r, true) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e840M : TinyExpressionP4Parser::e840C, K227, K227, K227, K228, K228, "TinyExpressionP4::StringTerm", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19131:19494:body/choice", false, false, "mixed", false, K4); } private static Match e840C(Session s, Frame f) { - return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K277,K278); + return s.choice(f,K1060,false,null,false,K1059); } private static Match e840M(Session s, Frame f) { - return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K277,K278); + return s.choice(f,K1060,false,null,false,K1059); } private static Match e841(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e841M(s, f) : e841C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e841M : TinyExpressionP4Parser::e841C, K216, K216, K216, K217, K217, "TinyExpressionP4::StringTypedVariable", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19169:19173:body/2/literal", false, true, "text", false, K279); + if (s.bypassWrap) { Match r = f.matched ? e841M(s, f) : e841C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e841M : TinyExpressionP4Parser::e841C, K227, K227, K227, K228, K228, "TinyExpressionP4::StringTerm", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19131:19152:body/0/ruleRef", false, false, "node", false, K4); } private static Match e841C(Session s, Frame f) { - return s.literal(f, "as", true, false, K280); + return parseStringMatchExpression_113(s, f); } private static Match e841M(Session s, Frame f) { - return s.literal(f, "as", true, false, K280); + return parseStringMatchExpression_113(s, f); } private static Match e842(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e842M(s, f) : e842C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e842M : TinyExpressionP4Parser::e842C, K216, K216, K216, K217, K217, "TinyExpressionP4::StringTypedVariable", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19174:19197:body/3/group", false, false, "text", false, K371); + if (s.bypassWrap) { Match r = f.matched ? e842M(s, f) : e842C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e842M : TinyExpressionP4Parser::e842C, K227, K227, K227, K228, K228, "TinyExpressionP4::StringTerm", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19159:19171:body/1/ruleRef", false, false, "node", false, K4); } private static Match e842C(Session s, Frame f) { - return e843(s, f); + return parseIfExpression_106(s, f); } private static Match e842M(Session s, Frame f) { - return e843(s, f); + return parseIfExpression_106(s, f); } private static Match e843(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e843M(s, f) : e843C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e843M : TinyExpressionP4Parser::e843C, K216, K216, K216, K217, K217, "TinyExpressionP4::StringTypedVariable", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19176:19195:body/3/0/choice", false, false, "text", false, K371); + if (s.bypassWrap) { Match r = f.matched ? e843M(s, f) : e843C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e843M : TinyExpressionP4Parser::e843C, K227, K227, K227, K228, K228, "TinyExpressionP4::StringTerm", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19178:19196:body/2/ruleRef", false, false, "node", false, K4); } private static Match e843C(Session s, Frame f) { - return s.choice(f,K1031,false,null,false); + return parseStringCastVariable_92(s, f); } private static Match e843M(Session s, Frame f) { - return s.choice(f,K1031,false,null,false); + return parseStringCastVariable_92(s, f); } private static Match e844(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e844M(s, f) : e844C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e844M : TinyExpressionP4Parser::e844C, K216, K216, K216, K217, K217, "TinyExpressionP4::StringTypedVariable", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19176:19184:body/3/0/0/literal", false, true, "text", false, K52); + if (s.bypassWrap) { Match r = f.matched ? e844M(s, f) : e844C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e844M : TinyExpressionP4Parser::e844C, K227, K227, K227, K228, K228, "TinyExpressionP4::StringTerm", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19203:19222:body/3/ruleRef", false, false, "node", false, K4); } private static Match e844C(Session s, Frame f) { - return s.literal(f, "string", true, false, K354); + return parseStringTypedVariable_93(s, f); } private static Match e844M(Session s, Frame f) { - return s.literal(f, "string", true, false, K354); + return parseStringTypedVariable_93(s, f); } private static Match e845(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e845M(s, f) : e845C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e845M : TinyExpressionP4Parser::e845C, K216, K216, K216, K217, K217, "TinyExpressionP4::StringTypedVariable", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19187:19195:body/3/0/1/literal", false, true, "text", false, K355); + if (s.bypassWrap) { Match r = f.matched ? e845M(s, f) : e845C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e845M : TinyExpressionP4Parser::e845C, K227, K227, K227, K228, K228, "TinyExpressionP4::StringTerm", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19229:19244:body/4/ruleRef", false, false, "node", false, K4); } private static Match e845C(Session s, Frame f) { - return s.literal(f, "String", true, false, K356); + return parseSliceExpression_88(s, f); } private static Match e845M(Session s, Frame f) { - return s.literal(f, "String", true, false, K356); + return parseSliceExpression_88(s, f); } private static Match e846(Session s, Frame f) { - f.reset = false; if (s.bypassWrap) { Match r = f.matched ? e846M(s, f) : e846C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e846M : TinyExpressionP4Parser::e846C, K216, K216, K216, K217, K217, "TinyExpressionP4::BooleanExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19428:19494:body/seq", false, false, "node", true, K4); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e846M : TinyExpressionP4Parser::e846C, K227, K227, K227, K228, K228, "TinyExpressionP4::StringTerm", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19251:19280:body/5/ruleRef", false, false, "node", false, K4); } private static Match e846C(Session s, Frame f) { - return s.sequence(f, K1032, K271); + return parseParenthesizedStringExpression_90(s, f); } private static Match e846M(Session s, Frame f) { - return s.sequence(f, K1032, K271); + return parseParenthesizedStringExpression_90(s, f); } private static Match e847(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e847M(s, f) : e847C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e847M : TinyExpressionP4Parser::e847C, K1033, K544, K225, K226, K226, "TinyExpressionP4::BooleanExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19428:19448:body/0/ruleRef", false, false, "node", false, K227); + if (s.bypassWrap) { Match r = f.matched ? e847M(s, f) : e847C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e847M : TinyExpressionP4Parser::e847C, K227, K227, K227, K228, K228, "TinyExpressionP4::StringTerm", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19287:19311:body/6/ruleRef", false, false, "node", false, K4); } private static Match e847C(Session s, Frame f) { - return parseBooleanAndExpression_95(s, f); + return parseExternalStringInvocation_33(s, f); } private static Match e847M(Session s, Frame f) { - return parseBooleanAndExpression_95(s, f); + return parseExternalStringInvocation_33(s, f); } private static Match e848(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e848M(s, f) : e848C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e848M : TinyExpressionP4Parser::e848C, K216, K216, K216, K217, K217, "TinyExpressionP4::BooleanExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19455:19494:body/1/repeat", true, false, "node", true, K222); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e848M : TinyExpressionP4Parser::e848C, K227, K227, K227, K228, K228, "TinyExpressionP4::StringTerm", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19318:19337:body/7/ruleRef", false, false, "node", false, K4); } private static Match e848C(Session s, Frame f) { - return s.repeat(f, TinyExpressionP4Parser::e849, 0, Integer.MAX_VALUE, null, Trivia.NONE); + return parseToUpperCaseFunction_61(s, f); } private static Match e848M(Session s, Frame f) { - return s.repeat(f, TinyExpressionP4Parser::e849, 0, Integer.MAX_VALUE, null, Trivia.NONE); + return parseToUpperCaseFunction_61(s, f); } private static Match e849(Session s, Frame f) { - f.reset = false; if (s.bypassWrap) { Match r = f.matched ? e849M(s, f) : e849C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e849M : TinyExpressionP4Parser::e849C, K216, K216, K216, K217, K217, "TinyExpressionP4::BooleanExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19457:19485:body/1/0/seq", false, false, "node", false, K1034); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e849M : TinyExpressionP4Parser::e849C, K227, K227, K227, K228, K228, "TinyExpressionP4::StringTerm", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19340:19359:body/8/ruleRef", false, false, "node", false, K4); } private static Match e849C(Session s, Frame f) { - return s.sequence(f, K1035, K271); + return parseToLowerCaseFunction_62(s, f); } private static Match e849M(Session s, Frame f) { - return s.sequence(f, K1035, K271); + return parseToLowerCaseFunction_62(s, f); } private static Match e850(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e850M(s, f) : e850C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e850M : TinyExpressionP4Parser::e850C, K1036, K548, K225, K226, K226, "TinyExpressionP4::BooleanExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19457:19460:body/1/0/0/literal", false, true, "text", false, K1034); + if (s.bypassWrap) { Match r = f.matched ? e850M(s, f) : e850C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e850M : TinyExpressionP4Parser::e850C, K227, K227, K227, K228, K228, "TinyExpressionP4::StringTerm", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19362:19374:body/9/ruleRef", false, false, "node", false, K4); } private static Match e850C(Session s, Frame f) { - return s.literal(f, "|", true, false, K1037); + return parseTrimFunction_63(s, f); } private static Match e850M(Session s, Frame f) { - return s.literal(f, "|", true, false, K1037); + return parseTrimFunction_63(s, f); } private static Match e851(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e851M(s, f) : e851C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e851M : TinyExpressionP4Parser::e851C, K1038, K550, K225, K226, K226, "TinyExpressionP4::BooleanExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19465:19485:body/1/0/1/ruleRef", false, false, "node", false, K227); + if (s.bypassWrap) { Match r = f.matched ? e851M(s, f) : e851C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e851M : TinyExpressionP4Parser::e851C, K227, K227, K227, K228, K228, "TinyExpressionP4::StringTerm", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19381:19401:body/10/ruleRef", false, false, "node", false, K4); } private static Match e851C(Session s, Frame f) { - return parseBooleanAndExpression_95(s, f); + return parseToUpperCaseDotMethod_66(s, f); } private static Match e851M(Session s, Frame f) { - return parseBooleanAndExpression_95(s, f); + return parseToUpperCaseDotMethod_66(s, f); } private static Match e852(Session s, Frame f) { - f.reset = false; if (s.bypassWrap) { Match r = f.matched ? e852M(s, f) : e852C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e852M : TinyExpressionP4Parser::e852C, K216, K216, K216, K217, K217, "TinyExpressionP4::BooleanAndExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19631:19697:body/seq", false, false, "node", true, K4); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e852M : TinyExpressionP4Parser::e852C, K227, K227, K227, K228, K228, "TinyExpressionP4::StringTerm", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19404:19424:body/11/ruleRef", false, false, "node", false, K4); } private static Match e852C(Session s, Frame f) { - return s.sequence(f, K1039, K271); + return parseToLowerCaseDotMethod_67(s, f); } private static Match e852M(Session s, Frame f) { - return s.sequence(f, K1039, K271); + return parseToLowerCaseDotMethod_67(s, f); } private static Match e853(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e853M(s, f) : e853C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e853M : TinyExpressionP4Parser::e853C, K1040, K544, K225, K226, K226, "TinyExpressionP4::BooleanAndExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19631:19651:body/0/ruleRef", false, false, "node", false, K227); + if (s.bypassWrap) { Match r = f.matched ? e853M(s, f) : e853C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e853M : TinyExpressionP4Parser::e853C, K227, K227, K227, K228, K228, "TinyExpressionP4::StringTerm", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19427:19440:body/12/ruleRef", false, false, "node", false, K4); } private static Match e853C(Session s, Frame f) { - return parseBooleanXorExpression_96(s, f); + return parseTrimDotMethod_68(s, f); } private static Match e853M(Session s, Frame f) { - return parseBooleanXorExpression_96(s, f); + return parseTrimDotMethod_68(s, f); } private static Match e854(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e854M(s, f) : e854C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e854M : TinyExpressionP4Parser::e854C, K216, K216, K216, K217, K217, "TinyExpressionP4::BooleanAndExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19658:19697:body/1/repeat", true, false, "node", true, K222); + if (s.bypassWrap) { Match r = f.matched ? e854M(s, f) : e854C(s, f); s.progress(f); return s.tree ? s.textAlternative(r) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e854M : TinyExpressionP4Parser::e854C, K227, K227, K227, K228, K228, "TinyExpressionP4::StringTerm", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19447:19453:body/13/tokenRef", false, true, "textAlternative", false, K430); } private static Match e854C(Session s, Frame f) { - return s.repeat(f, TinyExpressionP4Parser::e855, 0, Integer.MAX_VALUE, null, Trivia.NONE); + return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K431,K432); } private static Match e854M(Session s, Frame f) { - return s.repeat(f, TinyExpressionP4Parser::e855, 0, Integer.MAX_VALUE, null, Trivia.NONE); + return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K431,K432); } private static Match e855(Session s, Frame f) { - f.reset = false; if (s.bypassWrap) { Match r = f.matched ? e855M(s, f) : e855C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e855M : TinyExpressionP4Parser::e855C, K216, K216, K216, K217, K217, "TinyExpressionP4::BooleanAndExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19660:19688:body/1/0/seq", false, false, "node", false, K1041); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e855M : TinyExpressionP4Parser::e855C, K227, K227, K227, K228, K228, "TinyExpressionP4::StringTerm", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19460:19471:body/14/ruleRef", false, false, "node", false, K4); } private static Match e855C(Session s, Frame f) { - return s.sequence(f, K1042, K271); + return parseVariableRef_121(s, f); } private static Match e855M(Session s, Frame f) { - return s.sequence(f, K1042, K271); + return parseVariableRef_121(s, f); } private static Match e856(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e856M(s, f) : e856C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e856M : TinyExpressionP4Parser::e856C, K1043, K548, K225, K226, K226, "TinyExpressionP4::BooleanAndExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19660:19663:body/1/0/0/literal", false, true, "text", false, K1041); + if (s.bypassWrap) { Match r = f.matched ? e856M(s, f) : e856C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e856M : TinyExpressionP4Parser::e856C, K227, K227, K227, K228, K228, "TinyExpressionP4::StringTerm", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19478:19494:body/15/ruleRef", false, false, "node", false, K4); } private static Match e856C(Session s, Frame f) { - return s.literal(f, "&", true, false, K1044); + return parseMethodInvocation_36(s, f); } private static Match e856M(Session s, Frame f) { - return s.literal(f, "&", true, false, K1044); + return parseMethodInvocation_36(s, f); } private static Match e857(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e857M(s, f) : e857C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e857M : TinyExpressionP4Parser::e857C, K1045, K550, K225, K226, K226, "TinyExpressionP4::BooleanAndExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19668:19688:body/1/0/1/ruleRef", false, false, "node", false, K227); + f.reset = false; + if (s.bypassWrap) { Match r = f.matched ? e857M(s, f) : e857C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e857M : TinyExpressionP4Parser::e857C, K227, K227, K227, K228, K228, "TinyExpressionP4::StringCastVariable", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19576:19622:body/seq", false, false, "text", false, K4); } private static Match e857C(Session s, Frame f) { - return parseBooleanXorExpression_96(s, f); + return s.sequence(f, K1061, K231); } private static Match e857M(Session s, Frame f) { - return parseBooleanXorExpression_96(s, f); + return s.sequence(f, K1061, K231); } private static Match e858(Session s, Frame f) { - f.reset = false; - if (s.bypassWrap) { Match r = f.matched ? e858M(s, f) : e858C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e858M : TinyExpressionP4Parser::e858C, K216, K216, K216, K217, K217, "TinyExpressionP4::BooleanXorExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19834:19886:body/seq", false, false, "node", true, K4); + if (s.bypassWrap) { Match r = f.matched ? e858M(s, f) : e858C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e858M : TinyExpressionP4Parser::e858C, K227, K227, K227, K228, K228, "TinyExpressionP4::StringCastVariable", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19576:19579:body/0/literal", false, true, "text", false, K437); } private static Match e858C(Session s, Frame f) { - return s.sequence(f, K1046, K271); + return s.literal(f, "(", true, false, K438); } private static Match e858M(Session s, Frame f) { - return s.sequence(f, K1046, K271); + return s.literal(f, "(", true, false, K438); } private static Match e859(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e859M(s, f) : e859C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e859M : TinyExpressionP4Parser::e859C, K1047, K544, K225, K226, K226, "TinyExpressionP4::BooleanXorExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19834:19847:body/0/ruleRef", false, false, "node", false, K227); + if (s.bypassWrap) { Match r = f.matched ? e859M(s, f) : e859C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e859M : TinyExpressionP4Parser::e859C, K227, K227, K227, K228, K228, "TinyExpressionP4::StringCastVariable", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19580:19603:body/1/group", false, false, "text", false, K411); } private static Match e859C(Session s, Frame f) { - return parseBooleanFactor_100(s, f); + return e860(s, f); } private static Match e859M(Session s, Frame f) { - return parseBooleanFactor_100(s, f); + return e860(s, f); } private static Match e860(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e860M(s, f) : e860C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e860M : TinyExpressionP4Parser::e860C, K216, K216, K216, K217, K217, "TinyExpressionP4::BooleanXorExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19854:19886:body/1/repeat", true, false, "node", true, K222); + if (s.bypassWrap) { Match r = f.matched ? e860M(s, f) : e860C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e860M : TinyExpressionP4Parser::e860C, K227, K227, K227, K228, K228, "TinyExpressionP4::StringCastVariable", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19582:19601:body/1/0/choice", false, false, "text", false, K411); } private static Match e860C(Session s, Frame f) { - return s.repeat(f, TinyExpressionP4Parser::e861, 0, Integer.MAX_VALUE, null, Trivia.NONE); + return s.choice(f,K1062,false,null,false); } private static Match e860M(Session s, Frame f) { - return s.repeat(f, TinyExpressionP4Parser::e861, 0, Integer.MAX_VALUE, null, Trivia.NONE); + return s.choice(f,K1062,false,null,false); } private static Match e861(Session s, Frame f) { - f.reset = false; - if (s.bypassWrap) { Match r = f.matched ? e861M(s, f) : e861C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e861M : TinyExpressionP4Parser::e861C, K216, K216, K216, K217, K217, "TinyExpressionP4::BooleanXorExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19856:19877:body/1/0/seq", false, false, "node", false, K1048); + if (s.bypassWrap) { Match r = f.matched ? e861M(s, f) : e861C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e861M : TinyExpressionP4Parser::e861C, K227, K227, K227, K228, K228, "TinyExpressionP4::StringCastVariable", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19582:19590:body/1/0/0/literal", false, true, "text", false, K52); } private static Match e861C(Session s, Frame f) { - return s.sequence(f, K1049, K271); + return s.literal(f, "string", true, false, K394); } private static Match e861M(Session s, Frame f) { - return s.sequence(f, K1049, K271); + return s.literal(f, "string", true, false, K394); } private static Match e862(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e862M(s, f) : e862C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e862M : TinyExpressionP4Parser::e862C, K1050, K548, K225, K226, K226, "TinyExpressionP4::BooleanXorExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19856:19859:body/1/0/0/literal", false, true, "text", false, K1048); + if (s.bypassWrap) { Match r = f.matched ? e862M(s, f) : e862C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e862M : TinyExpressionP4Parser::e862C, K227, K227, K227, K228, K228, "TinyExpressionP4::StringCastVariable", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19593:19601:body/1/0/1/literal", false, true, "text", false, K395); } private static Match e862C(Session s, Frame f) { - return s.literal(f, "^", true, false, K1051); + return s.literal(f, "String", true, false, K396); } private static Match e862M(Session s, Frame f) { - return s.literal(f, "^", true, false, K1051); + return s.literal(f, "String", true, false, K396); } private static Match e863(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e863M(s, f) : e863C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e863M : TinyExpressionP4Parser::e863C, K1052, K550, K225, K226, K226, "TinyExpressionP4::BooleanXorExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19864:19877:body/1/0/1/ruleRef", false, false, "node", false, K227); + if (s.bypassWrap) { Match r = f.matched ? e863M(s, f) : e863C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e863M : TinyExpressionP4Parser::e863C, K227, K227, K227, K228, K228, "TinyExpressionP4::StringCastVariable", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19604:19607:body/2/literal", false, true, "text", false, K439); } private static Match e863C(Session s, Frame f) { - return parseBooleanFactor_100(s, f); + return s.literal(f, ")", true, false, K440); } private static Match e863M(Session s, Frame f) { - return parseBooleanFactor_100(s, f); + return s.literal(f, ")", true, false, K440); } private static Match e864(Session s, Frame f) { - f.reset = false; - if (s.bypassWrap) { Match r = f.matched ? e864M(s, f) : e864C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e864M : TinyExpressionP4Parser::e864C, K216, K216, K216, K217, K217, "TinyExpressionP4::NotExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20024:20062:body/seq", false, false, "node", false, K4); + if (s.bypassWrap) { Match r = f.matched ? e864M(s, f) : e864C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e864M : TinyExpressionP4Parser::e864C, K227, K227, K227, K228, K228, "TinyExpressionP4::StringCastVariable", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19608:19611:body/3/literal", false, true, "text", false, K50); } private static Match e864C(Session s, Frame f) { - return s.sequence(f, K1053, K620); + return s.literal(f, "$", true, false, K352); } private static Match e864M(Session s, Frame f) { - return s.sequence(f, K1053, K620); + return s.literal(f, "$", true, false, K352); } private static Match e865(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e865M(s, f) : e865C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e865M : TinyExpressionP4Parser::e865C, K216, K216, K216, K217, K217, "TinyExpressionP4::NotExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20024:20029:body/0/literal", false, true, "text", false, K382); + if (s.bypassCapture) { Match r = f.matched ? e865M(s, f) : e865C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e865M : TinyExpressionP4Parser::e865C, K1063, K517, K236, K237, K237, "TinyExpressionP4::StringCastVariable", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19612:19622:body/4/tokenRef", false, true, "text", false, K314); } private static Match e865C(Session s, Frame f) { - return s.literal(f, "not", true, false, K383); + return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K315,K316); } private static Match e865M(Session s, Frame f) { - return s.literal(f, "not", true, false, K383); + return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K315,K316); } private static Match e866(Session s, Frame f) { + f.reset = false; if (s.bypassWrap) { Match r = f.matched ? e866M(s, f) : e866C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e866M : TinyExpressionP4Parser::e866C, K216, K216, K216, K217, K217, "TinyExpressionP4::NotExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20030:20033:body/1/literal", false, true, "text", false, K399); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e866M : TinyExpressionP4Parser::e866C, K227, K227, K227, K228, K228, "TinyExpressionP4::StringTypedVariable", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19712:19761:body/seq", false, false, "text", false, K4); } private static Match e866C(Session s, Frame f) { - return s.literal(f, "(", true, false, K400); + return s.sequence(f, K1064, K658); } private static Match e866M(Session s, Frame f) { - return s.literal(f, "(", true, false, K400); + return s.sequence(f, K1064, K658); } private static Match e867(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e867M(s, f) : e867C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e867M : TinyExpressionP4Parser::e867C, K1054, K323, K225, K226, K226, "TinyExpressionP4::NotExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20034:20051:body/2/ruleRef", false, false, "node", false, K227); + if (s.bypassWrap) { Match r = f.matched ? e867M(s, f) : e867C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e867M : TinyExpressionP4Parser::e867C, K227, K227, K227, K228, K228, "TinyExpressionP4::StringTypedVariable", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19712:19715:body/0/literal", false, true, "text", false, K50); } private static Match e867C(Session s, Frame f) { - return parseBooleanExpression_94(s, f); + return s.literal(f, "$", true, false, K352); } private static Match e867M(Session s, Frame f) { - return parseBooleanExpression_94(s, f); + return s.literal(f, "$", true, false, K352); } private static Match e868(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e868M(s, f) : e868C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e868M : TinyExpressionP4Parser::e868C, K216, K216, K216, K217, K217, "TinyExpressionP4::NotExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20059:20062:body/3/literal", false, true, "text", false, K401); + if (s.bypassCapture) { Match r = f.matched ? e868M(s, f) : e868C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e868M : TinyExpressionP4Parser::e868C, K1065, K517, K236, K237, K237, "TinyExpressionP4::StringTypedVariable", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19716:19726:body/1/tokenRef", false, true, "text", false, K314); } private static Match e868C(Session s, Frame f) { - return s.literal(f, ")", true, false, K402); + return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K315,K316); } private static Match e868M(Session s, Frame f) { - return s.literal(f, ")", true, false, K402); + return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K315,K316); } private static Match e869(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e869M(s, f) : e869C(s, f); s.progress(f); return s.tree ? s.project(r, true) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e869M : TinyExpressionP4Parser::e869C, K216, K216, K216, K217, K217, "TinyExpressionP4::BooleanComparable", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20096:20528:body/choice", false, false, "mixed", false, K4); + if (s.bypassWrap) { Match r = f.matched ? e869M(s, f) : e869C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e869M : TinyExpressionP4Parser::e869C, K227, K227, K227, K228, K228, "TinyExpressionP4::StringTypedVariable", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19733:19737:body/2/literal", false, true, "text", false, K317); } private static Match e869C(Session s, Frame f) { - return s.choice(f,K1093,false,null,false,K1092); + return s.literal(f, "as", true, false, K318); } private static Match e869M(Session s, Frame f) { - return s.choice(f,K1093,false,null,false,K1092); + return s.literal(f, "as", true, false, K318); } private static Match e870(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e870M(s, f) : e870C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e870M : TinyExpressionP4Parser::e870C, K216, K216, K216, K217, K217, "TinyExpressionP4::BooleanComparable", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20096:20109:body/0/ruleRef", false, false, "node", false, K4); + if (s.bypassWrap) { Match r = f.matched ? e870M(s, f) : e870C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e870M : TinyExpressionP4Parser::e870C, K227, K227, K227, K228, K228, "TinyExpressionP4::StringTypedVariable", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19738:19761:body/3/group", false, false, "text", false, K411); } private static Match e870C(Session s, Frame f) { - return parseNotExpression_97(s, f); + return e871(s, f); } private static Match e870M(Session s, Frame f) { - return parseNotExpression_97(s, f); + return e871(s, f); } private static Match e871(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e871M(s, f) : e871C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e871M : TinyExpressionP4Parser::e871C, K216, K216, K216, K217, K217, "TinyExpressionP4::BooleanComparable", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20116:20128:body/1/ruleRef", false, false, "node", false, K4); + if (s.bypassWrap) { Match r = f.matched ? e871M(s, f) : e871C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e871M : TinyExpressionP4Parser::e871C, K227, K227, K227, K228, K228, "TinyExpressionP4::StringTypedVariable", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19740:19759:body/3/0/choice", false, false, "text", false, K411); } private static Match e871C(Session s, Frame f) { - return parseIfExpression_106(s, f); + return s.choice(f,K1066,false,null,false); } private static Match e871M(Session s, Frame f) { - return parseIfExpression_106(s, f); + return s.choice(f,K1066,false,null,false); } private static Match e872(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e872M(s, f) : e872C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e872M : TinyExpressionP4Parser::e872C, K216, K216, K216, K217, K217, "TinyExpressionP4::BooleanComparable", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20135:20157:body/2/ruleRef", false, false, "node", false, K4); + if (s.bypassWrap) { Match r = f.matched ? e872M(s, f) : e872C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e872M : TinyExpressionP4Parser::e872C, K227, K227, K227, K228, K228, "TinyExpressionP4::StringTypedVariable", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19740:19748:body/3/0/0/literal", false, true, "text", false, K52); } private static Match e872C(Session s, Frame f) { - return parseBooleanMatchExpression_117(s, f); + return s.literal(f, "string", true, false, K394); } private static Match e872M(Session s, Frame f) { - return parseBooleanMatchExpression_117(s, f); + return s.literal(f, "string", true, false, K394); } private static Match e873(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e873M(s, f) : e873C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e873M : TinyExpressionP4Parser::e873C, K216, K216, K216, K217, K217, "TinyExpressionP4::BooleanComparable", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20164:20189:body/3/ruleRef", false, false, "node", false, K4); + if (s.bypassWrap) { Match r = f.matched ? e873M(s, f) : e873C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e873M : TinyExpressionP4Parser::e873C, K227, K227, K227, K228, K228, "TinyExpressionP4::StringTypedVariable", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19751:19759:body/3/0/1/literal", false, true, "text", false, K395); } private static Match e873C(Session s, Frame f) { - return parseExternalBooleanInvocation_31(s, f); + return s.literal(f, "String", true, false, K396); } private static Match e873M(Session s, Frame f) { - return parseExternalBooleanInvocation_31(s, f); + return s.literal(f, "String", true, false, K396); } private static Match e874(Session s, Frame f) { + f.reset = false; if (s.bypassWrap) { Match r = f.matched ? e874M(s, f) : e874C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e874M : TinyExpressionP4Parser::e874C, K216, K216, K216, K217, K217, "TinyExpressionP4::BooleanComparable", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20196:20204:body/4/ruleRef", false, false, "node", false, K4); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e874M : TinyExpressionP4Parser::e874C, K227, K227, K227, K228, K228, "TinyExpressionP4::BooleanExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19992:20058:body/seq", false, false, "node", true, K4); } private static Match e874C(Session s, Frame f) { - return parseInMethod_73(s, f); + return s.sequence(f, K1067, K309); } private static Match e874M(Session s, Frame f) { - return parseInMethod_73(s, f); + return s.sequence(f, K1067, K309); } private static Match e875(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e875M(s, f) : e875C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e875M : TinyExpressionP4Parser::e875C, K216, K216, K216, K217, K217, "TinyExpressionP4::BooleanComparable", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20211:20230:body/5/ruleRef", false, false, "node", false, K4); + if (s.bypassCapture) { Match r = f.matched ? e875M(s, f) : e875C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e875M : TinyExpressionP4Parser::e875C, K1068, K582, K236, K237, K237, "TinyExpressionP4::BooleanExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19992:20012:body/0/ruleRef", false, false, "node", false, K238); } private static Match e875C(Session s, Frame f) { - return parseStartsWithDotMethod_74(s, f); + return parseBooleanAndExpression_95(s, f); } private static Match e875M(Session s, Frame f) { - return parseStartsWithDotMethod_74(s, f); + return parseBooleanAndExpression_95(s, f); } private static Match e876(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e876M(s, f) : e876C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e876M : TinyExpressionP4Parser::e876C, K216, K216, K216, K217, K217, "TinyExpressionP4::BooleanComparable", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20237:20254:body/6/ruleRef", false, false, "node", false, K4); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e876M : TinyExpressionP4Parser::e876C, K227, K227, K227, K228, K228, "TinyExpressionP4::BooleanExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20019:20058:body/1/repeat", true, false, "node", true, K233); } private static Match e876C(Session s, Frame f) { - return parseEndsWithDotMethod_75(s, f); + return s.repeat(f, TinyExpressionP4Parser::e877, 0, Integer.MAX_VALUE, null, Trivia.NONE); } private static Match e876M(Session s, Frame f) { - return parseEndsWithDotMethod_75(s, f); + return s.repeat(f, TinyExpressionP4Parser::e877, 0, Integer.MAX_VALUE, null, Trivia.NONE); } private static Match e877(Session s, Frame f) { + f.reset = false; if (s.bypassWrap) { Match r = f.matched ? e877M(s, f) : e877C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e877M : TinyExpressionP4Parser::e877C, K216, K216, K216, K217, K217, "TinyExpressionP4::BooleanComparable", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20261:20278:body/7/ruleRef", false, false, "node", false, K4); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e877M : TinyExpressionP4Parser::e877C, K227, K227, K227, K228, K228, "TinyExpressionP4::BooleanExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20021:20049:body/1/0/seq", false, false, "node", false, K1069); } private static Match e877C(Session s, Frame f) { - return parseContainsDotMethod_76(s, f); + return s.sequence(f, K1070, K309); } private static Match e877M(Session s, Frame f) { - return parseContainsDotMethod_76(s, f); + return s.sequence(f, K1070, K309); } private static Match e878(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e878M(s, f) : e878C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e878M : TinyExpressionP4Parser::e878C, K216, K216, K216, K217, K217, "TinyExpressionP4::BooleanComparable", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20285:20303:body/8/ruleRef", false, false, "node", false, K4); + if (s.bypassCapture) { Match r = f.matched ? e878M(s, f) : e878C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e878M : TinyExpressionP4Parser::e878C, K1071, K586, K236, K237, K237, "TinyExpressionP4::BooleanExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20021:20024:body/1/0/0/literal", false, true, "text", false, K1069); } private static Match e878C(Session s, Frame f) { - return parseStartsWithFunction_70(s, f); + return s.literal(f, "|", true, false, K1072); } private static Match e878M(Session s, Frame f) { - return parseStartsWithFunction_70(s, f); + return s.literal(f, "|", true, false, K1072); } private static Match e879(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e879M(s, f) : e879C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e879M : TinyExpressionP4Parser::e879C, K216, K216, K216, K217, K217, "TinyExpressionP4::BooleanComparable", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20310:20326:body/9/ruleRef", false, false, "node", false, K4); + if (s.bypassCapture) { Match r = f.matched ? e879M(s, f) : e879C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e879M : TinyExpressionP4Parser::e879C, K1073, K588, K236, K237, K237, "TinyExpressionP4::BooleanExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20029:20049:body/1/0/1/ruleRef", false, false, "node", false, K238); } private static Match e879C(Session s, Frame f) { - return parseEndsWithFunction_71(s, f); + return parseBooleanAndExpression_95(s, f); } private static Match e879M(Session s, Frame f) { - return parseEndsWithFunction_71(s, f); + return parseBooleanAndExpression_95(s, f); } private static Match e880(Session s, Frame f) { + f.reset = false; if (s.bypassWrap) { Match r = f.matched ? e880M(s, f) : e880C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e880M : TinyExpressionP4Parser::e880C, K216, K216, K216, K217, K217, "TinyExpressionP4::BooleanComparable", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20333:20349:body/10/ruleRef", false, false, "node", false, K4); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e880M : TinyExpressionP4Parser::e880C, K227, K227, K227, K228, K228, "TinyExpressionP4::BooleanAndExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20195:20261:body/seq", false, false, "node", true, K4); } private static Match e880C(Session s, Frame f) { - return parseContainsFunction_72(s, f); + return s.sequence(f, K1074, K309); } private static Match e880M(Session s, Frame f) { - return parseContainsFunction_72(s, f); + return s.sequence(f, K1074, K309); } private static Match e881(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e881M(s, f) : e881C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e881M : TinyExpressionP4Parser::e881C, K216, K216, K216, K217, K217, "TinyExpressionP4::BooleanComparable", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20356:20373:body/11/ruleRef", false, false, "node", false, K4); + if (s.bypassCapture) { Match r = f.matched ? e881M(s, f) : e881C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e881M : TinyExpressionP4Parser::e881C, K1075, K582, K236, K237, K237, "TinyExpressionP4::BooleanAndExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20195:20215:body/0/ruleRef", false, false, "node", false, K238); } private static Match e881C(Session s, Frame f) { - return parseIsPresentFunction_78(s, f); + return parseBooleanXorExpression_96(s, f); } private static Match e881M(Session s, Frame f) { - return parseIsPresentFunction_78(s, f); + return parseBooleanXorExpression_96(s, f); } private static Match e882(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e882M(s, f) : e882C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e882M : TinyExpressionP4Parser::e882C, K216, K216, K216, K217, K217, "TinyExpressionP4::BooleanComparable", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20380:20399:body/12/ruleRef", false, false, "node", false, K4); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e882M : TinyExpressionP4Parser::e882C, K227, K227, K227, K228, K228, "TinyExpressionP4::BooleanAndExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20222:20261:body/1/repeat", true, false, "node", true, K233); } private static Match e882C(Session s, Frame f) { - return parseInTimeRangeFunction_79(s, f); + return s.repeat(f, TinyExpressionP4Parser::e883, 0, Integer.MAX_VALUE, null, Trivia.NONE); } private static Match e882M(Session s, Frame f) { - return parseInTimeRangeFunction_79(s, f); + return s.repeat(f, TinyExpressionP4Parser::e883, 0, Integer.MAX_VALUE, null, Trivia.NONE); } private static Match e883(Session s, Frame f) { + f.reset = false; if (s.bypassWrap) { Match r = f.matched ? e883M(s, f) : e883C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e883M : TinyExpressionP4Parser::e883C, K216, K216, K216, K217, K217, "TinyExpressionP4::BooleanComparable", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20406:20428:body/13/ruleRef", false, false, "node", false, K4); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e883M : TinyExpressionP4Parser::e883C, K227, K227, K227, K228, K228, "TinyExpressionP4::BooleanAndExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20224:20252:body/1/0/seq", false, false, "node", false, K1076); } private static Match e883C(Session s, Frame f) { - return parseInDayTimeRangeFunction_80(s, f); + return s.sequence(f, K1077, K309); } private static Match e883M(Session s, Frame f) { - return parseInDayTimeRangeFunction_80(s, f); + return s.sequence(f, K1077, K309); } private static Match e884(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e884M(s, f) : e884C(s, f); s.progress(f); return s.tree ? s.textAlternative(r) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e884M : TinyExpressionP4Parser::e884C, K216, K216, K216, K217, K217, "TinyExpressionP4::BooleanComparable", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20435:20441:body/14/literal", false, true, "textAlternative", false, K1094); + if (s.bypassCapture) { Match r = f.matched ? e884M(s, f) : e884C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e884M : TinyExpressionP4Parser::e884C, K1078, K586, K236, K237, K237, "TinyExpressionP4::BooleanAndExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20224:20227:body/1/0/0/literal", false, true, "text", false, K1076); } private static Match e884C(Session s, Frame f) { - return s.literal(f, "true", true, false, K1095); + return s.literal(f, "&", true, false, K1079); } private static Match e884M(Session s, Frame f) { - return s.literal(f, "true", true, false, K1095); + return s.literal(f, "&", true, false, K1079); } private static Match e885(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e885M(s, f) : e885C(s, f); s.progress(f); return s.tree ? s.textAlternative(r) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e885M : TinyExpressionP4Parser::e885C, K216, K216, K216, K217, K217, "TinyExpressionP4::BooleanComparable", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20448:20455:body/15/literal", false, true, "textAlternative", false, K1096); + if (s.bypassCapture) { Match r = f.matched ? e885M(s, f) : e885C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e885M : TinyExpressionP4Parser::e885C, K1080, K588, K236, K237, K237, "TinyExpressionP4::BooleanAndExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20232:20252:body/1/0/1/ruleRef", false, false, "node", false, K238); } private static Match e885C(Session s, Frame f) { - return s.literal(f, "false", true, false, K1097); + return parseBooleanXorExpression_96(s, f); } private static Match e885M(Session s, Frame f) { - return s.literal(f, "false", true, false, K1097); + return parseBooleanXorExpression_96(s, f); } private static Match e886(Session s, Frame f) { + f.reset = false; if (s.bypassWrap) { Match r = f.matched ? e886M(s, f) : e886C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e886M : TinyExpressionP4Parser::e886C, K216, K216, K216, K217, K217, "TinyExpressionP4::BooleanComparable", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20462:20473:body/16/ruleRef", false, false, "node", false, K4); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e886M : TinyExpressionP4Parser::e886C, K227, K227, K227, K228, K228, "TinyExpressionP4::BooleanXorExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20398:20450:body/seq", false, false, "node", true, K4); } private static Match e886C(Session s, Frame f) { - return parseVariableRef_121(s, f); + return s.sequence(f, K1081, K309); } private static Match e886M(Session s, Frame f) { - return parseVariableRef_121(s, f); + return s.sequence(f, K1081, K309); } private static Match e887(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e887M(s, f) : e887C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e887M : TinyExpressionP4Parser::e887C, K216, K216, K216, K217, K217, "TinyExpressionP4::BooleanComparable", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20480:20496:body/17/ruleRef", false, false, "node", false, K4); + if (s.bypassCapture) { Match r = f.matched ? e887M(s, f) : e887C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e887M : TinyExpressionP4Parser::e887C, K1082, K582, K236, K237, K237, "TinyExpressionP4::BooleanXorExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20398:20411:body/0/ruleRef", false, false, "node", false, K238); } private static Match e887C(Session s, Frame f) { - return parseMethodInvocation_36(s, f); + return parseBooleanFactor_100(s, f); } private static Match e887M(Session s, Frame f) { - return parseMethodInvocation_36(s, f); + return parseBooleanFactor_100(s, f); } private static Match e888(Session s, Frame f) { - f.reset = false; if (s.bypassWrap) { Match r = f.matched ? e888M(s, f) : e888C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e888M : TinyExpressionP4Parser::e888C, K216, K216, K216, K217, K217, "TinyExpressionP4::BooleanComparable", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20503:20528:body/18/seq", false, false, "node", false, K161); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e888M : TinyExpressionP4Parser::e888C, K227, K227, K227, K228, K228, "TinyExpressionP4::BooleanXorExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20418:20450:body/1/repeat", true, false, "node", true, K233); } private static Match e888C(Session s, Frame f) { - return s.sequence(f, K1098, K251); + return s.repeat(f, TinyExpressionP4Parser::e889, 0, Integer.MAX_VALUE, null, Trivia.NONE); } private static Match e888M(Session s, Frame f) { - return s.sequence(f, K1098, K251); + return s.repeat(f, TinyExpressionP4Parser::e889, 0, Integer.MAX_VALUE, null, Trivia.NONE); } private static Match e889(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e889M(s, f) : e889C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e889M : TinyExpressionP4Parser::e889C, K216, K216, K216, K217, K217, "TinyExpressionP4::BooleanComparable", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20503:20506:body/18/0/literal", false, true, "text", false, K399); + f.reset = false; + if (s.bypassWrap) { Match r = f.matched ? e889M(s, f) : e889C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e889M : TinyExpressionP4Parser::e889C, K227, K227, K227, K228, K228, "TinyExpressionP4::BooleanXorExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20420:20441:body/1/0/seq", false, false, "node", false, K1083); } private static Match e889C(Session s, Frame f) { - return s.literal(f, "(", true, false, K400); + return s.sequence(f, K1084, K309); } private static Match e889M(Session s, Frame f) { - return s.literal(f, "(", true, false, K400); + return s.sequence(f, K1084, K309); } private static Match e890(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e890M(s, f) : e890C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e890M : TinyExpressionP4Parser::e890C, K216, K216, K216, K217, K217, "TinyExpressionP4::BooleanComparable", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20507:20524:body/18/1/ruleRef", false, false, "node", false, K4); + if (s.bypassCapture) { Match r = f.matched ? e890M(s, f) : e890C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e890M : TinyExpressionP4Parser::e890C, K1085, K586, K236, K237, K237, "TinyExpressionP4::BooleanXorExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20420:20423:body/1/0/0/literal", false, true, "text", false, K1083); } private static Match e890C(Session s, Frame f) { - return parseBooleanExpression_94(s, f); + return s.literal(f, "^", true, false, K1086); } private static Match e890M(Session s, Frame f) { - return parseBooleanExpression_94(s, f); + return s.literal(f, "^", true, false, K1086); } private static Match e891(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e891M(s, f) : e891C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e891M : TinyExpressionP4Parser::e891C, K216, K216, K216, K217, K217, "TinyExpressionP4::BooleanComparable", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20525:20528:body/18/2/literal", false, true, "text", false, K401); + if (s.bypassCapture) { Match r = f.matched ? e891M(s, f) : e891C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e891M : TinyExpressionP4Parser::e891C, K1087, K588, K236, K237, K237, "TinyExpressionP4::BooleanXorExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20428:20441:body/1/0/1/ruleRef", false, false, "node", false, K238); } private static Match e891C(Session s, Frame f) { - return s.literal(f, ")", true, false, K402); + return parseBooleanFactor_100(s, f); } private static Match e891M(Session s, Frame f) { - return s.literal(f, ")", true, false, K402); + return parseBooleanFactor_100(s, f); } private static Match e892(Session s, Frame f) { f.reset = false; if (s.bypassWrap) { Match r = f.matched ? e892M(s, f) : e892C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e892M : TinyExpressionP4Parser::e892C, K216, K216, K216, K217, K217, "TinyExpressionP4::BooleanEqualityExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20622:20678:body/seq", false, false, "mixed", true, K4); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e892M : TinyExpressionP4Parser::e892C, K227, K227, K227, K228, K228, "TinyExpressionP4::NotExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20588:20626:body/seq", false, false, "node", false, K4); } private static Match e892C(Session s, Frame f) { - return s.sequence(f, K1099, K251); + return s.sequence(f, K1088, K658); } private static Match e892M(Session s, Frame f) { - return s.sequence(f, K1099, K251); + return s.sequence(f, K1088, K658); } private static Match e893(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e893M(s, f) : e893C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e893M : TinyExpressionP4Parser::e893C, K1100, K544, K225, K226, K226, "TinyExpressionP4::BooleanEqualityExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20622:20639:body/0/ruleRef", false, false, "mixed", false, K1101); + if (s.bypassWrap) { Match r = f.matched ? e893M(s, f) : e893C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e893M : TinyExpressionP4Parser::e893C, K227, K227, K227, K228, K228, "TinyExpressionP4::NotExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20588:20593:body/0/literal", false, true, "text", false, K422); } private static Match e893C(Session s, Frame f) { - return parseBooleanComparable_98(s, f); + return s.literal(f, "not", true, false, K423); } private static Match e893M(Session s, Frame f) { - return parseBooleanComparable_98(s, f); + return s.literal(f, "not", true, false, K423); } private static Match e894(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e894M(s, f) : e894C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e894M : TinyExpressionP4Parser::e894C, K1102, K548, K225, K226, K226, "TinyExpressionP4::BooleanEqualityExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20646:20656:body/1/ruleRef", false, false, "text", false, K182); + if (s.bypassWrap) { Match r = f.matched ? e894M(s, f) : e894C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e894M : TinyExpressionP4Parser::e894C, K227, K227, K227, K228, K228, "TinyExpressionP4::NotExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20594:20597:body/1/literal", false, true, "text", false, K437); } private static Match e894C(Session s, Frame f) { - return parseEqualityOp_102(s, f); + return s.literal(f, "(", true, false, K438); } private static Match e894M(Session s, Frame f) { - return parseEqualityOp_102(s, f); + return s.literal(f, "(", true, false, K438); } private static Match e895(Session s, Frame f) { if (s.bypassCapture) { Match r = f.matched ? e895M(s, f) : e895C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e895M : TinyExpressionP4Parser::e895C, K1103, K550, K225, K226, K226, "TinyExpressionP4::BooleanEqualityExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20661:20678:body/2/ruleRef", false, false, "mixed", false, K1101); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e895M : TinyExpressionP4Parser::e895C, K1089, K363, K236, K237, K237, "TinyExpressionP4::NotExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20598:20615:body/2/ruleRef", false, false, "node", false, K238); } private static Match e895C(Session s, Frame f) { - return parseBooleanComparable_98(s, f); + return parseBooleanExpression_94(s, f); } private static Match e895M(Session s, Frame f) { - return parseBooleanComparable_98(s, f); + return parseBooleanExpression_94(s, f); } private static Match e896(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e896M(s, f) : e896C(s, f); s.progress(f); return s.tree ? s.project(r, true) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e896M : TinyExpressionP4Parser::e896C, K216, K216, K216, K217, K217, "TinyExpressionP4::BooleanFactor", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20761:20891:body/choice", false, false, "mixed", false, K4); + if (s.bypassWrap) { Match r = f.matched ? e896M(s, f) : e896C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e896M : TinyExpressionP4Parser::e896C, K227, K227, K227, K228, K228, "TinyExpressionP4::NotExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20623:20626:body/3/literal", false, true, "text", false, K439); } private static Match e896C(Session s, Frame f) { - return s.choice(f,K1104,false,null,false); + return s.literal(f, ")", true, false, K440); } private static Match e896M(Session s, Frame f) { - return s.choice(f,K1104,false,null,false); + return s.literal(f, ")", true, false, K440); } private static Match e897(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e897M(s, f) : e897C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e897M : TinyExpressionP4Parser::e897C, K1105, K323, K225, K226, K226, "TinyExpressionP4::BooleanFactor", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20761:20786:body/0/ruleRef", false, false, "node", false, K227); + if (s.bypassWrap) { Match r = f.matched ? e897M(s, f) : e897C(s, f); s.progress(f); return s.tree ? s.project(r, true) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e897M : TinyExpressionP4Parser::e897C, K227, K227, K227, K228, K228, "TinyExpressionP4::BooleanComparable", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20660:21092:body/choice", false, false, "mixed", false, K4); } private static Match e897C(Session s, Frame f) { - return parseBooleanEqualityExpression_99(s, f); + return s.choice(f,K1128,false,null,false,K1127); } private static Match e897M(Session s, Frame f) { - return parseBooleanEqualityExpression_99(s, f); + return s.choice(f,K1128,false,null,false,K1127); } private static Match e898(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e898M(s, f) : e898C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e898M : TinyExpressionP4Parser::e898C, K1106, K323, K225, K226, K226, "TinyExpressionP4::BooleanFactor", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20800:20820:body/1/ruleRef", false, false, "node", false, K227); + if (s.bypassWrap) { Match r = f.matched ? e898M(s, f) : e898C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e898M : TinyExpressionP4Parser::e898C, K227, K227, K227, K228, K228, "TinyExpressionP4::BooleanComparable", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20660:20673:body/0/ruleRef", false, false, "node", false, K4); } private static Match e898C(Session s, Frame f) { - return parseComparisonExpression_103(s, f); + return parseNotExpression_97(s, f); } private static Match e898M(Session s, Frame f) { - return parseComparisonExpression_103(s, f); + return parseNotExpression_97(s, f); } private static Match e899(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e899M(s, f) : e899C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e899M : TinyExpressionP4Parser::e899C, K1107, K323, K225, K226, K226, "TinyExpressionP4::BooleanFactor", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20834:20860:body/2/ruleRef", false, false, "node", false, K227); + if (s.bypassWrap) { Match r = f.matched ? e899M(s, f) : e899C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e899M : TinyExpressionP4Parser::e899C, K227, K227, K227, K228, K228, "TinyExpressionP4::BooleanComparable", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20680:20692:body/1/ruleRef", false, false, "node", false, K4); } private static Match e899C(Session s, Frame f) { - return parseStringComparisonExpression_101(s, f); + return parseIfExpression_106(s, f); } private static Match e899M(Session s, Frame f) { - return parseStringComparisonExpression_101(s, f); + return parseIfExpression_106(s, f); } private static Match e900(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e900M(s, f) : e900C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e900M : TinyExpressionP4Parser::e900C, K1108, K323, K225, K226, K226, "TinyExpressionP4::BooleanFactor", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20874:20891:body/3/ruleRef", false, false, "mixed", false, K1101); + if (s.bypassWrap) { Match r = f.matched ? e900M(s, f) : e900C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e900M : TinyExpressionP4Parser::e900C, K227, K227, K227, K228, K228, "TinyExpressionP4::BooleanComparable", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20699:20721:body/2/ruleRef", false, false, "node", false, K4); } private static Match e900C(Session s, Frame f) { - return parseBooleanComparable_98(s, f); + return parseBooleanMatchExpression_117(s, f); } private static Match e900M(Session s, Frame f) { - return parseBooleanComparable_98(s, f); + return parseBooleanMatchExpression_117(s, f); } private static Match e901(Session s, Frame f) { - f.reset = false; if (s.bypassWrap) { Match r = f.matched ? e901M(s, f) : e901C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e901M : TinyExpressionP4Parser::e901C, K216, K216, K216, K217, K217, "TinyExpressionP4::StringComparisonExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21155:21209:body/seq", false, false, "node", true, K4); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e901M : TinyExpressionP4Parser::e901C, K227, K227, K227, K228, K228, "TinyExpressionP4::BooleanComparable", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20728:20753:body/3/ruleRef", false, false, "node", false, K4); } private static Match e901C(Session s, Frame f) { - return s.sequence(f, K1109, K251); + return parseExternalBooleanInvocation_31(s, f); } private static Match e901M(Session s, Frame f) { - return s.sequence(f, K1109, K251); + return parseExternalBooleanInvocation_31(s, f); } private static Match e902(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e902M(s, f) : e902C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e902M : TinyExpressionP4Parser::e902C, K1110, K544, K225, K226, K226, "TinyExpressionP4::StringComparisonExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21155:21171:body/0/ruleRef", false, false, "node", false, K227); + if (s.bypassWrap) { Match r = f.matched ? e902M(s, f) : e902C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e902M : TinyExpressionP4Parser::e902C, K227, K227, K227, K228, K228, "TinyExpressionP4::BooleanComparable", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20760:20768:body/4/ruleRef", false, false, "node", false, K4); } private static Match e902C(Session s, Frame f) { - return parseStringExpression_89(s, f); + return parseInMethod_73(s, f); } private static Match e902M(Session s, Frame f) { - return parseStringExpression_89(s, f); + return parseInMethod_73(s, f); } private static Match e903(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e903M(s, f) : e903C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e903M : TinyExpressionP4Parser::e903C, K1111, K548, K225, K226, K226, "TinyExpressionP4::StringComparisonExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21178:21188:body/1/ruleRef", false, false, "text", false, K182); + if (s.bypassWrap) { Match r = f.matched ? e903M(s, f) : e903C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e903M : TinyExpressionP4Parser::e903C, K227, K227, K227, K228, K228, "TinyExpressionP4::BooleanComparable", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20775:20794:body/5/ruleRef", false, false, "node", false, K4); } private static Match e903C(Session s, Frame f) { - return parseEqualityOp_102(s, f); + return parseStartsWithDotMethod_74(s, f); } private static Match e903M(Session s, Frame f) { - return parseEqualityOp_102(s, f); + return parseStartsWithDotMethod_74(s, f); } private static Match e904(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e904M(s, f) : e904C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e904M : TinyExpressionP4Parser::e904C, K1112, K550, K225, K226, K226, "TinyExpressionP4::StringComparisonExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21193:21209:body/2/ruleRef", false, false, "node", false, K227); + if (s.bypassWrap) { Match r = f.matched ? e904M(s, f) : e904C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e904M : TinyExpressionP4Parser::e904C, K227, K227, K227, K228, K228, "TinyExpressionP4::BooleanComparable", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20801:20818:body/6/ruleRef", false, false, "node", false, K4); } private static Match e904C(Session s, Frame f) { - return parseStringExpression_89(s, f); + return parseEndsWithDotMethod_75(s, f); } private static Match e904M(Session s, Frame f) { - return parseStringExpression_89(s, f); + return parseEndsWithDotMethod_75(s, f); } private static Match e905(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e905M(s, f) : e905C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e905M : TinyExpressionP4Parser::e905C, K216, K216, K216, K217, K217, "TinyExpressionP4::EqualityOp", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21236:21247:body/choice", false, false, "text", false, K4); + if (s.bypassWrap) { Match r = f.matched ? e905M(s, f) : e905C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e905M : TinyExpressionP4Parser::e905C, K227, K227, K227, K228, K228, "TinyExpressionP4::BooleanComparable", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20825:20842:body/7/ruleRef", false, false, "node", false, K4); } private static Match e905C(Session s, Frame f) { - return s.choice(f,K1113,false,null,false); + return parseContainsDotMethod_76(s, f); } private static Match e905M(Session s, Frame f) { - return s.choice(f,K1113,false,null,false); + return parseContainsDotMethod_76(s, f); } private static Match e906(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e906M(s, f) : e906C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e906M : TinyExpressionP4Parser::e906C, K216, K216, K216, K217, K217, "TinyExpressionP4::EqualityOp", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21236:21240:body/0/literal", false, true, "text", false, K1114); + if (s.bypassWrap) { Match r = f.matched ? e906M(s, f) : e906C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e906M : TinyExpressionP4Parser::e906C, K227, K227, K227, K228, K228, "TinyExpressionP4::BooleanComparable", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20849:20867:body/8/ruleRef", false, false, "node", false, K4); } private static Match e906C(Session s, Frame f) { - return s.literal(f, "==", true, false, K1115); + return parseStartsWithFunction_70(s, f); } private static Match e906M(Session s, Frame f) { - return s.literal(f, "==", true, false, K1115); + return parseStartsWithFunction_70(s, f); } private static Match e907(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e907M(s, f) : e907C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e907M : TinyExpressionP4Parser::e907C, K216, K216, K216, K217, K217, "TinyExpressionP4::EqualityOp", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21243:21247:body/1/literal", false, true, "text", false, K1116); + if (s.bypassWrap) { Match r = f.matched ? e907M(s, f) : e907C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e907M : TinyExpressionP4Parser::e907C, K227, K227, K227, K228, K228, "TinyExpressionP4::BooleanComparable", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20874:20890:body/9/ruleRef", false, false, "node", false, K4); } private static Match e907C(Session s, Frame f) { - return s.literal(f, "!=", true, false, K1117); + return parseEndsWithFunction_71(s, f); } private static Match e907M(Session s, Frame f) { - return s.literal(f, "!=", true, false, K1117); + return parseEndsWithFunction_71(s, f); } private static Match e908(Session s, Frame f) { - f.reset = false; if (s.bypassWrap) { Match r = f.matched ? e908M(s, f) : e908C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e908M : TinyExpressionP4Parser::e908C, K216, K216, K216, K217, K217, "TinyExpressionP4::ComparisonExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21331:21384:body/seq", false, false, "node", true, K4); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e908M : TinyExpressionP4Parser::e908C, K227, K227, K227, K228, K228, "TinyExpressionP4::BooleanComparable", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20897:20913:body/10/ruleRef", false, false, "node", false, K4); } private static Match e908C(Session s, Frame f) { - return s.sequence(f, K1118, K251); + return parseContainsFunction_72(s, f); } private static Match e908M(Session s, Frame f) { - return s.sequence(f, K1118, K251); + return parseContainsFunction_72(s, f); } private static Match e909(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e909M(s, f) : e909C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e909M : TinyExpressionP4Parser::e909C, K1119, K544, K225, K226, K226, "TinyExpressionP4::ComparisonExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21331:21347:body/0/ruleRef", false, false, "node", false, K227); + if (s.bypassWrap) { Match r = f.matched ? e909M(s, f) : e909C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e909M : TinyExpressionP4Parser::e909C, K227, K227, K227, K228, K228, "TinyExpressionP4::BooleanComparable", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20920:20937:body/11/ruleRef", false, false, "node", false, K4); } private static Match e909C(Session s, Frame f) { - return parseNumberExpression_40(s, f); + return parseIsPresentFunction_78(s, f); } private static Match e909M(Session s, Frame f) { - return parseNumberExpression_40(s, f); + return parseIsPresentFunction_78(s, f); } private static Match e910(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e910M(s, f) : e910C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e910M : TinyExpressionP4Parser::e910C, K1120, K548, K225, K226, K226, "TinyExpressionP4::ComparisonExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21354:21363:body/1/ruleRef", false, false, "text", false, K185); + if (s.bypassWrap) { Match r = f.matched ? e910M(s, f) : e910C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e910M : TinyExpressionP4Parser::e910C, K227, K227, K227, K228, K228, "TinyExpressionP4::BooleanComparable", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20944:20963:body/12/ruleRef", false, false, "node", false, K4); } private static Match e910C(Session s, Frame f) { - return parseCompareOp_104(s, f); + return parseInTimeRangeFunction_79(s, f); } private static Match e910M(Session s, Frame f) { - return parseCompareOp_104(s, f); + return parseInTimeRangeFunction_79(s, f); } private static Match e911(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e911M(s, f) : e911C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e911M : TinyExpressionP4Parser::e911C, K1121, K550, K225, K226, K226, "TinyExpressionP4::ComparisonExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21368:21384:body/2/ruleRef", false, false, "node", false, K227); + if (s.bypassWrap) { Match r = f.matched ? e911M(s, f) : e911C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e911M : TinyExpressionP4Parser::e911C, K227, K227, K227, K228, K228, "TinyExpressionP4::BooleanComparable", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20970:20992:body/13/ruleRef", false, false, "node", false, K4); } private static Match e911C(Session s, Frame f) { - return parseNumberExpression_40(s, f); + return parseInDayTimeRangeFunction_80(s, f); } private static Match e911M(Session s, Frame f) { - return parseNumberExpression_40(s, f); + return parseInDayTimeRangeFunction_80(s, f); } private static Match e912(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e912M(s, f) : e912C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e912M : TinyExpressionP4Parser::e912C, K216, K216, K216, K217, K217, "TinyExpressionP4::CompareOp", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21410:21447:body/choice", false, false, "text", false, K4); + if (s.bypassWrap) { Match r = f.matched ? e912M(s, f) : e912C(s, f); s.progress(f); return s.tree ? s.textAlternative(r) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e912M : TinyExpressionP4Parser::e912C, K227, K227, K227, K228, K228, "TinyExpressionP4::BooleanComparable", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20999:21005:body/14/literal", false, true, "textAlternative", false, K1129); } private static Match e912C(Session s, Frame f) { - return s.choice(f,K1122,false,null,false); + return s.literal(f, "true", true, false, K1130); } private static Match e912M(Session s, Frame f) { - return s.choice(f,K1122,false,null,false); + return s.literal(f, "true", true, false, K1130); } private static Match e913(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e913M(s, f) : e913C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e913M : TinyExpressionP4Parser::e913C, K216, K216, K216, K217, K217, "TinyExpressionP4::CompareOp", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21410:21414:body/0/literal", false, true, "text", false, K1114); + if (s.bypassWrap) { Match r = f.matched ? e913M(s, f) : e913C(s, f); s.progress(f); return s.tree ? s.textAlternative(r) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e913M : TinyExpressionP4Parser::e913C, K227, K227, K227, K228, K228, "TinyExpressionP4::BooleanComparable", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21012:21019:body/15/literal", false, true, "textAlternative", false, K1131); } private static Match e913C(Session s, Frame f) { - return s.literal(f, "==", true, false, K1115); + return s.literal(f, "false", true, false, K1132); } private static Match e913M(Session s, Frame f) { - return s.literal(f, "==", true, false, K1115); + return s.literal(f, "false", true, false, K1132); } private static Match e914(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e914M(s, f) : e914C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e914M : TinyExpressionP4Parser::e914C, K216, K216, K216, K217, K217, "TinyExpressionP4::CompareOp", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21417:21421:body/1/literal", false, true, "text", false, K1116); + if (s.bypassWrap) { Match r = f.matched ? e914M(s, f) : e914C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e914M : TinyExpressionP4Parser::e914C, K227, K227, K227, K228, K228, "TinyExpressionP4::BooleanComparable", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21026:21037:body/16/ruleRef", false, false, "node", false, K4); } private static Match e914C(Session s, Frame f) { - return s.literal(f, "!=", true, false, K1117); + return parseVariableRef_121(s, f); } private static Match e914M(Session s, Frame f) { - return s.literal(f, "!=", true, false, K1117); + return parseVariableRef_121(s, f); } private static Match e915(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e915M(s, f) : e915C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e915M : TinyExpressionP4Parser::e915C, K216, K216, K216, K217, K217, "TinyExpressionP4::CompareOp", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21424:21428:body/2/literal", false, true, "text", false, K1123); + if (s.bypassWrap) { Match r = f.matched ? e915M(s, f) : e915C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e915M : TinyExpressionP4Parser::e915C, K227, K227, K227, K228, K228, "TinyExpressionP4::BooleanComparable", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21044:21060:body/17/ruleRef", false, false, "node", false, K4); } private static Match e915C(Session s, Frame f) { - return s.literal(f, "<=", true, false, K1124); + return parseMethodInvocation_36(s, f); } private static Match e915M(Session s, Frame f) { - return s.literal(f, "<=", true, false, K1124); + return parseMethodInvocation_36(s, f); } private static Match e916(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e916M(s, f) : e916C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e916M : TinyExpressionP4Parser::e916C, K216, K216, K216, K217, K217, "TinyExpressionP4::CompareOp", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21431:21435:body/3/literal", false, true, "text", false, K1125); + f.reset = false; + if (s.bypassWrap) { Match r = f.matched ? e916M(s, f) : e916C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e916M : TinyExpressionP4Parser::e916C, K227, K227, K227, K228, K228, "TinyExpressionP4::BooleanComparable", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21067:21092:body/18/seq", false, false, "node", false, K161); } private static Match e916C(Session s, Frame f) { - return s.literal(f, ">=", true, false, K1126); + return s.sequence(f, K1133, K255); } private static Match e916M(Session s, Frame f) { - return s.literal(f, ">=", true, false, K1126); + return s.sequence(f, K1133, K255); } private static Match e917(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e917M(s, f) : e917C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e917M : TinyExpressionP4Parser::e917C, K216, K216, K216, K217, K217, "TinyExpressionP4::CompareOp", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21438:21441:body/4/literal", false, true, "text", false, K1127); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e917M : TinyExpressionP4Parser::e917C, K227, K227, K227, K228, K228, "TinyExpressionP4::BooleanComparable", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21067:21070:body/18/0/literal", false, true, "text", false, K437); } private static Match e917C(Session s, Frame f) { - return s.literal(f, "<", true, false, K1128); + return s.literal(f, "(", true, false, K438); } private static Match e917M(Session s, Frame f) { - return s.literal(f, "<", true, false, K1128); + return s.literal(f, "(", true, false, K438); } private static Match e918(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e918M(s, f) : e918C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e918M : TinyExpressionP4Parser::e918C, K216, K216, K216, K217, K217, "TinyExpressionP4::CompareOp", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21444:21447:body/5/literal", false, true, "text", false, K1129); + if (s.bypassWrap) { Match r = f.matched ? e918M(s, f) : e918C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e918M : TinyExpressionP4Parser::e918C, K227, K227, K227, K228, K228, "TinyExpressionP4::BooleanComparable", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21071:21088:body/18/1/ruleRef", false, false, "node", false, K4); } private static Match e918C(Session s, Frame f) { - return s.literal(f, ">", true, false, K1130); + return parseBooleanExpression_94(s, f); } private static Match e918M(Session s, Frame f) { - return s.literal(f, ">", true, false, K1130); + return parseBooleanExpression_94(s, f); } private static Match e919(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e919M(s, f) : e919C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e919M : TinyExpressionP4Parser::e919C, K216, K216, K216, K217, K217, "TinyExpressionP4::ObjectExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21601:21771:body/choice", false, false, "node", false, K4); + if (s.bypassWrap) { Match r = f.matched ? e919M(s, f) : e919C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e919M : TinyExpressionP4Parser::e919C, K227, K227, K227, K228, K228, "TinyExpressionP4::BooleanComparable", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21089:21092:body/18/2/literal", false, true, "text", false, K439); } private static Match e919C(Session s, Frame f) { - return s.choice(f,K1135,false,null,false,K1134); + return s.literal(f, ")", true, false, K440); } private static Match e919M(Session s, Frame f) { - return s.choice(f,K1135,false,null,false,K1134); + return s.literal(f, ")", true, false, K440); } private static Match e920(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e920M(s, f) : e920C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e920M : TinyExpressionP4Parser::e920C, K1136, K323, K225, K226, K226, "TinyExpressionP4::ObjectExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21601:21617:body/0/ruleRef", false, false, "node", false, K227); + f.reset = false; + if (s.bypassWrap) { Match r = f.matched ? e920M(s, f) : e920C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e920M : TinyExpressionP4Parser::e920C, K227, K227, K227, K228, K228, "TinyExpressionP4::BooleanEqualityExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21186:21242:body/seq", false, false, "mixed", true, K4); } private static Match e920C(Session s, Frame f) { - return parseNumberExpression_40(s, f); + return s.sequence(f, K1134, K255); } private static Match e920M(Session s, Frame f) { - return parseNumberExpression_40(s, f); + return s.sequence(f, K1134, K255); } private static Match e921(Session s, Frame f) { if (s.bypassCapture) { Match r = f.matched ? e921M(s, f) : e921C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e921M : TinyExpressionP4Parser::e921C, K1137, K323, K225, K226, K226, "TinyExpressionP4::ObjectExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21631:21647:body/1/ruleRef", false, false, "node", false, K227); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e921M : TinyExpressionP4Parser::e921C, K1135, K582, K236, K237, K237, "TinyExpressionP4::BooleanEqualityExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21186:21203:body/0/ruleRef", false, false, "mixed", false, K1136); } private static Match e921C(Session s, Frame f) { - return parseStringExpression_89(s, f); + return parseBooleanComparable_98(s, f); } private static Match e921M(Session s, Frame f) { - return parseStringExpression_89(s, f); + return parseBooleanComparable_98(s, f); } private static Match e922(Session s, Frame f) { if (s.bypassCapture) { Match r = f.matched ? e922M(s, f) : e922C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e922M : TinyExpressionP4Parser::e922C, K1138, K323, K225, K226, K226, "TinyExpressionP4::ObjectExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21661:21678:body/2/ruleRef", false, false, "node", false, K227); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e922M : TinyExpressionP4Parser::e922C, K1137, K586, K236, K237, K237, "TinyExpressionP4::BooleanEqualityExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21210:21220:body/1/ruleRef", false, false, "text", false, K182); } private static Match e922C(Session s, Frame f) { - return parseBooleanExpression_94(s, f); + return parseEqualityOp_102(s, f); } private static Match e922M(Session s, Frame f) { - return parseBooleanExpression_94(s, f); + return parseEqualityOp_102(s, f); } private static Match e923(Session s, Frame f) { if (s.bypassCapture) { Match r = f.matched ? e923M(s, f) : e923C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e923M : TinyExpressionP4Parser::e923C, K1139, K323, K225, K226, K226, "TinyExpressionP4::ObjectExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21692:21716:body/3/ruleRef", false, false, "node", false, K59); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e923M : TinyExpressionP4Parser::e923C, K1138, K588, K236, K237, K237, "TinyExpressionP4::BooleanEqualityExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21225:21242:body/2/ruleRef", false, false, "mixed", false, K1136); } private static Match e923C(Session s, Frame f) { - return parseExternalObjectInvocation_34(s, f); + return parseBooleanComparable_98(s, f); } private static Match e923M(Session s, Frame f) { - return parseExternalObjectInvocation_34(s, f); + return parseBooleanComparable_98(s, f); } private static Match e924(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e924M(s, f) : e924C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e924M : TinyExpressionP4Parser::e924C, K1140, K323, K225, K226, K226, "TinyExpressionP4::ObjectExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21730:21741:body/4/ruleRef", false, false, "node", false, K50); + if (s.bypassWrap) { Match r = f.matched ? e924M(s, f) : e924C(s, f); s.progress(f); return s.tree ? s.project(r, true) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e924M : TinyExpressionP4Parser::e924C, K227, K227, K227, K228, K228, "TinyExpressionP4::BooleanFactor", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21325:21455:body/choice", false, false, "mixed", false, K4); } private static Match e924C(Session s, Frame f) { - return parseVariableRef_121(s, f); + return s.choice(f,K1139,false,null,false); } private static Match e924M(Session s, Frame f) { - return parseVariableRef_121(s, f); + return s.choice(f,K1139,false,null,false); } private static Match e925(Session s, Frame f) { if (s.bypassCapture) { Match r = f.matched ? e925M(s, f) : e925C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e925M : TinyExpressionP4Parser::e925C, K1141, K323, K225, K226, K226, "TinyExpressionP4::ObjectExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21755:21771:body/5/ruleRef", false, false, "node", false, K161); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e925M : TinyExpressionP4Parser::e925C, K1140, K363, K236, K237, K237, "TinyExpressionP4::BooleanFactor", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21325:21350:body/0/ruleRef", false, false, "node", false, K238); } private static Match e925C(Session s, Frame f) { - return parseMethodInvocation_36(s, f); + return parseBooleanEqualityExpression_99(s, f); } private static Match e925M(Session s, Frame f) { - return parseMethodInvocation_36(s, f); + return parseBooleanEqualityExpression_99(s, f); } private static Match e926(Session s, Frame f) { - f.reset = false; - if (s.bypassWrap) { Match r = f.matched ? e926M(s, f) : e926C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e926M : TinyExpressionP4Parser::e926C, K216, K216, K216, K217, K217, "TinyExpressionP4::IfExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21946:22076:body/seq", false, false, "node", true, K4); + if (s.bypassCapture) { Match r = f.matched ? e926M(s, f) : e926C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e926M : TinyExpressionP4Parser::e926C, K1141, K363, K236, K237, K237, "TinyExpressionP4::BooleanFactor", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21364:21384:body/1/ruleRef", false, false, "node", false, K238); } private static Match e926C(Session s, Frame f) { - return s.sequence(f, K1144, K1143); + return parseComparisonExpression_103(s, f); } private static Match e926M(Session s, Frame f) { - return s.sequence(f, K1144, K1143); + return parseComparisonExpression_103(s, f); } private static Match e927(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e927M(s, f) : e927C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e927M : TinyExpressionP4Parser::e927C, K216, K216, K216, K217, K217, "TinyExpressionP4::IfExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21946:21950:body/0/literal", false, true, "text", false, K380); + if (s.bypassCapture) { Match r = f.matched ? e927M(s, f) : e927C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e927M : TinyExpressionP4Parser::e927C, K1142, K363, K236, K237, K237, "TinyExpressionP4::BooleanFactor", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21398:21424:body/2/ruleRef", false, false, "node", false, K238); } private static Match e927C(Session s, Frame f) { - return s.literal(f, "if", true, false, K381); + return parseStringComparisonExpression_101(s, f); } private static Match e927M(Session s, Frame f) { - return s.literal(f, "if", true, false, K381); + return parseStringComparisonExpression_101(s, f); } private static Match e928(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e928M(s, f) : e928C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e928M : TinyExpressionP4Parser::e928C, K216, K216, K216, K217, K217, "TinyExpressionP4::IfExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21951:21954:body/1/literal", false, true, "text", false, K399); + if (s.bypassCapture) { Match r = f.matched ? e928M(s, f) : e928C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e928M : TinyExpressionP4Parser::e928C, K1143, K363, K236, K237, K237, "TinyExpressionP4::BooleanFactor", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21438:21455:body/3/ruleRef", false, false, "mixed", false, K1136); } private static Match e928C(Session s, Frame f) { - return s.literal(f, "(", true, false, K400); + return parseBooleanComparable_98(s, f); } private static Match e928M(Session s, Frame f) { - return s.literal(f, "(", true, false, K400); + return parseBooleanComparable_98(s, f); } private static Match e929(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e929M(s, f) : e929C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e929M : TinyExpressionP4Parser::e929C, K1145, K526, K225, K226, K226, "TinyExpressionP4::IfExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21955:21972:body/2/ruleRef", false, false, "node", false, K227); + f.reset = false; + if (s.bypassWrap) { Match r = f.matched ? e929M(s, f) : e929C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e929M : TinyExpressionP4Parser::e929C, K227, K227, K227, K228, K228, "TinyExpressionP4::StringComparisonExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21719:21773:body/seq", false, false, "node", true, K4); } private static Match e929C(Session s, Frame f) { - return parseBooleanExpression_94(s, f); + return s.sequence(f, K1144, K255); } private static Match e929M(Session s, Frame f) { - return parseBooleanExpression_94(s, f); + return s.sequence(f, K1144, K255); } private static Match e930(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e930M(s, f) : e930C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e930M : TinyExpressionP4Parser::e930C, K216, K216, K216, K217, K217, "TinyExpressionP4::IfExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21984:21987:body/3/literal", false, true, "text", false, K401); + if (s.bypassCapture) { Match r = f.matched ? e930M(s, f) : e930C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e930M : TinyExpressionP4Parser::e930C, K1145, K582, K236, K237, K237, "TinyExpressionP4::StringComparisonExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21719:21735:body/0/ruleRef", false, false, "node", false, K238); } private static Match e930C(Session s, Frame f) { - return s.literal(f, ")", true, false, K402); + return parseStringExpression_89(s, f); } private static Match e930M(Session s, Frame f) { - return s.literal(f, ")", true, false, K402); + return parseStringExpression_89(s, f); } private static Match e931(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e931M(s, f) : e931C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e931M : TinyExpressionP4Parser::e931C, K216, K216, K216, K217, K217, "TinyExpressionP4::IfExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21992:21995:body/4/literal", false, true, "text", false, K417); + if (s.bypassCapture) { Match r = f.matched ? e931M(s, f) : e931C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e931M : TinyExpressionP4Parser::e931C, K1146, K586, K236, K237, K237, "TinyExpressionP4::StringComparisonExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21742:21752:body/1/ruleRef", false, false, "text", false, K182); } private static Match e931C(Session s, Frame f) { - return s.literal(f, "{", true, false, K418); + return parseEqualityOp_102(s, f); } private static Match e931M(Session s, Frame f) { - return s.literal(f, "{", true, false, K418); + return parseEqualityOp_102(s, f); } private static Match e932(Session s, Frame f) { if (s.bypassCapture) { Match r = f.matched ? e932M(s, f) : e932C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e932M : TinyExpressionP4Parser::e932C, K1146, K530, K225, K226, K226, "TinyExpressionP4::IfExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21996:22012:body/5/ruleRef", false, false, "node", false, K227); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e932M : TinyExpressionP4Parser::e932C, K1147, K588, K236, K237, K237, "TinyExpressionP4::StringComparisonExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21757:21773:body/2/ruleRef", false, false, "node", false, K238); } private static Match e932C(Session s, Frame f) { - return parseBranchExpression_107(s, f); + return parseStringExpression_89(s, f); } private static Match e932M(Session s, Frame f) { - return parseBranchExpression_107(s, f); + return parseStringExpression_89(s, f); } private static Match e933(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e933M(s, f) : e933C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e933M : TinyExpressionP4Parser::e933C, K216, K216, K216, K217, K217, "TinyExpressionP4::IfExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22023:22026:body/6/literal", false, true, "text", false, K420); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e933M : TinyExpressionP4Parser::e933C, K227, K227, K227, K228, K228, "TinyExpressionP4::EqualityOp", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21800:21811:body/choice", false, false, "text", false, K4); } private static Match e933C(Session s, Frame f) { - return s.literal(f, "}", true, false, K421); + return s.choice(f,K1148,false,null,false); } private static Match e933M(Session s, Frame f) { - return s.literal(f, "}", true, false, K421); + return s.choice(f,K1148,false,null,false); } private static Match e934(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e934M(s, f) : e934C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e934M : TinyExpressionP4Parser::e934C, K216, K216, K216, K217, K217, "TinyExpressionP4::IfExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22031:22037:body/7/literal", false, true, "text", false, K1147); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e934M : TinyExpressionP4Parser::e934C, K227, K227, K227, K228, K228, "TinyExpressionP4::EqualityOp", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21800:21804:body/0/literal", false, true, "text", false, K1149); } private static Match e934C(Session s, Frame f) { - return s.literal(f, "else", true, false, K1148); + return s.literal(f, "==", true, false, K1150); } private static Match e934M(Session s, Frame f) { - return s.literal(f, "else", true, false, K1148); + return s.literal(f, "==", true, false, K1150); } private static Match e935(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e935M(s, f) : e935C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e935M : TinyExpressionP4Parser::e935C, K216, K216, K216, K217, K217, "TinyExpressionP4::IfExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22042:22045:body/8/literal", false, true, "text", false, K417); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e935M : TinyExpressionP4Parser::e935C, K227, K227, K227, K228, K228, "TinyExpressionP4::EqualityOp", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21807:21811:body/1/literal", false, true, "text", false, K1151); } private static Match e935C(Session s, Frame f) { - return s.literal(f, "{", true, false, K418); + return s.literal(f, "!=", true, false, K1152); } private static Match e935M(Session s, Frame f) { - return s.literal(f, "{", true, false, K418); + return s.literal(f, "!=", true, false, K1152); } private static Match e936(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e936M(s, f) : e936C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e936M : TinyExpressionP4Parser::e936C, K1149, K532, K225, K226, K226, "TinyExpressionP4::IfExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22046:22062:body/9/ruleRef", false, false, "node", false, K227); + f.reset = false; + if (s.bypassWrap) { Match r = f.matched ? e936M(s, f) : e936C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e936M : TinyExpressionP4Parser::e936C, K227, K227, K227, K228, K228, "TinyExpressionP4::ComparisonExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21895:21948:body/seq", false, false, "node", true, K4); } private static Match e936C(Session s, Frame f) { - return parseBranchExpression_107(s, f); + return s.sequence(f, K1153, K255); } private static Match e936M(Session s, Frame f) { - return parseBranchExpression_107(s, f); + return s.sequence(f, K1153, K255); } private static Match e937(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e937M(s, f) : e937C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e937M : TinyExpressionP4Parser::e937C, K216, K216, K216, K217, K217, "TinyExpressionP4::IfExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22073:22076:body/10/literal", false, true, "text", false, K420); + if (s.bypassCapture) { Match r = f.matched ? e937M(s, f) : e937C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e937M : TinyExpressionP4Parser::e937C, K1154, K582, K236, K237, K237, "TinyExpressionP4::ComparisonExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21895:21911:body/0/ruleRef", false, false, "node", false, K238); } private static Match e937C(Session s, Frame f) { - return s.literal(f, "}", true, false, K421); + return parseNumberExpression_40(s, f); } private static Match e937M(Session s, Frame f) { - return s.literal(f, "}", true, false, K421); + return parseNumberExpression_40(s, f); } private static Match e938(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e938M(s, f) : e938C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e938M : TinyExpressionP4Parser::e938C, K216, K216, K216, K217, K217, "TinyExpressionP4::BranchExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22158:22408:body/choice", false, false, "node", false, K4); + if (s.bypassCapture) { Match r = f.matched ? e938M(s, f) : e938C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e938M : TinyExpressionP4Parser::e938C, K1155, K586, K236, K237, K237, "TinyExpressionP4::ComparisonExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21918:21927:body/1/ruleRef", false, false, "text", false, K185); } private static Match e938C(Session s, Frame f) { - return s.choice(f,K1151,false,null,false,K1150); + return parseCompareOp_104(s, f); } private static Match e938M(Session s, Frame f) { - return s.choice(f,K1151,false,null,false,K1150); + return parseCompareOp_104(s, f); } private static Match e939(Session s, Frame f) { if (s.bypassCapture) { Match r = f.matched ? e939M(s, f) : e939C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e939M : TinyExpressionP4Parser::e939C, K1152, K323, K225, K226, K226, "TinyExpressionP4::BranchExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22158:22178:body/0/ruleRef", false, false, "node", false, K227); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e939M : TinyExpressionP4Parser::e939C, K1156, K588, K236, K237, K237, "TinyExpressionP4::ComparisonExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21932:21948:body/2/ruleRef", false, false, "node", false, K238); } private static Match e939C(Session s, Frame f) { - return parseComparisonExpression_103(s, f); + return parseNumberExpression_40(s, f); } private static Match e939M(Session s, Frame f) { - return parseComparisonExpression_103(s, f); + return parseNumberExpression_40(s, f); } private static Match e940(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e940M(s, f) : e940C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e940M : TinyExpressionP4Parser::e940C, K1153, K323, K225, K226, K226, "TinyExpressionP4::BranchExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22192:22218:body/1/ruleRef", false, false, "node", false, K227); + if (s.bypassWrap) { Match r = f.matched ? e940M(s, f) : e940C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e940M : TinyExpressionP4Parser::e940C, K227, K227, K227, K228, K228, "TinyExpressionP4::CompareOp", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21974:22011:body/choice", false, false, "text", false, K4); } private static Match e940C(Session s, Frame f) { - return parseStringComparisonExpression_101(s, f); + return s.choice(f,K1157,false,null,false); } private static Match e940M(Session s, Frame f) { - return parseStringComparisonExpression_101(s, f); + return s.choice(f,K1157,false,null,false); } private static Match e941(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e941M(s, f) : e941C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e941M : TinyExpressionP4Parser::e941C, K1154, K323, K225, K226, K226, "TinyExpressionP4::BranchExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22232:22257:body/2/ruleRef", false, false, "node", false, K227); + if (s.bypassWrap) { Match r = f.matched ? e941M(s, f) : e941C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e941M : TinyExpressionP4Parser::e941C, K227, K227, K227, K228, K228, "TinyExpressionP4::CompareOp", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21974:21978:body/0/literal", false, true, "text", false, K1149); } private static Match e941C(Session s, Frame f) { - return parseBooleanEqualityExpression_99(s, f); + return s.literal(f, "==", true, false, K1150); } private static Match e941M(Session s, Frame f) { - return parseBooleanEqualityExpression_99(s, f); + return s.literal(f, "==", true, false, K1150); } private static Match e942(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e942M(s, f) : e942C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e942M : TinyExpressionP4Parser::e942C, K1155, K323, K225, K226, K226, "TinyExpressionP4::BranchExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22271:22287:body/3/ruleRef", false, false, "node", false, K227); + if (s.bypassWrap) { Match r = f.matched ? e942M(s, f) : e942C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e942M : TinyExpressionP4Parser::e942C, K227, K227, K227, K228, K228, "TinyExpressionP4::CompareOp", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21981:21985:body/1/literal", false, true, "text", false, K1151); } private static Match e942C(Session s, Frame f) { - return parseNumberExpression_40(s, f); + return s.literal(f, "!=", true, false, K1152); } private static Match e942M(Session s, Frame f) { - return parseNumberExpression_40(s, f); + return s.literal(f, "!=", true, false, K1152); } private static Match e943(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e943M(s, f) : e943C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e943M : TinyExpressionP4Parser::e943C, K1156, K323, K225, K226, K226, "TinyExpressionP4::BranchExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22301:22318:body/4/ruleRef", false, false, "node", false, K227); + if (s.bypassWrap) { Match r = f.matched ? e943M(s, f) : e943C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e943M : TinyExpressionP4Parser::e943C, K227, K227, K227, K228, K228, "TinyExpressionP4::CompareOp", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21988:21992:body/2/literal", false, true, "text", false, K1158); } private static Match e943C(Session s, Frame f) { - return parseBooleanExpression_94(s, f); + return s.literal(f, "<=", true, false, K1159); } private static Match e943M(Session s, Frame f) { - return parseBooleanExpression_94(s, f); + return s.literal(f, "<=", true, false, K1159); } private static Match e944(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e944M(s, f) : e944C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e944M : TinyExpressionP4Parser::e944C, K1157, K323, K225, K226, K226, "TinyExpressionP4::BranchExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22332:22348:body/5/ruleRef", false, false, "node", false, K227); + if (s.bypassWrap) { Match r = f.matched ? e944M(s, f) : e944C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e944M : TinyExpressionP4Parser::e944C, K227, K227, K227, K228, K228, "TinyExpressionP4::CompareOp", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21995:21999:body/3/literal", false, true, "text", false, K1160); } private static Match e944C(Session s, Frame f) { - return parseStringExpression_89(s, f); + return s.literal(f, ">=", true, false, K1161); } private static Match e944M(Session s, Frame f) { - return parseStringExpression_89(s, f); + return s.literal(f, ">=", true, false, K1161); } private static Match e945(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e945M(s, f) : e945C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e945M : TinyExpressionP4Parser::e945C, K1158, K323, K225, K226, K226, "TinyExpressionP4::BranchExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22362:22378:body/6/ruleRef", false, false, "node", false, K227); + if (s.bypassWrap) { Match r = f.matched ? e945M(s, f) : e945C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e945M : TinyExpressionP4Parser::e945C, K227, K227, K227, K228, K228, "TinyExpressionP4::CompareOp", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22002:22005:body/4/literal", false, true, "text", false, K1162); } private static Match e945C(Session s, Frame f) { - return parseObjectExpression_105(s, f); + return s.literal(f, "<", true, false, K1163); } private static Match e945M(Session s, Frame f) { - return parseObjectExpression_105(s, f); + return s.literal(f, "<", true, false, K1163); } private static Match e946(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e946M(s, f) : e946C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e946M : TinyExpressionP4Parser::e946C, K1159, K323, K225, K226, K226, "TinyExpressionP4::BranchExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22392:22408:body/7/ruleRef", false, false, "node", false, K161); + if (s.bypassWrap) { Match r = f.matched ? e946M(s, f) : e946C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e946M : TinyExpressionP4Parser::e946C, K227, K227, K227, K228, K228, "TinyExpressionP4::CompareOp", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22008:22011:body/5/literal", false, true, "text", false, K1164); } private static Match e946C(Session s, Frame f) { - return parseMethodInvocation_36(s, f); + return s.literal(f, ">", true, false, K1165); } private static Match e946M(Session s, Frame f) { - return parseMethodInvocation_36(s, f); + return s.literal(f, ">", true, false, K1165); } private static Match e947(Session s, Frame f) { - f.reset = false; if (s.bypassWrap) { Match r = f.matched ? e947M(s, f) : e947C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e947M : TinyExpressionP4Parser::e947C, K216, K216, K216, K217, K217, "TinyExpressionP4::TernaryExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22583:22681:body/seq", false, false, "node", true, K4); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e947M : TinyExpressionP4Parser::e947C, K227, K227, K227, K228, K228, "TinyExpressionP4::ObjectExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22165:22335:body/choice", false, false, "node", false, K4); } private static Match e947C(Session s, Frame f) { - return s.sequence(f, K1160, K220); + return s.choice(f,K1170,false,null,false,K1169); } private static Match e947M(Session s, Frame f) { - return s.sequence(f, K1160, K220); + return s.choice(f,K1170,false,null,false,K1169); } private static Match e948(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e948M(s, f) : e948C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e948M : TinyExpressionP4Parser::e948C, K216, K216, K216, K217, K217, "TinyExpressionP4::TernaryExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22583:22586:body/0/literal", false, true, "text", false, K399); + if (s.bypassCapture) { Match r = f.matched ? e948M(s, f) : e948C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e948M : TinyExpressionP4Parser::e948C, K1171, K363, K236, K237, K237, "TinyExpressionP4::ObjectExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22165:22181:body/0/ruleRef", false, false, "node", false, K238); } private static Match e948C(Session s, Frame f) { - return s.literal(f, "(", true, false, K400); + return parseNumberExpression_40(s, f); } private static Match e948M(Session s, Frame f) { - return s.literal(f, "(", true, false, K400); + return parseNumberExpression_40(s, f); } private static Match e949(Session s, Frame f) { if (s.bypassCapture) { Match r = f.matched ? e949M(s, f) : e949C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e949M : TinyExpressionP4Parser::e949C, K1161, K526, K225, K226, K226, "TinyExpressionP4::TernaryExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22587:22604:body/1/ruleRef", false, false, "node", false, K227); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e949M : TinyExpressionP4Parser::e949C, K1172, K363, K236, K237, K237, "TinyExpressionP4::ObjectExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22195:22211:body/1/ruleRef", false, false, "node", false, K238); } private static Match e949C(Session s, Frame f) { - return parseBooleanExpression_94(s, f); + return parseStringExpression_89(s, f); } private static Match e949M(Session s, Frame f) { - return parseBooleanExpression_94(s, f); + return parseStringExpression_89(s, f); } private static Match e950(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e950M(s, f) : e950C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e950M : TinyExpressionP4Parser::e950C, K216, K216, K216, K217, K217, "TinyExpressionP4::TernaryExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22616:22619:body/2/literal", false, true, "text", false, K527); + if (s.bypassCapture) { Match r = f.matched ? e950M(s, f) : e950C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e950M : TinyExpressionP4Parser::e950C, K1173, K363, K236, K237, K237, "TinyExpressionP4::ObjectExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22225:22242:body/2/ruleRef", false, false, "node", false, K238); } private static Match e950C(Session s, Frame f) { - return s.literal(f, "?", true, false, K528); + return parseBooleanExpression_94(s, f); } private static Match e950M(Session s, Frame f) { - return s.literal(f, "?", true, false, K528); + return parseBooleanExpression_94(s, f); } private static Match e951(Session s, Frame f) { if (s.bypassCapture) { Match r = f.matched ? e951M(s, f) : e951C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e951M : TinyExpressionP4Parser::e951C, K1162, K530, K225, K226, K226, "TinyExpressionP4::TernaryExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22620:22636:body/3/ruleRef", false, false, "node", false, K227); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e951M : TinyExpressionP4Parser::e951C, K1174, K363, K236, K237, K237, "TinyExpressionP4::ObjectExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22256:22280:body/3/ruleRef", false, false, "node", false, K59); } private static Match e951C(Session s, Frame f) { - return parseBranchExpression_107(s, f); + return parseExternalObjectInvocation_34(s, f); } private static Match e951M(Session s, Frame f) { - return parseBranchExpression_107(s, f); + return parseExternalObjectInvocation_34(s, f); } private static Match e952(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e952M(s, f) : e952C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e952M : TinyExpressionP4Parser::e952C, K216, K216, K216, K217, K217, "TinyExpressionP4::TernaryExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22647:22650:body/4/literal", false, true, "text", false, K473); + if (s.bypassCapture) { Match r = f.matched ? e952M(s, f) : e952C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e952M : TinyExpressionP4Parser::e952C, K1175, K363, K236, K237, K237, "TinyExpressionP4::ObjectExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22294:22305:body/4/ruleRef", false, false, "node", false, K50); } private static Match e952C(Session s, Frame f) { - return s.literal(f, ":", true, false, K474); + return parseVariableRef_121(s, f); } private static Match e952M(Session s, Frame f) { - return s.literal(f, ":", true, false, K474); + return parseVariableRef_121(s, f); } private static Match e953(Session s, Frame f) { if (s.bypassCapture) { Match r = f.matched ? e953M(s, f) : e953C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e953M : TinyExpressionP4Parser::e953C, K1163, K532, K225, K226, K226, "TinyExpressionP4::TernaryExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22651:22667:body/5/ruleRef", false, false, "node", false, K227); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e953M : TinyExpressionP4Parser::e953C, K1176, K363, K236, K237, K237, "TinyExpressionP4::ObjectExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22319:22335:body/5/ruleRef", false, false, "node", false, K161); } private static Match e953C(Session s, Frame f) { - return parseBranchExpression_107(s, f); + return parseMethodInvocation_36(s, f); } private static Match e953M(Session s, Frame f) { - return parseBranchExpression_107(s, f); + return parseMethodInvocation_36(s, f); } private static Match e954(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e954M(s, f) : e954C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e954M : TinyExpressionP4Parser::e954C, K216, K216, K216, K217, K217, "TinyExpressionP4::TernaryExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22678:22681:body/6/literal", false, true, "text", false, K401); + f.reset = false; + if (s.bypassWrap) { Match r = f.matched ? e954M(s, f) : e954C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e954M : TinyExpressionP4Parser::e954C, K227, K227, K227, K228, K228, "TinyExpressionP4::IfExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22510:22640:body/seq", false, false, "node", true, K4); } private static Match e954C(Session s, Frame f) { - return s.literal(f, ")", true, false, K402); + return s.sequence(f, K1179, K1178); } private static Match e954M(Session s, Frame f) { - return s.literal(f, ")", true, false, K402); + return s.sequence(f, K1179, K1178); } private static Match e955(Session s, Frame f) { - f.reset = false; - if (s.bypassWrap) { Match r = f.matched ? e955M(s, f) : e955C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e955M : TinyExpressionP4Parser::e955C, K216, K216, K216, K217, K217, "TinyExpressionP4::NumberMatchExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22871:22989:body/seq", false, false, "node", true, K4); + if (s.bypassWrap) { Match r = f.matched ? e955M(s, f) : e955C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e955M : TinyExpressionP4Parser::e955C, K227, K227, K227, K228, K228, "TinyExpressionP4::IfExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22510:22514:body/0/literal", false, true, "text", false, K420); } private static Match e955C(Session s, Frame f) { - return s.sequence(f, K1164, K220); + return s.literal(f, "if", true, false, K421); } private static Match e955M(Session s, Frame f) { - return s.sequence(f, K1164, K220); + return s.literal(f, "if", true, false, K421); } private static Match e956(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e956M(s, f) : e956C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e956M : TinyExpressionP4Parser::e956C, K216, K216, K216, K217, K217, "TinyExpressionP4::NumberMatchExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22871:22878:body/0/literal", false, true, "text", false, K1165); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e956M : TinyExpressionP4Parser::e956C, K227, K227, K227, K228, K228, "TinyExpressionP4::IfExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22515:22518:body/1/literal", false, true, "text", false, K437); } private static Match e956C(Session s, Frame f) { - return s.literal(f, "match", true, false, K1166); + return s.literal(f, "(", true, false, K438); } private static Match e956M(Session s, Frame f) { - return s.literal(f, "match", true, false, K1166); + return s.literal(f, "(", true, false, K438); } private static Match e957(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e957M(s, f) : e957C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e957M : TinyExpressionP4Parser::e957C, K216, K216, K216, K217, K217, "TinyExpressionP4::NumberMatchExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22879:22882:body/1/literal", false, true, "text", false, K417); + if (s.bypassCapture) { Match r = f.matched ? e957M(s, f) : e957C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e957M : TinyExpressionP4Parser::e957C, K1180, K564, K236, K237, K237, "TinyExpressionP4::IfExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22519:22536:body/2/ruleRef", false, false, "node", false, K238); } private static Match e957C(Session s, Frame f) { - return s.literal(f, "{", true, false, K418); + return parseBooleanExpression_94(s, f); } private static Match e957M(Session s, Frame f) { - return s.literal(f, "{", true, false, K418); + return parseBooleanExpression_94(s, f); } private static Match e958(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e958M(s, f) : e958C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e958M : TinyExpressionP4Parser::e958C, K1167, K1168, K225, K226, K226, "TinyExpressionP4::NumberMatchExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22889:22899:body/2/ruleRef", false, false, "node", false, K197); + if (s.bypassWrap) { Match r = f.matched ? e958M(s, f) : e958C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e958M : TinyExpressionP4Parser::e958C, K227, K227, K227, K228, K228, "TinyExpressionP4::IfExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22548:22551:body/3/literal", false, true, "text", false, K439); } private static Match e958C(Session s, Frame f) { - return parseNumberCase_110(s, f); + return s.literal(f, ")", true, false, K440); } private static Match e958M(Session s, Frame f) { - return parseNumberCase_110(s, f); + return s.literal(f, ")", true, false, K440); } private static Match e959(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e959M(s, f) : e959C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e959M : TinyExpressionP4Parser::e959C, K216, K216, K216, K217, K217, "TinyExpressionP4::NumberMatchExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22911:22940:body/3/repeat", true, false, "node", true, K404); + if (s.bypassWrap) { Match r = f.matched ? e959M(s, f) : e959C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e959M : TinyExpressionP4Parser::e959C, K227, K227, K227, K228, K228, "TinyExpressionP4::IfExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22556:22559:body/4/literal", false, true, "text", false, K455); } private static Match e959C(Session s, Frame f) { - return s.repeat(f, TinyExpressionP4Parser::e960, 0, Integer.MAX_VALUE, null, Trivia.NONE); + return s.literal(f, "{", true, false, K456); } private static Match e959M(Session s, Frame f) { - return s.repeat(f, TinyExpressionP4Parser::e960, 0, Integer.MAX_VALUE, null, Trivia.NONE); + return s.literal(f, "{", true, false, K456); } private static Match e960(Session s, Frame f) { - f.reset = false; - if (s.bypassWrap) { Match r = f.matched ? e960M(s, f) : e960C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e960M : TinyExpressionP4Parser::e960C, K216, K216, K216, K217, K217, "TinyExpressionP4::NumberMatchExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22913:22927:body/3/0/seq", false, false, "node", false, K404); + if (s.bypassCapture) { Match r = f.matched ? e960M(s, f) : e960C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e960M : TinyExpressionP4Parser::e960C, K1181, K568, K236, K237, K237, "TinyExpressionP4::IfExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22560:22576:body/5/ruleRef", false, false, "node", false, K238); } private static Match e960C(Session s, Frame f) { - return s.sequence(f, K1169, K271); + return parseBranchExpression_107(s, f); } private static Match e960M(Session s, Frame f) { - return s.sequence(f, K1169, K271); + return parseBranchExpression_107(s, f); } private static Match e961(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e961M(s, f) : e961C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e961M : TinyExpressionP4Parser::e961C, K216, K216, K216, K217, K217, "TinyExpressionP4::NumberMatchExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22913:22916:body/3/0/0/literal", false, true, "text", false, K404); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e961M : TinyExpressionP4Parser::e961C, K227, K227, K227, K228, K228, "TinyExpressionP4::IfExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22587:22590:body/6/literal", false, true, "text", false, K458); } private static Match e961C(Session s, Frame f) { - return s.literal(f, ",", true, false, K407); + return s.literal(f, "}", true, false, K459); } private static Match e961M(Session s, Frame f) { - return s.literal(f, ",", true, false, K407); + return s.literal(f, "}", true, false, K459); } private static Match e962(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e962M(s, f) : e962C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e962M : TinyExpressionP4Parser::e962C, K1170, K1171, K225, K226, K226, "TinyExpressionP4::NumberMatchExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22917:22927:body/3/0/1/ruleRef", false, false, "node", false, K197); + if (s.bypassWrap) { Match r = f.matched ? e962M(s, f) : e962C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e962M : TinyExpressionP4Parser::e962C, K227, K227, K227, K228, K228, "TinyExpressionP4::IfExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22595:22601:body/7/literal", false, true, "text", false, K1182); } private static Match e962C(Session s, Frame f) { - return parseNumberCase_110(s, f); + return s.literal(f, "else", true, false, K1183); } private static Match e962M(Session s, Frame f) { - return parseNumberCase_110(s, f); + return s.literal(f, "else", true, false, K1183); } private static Match e963(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e963M(s, f) : e963C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e963M : TinyExpressionP4Parser::e963C, K216, K216, K216, K217, K217, "TinyExpressionP4::NumberMatchExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22947:22950:body/4/literal", false, true, "text", false, K404); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e963M : TinyExpressionP4Parser::e963C, K227, K227, K227, K228, K228, "TinyExpressionP4::IfExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22606:22609:body/8/literal", false, true, "text", false, K455); } private static Match e963C(Session s, Frame f) { - return s.literal(f, ",", true, false, K407); + return s.literal(f, "{", true, false, K456); } private static Match e963M(Session s, Frame f) { - return s.literal(f, ",", true, false, K407); + return s.literal(f, "{", true, false, K456); } private static Match e964(Session s, Frame f) { if (s.bypassCapture) { Match r = f.matched ? e964M(s, f) : e964C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e964M : TinyExpressionP4Parser::e964C, K1172, K1173, K225, K226, K226, "TinyExpressionP4::NumberMatchExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22951:22968:body/5/ruleRef", false, false, "node", false, K199); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e964M : TinyExpressionP4Parser::e964C, K1184, K570, K236, K237, K237, "TinyExpressionP4::IfExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22610:22626:body/9/ruleRef", false, false, "node", false, K238); } private static Match e964C(Session s, Frame f) { - return parseNumberDefaultCase_111(s, f); + return parseBranchExpression_107(s, f); } private static Match e964M(Session s, Frame f) { - return parseNumberDefaultCase_111(s, f); + return parseBranchExpression_107(s, f); } private static Match e965(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e965M(s, f) : e965C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e965M : TinyExpressionP4Parser::e965C, K216, K216, K216, K217, K217, "TinyExpressionP4::NumberMatchExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22986:22989:body/6/literal", false, true, "text", false, K420); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e965M : TinyExpressionP4Parser::e965C, K227, K227, K227, K228, K228, "TinyExpressionP4::IfExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22637:22640:body/10/literal", false, true, "text", false, K458); } private static Match e965C(Session s, Frame f) { - return s.literal(f, "}", true, false, K421); + return s.literal(f, "}", true, false, K459); } private static Match e965M(Session s, Frame f) { - return s.literal(f, "}", true, false, K421); + return s.literal(f, "}", true, false, K459); } private static Match e966(Session s, Frame f) { - f.reset = false; if (s.bypassWrap) { Match r = f.matched ? e966M(s, f) : e966C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e966M : TinyExpressionP4Parser::e966C, K216, K216, K216, K217, K217, "TinyExpressionP4::NumberCase", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23064:23113:body/seq", false, false, "node", true, K4); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e966M : TinyExpressionP4Parser::e966C, K227, K227, K227, K228, K228, "TinyExpressionP4::BranchExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22722:22972:body/choice", false, false, "node", false, K4); } private static Match e966C(Session s, Frame f) { - return s.sequence(f, K1174, K251); + return s.choice(f,K1186,false,null,false,K1185); } private static Match e966M(Session s, Frame f) { - return s.sequence(f, K1174, K251); + return s.choice(f,K1186,false,null,false,K1185); } private static Match e967(Session s, Frame f) { if (s.bypassCapture) { Match r = f.matched ? e967M(s, f) : e967C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e967M : TinyExpressionP4Parser::e967C, K1175, K526, K225, K226, K226, "TinyExpressionP4::NumberCase", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23064:23081:body/0/ruleRef", false, false, "node", false, K227); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e967M : TinyExpressionP4Parser::e967C, K1187, K363, K236, K237, K237, "TinyExpressionP4::BranchExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22722:22742:body/0/ruleRef", false, false, "node", false, K238); } private static Match e967C(Session s, Frame f) { - return parseBooleanExpression_94(s, f); + return parseComparisonExpression_103(s, f); } private static Match e967M(Session s, Frame f) { - return parseBooleanExpression_94(s, f); + return parseComparisonExpression_103(s, f); } private static Match e968(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e968M(s, f) : e968C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e968M : TinyExpressionP4Parser::e968C, K216, K216, K216, K217, K217, "TinyExpressionP4::NumberCase", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23093:23097:body/1/literal", false, true, "text", false, K197); + if (s.bypassCapture) { Match r = f.matched ? e968M(s, f) : e968C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e968M : TinyExpressionP4Parser::e968C, K1188, K363, K236, K237, K237, "TinyExpressionP4::BranchExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22756:22782:body/1/ruleRef", false, false, "node", false, K238); } private static Match e968C(Session s, Frame f) { - return s.literal(f, "->", true, false, K1176); + return parseStringComparisonExpression_101(s, f); } private static Match e968M(Session s, Frame f) { - return s.literal(f, "->", true, false, K1176); + return parseStringComparisonExpression_101(s, f); } private static Match e969(Session s, Frame f) { if (s.bypassCapture) { Match r = f.matched ? e969M(s, f) : e969C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e969M : TinyExpressionP4Parser::e969C, K1177, K323, K225, K226, K226, "TinyExpressionP4::NumberCase", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23098:23113:body/2/ruleRef", false, false, "node", false, K227); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e969M : TinyExpressionP4Parser::e969C, K1189, K363, K236, K237, K237, "TinyExpressionP4::BranchExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22796:22821:body/2/ruleRef", false, false, "node", false, K238); } private static Match e969C(Session s, Frame f) { - return parseNumberCaseValue_112(s, f); + return parseBooleanEqualityExpression_99(s, f); } private static Match e969M(Session s, Frame f) { - return parseNumberCaseValue_112(s, f); + return parseBooleanEqualityExpression_99(s, f); } private static Match e970(Session s, Frame f) { - f.reset = false; - if (s.bypassWrap) { Match r = f.matched ? e970M(s, f) : e970C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e970M : TinyExpressionP4Parser::e970C, K216, K216, K216, K217, K217, "TinyExpressionP4::NumberDefaultCase", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23197:23227:body/seq", false, false, "node", false, K4); + if (s.bypassCapture) { Match r = f.matched ? e970M(s, f) : e970C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e970M : TinyExpressionP4Parser::e970C, K1190, K363, K236, K237, K237, "TinyExpressionP4::BranchExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22835:22851:body/3/ruleRef", false, false, "node", false, K238); } private static Match e970C(Session s, Frame f) { - return s.sequence(f, K1178, K251); + return parseNumberExpression_40(s, f); } private static Match e970M(Session s, Frame f) { - return s.sequence(f, K1178, K251); + return parseNumberExpression_40(s, f); } private static Match e971(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e971M(s, f) : e971C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e971M : TinyExpressionP4Parser::e971C, K216, K216, K216, K217, K217, "TinyExpressionP4::NumberDefaultCase", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23197:23206:body/0/literal", false, true, "text", false, K1179); + if (s.bypassCapture) { Match r = f.matched ? e971M(s, f) : e971C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e971M : TinyExpressionP4Parser::e971C, K1191, K363, K236, K237, K237, "TinyExpressionP4::BranchExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22865:22882:body/4/ruleRef", false, false, "node", false, K238); } private static Match e971C(Session s, Frame f) { - return s.literal(f, "default", true, false, K1180); + return parseBooleanExpression_94(s, f); } private static Match e971M(Session s, Frame f) { - return s.literal(f, "default", true, false, K1180); + return parseBooleanExpression_94(s, f); } private static Match e972(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e972M(s, f) : e972C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e972M : TinyExpressionP4Parser::e972C, K216, K216, K216, K217, K217, "TinyExpressionP4::NumberDefaultCase", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23207:23211:body/1/literal", false, true, "text", false, K197); + if (s.bypassCapture) { Match r = f.matched ? e972M(s, f) : e972C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e972M : TinyExpressionP4Parser::e972C, K1192, K363, K236, K237, K237, "TinyExpressionP4::BranchExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22896:22912:body/5/ruleRef", false, false, "node", false, K238); } private static Match e972C(Session s, Frame f) { - return s.literal(f, "->", true, false, K1176); + return parseStringExpression_89(s, f); } private static Match e972M(Session s, Frame f) { - return s.literal(f, "->", true, false, K1176); + return parseStringExpression_89(s, f); } private static Match e973(Session s, Frame f) { if (s.bypassCapture) { Match r = f.matched ? e973M(s, f) : e973C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e973M : TinyExpressionP4Parser::e973C, K1181, K323, K225, K226, K226, "TinyExpressionP4::NumberDefaultCase", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23212:23227:body/2/ruleRef", false, false, "node", false, K227); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e973M : TinyExpressionP4Parser::e973C, K1193, K363, K236, K237, K237, "TinyExpressionP4::BranchExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22926:22942:body/6/ruleRef", false, false, "node", false, K238); } private static Match e973C(Session s, Frame f) { - return parseNumberCaseValue_112(s, f); + return parseObjectExpression_105(s, f); } private static Match e973M(Session s, Frame f) { - return parseNumberCaseValue_112(s, f); + return parseObjectExpression_105(s, f); } private static Match e974(Session s, Frame f) { - f.reset = false; - if (s.bypassWrap) { Match r = f.matched ? e974M(s, f) : e974C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e974M : TinyExpressionP4Parser::e974C, K216, K216, K216, K217, K217, "TinyExpressionP4::NumberCaseValue", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23307:23323:body/seq", false, false, "node", false, K4); + if (s.bypassCapture) { Match r = f.matched ? e974M(s, f) : e974C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e974M : TinyExpressionP4Parser::e974C, K1194, K363, K236, K237, K237, "TinyExpressionP4::BranchExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22956:22972:body/7/ruleRef", false, false, "node", false, K161); } private static Match e974C(Session s, Frame f) { - return s.sequence(f, K1182, K240); + return parseMethodInvocation_36(s, f); } private static Match e974M(Session s, Frame f) { - return s.sequence(f, K1182, K240); + return parseMethodInvocation_36(s, f); } private static Match e975(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e975M(s, f) : e975C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e975M : TinyExpressionP4Parser::e975C, K1183, K323, K225, K226, K226, "TinyExpressionP4::NumberCaseValue", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23307:23323:body/0/ruleRef", false, false, "node", false, K227); + f.reset = false; + if (s.bypassWrap) { Match r = f.matched ? e975M(s, f) : e975C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e975M : TinyExpressionP4Parser::e975C, K227, K227, K227, K228, K228, "TinyExpressionP4::TernaryExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23147:23245:body/seq", false, false, "node", true, K4); } private static Match e975C(Session s, Frame f) { - return parseNumberExpression_40(s, f); + return s.sequence(f, K1195, K344); } private static Match e975M(Session s, Frame f) { - return parseNumberExpression_40(s, f); + return s.sequence(f, K1195, K344); } private static Match e976(Session s, Frame f) { - f.reset = false; - if (s.bypassWrap) { Match r = f.matched ? e976M(s, f) : e976C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e976M : TinyExpressionP4Parser::e976C, K216, K216, K216, K217, K217, "TinyExpressionP4::StringMatchExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23438:23556:body/seq", false, false, "node", true, K4); + if (s.bypassWrap) { Match r = f.matched ? e976M(s, f) : e976C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e976M : TinyExpressionP4Parser::e976C, K227, K227, K227, K228, K228, "TinyExpressionP4::TernaryExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23147:23150:body/0/literal", false, true, "text", false, K437); } private static Match e976C(Session s, Frame f) { - return s.sequence(f, K1184, K220); + return s.literal(f, "(", true, false, K438); } private static Match e976M(Session s, Frame f) { - return s.sequence(f, K1184, K220); + return s.literal(f, "(", true, false, K438); } private static Match e977(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e977M(s, f) : e977C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e977M : TinyExpressionP4Parser::e977C, K216, K216, K216, K217, K217, "TinyExpressionP4::StringMatchExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23438:23445:body/0/literal", false, true, "text", false, K1165); + if (s.bypassCapture) { Match r = f.matched ? e977M(s, f) : e977C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e977M : TinyExpressionP4Parser::e977C, K1196, K564, K236, K237, K237, "TinyExpressionP4::TernaryExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23151:23168:body/1/ruleRef", false, false, "node", false, K238); } private static Match e977C(Session s, Frame f) { - return s.literal(f, "match", true, false, K1166); + return parseBooleanExpression_94(s, f); } private static Match e977M(Session s, Frame f) { - return s.literal(f, "match", true, false, K1166); + return parseBooleanExpression_94(s, f); } private static Match e978(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e978M(s, f) : e978C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e978M : TinyExpressionP4Parser::e978C, K216, K216, K216, K217, K217, "TinyExpressionP4::StringMatchExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23446:23449:body/1/literal", false, true, "text", false, K417); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e978M : TinyExpressionP4Parser::e978C, K227, K227, K227, K228, K228, "TinyExpressionP4::TernaryExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23180:23183:body/2/literal", false, true, "text", false, K565); } private static Match e978C(Session s, Frame f) { - return s.literal(f, "{", true, false, K418); + return s.literal(f, "?", true, false, K566); } private static Match e978M(Session s, Frame f) { - return s.literal(f, "{", true, false, K418); + return s.literal(f, "?", true, false, K566); } private static Match e979(Session s, Frame f) { if (s.bypassCapture) { Match r = f.matched ? e979M(s, f) : e979C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e979M : TinyExpressionP4Parser::e979C, K1185, K1168, K225, K226, K226, "TinyExpressionP4::StringMatchExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23456:23466:body/2/ruleRef", false, false, "node", false, K197); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e979M : TinyExpressionP4Parser::e979C, K1197, K568, K236, K237, K237, "TinyExpressionP4::TernaryExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23184:23200:body/3/ruleRef", false, false, "node", false, K238); } private static Match e979C(Session s, Frame f) { - return parseStringCase_114(s, f); + return parseBranchExpression_107(s, f); } private static Match e979M(Session s, Frame f) { - return parseStringCase_114(s, f); + return parseBranchExpression_107(s, f); } private static Match e980(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e980M(s, f) : e980C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e980M : TinyExpressionP4Parser::e980C, K216, K216, K216, K217, K217, "TinyExpressionP4::StringMatchExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23478:23507:body/3/repeat", true, false, "node", true, K404); + if (s.bypassWrap) { Match r = f.matched ? e980M(s, f) : e980C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e980M : TinyExpressionP4Parser::e980C, K227, K227, K227, K228, K228, "TinyExpressionP4::TernaryExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23211:23214:body/4/literal", false, true, "text", false, K511); } private static Match e980C(Session s, Frame f) { - return s.repeat(f, TinyExpressionP4Parser::e981, 0, Integer.MAX_VALUE, null, Trivia.NONE); + return s.literal(f, ":", true, false, K512); } private static Match e980M(Session s, Frame f) { - return s.repeat(f, TinyExpressionP4Parser::e981, 0, Integer.MAX_VALUE, null, Trivia.NONE); + return s.literal(f, ":", true, false, K512); } private static Match e981(Session s, Frame f) { - f.reset = false; - if (s.bypassWrap) { Match r = f.matched ? e981M(s, f) : e981C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e981M : TinyExpressionP4Parser::e981C, K216, K216, K216, K217, K217, "TinyExpressionP4::StringMatchExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23480:23494:body/3/0/seq", false, false, "node", false, K404); + if (s.bypassCapture) { Match r = f.matched ? e981M(s, f) : e981C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e981M : TinyExpressionP4Parser::e981C, K1198, K570, K236, K237, K237, "TinyExpressionP4::TernaryExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23215:23231:body/5/ruleRef", false, false, "node", false, K238); } private static Match e981C(Session s, Frame f) { - return s.sequence(f, K1186, K271); + return parseBranchExpression_107(s, f); } private static Match e981M(Session s, Frame f) { - return s.sequence(f, K1186, K271); + return parseBranchExpression_107(s, f); } private static Match e982(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e982M(s, f) : e982C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e982M : TinyExpressionP4Parser::e982C, K216, K216, K216, K217, K217, "TinyExpressionP4::StringMatchExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23480:23483:body/3/0/0/literal", false, true, "text", false, K404); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e982M : TinyExpressionP4Parser::e982C, K227, K227, K227, K228, K228, "TinyExpressionP4::TernaryExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23242:23245:body/6/literal", false, true, "text", false, K439); } private static Match e982C(Session s, Frame f) { - return s.literal(f, ",", true, false, K407); + return s.literal(f, ")", true, false, K440); } private static Match e982M(Session s, Frame f) { - return s.literal(f, ",", true, false, K407); + return s.literal(f, ")", true, false, K440); } private static Match e983(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e983M(s, f) : e983C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e983M : TinyExpressionP4Parser::e983C, K1187, K1171, K225, K226, K226, "TinyExpressionP4::StringMatchExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23484:23494:body/3/0/1/ruleRef", false, false, "node", false, K197); + f.reset = false; + if (s.bypassWrap) { Match r = f.matched ? e983M(s, f) : e983C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e983M : TinyExpressionP4Parser::e983C, K227, K227, K227, K228, K228, "TinyExpressionP4::NumberMatchExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23435:23553:body/seq", false, false, "node", true, K4); } private static Match e983C(Session s, Frame f) { - return parseStringCase_114(s, f); + return s.sequence(f, K1199, K344); } private static Match e983M(Session s, Frame f) { - return parseStringCase_114(s, f); + return s.sequence(f, K1199, K344); } private static Match e984(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e984M(s, f) : e984C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e984M : TinyExpressionP4Parser::e984C, K216, K216, K216, K217, K217, "TinyExpressionP4::StringMatchExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23514:23517:body/4/literal", false, true, "text", false, K404); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e984M : TinyExpressionP4Parser::e984C, K227, K227, K227, K228, K228, "TinyExpressionP4::NumberMatchExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23435:23442:body/0/literal", false, true, "text", false, K1200); } private static Match e984C(Session s, Frame f) { - return s.literal(f, ",", true, false, K407); + return s.literal(f, "match", true, false, K1201); } private static Match e984M(Session s, Frame f) { - return s.literal(f, ",", true, false, K407); + return s.literal(f, "match", true, false, K1201); } private static Match e985(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e985M(s, f) : e985C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e985M : TinyExpressionP4Parser::e985C, K1188, K1173, K225, K226, K226, "TinyExpressionP4::StringMatchExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23518:23535:body/5/ruleRef", false, false, "node", false, K199); + if (s.bypassWrap) { Match r = f.matched ? e985M(s, f) : e985C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e985M : TinyExpressionP4Parser::e985C, K227, K227, K227, K228, K228, "TinyExpressionP4::NumberMatchExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23443:23446:body/1/literal", false, true, "text", false, K455); } private static Match e985C(Session s, Frame f) { - return parseStringDefaultCase_115(s, f); + return s.literal(f, "{", true, false, K456); } private static Match e985M(Session s, Frame f) { - return parseStringDefaultCase_115(s, f); + return s.literal(f, "{", true, false, K456); } private static Match e986(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e986M(s, f) : e986C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e986M : TinyExpressionP4Parser::e986C, K216, K216, K216, K217, K217, "TinyExpressionP4::StringMatchExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23553:23556:body/6/literal", false, true, "text", false, K420); + if (s.bypassCapture) { Match r = f.matched ? e986M(s, f) : e986C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e986M : TinyExpressionP4Parser::e986C, K1202, K1203, K236, K237, K237, "TinyExpressionP4::NumberMatchExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23453:23463:body/2/ruleRef", false, false, "node", false, K197); } private static Match e986C(Session s, Frame f) { - return s.literal(f, "}", true, false, K421); + return parseNumberCase_110(s, f); } private static Match e986M(Session s, Frame f) { - return s.literal(f, "}", true, false, K421); + return parseNumberCase_110(s, f); } private static Match e987(Session s, Frame f) { - f.reset = false; if (s.bypassWrap) { Match r = f.matched ? e987M(s, f) : e987C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e987M : TinyExpressionP4Parser::e987C, K216, K216, K216, K217, K217, "TinyExpressionP4::StringCase", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23631:23680:body/seq", false, false, "node", true, K4); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e987M : TinyExpressionP4Parser::e987C, K227, K227, K227, K228, K228, "TinyExpressionP4::NumberMatchExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23475:23504:body/3/repeat", true, false, "node", true, K442); } private static Match e987C(Session s, Frame f) { - return s.sequence(f, K1189, K251); + return s.repeat(f, TinyExpressionP4Parser::e988, 0, Integer.MAX_VALUE, null, Trivia.NONE); } private static Match e987M(Session s, Frame f) { - return s.sequence(f, K1189, K251); + return s.repeat(f, TinyExpressionP4Parser::e988, 0, Integer.MAX_VALUE, null, Trivia.NONE); } private static Match e988(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e988M(s, f) : e988C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e988M : TinyExpressionP4Parser::e988C, K1190, K526, K225, K226, K226, "TinyExpressionP4::StringCase", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23631:23648:body/0/ruleRef", false, false, "node", false, K227); + f.reset = false; + if (s.bypassWrap) { Match r = f.matched ? e988M(s, f) : e988C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e988M : TinyExpressionP4Parser::e988C, K227, K227, K227, K228, K228, "TinyExpressionP4::NumberMatchExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23477:23491:body/3/0/seq", false, false, "node", false, K442); } private static Match e988C(Session s, Frame f) { - return parseBooleanExpression_94(s, f); + return s.sequence(f, K1204, K309); } private static Match e988M(Session s, Frame f) { - return parseBooleanExpression_94(s, f); + return s.sequence(f, K1204, K309); } private static Match e989(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e989M(s, f) : e989C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e989M : TinyExpressionP4Parser::e989C, K216, K216, K216, K217, K217, "TinyExpressionP4::StringCase", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23660:23664:body/1/literal", false, true, "text", false, K197); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e989M : TinyExpressionP4Parser::e989C, K227, K227, K227, K228, K228, "TinyExpressionP4::NumberMatchExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23477:23480:body/3/0/0/literal", false, true, "text", false, K442); } private static Match e989C(Session s, Frame f) { - return s.literal(f, "->", true, false, K1176); + return s.literal(f, ",", true, false, K445); } private static Match e989M(Session s, Frame f) { - return s.literal(f, "->", true, false, K1176); + return s.literal(f, ",", true, false, K445); } private static Match e990(Session s, Frame f) { if (s.bypassCapture) { Match r = f.matched ? e990M(s, f) : e990C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e990M : TinyExpressionP4Parser::e990C, K1191, K323, K225, K226, K226, "TinyExpressionP4::StringCase", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23665:23680:body/2/ruleRef", false, false, "node", false, K227); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e990M : TinyExpressionP4Parser::e990C, K1205, K1206, K236, K237, K237, "TinyExpressionP4::NumberMatchExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23481:23491:body/3/0/1/ruleRef", false, false, "node", false, K197); } private static Match e990C(Session s, Frame f) { - return parseStringCaseValue_116(s, f); + return parseNumberCase_110(s, f); } private static Match e990M(Session s, Frame f) { - return parseStringCaseValue_116(s, f); + return parseNumberCase_110(s, f); } private static Match e991(Session s, Frame f) { - f.reset = false; - if (s.bypassWrap) { Match r = f.matched ? e991M(s, f) : e991C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e991M : TinyExpressionP4Parser::e991C, K216, K216, K216, K217, K217, "TinyExpressionP4::StringDefaultCase", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23764:23794:body/seq", false, false, "node", false, K4); + if (s.bypassWrap) { Match r = f.matched ? e991M(s, f) : e991C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e991M : TinyExpressionP4Parser::e991C, K227, K227, K227, K228, K228, "TinyExpressionP4::NumberMatchExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23511:23514:body/4/literal", false, true, "text", false, K442); } private static Match e991C(Session s, Frame f) { - return s.sequence(f, K1192, K251); + return s.literal(f, ",", true, false, K445); } private static Match e991M(Session s, Frame f) { - return s.sequence(f, K1192, K251); + return s.literal(f, ",", true, false, K445); } private static Match e992(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e992M(s, f) : e992C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e992M : TinyExpressionP4Parser::e992C, K216, K216, K216, K217, K217, "TinyExpressionP4::StringDefaultCase", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23764:23773:body/0/literal", false, true, "text", false, K1179); + if (s.bypassCapture) { Match r = f.matched ? e992M(s, f) : e992C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e992M : TinyExpressionP4Parser::e992C, K1207, K1208, K236, K237, K237, "TinyExpressionP4::NumberMatchExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23515:23532:body/5/ruleRef", false, false, "node", false, K199); } private static Match e992C(Session s, Frame f) { - return s.literal(f, "default", true, false, K1180); + return parseNumberDefaultCase_111(s, f); } private static Match e992M(Session s, Frame f) { - return s.literal(f, "default", true, false, K1180); + return parseNumberDefaultCase_111(s, f); } private static Match e993(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e993M(s, f) : e993C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e993M : TinyExpressionP4Parser::e993C, K216, K216, K216, K217, K217, "TinyExpressionP4::StringDefaultCase", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23774:23778:body/1/literal", false, true, "text", false, K197); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e993M : TinyExpressionP4Parser::e993C, K227, K227, K227, K228, K228, "TinyExpressionP4::NumberMatchExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23550:23553:body/6/literal", false, true, "text", false, K458); } private static Match e993C(Session s, Frame f) { - return s.literal(f, "->", true, false, K1176); + return s.literal(f, "}", true, false, K459); } private static Match e993M(Session s, Frame f) { - return s.literal(f, "->", true, false, K1176); + return s.literal(f, "}", true, false, K459); } private static Match e994(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e994M(s, f) : e994C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e994M : TinyExpressionP4Parser::e994C, K1193, K323, K225, K226, K226, "TinyExpressionP4::StringDefaultCase", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23779:23794:body/2/ruleRef", false, false, "node", false, K227); + f.reset = false; + if (s.bypassWrap) { Match r = f.matched ? e994M(s, f) : e994C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e994M : TinyExpressionP4Parser::e994C, K227, K227, K227, K228, K228, "TinyExpressionP4::NumberCase", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23628:23677:body/seq", false, false, "node", true, K4); } private static Match e994C(Session s, Frame f) { - return parseStringCaseValue_116(s, f); + return s.sequence(f, K1209, K255); } private static Match e994M(Session s, Frame f) { - return parseStringCaseValue_116(s, f); + return s.sequence(f, K1209, K255); } private static Match e995(Session s, Frame f) { - f.reset = false; - if (s.bypassWrap) { Match r = f.matched ? e995M(s, f) : e995C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e995M : TinyExpressionP4Parser::e995C, K216, K216, K216, K217, K217, "TinyExpressionP4::StringCaseValue", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23874:23890:body/seq", false, false, "node", false, K4); + if (s.bypassCapture) { Match r = f.matched ? e995M(s, f) : e995C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e995M : TinyExpressionP4Parser::e995C, K1210, K564, K236, K237, K237, "TinyExpressionP4::NumberCase", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23628:23645:body/0/ruleRef", false, false, "node", false, K238); } private static Match e995C(Session s, Frame f) { - return s.sequence(f, K1194, K240); + return parseBooleanExpression_94(s, f); } private static Match e995M(Session s, Frame f) { - return s.sequence(f, K1194, K240); + return parseBooleanExpression_94(s, f); } private static Match e996(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e996M(s, f) : e996C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e996M : TinyExpressionP4Parser::e996C, K1195, K323, K225, K226, K226, "TinyExpressionP4::StringCaseValue", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23874:23890:body/0/ruleRef", false, false, "node", false, K227); + if (s.bypassWrap) { Match r = f.matched ? e996M(s, f) : e996C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e996M : TinyExpressionP4Parser::e996C, K227, K227, K227, K228, K228, "TinyExpressionP4::NumberCase", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23657:23661:body/1/literal", false, true, "text", false, K197); } private static Match e996C(Session s, Frame f) { - return parseStringExpression_89(s, f); + return s.literal(f, "->", true, false, K1211); } private static Match e996M(Session s, Frame f) { - return parseStringExpression_89(s, f); + return s.literal(f, "->", true, false, K1211); } private static Match e997(Session s, Frame f) { - f.reset = false; - if (s.bypassWrap) { Match r = f.matched ? e997M(s, f) : e997C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e997M : TinyExpressionP4Parser::e997C, K216, K216, K216, K217, K217, "TinyExpressionP4::BooleanMatchExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24007:24128:body/seq", false, false, "node", true, K4); + if (s.bypassCapture) { Match r = f.matched ? e997M(s, f) : e997C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e997M : TinyExpressionP4Parser::e997C, K1212, K363, K236, K237, K237, "TinyExpressionP4::NumberCase", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23662:23677:body/2/ruleRef", false, false, "node", false, K238); } private static Match e997C(Session s, Frame f) { - return s.sequence(f, K1196, K220); + return parseNumberCaseValue_112(s, f); } private static Match e997M(Session s, Frame f) { - return s.sequence(f, K1196, K220); + return parseNumberCaseValue_112(s, f); } private static Match e998(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e998M(s, f) : e998C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e998M : TinyExpressionP4Parser::e998C, K216, K216, K216, K217, K217, "TinyExpressionP4::BooleanMatchExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24007:24014:body/0/literal", false, true, "text", false, K1165); + f.reset = false; + if (s.bypassWrap) { Match r = f.matched ? e998M(s, f) : e998C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e998M : TinyExpressionP4Parser::e998C, K227, K227, K227, K228, K228, "TinyExpressionP4::NumberDefaultCase", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23761:23791:body/seq", false, false, "node", false, K4); } private static Match e998C(Session s, Frame f) { - return s.literal(f, "match", true, false, K1166); + return s.sequence(f, K1213, K255); } private static Match e998M(Session s, Frame f) { - return s.literal(f, "match", true, false, K1166); + return s.sequence(f, K1213, K255); } private static Match e999(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e999M(s, f) : e999C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e999M : TinyExpressionP4Parser::e999C, K216, K216, K216, K217, K217, "TinyExpressionP4::BooleanMatchExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24015:24018:body/1/literal", false, true, "text", false, K417); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e999M : TinyExpressionP4Parser::e999C, K227, K227, K227, K228, K228, "TinyExpressionP4::NumberDefaultCase", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23761:23770:body/0/literal", false, true, "text", false, K1214); } private static Match e999C(Session s, Frame f) { - return s.literal(f, "{", true, false, K418); + return s.literal(f, "default", true, false, K1215); } private static Match e999M(Session s, Frame f) { - return s.literal(f, "{", true, false, K418); + return s.literal(f, "default", true, false, K1215); } private static Match e1000(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e1000M(s, f) : e1000C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e1000M : TinyExpressionP4Parser::e1000C, K1197, K1168, K225, K226, K226, "TinyExpressionP4::BooleanMatchExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24025:24036:body/2/ruleRef", false, false, "node", false, K197); + if (s.bypassWrap) { Match r = f.matched ? e1000M(s, f) : e1000C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e1000M : TinyExpressionP4Parser::e1000C, K227, K227, K227, K228, K228, "TinyExpressionP4::NumberDefaultCase", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23771:23775:body/1/literal", false, true, "text", false, K197); } private static Match e1000C(Session s, Frame f) { - return parseBooleanCase_118(s, f); + return s.literal(f, "->", true, false, K1211); } private static Match e1000M(Session s, Frame f) { - return parseBooleanCase_118(s, f); + return s.literal(f, "->", true, false, K1211); } private static Match e1001(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e1001M(s, f) : e1001C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e1001M : TinyExpressionP4Parser::e1001C, K216, K216, K216, K217, K217, "TinyExpressionP4::BooleanMatchExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24048:24078:body/3/repeat", true, false, "node", true, K404); + if (s.bypassCapture) { Match r = f.matched ? e1001M(s, f) : e1001C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e1001M : TinyExpressionP4Parser::e1001C, K1216, K363, K236, K237, K237, "TinyExpressionP4::NumberDefaultCase", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23776:23791:body/2/ruleRef", false, false, "node", false, K238); } private static Match e1001C(Session s, Frame f) { - return s.repeat(f, TinyExpressionP4Parser::e1002, 0, Integer.MAX_VALUE, null, Trivia.NONE); + return parseNumberCaseValue_112(s, f); } private static Match e1001M(Session s, Frame f) { - return s.repeat(f, TinyExpressionP4Parser::e1002, 0, Integer.MAX_VALUE, null, Trivia.NONE); + return parseNumberCaseValue_112(s, f); } private static Match e1002(Session s, Frame f) { f.reset = false; if (s.bypassWrap) { Match r = f.matched ? e1002M(s, f) : e1002C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e1002M : TinyExpressionP4Parser::e1002C, K216, K216, K216, K217, K217, "TinyExpressionP4::BooleanMatchExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24050:24065:body/3/0/seq", false, false, "node", false, K404); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e1002M : TinyExpressionP4Parser::e1002C, K227, K227, K227, K228, K228, "TinyExpressionP4::NumberCaseValue", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23871:23887:body/seq", false, false, "node", false, K4); } private static Match e1002C(Session s, Frame f) { - return s.sequence(f, K1198, K271); + return s.sequence(f, K1217, K280); } private static Match e1002M(Session s, Frame f) { - return s.sequence(f, K1198, K271); + return s.sequence(f, K1217, K280); } private static Match e1003(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e1003M(s, f) : e1003C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e1003M : TinyExpressionP4Parser::e1003C, K216, K216, K216, K217, K217, "TinyExpressionP4::BooleanMatchExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24050:24053:body/3/0/0/literal", false, true, "text", false, K404); + if (s.bypassCapture) { Match r = f.matched ? e1003M(s, f) : e1003C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e1003M : TinyExpressionP4Parser::e1003C, K1218, K363, K236, K237, K237, "TinyExpressionP4::NumberCaseValue", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23871:23887:body/0/ruleRef", false, false, "node", false, K238); } private static Match e1003C(Session s, Frame f) { - return s.literal(f, ",", true, false, K407); + return parseNumberExpression_40(s, f); } private static Match e1003M(Session s, Frame f) { - return s.literal(f, ",", true, false, K407); + return parseNumberExpression_40(s, f); } private static Match e1004(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e1004M(s, f) : e1004C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e1004M : TinyExpressionP4Parser::e1004C, K1199, K1171, K225, K226, K226, "TinyExpressionP4::BooleanMatchExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24054:24065:body/3/0/1/ruleRef", false, false, "node", false, K197); + f.reset = false; + if (s.bypassWrap) { Match r = f.matched ? e1004M(s, f) : e1004C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e1004M : TinyExpressionP4Parser::e1004C, K227, K227, K227, K228, K228, "TinyExpressionP4::StringMatchExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24002:24120:body/seq", false, false, "node", true, K4); } private static Match e1004C(Session s, Frame f) { - return parseBooleanCase_118(s, f); + return s.sequence(f, K1219, K344); } private static Match e1004M(Session s, Frame f) { - return parseBooleanCase_118(s, f); + return s.sequence(f, K1219, K344); } private static Match e1005(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e1005M(s, f) : e1005C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e1005M : TinyExpressionP4Parser::e1005C, K216, K216, K216, K217, K217, "TinyExpressionP4::BooleanMatchExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24085:24088:body/4/literal", false, true, "text", false, K404); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e1005M : TinyExpressionP4Parser::e1005C, K227, K227, K227, K228, K228, "TinyExpressionP4::StringMatchExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24002:24009:body/0/literal", false, true, "text", false, K1200); } private static Match e1005C(Session s, Frame f) { - return s.literal(f, ",", true, false, K407); + return s.literal(f, "match", true, false, K1201); } private static Match e1005M(Session s, Frame f) { - return s.literal(f, ",", true, false, K407); + return s.literal(f, "match", true, false, K1201); } private static Match e1006(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e1006M(s, f) : e1006C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e1006M : TinyExpressionP4Parser::e1006C, K1200, K1173, K225, K226, K226, "TinyExpressionP4::BooleanMatchExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24089:24107:body/5/ruleRef", false, false, "node", false, K199); + if (s.bypassWrap) { Match r = f.matched ? e1006M(s, f) : e1006C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e1006M : TinyExpressionP4Parser::e1006C, K227, K227, K227, K228, K228, "TinyExpressionP4::StringMatchExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24010:24013:body/1/literal", false, true, "text", false, K455); } private static Match e1006C(Session s, Frame f) { - return parseBooleanDefaultCase_119(s, f); + return s.literal(f, "{", true, false, K456); } private static Match e1006M(Session s, Frame f) { - return parseBooleanDefaultCase_119(s, f); + return s.literal(f, "{", true, false, K456); } private static Match e1007(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e1007M(s, f) : e1007C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e1007M : TinyExpressionP4Parser::e1007C, K216, K216, K216, K217, K217, "TinyExpressionP4::BooleanMatchExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24125:24128:body/6/literal", false, true, "text", false, K420); + if (s.bypassCapture) { Match r = f.matched ? e1007M(s, f) : e1007C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e1007M : TinyExpressionP4Parser::e1007C, K1220, K1203, K236, K237, K237, "TinyExpressionP4::StringMatchExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24020:24030:body/2/ruleRef", false, false, "node", false, K197); } private static Match e1007C(Session s, Frame f) { - return s.literal(f, "}", true, false, K421); + return parseStringCase_114(s, f); } private static Match e1007M(Session s, Frame f) { - return s.literal(f, "}", true, false, K421); + return parseStringCase_114(s, f); } private static Match e1008(Session s, Frame f) { - f.reset = false; if (s.bypassWrap) { Match r = f.matched ? e1008M(s, f) : e1008C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e1008M : TinyExpressionP4Parser::e1008C, K216, K216, K216, K217, K217, "TinyExpressionP4::BooleanCase", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24205:24255:body/seq", false, false, "node", true, K4); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e1008M : TinyExpressionP4Parser::e1008C, K227, K227, K227, K228, K228, "TinyExpressionP4::StringMatchExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24042:24071:body/3/repeat", true, false, "node", true, K442); } private static Match e1008C(Session s, Frame f) { - return s.sequence(f, K1201, K251); + return s.repeat(f, TinyExpressionP4Parser::e1009, 0, Integer.MAX_VALUE, null, Trivia.NONE); } private static Match e1008M(Session s, Frame f) { - return s.sequence(f, K1201, K251); + return s.repeat(f, TinyExpressionP4Parser::e1009, 0, Integer.MAX_VALUE, null, Trivia.NONE); } private static Match e1009(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e1009M(s, f) : e1009C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e1009M : TinyExpressionP4Parser::e1009C, K1202, K526, K225, K226, K226, "TinyExpressionP4::BooleanCase", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24205:24222:body/0/ruleRef", false, false, "node", false, K227); + f.reset = false; + if (s.bypassWrap) { Match r = f.matched ? e1009M(s, f) : e1009C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e1009M : TinyExpressionP4Parser::e1009C, K227, K227, K227, K228, K228, "TinyExpressionP4::StringMatchExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24044:24058:body/3/0/seq", false, false, "node", false, K442); } private static Match e1009C(Session s, Frame f) { - return parseBooleanExpression_94(s, f); + return s.sequence(f, K1221, K309); } private static Match e1009M(Session s, Frame f) { - return parseBooleanExpression_94(s, f); + return s.sequence(f, K1221, K309); } private static Match e1010(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e1010M(s, f) : e1010C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e1010M : TinyExpressionP4Parser::e1010C, K216, K216, K216, K217, K217, "TinyExpressionP4::BooleanCase", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24234:24238:body/1/literal", false, true, "text", false, K197); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e1010M : TinyExpressionP4Parser::e1010C, K227, K227, K227, K228, K228, "TinyExpressionP4::StringMatchExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24044:24047:body/3/0/0/literal", false, true, "text", false, K442); } private static Match e1010C(Session s, Frame f) { - return s.literal(f, "->", true, false, K1176); + return s.literal(f, ",", true, false, K445); } private static Match e1010M(Session s, Frame f) { - return s.literal(f, "->", true, false, K1176); + return s.literal(f, ",", true, false, K445); } private static Match e1011(Session s, Frame f) { if (s.bypassCapture) { Match r = f.matched ? e1011M(s, f) : e1011C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e1011M : TinyExpressionP4Parser::e1011C, K1203, K323, K225, K226, K226, "TinyExpressionP4::BooleanCase", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24239:24255:body/2/ruleRef", false, false, "node", false, K227); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e1011M : TinyExpressionP4Parser::e1011C, K1222, K1206, K236, K237, K237, "TinyExpressionP4::StringMatchExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24048:24058:body/3/0/1/ruleRef", false, false, "node", false, K197); } private static Match e1011C(Session s, Frame f) { - return parseBooleanCaseValue_120(s, f); + return parseStringCase_114(s, f); } private static Match e1011M(Session s, Frame f) { - return parseBooleanCaseValue_120(s, f); + return parseStringCase_114(s, f); } private static Match e1012(Session s, Frame f) { - f.reset = false; - if (s.bypassWrap) { Match r = f.matched ? e1012M(s, f) : e1012C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e1012M : TinyExpressionP4Parser::e1012C, K216, K216, K216, K217, K217, "TinyExpressionP4::BooleanDefaultCase", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24341:24372:body/seq", false, false, "node", false, K4); + if (s.bypassWrap) { Match r = f.matched ? e1012M(s, f) : e1012C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e1012M : TinyExpressionP4Parser::e1012C, K227, K227, K227, K228, K228, "TinyExpressionP4::StringMatchExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24078:24081:body/4/literal", false, true, "text", false, K442); } private static Match e1012C(Session s, Frame f) { - return s.sequence(f, K1204, K251); + return s.literal(f, ",", true, false, K445); } private static Match e1012M(Session s, Frame f) { - return s.sequence(f, K1204, K251); + return s.literal(f, ",", true, false, K445); } private static Match e1013(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e1013M(s, f) : e1013C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e1013M : TinyExpressionP4Parser::e1013C, K216, K216, K216, K217, K217, "TinyExpressionP4::BooleanDefaultCase", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24341:24350:body/0/literal", false, true, "text", false, K1179); + if (s.bypassCapture) { Match r = f.matched ? e1013M(s, f) : e1013C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e1013M : TinyExpressionP4Parser::e1013C, K1223, K1208, K236, K237, K237, "TinyExpressionP4::StringMatchExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24082:24099:body/5/ruleRef", false, false, "node", false, K199); } private static Match e1013C(Session s, Frame f) { - return s.literal(f, "default", true, false, K1180); + return parseStringDefaultCase_115(s, f); } private static Match e1013M(Session s, Frame f) { - return s.literal(f, "default", true, false, K1180); + return parseStringDefaultCase_115(s, f); } private static Match e1014(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e1014M(s, f) : e1014C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e1014M : TinyExpressionP4Parser::e1014C, K216, K216, K216, K217, K217, "TinyExpressionP4::BooleanDefaultCase", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24351:24355:body/1/literal", false, true, "text", false, K197); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e1014M : TinyExpressionP4Parser::e1014C, K227, K227, K227, K228, K228, "TinyExpressionP4::StringMatchExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24117:24120:body/6/literal", false, true, "text", false, K458); } private static Match e1014C(Session s, Frame f) { - return s.literal(f, "->", true, false, K1176); + return s.literal(f, "}", true, false, K459); } private static Match e1014M(Session s, Frame f) { - return s.literal(f, "->", true, false, K1176); + return s.literal(f, "}", true, false, K459); } private static Match e1015(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e1015M(s, f) : e1015C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e1015M : TinyExpressionP4Parser::e1015C, K1205, K323, K225, K226, K226, "TinyExpressionP4::BooleanDefaultCase", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24356:24372:body/2/ruleRef", false, false, "node", false, K227); + f.reset = false; + if (s.bypassWrap) { Match r = f.matched ? e1015M(s, f) : e1015C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e1015M : TinyExpressionP4Parser::e1015C, K227, K227, K227, K228, K228, "TinyExpressionP4::StringCase", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24195:24244:body/seq", false, false, "node", true, K4); } private static Match e1015C(Session s, Frame f) { - return parseBooleanCaseValue_120(s, f); + return s.sequence(f, K1224, K255); } private static Match e1015M(Session s, Frame f) { - return parseBooleanCaseValue_120(s, f); + return s.sequence(f, K1224, K255); } private static Match e1016(Session s, Frame f) { - f.reset = false; - if (s.bypassWrap) { Match r = f.matched ? e1016M(s, f) : e1016C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e1016M : TinyExpressionP4Parser::e1016C, K216, K216, K216, K217, K217, "TinyExpressionP4::BooleanCaseValue", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24454:24471:body/seq", false, false, "node", false, K4); + if (s.bypassCapture) { Match r = f.matched ? e1016M(s, f) : e1016C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e1016M : TinyExpressionP4Parser::e1016C, K1225, K564, K236, K237, K237, "TinyExpressionP4::StringCase", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24195:24212:body/0/ruleRef", false, false, "node", false, K238); } private static Match e1016C(Session s, Frame f) { - return s.sequence(f, K1206, K240); + return parseBooleanExpression_94(s, f); } private static Match e1016M(Session s, Frame f) { - return s.sequence(f, K1206, K240); + return parseBooleanExpression_94(s, f); } private static Match e1017(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e1017M(s, f) : e1017C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e1017M : TinyExpressionP4Parser::e1017C, K1207, K323, K225, K226, K226, "TinyExpressionP4::BooleanCaseValue", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24454:24471:body/0/ruleRef", false, false, "node", false, K227); + if (s.bypassWrap) { Match r = f.matched ? e1017M(s, f) : e1017C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e1017M : TinyExpressionP4Parser::e1017C, K227, K227, K227, K228, K228, "TinyExpressionP4::StringCase", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24224:24228:body/1/literal", false, true, "text", false, K197); } private static Match e1017C(Session s, Frame f) { - return parseBooleanExpression_94(s, f); + return s.literal(f, "->", true, false, K1211); } private static Match e1017M(Session s, Frame f) { - return parseBooleanExpression_94(s, f); + return s.literal(f, "->", true, false, K1211); } private static Match e1018(Session s, Frame f) { - f.reset = false; - if (s.bypassWrap) { Match r = f.matched ? e1018M(s, f) : e1018C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e1018M : TinyExpressionP4Parser::e1018C, K216, K216, K216, K217, K217, "TinyExpressionP4::VariableRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24684:24735:body/seq", false, false, "text", false, K4); + if (s.bypassCapture) { Match r = f.matched ? e1018M(s, f) : e1018C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e1018M : TinyExpressionP4Parser::e1018C, K1226, K363, K236, K237, K237, "TinyExpressionP4::StringCase", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24229:24244:body/2/ruleRef", false, false, "node", false, K238); } private static Match e1018C(Session s, Frame f) { - return s.sequence(f, K1208, K251); + return parseStringCaseValue_116(s, f); } private static Match e1018M(Session s, Frame f) { - return s.sequence(f, K1208, K251); + return parseStringCaseValue_116(s, f); } private static Match e1019(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e1019M(s, f) : e1019C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e1019M : TinyExpressionP4Parser::e1019C, K216, K216, K216, K217, K217, "TinyExpressionP4::VariableRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24684:24687:body/0/literal", false, true, "text", false, K50); + f.reset = false; + if (s.bypassWrap) { Match r = f.matched ? e1019M(s, f) : e1019C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e1019M : TinyExpressionP4Parser::e1019C, K227, K227, K227, K228, K228, "TinyExpressionP4::StringDefaultCase", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24328:24358:body/seq", false, false, "node", false, K4); } private static Match e1019C(Session s, Frame f) { - return s.literal(f, "$", true, false, K312); + return s.sequence(f, K1227, K255); } private static Match e1019M(Session s, Frame f) { - return s.literal(f, "$", true, false, K312); + return s.sequence(f, K1227, K255); } private static Match e1020(Session s, Frame f) { - return s.capture(f, f.matched ? TinyExpressionP4Parser::e1020M : TinyExpressionP4Parser::e1020C, K1209, K479, K225, K226, K315, "TinyExpressionP4::VariableRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24688:24698:body/1/tokenRef", false, true, "text", false, K276); + if (s.bypassWrap) { Match r = f.matched ? e1020M(s, f) : e1020C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e1020M : TinyExpressionP4Parser::e1020C, K227, K227, K227, K228, K228, "TinyExpressionP4::StringDefaultCase", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24328:24337:body/0/literal", false, true, "text", false, K1214); } private static Match e1020C(Session s, Frame f) { - return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K277,K278); + return s.literal(f, "default", true, false, K1215); } private static Match e1020M(Session s, Frame f) { - return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K277,K278); + return s.literal(f, "default", true, false, K1215); } private static Match e1021(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e1021M(s, f) : e1021C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e1021M : TinyExpressionP4Parser::e1021C, K216, K216, K216, K217, K217, "TinyExpressionP4::VariableRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24705:24735:body/2/optional", true, false, "text", false, K316); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e1021M : TinyExpressionP4Parser::e1021C, K227, K227, K227, K228, K228, "TinyExpressionP4::StringDefaultCase", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24338:24342:body/1/literal", false, true, "text", false, K197); } private static Match e1021C(Session s, Frame f) { - return s.optional(f, TinyExpressionP4Parser::e1022); + return s.literal(f, "->", true, false, K1211); } private static Match e1021M(Session s, Frame f) { - return s.optional(f, TinyExpressionP4Parser::e1022); + return s.literal(f, "->", true, false, K1211); } private static Match e1022(Session s, Frame f) { - f.reset = false; - if (s.bypassWrap) { Match r = f.matched ? e1022M(s, f) : e1022C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e1022M : TinyExpressionP4Parser::e1022C, K216, K216, K216, K217, K217, "TinyExpressionP4::VariableRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24707:24727:body/2/0/seq", false, false, "text", false, K279); + if (s.bypassCapture) { Match r = f.matched ? e1022M(s, f) : e1022C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e1022M : TinyExpressionP4Parser::e1022C, K1228, K363, K236, K237, K237, "TinyExpressionP4::StringDefaultCase", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24343:24358:body/2/ruleRef", false, false, "node", false, K238); } private static Match e1022C(Session s, Frame f) { - return s.sequence(f, K1210, K271); + return parseStringCaseValue_116(s, f); } private static Match e1022M(Session s, Frame f) { - return s.sequence(f, K1210, K271); + return parseStringCaseValue_116(s, f); } private static Match e1023(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e1023M(s, f) : e1023C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e1023M : TinyExpressionP4Parser::e1023C, K216, K216, K216, K217, K217, "TinyExpressionP4::VariableRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24707:24715:body/2/0/0/optional", true, false, "text", false, K279); + f.reset = false; + if (s.bypassWrap) { Match r = f.matched ? e1023M(s, f) : e1023C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e1023M : TinyExpressionP4Parser::e1023C, K227, K227, K227, K228, K228, "TinyExpressionP4::StringCaseValue", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24438:24454:body/seq", false, false, "node", false, K4); } private static Match e1023C(Session s, Frame f) { - return s.optional(f, TinyExpressionP4Parser::e1024); + return s.sequence(f, K1229, K280); } private static Match e1023M(Session s, Frame f) { - return s.optional(f, TinyExpressionP4Parser::e1024); + return s.sequence(f, K1229, K280); } private static Match e1024(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e1024M(s, f) : e1024C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e1024M : TinyExpressionP4Parser::e1024C, K216, K216, K216, K217, K217, "TinyExpressionP4::VariableRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24709:24713:body/2/0/0/0/literal", false, true, "text", false, K279); + if (s.bypassCapture) { Match r = f.matched ? e1024M(s, f) : e1024C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e1024M : TinyExpressionP4Parser::e1024C, K1230, K363, K236, K237, K237, "TinyExpressionP4::StringCaseValue", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24438:24454:body/0/ruleRef", false, false, "node", false, K238); } private static Match e1024C(Session s, Frame f) { - return s.literal(f, "as", true, false, K280); + return parseStringExpression_89(s, f); } private static Match e1024M(Session s, Frame f) { - return s.literal(f, "as", true, false, K280); + return parseStringExpression_89(s, f); } private static Match e1025(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e1025M(s, f) : e1025C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e1025M : TinyExpressionP4Parser::e1025C, K1211, K444, K225, K226, K226, "TinyExpressionP4::VariableRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24716:24727:body/2/0/1/ruleRef", false, false, "text", false, K214); + f.reset = false; + if (s.bypassWrap) { Match r = f.matched ? e1025M(s, f) : e1025C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e1025M : TinyExpressionP4Parser::e1025C, K227, K227, K227, K228, K228, "TinyExpressionP4::BooleanMatchExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24571:24692:body/seq", false, false, "node", true, K4); } private static Match e1025C(Session s, Frame f) { - return parseTypeKeyword_122(s, f); + return s.sequence(f, K1231, K344); } private static Match e1025M(Session s, Frame f) { - return parseTypeKeyword_122(s, f); + return s.sequence(f, K1231, K344); } private static Match e1026(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e1026M(s, f) : e1026C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e1026M : TinyExpressionP4Parser::e1026C, K216, K216, K216, K217, K217, "TinyExpressionP4::TypeKeyword", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24757:24868:body/choice", false, false, "text", false, K4); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e1026M : TinyExpressionP4Parser::e1026C, K227, K227, K227, K228, K228, "TinyExpressionP4::BooleanMatchExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24571:24578:body/0/literal", false, true, "text", false, K1200); } private static Match e1026C(Session s, Frame f) { - return s.choice(f,K1212,false,null,false); + return s.literal(f, "match", true, false, K1201); } private static Match e1026M(Session s, Frame f) { - return s.choice(f,K1212,false,null,false); + return s.literal(f, "match", true, false, K1201); } private static Match e1027(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e1027M(s, f) : e1027C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e1027M : TinyExpressionP4Parser::e1027C, K216, K216, K216, K217, K217, "TinyExpressionP4::TypeKeyword", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24757:24765:body/0/literal", false, true, "text", false, K350); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e1027M : TinyExpressionP4Parser::e1027C, K227, K227, K227, K228, K228, "TinyExpressionP4::BooleanMatchExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24579:24582:body/1/literal", false, true, "text", false, K455); } private static Match e1027C(Session s, Frame f) { - return s.literal(f, "number", true, false, K351); + return s.literal(f, "{", true, false, K456); } private static Match e1027M(Session s, Frame f) { - return s.literal(f, "number", true, false, K351); + return s.literal(f, "{", true, false, K456); } private static Match e1028(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e1028M(s, f) : e1028C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e1028M : TinyExpressionP4Parser::e1028C, K216, K216, K216, K217, K217, "TinyExpressionP4::TypeKeyword", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24768:24776:body/1/literal", false, true, "text", false, K352); + if (s.bypassCapture) { Match r = f.matched ? e1028M(s, f) : e1028C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e1028M : TinyExpressionP4Parser::e1028C, K1232, K1203, K236, K237, K237, "TinyExpressionP4::BooleanMatchExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24589:24600:body/2/ruleRef", false, false, "node", false, K197); } private static Match e1028C(Session s, Frame f) { - return s.literal(f, "Number", true, false, K353); + return parseBooleanCase_118(s, f); } private static Match e1028M(Session s, Frame f) { - return s.literal(f, "Number", true, false, K353); + return parseBooleanCase_118(s, f); } private static Match e1029(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e1029M(s, f) : e1029C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e1029M : TinyExpressionP4Parser::e1029C, K216, K216, K216, K217, K217, "TinyExpressionP4::TypeKeyword", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24779:24786:body/2/literal", false, true, "text", false, K366); + if (s.bypassWrap) { Match r = f.matched ? e1029M(s, f) : e1029C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e1029M : TinyExpressionP4Parser::e1029C, K227, K227, K227, K228, K228, "TinyExpressionP4::BooleanMatchExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24612:24642:body/3/repeat", true, false, "node", true, K442); } private static Match e1029C(Session s, Frame f) { - return s.literal(f, "float", true, false, K367); + return s.repeat(f, TinyExpressionP4Parser::e1030, 0, Integer.MAX_VALUE, null, Trivia.NONE); } private static Match e1029M(Session s, Frame f) { - return s.literal(f, "float", true, false, K367); + return s.repeat(f, TinyExpressionP4Parser::e1030, 0, Integer.MAX_VALUE, null, Trivia.NONE); } private static Match e1030(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e1030M(s, f) : e1030C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e1030M : TinyExpressionP4Parser::e1030C, K216, K216, K216, K217, K217, "TinyExpressionP4::TypeKeyword", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24789:24796:body/3/literal", false, true, "text", false, K368); + f.reset = false; + if (s.bypassWrap) { Match r = f.matched ? e1030M(s, f) : e1030C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e1030M : TinyExpressionP4Parser::e1030C, K227, K227, K227, K228, K228, "TinyExpressionP4::BooleanMatchExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24614:24629:body/3/0/seq", false, false, "node", false, K442); } private static Match e1030C(Session s, Frame f) { - return s.literal(f, "Float", true, false, K369); + return s.sequence(f, K1233, K309); } private static Match e1030M(Session s, Frame f) { - return s.literal(f, "Float", true, false, K369); + return s.sequence(f, K1233, K309); } private static Match e1031(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e1031M(s, f) : e1031C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e1031M : TinyExpressionP4Parser::e1031C, K216, K216, K216, K217, K217, "TinyExpressionP4::TypeKeyword", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24803:24811:body/4/literal", false, true, "text", false, K52); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e1031M : TinyExpressionP4Parser::e1031C, K227, K227, K227, K228, K228, "TinyExpressionP4::BooleanMatchExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24614:24617:body/3/0/0/literal", false, true, "text", false, K442); } private static Match e1031C(Session s, Frame f) { - return s.literal(f, "string", true, false, K354); + return s.literal(f, ",", true, false, K445); } private static Match e1031M(Session s, Frame f) { - return s.literal(f, "string", true, false, K354); + return s.literal(f, ",", true, false, K445); } private static Match e1032(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e1032M(s, f) : e1032C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e1032M : TinyExpressionP4Parser::e1032C, K216, K216, K216, K217, K217, "TinyExpressionP4::TypeKeyword", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24814:24822:body/5/literal", false, true, "text", false, K355); + if (s.bypassCapture) { Match r = f.matched ? e1032M(s, f) : e1032C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e1032M : TinyExpressionP4Parser::e1032C, K1234, K1206, K236, K237, K237, "TinyExpressionP4::BooleanMatchExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24618:24629:body/3/0/1/ruleRef", false, false, "node", false, K197); } private static Match e1032C(Session s, Frame f) { - return s.literal(f, "String", true, false, K356); + return parseBooleanCase_118(s, f); } private static Match e1032M(Session s, Frame f) { - return s.literal(f, "String", true, false, K356); + return parseBooleanCase_118(s, f); } private static Match e1033(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e1033M(s, f) : e1033C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e1033M : TinyExpressionP4Parser::e1033C, K216, K216, K216, K217, K217, "TinyExpressionP4::TypeKeyword", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24825:24834:body/6/literal", false, true, "text", false, K53); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e1033M : TinyExpressionP4Parser::e1033C, K227, K227, K227, K228, K228, "TinyExpressionP4::BooleanMatchExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24649:24652:body/4/literal", false, true, "text", false, K442); } private static Match e1033C(Session s, Frame f) { - return s.literal(f, "boolean", true, false, K357); + return s.literal(f, ",", true, false, K445); } private static Match e1033M(Session s, Frame f) { - return s.literal(f, "boolean", true, false, K357); + return s.literal(f, ",", true, false, K445); } private static Match e1034(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e1034M(s, f) : e1034C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e1034M : TinyExpressionP4Parser::e1034C, K216, K216, K216, K217, K217, "TinyExpressionP4::TypeKeyword", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24837:24846:body/7/literal", false, true, "text", false, K358); + if (s.bypassCapture) { Match r = f.matched ? e1034M(s, f) : e1034C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e1034M : TinyExpressionP4Parser::e1034C, K1235, K1208, K236, K237, K237, "TinyExpressionP4::BooleanMatchExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24653:24671:body/5/ruleRef", false, false, "node", false, K199); } private static Match e1034C(Session s, Frame f) { - return s.literal(f, "Boolean", true, false, K359); + return parseBooleanDefaultCase_119(s, f); } private static Match e1034M(Session s, Frame f) { - return s.literal(f, "Boolean", true, false, K359); + return parseBooleanDefaultCase_119(s, f); } private static Match e1035(Session s, Frame f) { if (s.bypassWrap) { Match r = f.matched ? e1035M(s, f) : e1035C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e1035M : TinyExpressionP4Parser::e1035C, K216, K216, K216, K217, K217, "TinyExpressionP4::TypeKeyword", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24849:24857:body/8/literal", false, true, "text", false, K54); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e1035M : TinyExpressionP4Parser::e1035C, K227, K227, K227, K228, K228, "TinyExpressionP4::BooleanMatchExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24689:24692:body/6/literal", false, true, "text", false, K458); } private static Match e1035C(Session s, Frame f) { - return s.literal(f, "object", true, false, K360); + return s.literal(f, "}", true, false, K459); } private static Match e1035M(Session s, Frame f) { - return s.literal(f, "object", true, false, K360); + return s.literal(f, "}", true, false, K459); } private static Match e1036(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e1036M(s, f) : e1036C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e1036M : TinyExpressionP4Parser::e1036C, K216, K216, K216, K217, K217, "TinyExpressionP4::TypeKeyword", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24860:24868:body/9/literal", false, true, "text", false, K361); + f.reset = false; + if (s.bypassWrap) { Match r = f.matched ? e1036M(s, f) : e1036C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e1036M : TinyExpressionP4Parser::e1036C, K227, K227, K227, K228, K228, "TinyExpressionP4::BooleanCase", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24769:24819:body/seq", false, false, "node", true, K4); } private static Match e1036C(Session s, Frame f) { - return s.literal(f, "Object", true, false, K362); + return s.sequence(f, K1236, K255); } private static Match e1036M(Session s, Frame f) { - return s.literal(f, "Object", true, false, K362); + return s.sequence(f, K1236, K255); } private static Match e1037(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e1037M(s, f) : e1037C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e1037M : TinyExpressionP4Parser::e1037C, K216, K216, K216, K217, K217, "TinyExpressionP4::Expression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25187:25363:body/choice", false, false, "node", false, K4); + if (s.bypassCapture) { Match r = f.matched ? e1037M(s, f) : e1037C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e1037M : TinyExpressionP4Parser::e1037C, K1237, K564, K236, K237, K237, "TinyExpressionP4::BooleanCase", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24769:24786:body/0/ruleRef", false, false, "node", false, K238); } private static Match e1037C(Session s, Frame f) { - return s.choice(f,K1214,false,null,false,K1213); + return parseBooleanExpression_94(s, f); } private static Match e1037M(Session s, Frame f) { - return s.choice(f,K1214,false,null,false,K1213); + return parseBooleanExpression_94(s, f); } private static Match e1038(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e1038M(s, f) : e1038C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e1038M : TinyExpressionP4Parser::e1038C, K1215, K323, K225, K226, K226, "TinyExpressionP4::Expression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25187:25203:body/0/ruleRef", false, false, "node", false, K227); + if (s.bypassWrap) { Match r = f.matched ? e1038M(s, f) : e1038C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e1038M : TinyExpressionP4Parser::e1038C, K227, K227, K227, K228, K228, "TinyExpressionP4::BooleanCase", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24798:24802:body/1/literal", false, true, "text", false, K197); } private static Match e1038C(Session s, Frame f) { - return parseNumberExpression_40(s, f); + return s.literal(f, "->", true, false, K1211); } private static Match e1038M(Session s, Frame f) { - return parseNumberExpression_40(s, f); + return s.literal(f, "->", true, false, K1211); } private static Match e1039(Session s, Frame f) { if (s.bypassCapture) { Match r = f.matched ? e1039M(s, f) : e1039C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e1039M : TinyExpressionP4Parser::e1039C, K1216, K323, K225, K226, K226, "TinyExpressionP4::Expression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25217:25234:body/1/ruleRef", false, false, "node", false, K227); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e1039M : TinyExpressionP4Parser::e1039C, K1238, K363, K236, K237, K237, "TinyExpressionP4::BooleanCase", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24803:24819:body/2/ruleRef", false, false, "node", false, K238); } private static Match e1039C(Session s, Frame f) { - return parseBooleanExpression_94(s, f); + return parseBooleanCaseValue_120(s, f); } private static Match e1039M(Session s, Frame f) { - return parseBooleanExpression_94(s, f); + return parseBooleanCaseValue_120(s, f); } private static Match e1040(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e1040M(s, f) : e1040C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e1040M : TinyExpressionP4Parser::e1040C, K1217, K323, K225, K226, K226, "TinyExpressionP4::Expression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25248:25264:body/2/ruleRef", false, false, "node", false, K227); + f.reset = false; + if (s.bypassWrap) { Match r = f.matched ? e1040M(s, f) : e1040C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e1040M : TinyExpressionP4Parser::e1040C, K227, K227, K227, K228, K228, "TinyExpressionP4::BooleanDefaultCase", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24905:24936:body/seq", false, false, "node", false, K4); } private static Match e1040C(Session s, Frame f) { - return parseStringExpression_89(s, f); + return s.sequence(f, K1239, K255); } private static Match e1040M(Session s, Frame f) { - return parseStringExpression_89(s, f); + return s.sequence(f, K1239, K255); } private static Match e1041(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e1041M(s, f) : e1041C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e1041M : TinyExpressionP4Parser::e1041C, K1218, K323, K225, K226, K226, "TinyExpressionP4::Expression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25278:25294:body/3/ruleRef", false, false, "node", false, K227); + if (s.bypassWrap) { Match r = f.matched ? e1041M(s, f) : e1041C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e1041M : TinyExpressionP4Parser::e1041C, K227, K227, K227, K228, K228, "TinyExpressionP4::BooleanDefaultCase", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24905:24914:body/0/literal", false, true, "text", false, K1214); } private static Match e1041C(Session s, Frame f) { - return parseObjectExpression_105(s, f); + return s.literal(f, "default", true, false, K1215); } private static Match e1041M(Session s, Frame f) { - return parseObjectExpression_105(s, f); + return s.literal(f, "default", true, false, K1215); } private static Match e1042(Session s, Frame f) { - if (s.bypassCapture) { Match r = f.matched ? e1042M(s, f) : e1042C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e1042M : TinyExpressionP4Parser::e1042C, K1219, K323, K225, K226, K226, "TinyExpressionP4::Expression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25308:25324:body/4/ruleRef", false, false, "node", false, K161); + if (s.bypassWrap) { Match r = f.matched ? e1042M(s, f) : e1042C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e1042M : TinyExpressionP4Parser::e1042C, K227, K227, K227, K228, K228, "TinyExpressionP4::BooleanDefaultCase", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24915:24919:body/1/literal", false, true, "text", false, K197); } private static Match e1042C(Session s, Frame f) { - return parseMethodInvocation_36(s, f); + return s.literal(f, "->", true, false, K1211); } private static Match e1042M(Session s, Frame f) { - return parseMethodInvocation_36(s, f); + return s.literal(f, "->", true, false, K1211); } private static Match e1043(Session s, Frame f) { - f.reset = false; - if (s.bypassWrap) { Match r = f.matched ? e1043M(s, f) : e1043C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e1043M : TinyExpressionP4Parser::e1043C, K216, K216, K216, K217, K217, "TinyExpressionP4::Expression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25338:25363:body/5/seq", false, false, "node", false, K161); + if (s.bypassCapture) { Match r = f.matched ? e1043M(s, f) : e1043C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e1043M : TinyExpressionP4Parser::e1043C, K1240, K363, K236, K237, K237, "TinyExpressionP4::BooleanDefaultCase", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24920:24936:body/2/ruleRef", false, false, "node", false, K238); } private static Match e1043C(Session s, Frame f) { - return s.sequence(f, K1220, K251); + return parseBooleanCaseValue_120(s, f); } private static Match e1043M(Session s, Frame f) { - return s.sequence(f, K1220, K251); + return parseBooleanCaseValue_120(s, f); } private static Match e1044(Session s, Frame f) { - if (s.bypassWrap) { Match r = f.matched ? e1044M(s, f) : e1044C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e1044M : TinyExpressionP4Parser::e1044C, K216, K216, K216, K217, K217, "TinyExpressionP4::Expression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25338:25341:body/5/0/literal", false, true, "text", false, K399); + f.reset = false; + if (s.bypassWrap) { Match r = f.matched ? e1044M(s, f) : e1044C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e1044M : TinyExpressionP4Parser::e1044C, K227, K227, K227, K228, K228, "TinyExpressionP4::BooleanCaseValue", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25018:25035:body/seq", false, false, "node", false, K4); } private static Match e1044C(Session s, Frame f) { - return s.literal(f, "(", true, false, K400); + return s.sequence(f, K1241, K280); } private static Match e1044M(Session s, Frame f) { - return s.literal(f, "(", true, false, K400); + return s.sequence(f, K1241, K280); } private static Match e1045(Session s, Frame f) { if (s.bypassCapture) { Match r = f.matched ? e1045M(s, f) : e1045C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e1045M : TinyExpressionP4Parser::e1045C, K1221, K323, K225, K226, K226, "TinyExpressionP4::Expression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25342:25352:body/5/1/ruleRef", false, false, "node", false, K227); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e1045M : TinyExpressionP4Parser::e1045C, K1242, K363, K236, K237, K237, "TinyExpressionP4::BooleanCaseValue", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25018:25035:body/0/ruleRef", false, false, "node", false, K238); } private static Match e1045C(Session s, Frame f) { - return parseExpression_123(s, f); + return parseBooleanExpression_94(s, f); } private static Match e1045M(Session s, Frame f) { - return parseExpression_123(s, f); + return parseBooleanExpression_94(s, f); } private static Match e1046(Session s, Frame f) { + f.reset = false; if (s.bypassWrap) { Match r = f.matched ? e1046M(s, f) : e1046C(s, f); s.progress(f); return r; } - return s.capture(f, f.matched ? TinyExpressionP4Parser::e1046M : TinyExpressionP4Parser::e1046C, K216, K216, K216, K217, K217, "TinyExpressionP4::Expression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25360:25363:body/5/2/literal", false, true, "text", false, K401); + return s.capture(f, f.matched ? TinyExpressionP4Parser::e1046M : TinyExpressionP4Parser::e1046C, K227, K227, K227, K228, K228, "TinyExpressionP4::VariableRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25248:25299:body/seq", false, false, "text", false, K4); } private static Match e1046C(Session s, Frame f) { - return s.literal(f, ")", true, false, K402); + return s.sequence(f, K1243, K255); } private static Match e1046M(Session s, Frame f) { - return s.literal(f, ")", true, false, K402); + return s.sequence(f, K1243, K255); + } + private static Match e1047(Session s, Frame f) { + if (s.bypassWrap) { Match r = f.matched ? e1047M(s, f) : e1047C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e1047M : TinyExpressionP4Parser::e1047C, K227, K227, K227, K228, K228, "TinyExpressionP4::VariableRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25248:25251:body/0/literal", false, true, "text", false, K50); + } + private static Match e1047C(Session s, Frame f) { + return s.literal(f, "$", true, false, K352); + } + private static Match e1047M(Session s, Frame f) { + return s.literal(f, "$", true, false, K352); + } + private static Match e1048(Session s, Frame f) { + return s.capture(f, f.matched ? TinyExpressionP4Parser::e1048M : TinyExpressionP4Parser::e1048C, K1244, K517, K236, K237, K355, "TinyExpressionP4::VariableRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25252:25262:body/1/tokenRef", false, true, "text", false, K314); + } + private static Match e1048C(Session s, Frame f) { + return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K315,K316); + } + private static Match e1048M(Session s, Frame f) { + return org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.parse(s,f,K315,K316); + } + private static Match e1049(Session s, Frame f) { + if (s.bypassWrap) { Match r = f.matched ? e1049M(s, f) : e1049C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e1049M : TinyExpressionP4Parser::e1049C, K227, K227, K227, K228, K228, "TinyExpressionP4::VariableRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25269:25299:body/2/optional", true, false, "text", false, K356); + } + private static Match e1049C(Session s, Frame f) { + return s.optional(f, TinyExpressionP4Parser::e1050); + } + private static Match e1049M(Session s, Frame f) { + return s.optional(f, TinyExpressionP4Parser::e1050); + } + private static Match e1050(Session s, Frame f) { + f.reset = false; + if (s.bypassWrap) { Match r = f.matched ? e1050M(s, f) : e1050C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e1050M : TinyExpressionP4Parser::e1050C, K227, K227, K227, K228, K228, "TinyExpressionP4::VariableRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25271:25291:body/2/0/seq", false, false, "text", false, K317); + } + private static Match e1050C(Session s, Frame f) { + return s.sequence(f, K1245, K309); + } + private static Match e1050M(Session s, Frame f) { + return s.sequence(f, K1245, K309); + } + private static Match e1051(Session s, Frame f) { + if (s.bypassWrap) { Match r = f.matched ? e1051M(s, f) : e1051C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e1051M : TinyExpressionP4Parser::e1051C, K227, K227, K227, K228, K228, "TinyExpressionP4::VariableRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25271:25279:body/2/0/0/optional", true, false, "text", false, K317); + } + private static Match e1051C(Session s, Frame f) { + return s.optional(f, TinyExpressionP4Parser::e1052); + } + private static Match e1051M(Session s, Frame f) { + return s.optional(f, TinyExpressionP4Parser::e1052); + } + private static Match e1052(Session s, Frame f) { + if (s.bypassWrap) { Match r = f.matched ? e1052M(s, f) : e1052C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e1052M : TinyExpressionP4Parser::e1052C, K227, K227, K227, K228, K228, "TinyExpressionP4::VariableRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25273:25277:body/2/0/0/0/literal", false, true, "text", false, K317); + } + private static Match e1052C(Session s, Frame f) { + return s.literal(f, "as", true, false, K318); + } + private static Match e1052M(Session s, Frame f) { + return s.literal(f, "as", true, false, K318); + } + private static Match e1053(Session s, Frame f) { + if (s.bypassCapture) { Match r = f.matched ? e1053M(s, f) : e1053C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e1053M : TinyExpressionP4Parser::e1053C, K1246, K482, K236, K237, K237, "TinyExpressionP4::VariableRef", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25280:25291:body/2/0/1/ruleRef", false, false, "text", false, K214); + } + private static Match e1053C(Session s, Frame f) { + return parseTypeKeyword_122(s, f); + } + private static Match e1053M(Session s, Frame f) { + return parseTypeKeyword_122(s, f); + } + private static Match e1054(Session s, Frame f) { + if (s.bypassWrap) { Match r = f.matched ? e1054M(s, f) : e1054C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e1054M : TinyExpressionP4Parser::e1054C, K227, K227, K227, K228, K228, "TinyExpressionP4::TypeKeyword", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25321:25432:body/choice", false, false, "text", false, K4); + } + private static Match e1054C(Session s, Frame f) { + return s.choice(f,K1247,false,null,false); + } + private static Match e1054M(Session s, Frame f) { + return s.choice(f,K1247,false,null,false); + } + private static Match e1055(Session s, Frame f) { + if (s.bypassWrap) { Match r = f.matched ? e1055M(s, f) : e1055C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e1055M : TinyExpressionP4Parser::e1055C, K227, K227, K227, K228, K228, "TinyExpressionP4::TypeKeyword", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25321:25329:body/0/literal", false, true, "text", false, K390); + } + private static Match e1055C(Session s, Frame f) { + return s.literal(f, "number", true, false, K391); + } + private static Match e1055M(Session s, Frame f) { + return s.literal(f, "number", true, false, K391); + } + private static Match e1056(Session s, Frame f) { + if (s.bypassWrap) { Match r = f.matched ? e1056M(s, f) : e1056C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e1056M : TinyExpressionP4Parser::e1056C, K227, K227, K227, K228, K228, "TinyExpressionP4::TypeKeyword", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25332:25340:body/1/literal", false, true, "text", false, K392); + } + private static Match e1056C(Session s, Frame f) { + return s.literal(f, "Number", true, false, K393); + } + private static Match e1056M(Session s, Frame f) { + return s.literal(f, "Number", true, false, K393); + } + private static Match e1057(Session s, Frame f) { + if (s.bypassWrap) { Match r = f.matched ? e1057M(s, f) : e1057C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e1057M : TinyExpressionP4Parser::e1057C, K227, K227, K227, K228, K228, "TinyExpressionP4::TypeKeyword", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25343:25350:body/2/literal", false, true, "text", false, K406); + } + private static Match e1057C(Session s, Frame f) { + return s.literal(f, "float", true, false, K407); + } + private static Match e1057M(Session s, Frame f) { + return s.literal(f, "float", true, false, K407); + } + private static Match e1058(Session s, Frame f) { + if (s.bypassWrap) { Match r = f.matched ? e1058M(s, f) : e1058C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e1058M : TinyExpressionP4Parser::e1058C, K227, K227, K227, K228, K228, "TinyExpressionP4::TypeKeyword", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25353:25360:body/3/literal", false, true, "text", false, K408); + } + private static Match e1058C(Session s, Frame f) { + return s.literal(f, "Float", true, false, K409); + } + private static Match e1058M(Session s, Frame f) { + return s.literal(f, "Float", true, false, K409); + } + private static Match e1059(Session s, Frame f) { + if (s.bypassWrap) { Match r = f.matched ? e1059M(s, f) : e1059C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e1059M : TinyExpressionP4Parser::e1059C, K227, K227, K227, K228, K228, "TinyExpressionP4::TypeKeyword", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25367:25375:body/4/literal", false, true, "text", false, K52); + } + private static Match e1059C(Session s, Frame f) { + return s.literal(f, "string", true, false, K394); + } + private static Match e1059M(Session s, Frame f) { + return s.literal(f, "string", true, false, K394); + } + private static Match e1060(Session s, Frame f) { + if (s.bypassWrap) { Match r = f.matched ? e1060M(s, f) : e1060C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e1060M : TinyExpressionP4Parser::e1060C, K227, K227, K227, K228, K228, "TinyExpressionP4::TypeKeyword", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25378:25386:body/5/literal", false, true, "text", false, K395); + } + private static Match e1060C(Session s, Frame f) { + return s.literal(f, "String", true, false, K396); + } + private static Match e1060M(Session s, Frame f) { + return s.literal(f, "String", true, false, K396); + } + private static Match e1061(Session s, Frame f) { + if (s.bypassWrap) { Match r = f.matched ? e1061M(s, f) : e1061C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e1061M : TinyExpressionP4Parser::e1061C, K227, K227, K227, K228, K228, "TinyExpressionP4::TypeKeyword", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25389:25398:body/6/literal", false, true, "text", false, K53); + } + private static Match e1061C(Session s, Frame f) { + return s.literal(f, "boolean", true, false, K397); + } + private static Match e1061M(Session s, Frame f) { + return s.literal(f, "boolean", true, false, K397); + } + private static Match e1062(Session s, Frame f) { + if (s.bypassWrap) { Match r = f.matched ? e1062M(s, f) : e1062C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e1062M : TinyExpressionP4Parser::e1062C, K227, K227, K227, K228, K228, "TinyExpressionP4::TypeKeyword", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25401:25410:body/7/literal", false, true, "text", false, K398); + } + private static Match e1062C(Session s, Frame f) { + return s.literal(f, "Boolean", true, false, K399); + } + private static Match e1062M(Session s, Frame f) { + return s.literal(f, "Boolean", true, false, K399); + } + private static Match e1063(Session s, Frame f) { + if (s.bypassWrap) { Match r = f.matched ? e1063M(s, f) : e1063C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e1063M : TinyExpressionP4Parser::e1063C, K227, K227, K227, K228, K228, "TinyExpressionP4::TypeKeyword", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25413:25421:body/8/literal", false, true, "text", false, K54); + } + private static Match e1063C(Session s, Frame f) { + return s.literal(f, "object", true, false, K400); + } + private static Match e1063M(Session s, Frame f) { + return s.literal(f, "object", true, false, K400); + } + private static Match e1064(Session s, Frame f) { + if (s.bypassWrap) { Match r = f.matched ? e1064M(s, f) : e1064C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e1064M : TinyExpressionP4Parser::e1064C, K227, K227, K227, K228, K228, "TinyExpressionP4::TypeKeyword", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25424:25432:body/9/literal", false, true, "text", false, K401); + } + private static Match e1064C(Session s, Frame f) { + return s.literal(f, "Object", true, false, K402); + } + private static Match e1064M(Session s, Frame f) { + return s.literal(f, "Object", true, false, K402); + } + private static Match e1065(Session s, Frame f) { + if (s.bypassWrap) { Match r = f.matched ? e1065M(s, f) : e1065C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e1065M : TinyExpressionP4Parser::e1065C, K227, K227, K227, K228, K228, "TinyExpressionP4::Expression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25749:25925:body/choice", false, false, "node", false, K4); + } + private static Match e1065C(Session s, Frame f) { + return s.choice(f,K1249,false,null,false,K1248); + } + private static Match e1065M(Session s, Frame f) { + return s.choice(f,K1249,false,null,false,K1248); + } + private static Match e1066(Session s, Frame f) { + if (s.bypassCapture) { Match r = f.matched ? e1066M(s, f) : e1066C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e1066M : TinyExpressionP4Parser::e1066C, K1250, K363, K236, K237, K237, "TinyExpressionP4::Expression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25749:25765:body/0/ruleRef", false, false, "node", false, K238); + } + private static Match e1066C(Session s, Frame f) { + return parseNumberExpression_40(s, f); + } + private static Match e1066M(Session s, Frame f) { + return parseNumberExpression_40(s, f); + } + private static Match e1067(Session s, Frame f) { + if (s.bypassCapture) { Match r = f.matched ? e1067M(s, f) : e1067C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e1067M : TinyExpressionP4Parser::e1067C, K1251, K363, K236, K237, K237, "TinyExpressionP4::Expression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25779:25796:body/1/ruleRef", false, false, "node", false, K238); + } + private static Match e1067C(Session s, Frame f) { + return parseBooleanExpression_94(s, f); + } + private static Match e1067M(Session s, Frame f) { + return parseBooleanExpression_94(s, f); + } + private static Match e1068(Session s, Frame f) { + if (s.bypassCapture) { Match r = f.matched ? e1068M(s, f) : e1068C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e1068M : TinyExpressionP4Parser::e1068C, K1252, K363, K236, K237, K237, "TinyExpressionP4::Expression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25810:25826:body/2/ruleRef", false, false, "node", false, K238); + } + private static Match e1068C(Session s, Frame f) { + return parseStringExpression_89(s, f); + } + private static Match e1068M(Session s, Frame f) { + return parseStringExpression_89(s, f); + } + private static Match e1069(Session s, Frame f) { + if (s.bypassCapture) { Match r = f.matched ? e1069M(s, f) : e1069C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e1069M : TinyExpressionP4Parser::e1069C, K1253, K363, K236, K237, K237, "TinyExpressionP4::Expression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25840:25856:body/3/ruleRef", false, false, "node", false, K238); + } + private static Match e1069C(Session s, Frame f) { + return parseObjectExpression_105(s, f); + } + private static Match e1069M(Session s, Frame f) { + return parseObjectExpression_105(s, f); + } + private static Match e1070(Session s, Frame f) { + if (s.bypassCapture) { Match r = f.matched ? e1070M(s, f) : e1070C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e1070M : TinyExpressionP4Parser::e1070C, K1254, K363, K236, K237, K237, "TinyExpressionP4::Expression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25870:25886:body/4/ruleRef", false, false, "node", false, K161); + } + private static Match e1070C(Session s, Frame f) { + return parseMethodInvocation_36(s, f); + } + private static Match e1070M(Session s, Frame f) { + return parseMethodInvocation_36(s, f); + } + private static Match e1071(Session s, Frame f) { + f.reset = false; + if (s.bypassWrap) { Match r = f.matched ? e1071M(s, f) : e1071C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e1071M : TinyExpressionP4Parser::e1071C, K227, K227, K227, K228, K228, "TinyExpressionP4::Expression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25900:25925:body/5/seq", false, false, "node", false, K161); + } + private static Match e1071C(Session s, Frame f) { + return s.sequence(f, K1255, K255); + } + private static Match e1071M(Session s, Frame f) { + return s.sequence(f, K1255, K255); + } + private static Match e1072(Session s, Frame f) { + if (s.bypassWrap) { Match r = f.matched ? e1072M(s, f) : e1072C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e1072M : TinyExpressionP4Parser::e1072C, K227, K227, K227, K228, K228, "TinyExpressionP4::Expression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25900:25903:body/5/0/literal", false, true, "text", false, K437); + } + private static Match e1072C(Session s, Frame f) { + return s.literal(f, "(", true, false, K438); + } + private static Match e1072M(Session s, Frame f) { + return s.literal(f, "(", true, false, K438); + } + private static Match e1073(Session s, Frame f) { + if (s.bypassCapture) { Match r = f.matched ? e1073M(s, f) : e1073C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e1073M : TinyExpressionP4Parser::e1073C, K1256, K363, K236, K237, K237, "TinyExpressionP4::Expression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25904:25914:body/5/1/ruleRef", false, false, "node", false, K238); + } + private static Match e1073C(Session s, Frame f) { + return parseExpression_123(s, f); + } + private static Match e1073M(Session s, Frame f) { + return parseExpression_123(s, f); + } + private static Match e1074(Session s, Frame f) { + if (s.bypassWrap) { Match r = f.matched ? e1074M(s, f) : e1074C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e1074M : TinyExpressionP4Parser::e1074C, K227, K227, K227, K228, K228, "TinyExpressionP4::Expression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25922:25925:body/5/2/literal", false, true, "text", false, K439); + } + private static Match e1074C(Session s, Frame f) { + return s.literal(f, ")", true, false, K440); + } + private static Match e1074M(Session s, Frame f) { + return s.literal(f, ")", true, false, K440); + } + private static Match e1075(Session s, Frame f) { + f.reset = false; + if (s.bypassWrap) { Match r = f.matched ? e1075M(s, f) : e1075C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e1075M : TinyExpressionP4Parser::e1075C, K227, K227, K227, K228, K228, "TinyExpressionP4::NumberRootExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:26172:26188:body/seq", false, false, "node", false, K4); + } + private static Match e1075C(Session s, Frame f) { + return s.sequence(f, K1257, K280); + } + private static Match e1075M(Session s, Frame f) { + return s.sequence(f, K1257, K280); + } + private static Match e1076(Session s, Frame f) { + if (s.bypassCapture) { Match r = f.matched ? e1076M(s, f) : e1076C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e1076M : TinyExpressionP4Parser::e1076C, K1258, K363, K236, K237, K237, "TinyExpressionP4::NumberRootExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:26172:26188:body/0/ruleRef", false, false, "node", false, K238); + } + private static Match e1076C(Session s, Frame f) { + return parseNumberExpression_40(s, f); + } + private static Match e1076M(Session s, Frame f) { + return parseNumberExpression_40(s, f); + } + private static Match e1077(Session s, Frame f) { + f.reset = false; + if (s.bypassWrap) { Match r = f.matched ? e1077M(s, f) : e1077C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e1077M : TinyExpressionP4Parser::e1077C, K227, K227, K227, K228, K228, "TinyExpressionP4::BooleanRootExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:26270:26287:body/seq", false, false, "node", false, K4); + } + private static Match e1077C(Session s, Frame f) { + return s.sequence(f, K1259, K280); + } + private static Match e1077M(Session s, Frame f) { + return s.sequence(f, K1259, K280); + } + private static Match e1078(Session s, Frame f) { + if (s.bypassCapture) { Match r = f.matched ? e1078M(s, f) : e1078C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e1078M : TinyExpressionP4Parser::e1078C, K1260, K363, K236, K237, K237, "TinyExpressionP4::BooleanRootExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:26270:26287:body/0/ruleRef", false, false, "node", false, K238); + } + private static Match e1078C(Session s, Frame f) { + return parseBooleanExpression_94(s, f); + } + private static Match e1078M(Session s, Frame f) { + return parseBooleanExpression_94(s, f); + } + private static Match e1079(Session s, Frame f) { + f.reset = false; + if (s.bypassWrap) { Match r = f.matched ? e1079M(s, f) : e1079C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e1079M : TinyExpressionP4Parser::e1079C, K227, K227, K227, K228, K228, "TinyExpressionP4::StringRootExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:26368:26384:body/seq", false, false, "node", false, K4); + } + private static Match e1079C(Session s, Frame f) { + return s.sequence(f, K1261, K280); + } + private static Match e1079M(Session s, Frame f) { + return s.sequence(f, K1261, K280); + } + private static Match e1080(Session s, Frame f) { + if (s.bypassCapture) { Match r = f.matched ? e1080M(s, f) : e1080C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e1080M : TinyExpressionP4Parser::e1080C, K1262, K363, K236, K237, K237, "TinyExpressionP4::StringRootExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:26368:26384:body/0/ruleRef", false, false, "node", false, K238); + } + private static Match e1080C(Session s, Frame f) { + return parseStringExpression_89(s, f); + } + private static Match e1080M(Session s, Frame f) { + return parseStringExpression_89(s, f); + } + private static Match e1081(Session s, Frame f) { + f.reset = false; + if (s.bypassWrap) { Match r = f.matched ? e1081M(s, f) : e1081C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e1081M : TinyExpressionP4Parser::e1081C, K227, K227, K227, K228, K228, "TinyExpressionP4::ObjectRootExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:26465:26481:body/seq", false, false, "node", false, K4); + } + private static Match e1081C(Session s, Frame f) { + return s.sequence(f, K1263, K280); + } + private static Match e1081M(Session s, Frame f) { + return s.sequence(f, K1263, K280); + } + private static Match e1082(Session s, Frame f) { + if (s.bypassCapture) { Match r = f.matched ? e1082M(s, f) : e1082C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e1082M : TinyExpressionP4Parser::e1082C, K1264, K363, K236, K237, K237, "TinyExpressionP4::ObjectRootExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:26465:26481:body/0/ruleRef", false, false, "node", false, K238); + } + private static Match e1082C(Session s, Frame f) { + return parseObjectExpression_105(s, f); + } + private static Match e1082M(Session s, Frame f) { + return parseObjectExpression_105(s, f); + } + private static Match e1083(Session s, Frame f) { + f.reset = false; + if (s.bypassWrap) { Match r = f.matched ? e1083M(s, f) : e1083C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e1083M : TinyExpressionP4Parser::e1083C, K227, K227, K227, K228, K228, "TinyExpressionP4::MethodRootExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:26562:26578:body/seq", false, false, "node", false, K4); + } + private static Match e1083C(Session s, Frame f) { + return s.sequence(f, K1265, K280); + } + private static Match e1083M(Session s, Frame f) { + return s.sequence(f, K1265, K280); + } + private static Match e1084(Session s, Frame f) { + if (s.bypassCapture) { Match r = f.matched ? e1084M(s, f) : e1084C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e1084M : TinyExpressionP4Parser::e1084C, K1266, K363, K236, K237, K237, "TinyExpressionP4::MethodRootExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:26562:26578:body/0/ruleRef", false, false, "node", false, K161); + } + private static Match e1084C(Session s, Frame f) { + return parseMethodInvocation_36(s, f); + } + private static Match e1084M(Session s, Frame f) { + return parseMethodInvocation_36(s, f); + } + private static Match e1085(Session s, Frame f) { + f.reset = false; + if (s.bypassWrap) { Match r = f.matched ? e1085M(s, f) : e1085C(s, f); s.progress(f); return s.tree ? s.project(r, false) : r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e1085M : TinyExpressionP4Parser::e1085C, K227, K227, K227, K228, K228, "TinyExpressionP4::ParenthesizedRootExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:26666:26691:body/seq", false, false, "node", false, K4); + } + private static Match e1085C(Session s, Frame f) { + return s.sequence(f, K1267, K255); + } + private static Match e1085M(Session s, Frame f) { + return s.sequence(f, K1267, K255); + } + private static Match e1086(Session s, Frame f) { + if (s.bypassWrap) { Match r = f.matched ? e1086M(s, f) : e1086C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e1086M : TinyExpressionP4Parser::e1086C, K227, K227, K227, K228, K228, "TinyExpressionP4::ParenthesizedRootExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:26666:26669:body/0/literal", false, true, "text", false, K437); + } + private static Match e1086C(Session s, Frame f) { + return s.literal(f, "(", true, false, K438); + } + private static Match e1086M(Session s, Frame f) { + return s.literal(f, "(", true, false, K438); + } + private static Match e1087(Session s, Frame f) { + if (s.bypassCapture) { Match r = f.matched ? e1087M(s, f) : e1087C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e1087M : TinyExpressionP4Parser::e1087C, K1268, K363, K236, K237, K237, "TinyExpressionP4::ParenthesizedRootExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:26670:26680:body/1/ruleRef", false, false, "node", false, K238); + } + private static Match e1087C(Session s, Frame f) { + return parseExpression_123(s, f); + } + private static Match e1087M(Session s, Frame f) { + return parseExpression_123(s, f); + } + private static Match e1088(Session s, Frame f) { + if (s.bypassWrap) { Match r = f.matched ? e1088M(s, f) : e1088C(s, f); s.progress(f); return r; } + return s.capture(f, f.matched ? TinyExpressionP4Parser::e1088M : TinyExpressionP4Parser::e1088C, K227, K227, K227, K228, K228, "TinyExpressionP4::ParenthesizedRootExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:26688:26691:body/2/literal", false, true, "text", false, K439); + } + private static Match e1088C(Session s, Frame f) { + return s.literal(f, ")", true, false, K440); + } + private static Match e1088M(Session s, Frame f) { + return s.literal(f, ")", true, false, K440); } - private static final String[] K0 = new String[]{"Formula","CodeBlock","ImportDeclaration","ClassName","VariableDeclaration","NumberVariableDeclaration","StringVariableDeclaration","BooleanVariableDeclaration","ObjectVariableDeclaration","TypeHint","NumberTypeHint","StringTypeHint","BooleanTypeHint","ObjectTypeHint","OnlyIfAbsent","Description","Annotation","AnnotationParameters","AnnotationParameter","MethodDeclaration","NumberMethodDeclaration","StringMethodDeclaration","BooleanMethodDeclaration","ObjectMethodDeclaration","MethodParameters","MethodParameter","NumberReturnType","StringReturnType","BooleanReturnType","ObjectReturnType","ReturnType","ExternalBooleanInvocation","ExternalNumberInvocation","ExternalStringInvocation","ExternalObjectInvocation","MethodInvocationHeader","MethodInvocation","ArgumentTernary","ArgumentExpression","Arguments","NumberExpression","NumberTerm","AddOp","MulOp","MathFunction","SinFunction","CosFunction","TanFunction","SqrtFunction","MinFunction","MaxFunction","RandomFunction","AbsFunction","RoundFunction","CeilFunction","FloorFunction","PowFunction","LogFunction","ExpFunction","ToNumFunction","NumberFactor","ToUpperCaseFunction","ToLowerCaseFunction","TrimFunction","LengthFunction","LenFunction","ToUpperCaseDotMethod","ToLowerCaseDotMethod","TrimDotMethod","LengthDotMethod","StartsWithFunction","EndsWithFunction","ContainsFunction","InMethod","StartsWithDotMethod","EndsWithDotMethod","ContainsDotMethod","StringPredicateReceiver","IsPresentFunction","InTimeRangeFunction","InDayTimeRangeFunction","DayOfWeek","SliceBaseReceiver","SliceStartIndex","SliceEndIndex","SliceStepIndex","SliceBaseExpression","SliceNestedExpression","SliceExpression","StringExpression","ParenthesizedStringExpression","StringTerm","StringCastVariable","StringTypedVariable","BooleanExpression","BooleanAndExpression","BooleanXorExpression","NotExpression","BooleanComparable","BooleanEqualityExpression","BooleanFactor","StringComparisonExpression","EqualityOp","ComparisonExpression","CompareOp","ObjectExpression","IfExpression","BranchExpression","TernaryExpression","NumberMatchExpression","NumberCase","NumberDefaultCase","NumberCaseValue","StringMatchExpression","StringCase","StringDefaultCase","StringCaseValue","BooleanMatchExpression","BooleanCase","BooleanDefaultCase","BooleanCaseValue","VariableRef","TypeKeyword","Expression"}; - private static final Map K1 = Map.ofEntries(Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24688:24698:body/1/tokenRef/capture/0","variable"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24716:24727:body/2/0/1/ruleRef/capture/0","variable")); - private static final Fields K2 = new Fields(new Field("imports",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1035:1052:body/1/0/ruleRef/capture/0"},"node","list"),new Field("declarations",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1066:1085:body/2/0/ruleRef/capture/0"},"mixed","list"),new Field("expression",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1121:1131:body/4/ruleRef/capture/0"},"node","scalar"),new Field("methods",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1146:1163:body/5/0/ruleRef/capture/0"},"mixed","list"),new Field("codeBlocks",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1009:1018:body/0/0/ruleRef/capture/0"},"node","list")); + private static final String[] K0 = new String[]{"Formula","CodeBlock","ImportDeclaration","ClassName","VariableDeclaration","NumberVariableDeclaration","StringVariableDeclaration","BooleanVariableDeclaration","ObjectVariableDeclaration","TypeHint","NumberTypeHint","StringTypeHint","BooleanTypeHint","ObjectTypeHint","OnlyIfAbsent","Description","Annotation","AnnotationParameters","AnnotationParameter","MethodDeclaration","NumberMethodDeclaration","StringMethodDeclaration","BooleanMethodDeclaration","ObjectMethodDeclaration","MethodParameters","MethodParameter","NumberReturnType","StringReturnType","BooleanReturnType","ObjectReturnType","ReturnType","ExternalBooleanInvocation","ExternalNumberInvocation","ExternalStringInvocation","ExternalObjectInvocation","MethodInvocationHeader","MethodInvocation","ArgumentTernary","ArgumentExpression","Arguments","NumberExpression","NumberTerm","AddOp","MulOp","MathFunction","SinFunction","CosFunction","TanFunction","SqrtFunction","MinFunction","MaxFunction","RandomFunction","AbsFunction","RoundFunction","CeilFunction","FloorFunction","PowFunction","LogFunction","ExpFunction","ToNumFunction","NumberFactor","ToUpperCaseFunction","ToLowerCaseFunction","TrimFunction","LengthFunction","LenFunction","ToUpperCaseDotMethod","ToLowerCaseDotMethod","TrimDotMethod","LengthDotMethod","StartsWithFunction","EndsWithFunction","ContainsFunction","InMethod","StartsWithDotMethod","EndsWithDotMethod","ContainsDotMethod","StringPredicateReceiver","IsPresentFunction","InTimeRangeFunction","InDayTimeRangeFunction","DayOfWeek","SliceBaseReceiver","SliceStartIndex","SliceEndIndex","SliceStepIndex","SliceBaseExpression","SliceNestedExpression","SliceExpression","StringExpression","ParenthesizedStringExpression","StringTerm","StringCastVariable","StringTypedVariable","BooleanExpression","BooleanAndExpression","BooleanXorExpression","NotExpression","BooleanComparable","BooleanEqualityExpression","BooleanFactor","StringComparisonExpression","EqualityOp","ComparisonExpression","CompareOp","ObjectExpression","IfExpression","BranchExpression","TernaryExpression","NumberMatchExpression","NumberCase","NumberDefaultCase","NumberCaseValue","StringMatchExpression","StringCase","StringDefaultCase","StringCaseValue","BooleanMatchExpression","BooleanCase","BooleanDefaultCase","BooleanCaseValue","VariableRef","TypeKeyword","Expression","NumberRootExpression","BooleanRootExpression","StringRootExpression","ObjectRootExpression","MethodRootExpression","ParenthesizedRootExpression"}; + private static final Map K1 = Map.ofEntries(Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25252:25262:body/1/tokenRef/capture/0","variable"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25280:25291:body/2/0/1/ruleRef/capture/0","variable")); + private static final Fields K2 = new Fields(new Field("imports",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1203:1220:body/1/0/ruleRef/capture/0"},"node","list"),new Field("declarations",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1234:1253:body/2/0/ruleRef/capture/0"},"mixed","list"),new Field("expression",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1295:1315:body/4/0/0/0/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1369:1390:body/4/0/1/0/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1444:1464:body/4/0/2/0/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1518:1538:body/4/0/3/0/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1592:1612:body/4/0/4/0/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1666:1693:body/4/0/5/0/ruleRef/capture/0"},"node","scalar"),new Field("methods",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1330:1347:body/4/0/0/1/0/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1405:1422:body/4/0/1/1/0/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1479:1496:body/4/0/2/1/0/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1553:1570:body/4/0/3/1/0/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1627:1644:body/4/0/4/1/0/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1708:1725:body/4/0/5/1/0/ruleRef/capture/0"},"mixed","list"),new Field("codeBlocks",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1177:1186:body/0/0/ruleRef/capture/0"},"node","list")); private static final Effect[] K3 = new Effect[]{new Effect("entry","enter",null,"Formula","lexical"),new Effect("successBeforeLeave","leave",null,"Formula","lexical")}; private static final Label[] K4 = new Label[]{}; private static final Label[] K5 = new Label[]{Label.of("FormulaParser")}; - private static final Fields K6 = new Fields(new Field("source",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1611:1662:body/0/group/capture/0"},"text","scalar")); + private static final Fields K6 = new Fields(new Field("source",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2175:2226:body/0/group/capture/0"},"text","scalar")); private static final Effect[] K7 = new Effect[]{}; private static final Label[] K8 = new Label[]{Label.of("CodeBlockParser")}; - private static final Fields K9 = new Fields(new Field("className",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2127:2136:body/1/ruleRef/capture/0"},"node","scalar"),new Field("method",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2154:2164:body/2/0/1/tokenRef/capture/0"},"text","optional"),new Field("alias",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2180:2190:body/4/tokenRef/capture/0"},"text","scalar")); + private static final Fields K9 = new Fields(new Field("className",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2691:2700:body/1/ruleRef/capture/0"},"node","scalar"),new Field("method",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2718:2728:body/2/0/1/tokenRef/capture/0"},"text","optional"),new Field("alias",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2744:2754:body/4/tokenRef/capture/0"},"text","scalar")); private static final Label[] K10 = new Label[]{Label.of("'import'"),Label.of("'as'"),Label.of("';'")}; - private static final Fields K11 = new Fields(new Field("head",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2272:2282:body/0/tokenRef/capture/0"},"text","scalar"),new Field("tail",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2295:2305:body/1/0/1/tokenRef/capture/0"},"text","list")); + private static final Fields K11 = new Fields(new Field("head",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2836:2846:body/0/tokenRef/capture/0"},"text","scalar"),new Field("tail",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2859:2869:body/1/0/1/tokenRef/capture/0"},"text","list")); private static final Label[] K12 = new Label[]{Label.of("ClassNameParser")}; private static final Fields K13 = Fields.NONE; private static final Label[] K14 = new Label[]{Label.of("'$'"),Label.of("';'")}; - private static final Fields K15 = new Fields(new Field("varName",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2790:2800:body/2/tokenRef/capture/0"},"text","scalar"),new Field("onlyIfAbsent",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2847:2859:body/4/0/1/0/ruleRef/capture/0"},"node","optional"),new Field("value",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2876:2892:body/4/0/2/ruleRef/capture/0"},"node","optional"),new Field("desc",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2908:2919:body/5/0/ruleRef/capture/0"},"text","optional")); - private static final Effect[] K16 = new Effect[]{new Effect("successAfterLeave","declare","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2790:2800:body/2/tokenRef/capture/0","varName","lexical")}; + private static final Fields K15 = new Fields(new Field("varName",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3354:3364:body/2/tokenRef/capture/0"},"text","scalar"),new Field("onlyIfAbsent",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3411:3423:body/4/0/1/0/ruleRef/capture/0"},"node","optional"),new Field("value",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3440:3456:body/4/0/2/ruleRef/capture/0"},"node","optional"),new Field("desc",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3472:3483:body/5/0/ruleRef/capture/0"},"text","optional")); + private static final Effect[] K16 = new Effect[]{new Effect("successAfterLeave","declare","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3354:3364:body/2/tokenRef/capture/0","varName","lexical")}; private static final Label[] K17 = new Label[]{Label.of("'variable'"),Label.of("'var'"),Label.of("'$'"),Label.of("';'")}; - private static final Fields K18 = new Fields(new Field("varName",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3139:3149:body/2/tokenRef/capture/0"},"text","scalar"),new Field("onlyIfAbsent",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3196:3208:body/4/0/1/0/ruleRef/capture/0"},"node","optional"),new Field("value",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3225:3241:body/4/0/2/ruleRef/capture/0"},"node","optional"),new Field("desc",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3257:3268:body/5/0/ruleRef/capture/0"},"text","optional")); - private static final Effect[] K19 = new Effect[]{new Effect("successAfterLeave","declare","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3139:3149:body/2/tokenRef/capture/0","varName","lexical")}; - private static final Fields K20 = new Fields(new Field("varName",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3490:3500:body/2/tokenRef/capture/0"},"text","scalar"),new Field("onlyIfAbsent",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3548:3560:body/4/0/1/0/ruleRef/capture/0"},"node","optional"),new Field("value",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3577:3594:body/4/0/2/ruleRef/capture/0"},"node","optional"),new Field("desc",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3610:3621:body/5/0/ruleRef/capture/0"},"text","optional")); - private static final Effect[] K21 = new Effect[]{new Effect("successAfterLeave","declare","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3490:3500:body/2/tokenRef/capture/0","varName","lexical")}; - private static final Fields K22 = new Fields(new Field("varName",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3841:3851:body/2/tokenRef/capture/0"},"text","scalar"),new Field("onlyIfAbsent",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3898:3910:body/4/0/1/0/ruleRef/capture/0"},"node","optional"),new Field("value",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3927:3943:body/4/0/2/ruleRef/capture/0"},"node","optional"),new Field("desc",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3959:3970:body/5/0/ruleRef/capture/0"},"text","optional")); - private static final Effect[] K23 = new Effect[]{new Effect("successAfterLeave","declare","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3841:3851:body/2/tokenRef/capture/0","varName","lexical")}; + private static final Fields K18 = new Fields(new Field("varName",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3703:3713:body/2/tokenRef/capture/0"},"text","scalar"),new Field("onlyIfAbsent",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3760:3772:body/4/0/1/0/ruleRef/capture/0"},"node","optional"),new Field("value",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3789:3805:body/4/0/2/ruleRef/capture/0"},"node","optional"),new Field("desc",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3821:3832:body/5/0/ruleRef/capture/0"},"text","optional")); + private static final Effect[] K19 = new Effect[]{new Effect("successAfterLeave","declare","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3703:3713:body/2/tokenRef/capture/0","varName","lexical")}; + private static final Fields K20 = new Fields(new Field("varName",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4054:4064:body/2/tokenRef/capture/0"},"text","scalar"),new Field("onlyIfAbsent",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4112:4124:body/4/0/1/0/ruleRef/capture/0"},"node","optional"),new Field("value",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4141:4158:body/4/0/2/ruleRef/capture/0"},"node","optional"),new Field("desc",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4174:4185:body/5/0/ruleRef/capture/0"},"text","optional")); + private static final Effect[] K21 = new Effect[]{new Effect("successAfterLeave","declare","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4054:4064:body/2/tokenRef/capture/0","varName","lexical")}; + private static final Fields K22 = new Fields(new Field("varName",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4405:4415:body/2/tokenRef/capture/0"},"text","scalar"),new Field("onlyIfAbsent",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4462:4474:body/4/0/1/0/ruleRef/capture/0"},"node","optional"),new Field("value",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4491:4507:body/4/0/2/ruleRef/capture/0"},"node","optional"),new Field("desc",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4523:4534:body/5/0/ruleRef/capture/0"},"text","optional")); + private static final Effect[] K23 = new Effect[]{new Effect("successAfterLeave","declare","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4405:4415:body/2/tokenRef/capture/0","varName","lexical")}; private static final Label[] K24 = new Label[]{Label.of("'as'"),Label.of("'number'"),Label.of("'Number'"),Label.of("'string'"),Label.of("'String'"),Label.of("'boolean'"),Label.of("'Boolean'"),Label.of("'object'"),Label.of("'Object'")}; private static final Label[] K25 = new Label[]{Label.of("'as'"),Label.of("'number'"),Label.of("'Number'"),Label.of("'float'"),Label.of("'Float'")}; private static final Label[] K26 = new Label[]{Label.of("'as'"),Label.of("'string'"),Label.of("'String'")}; @@ -12010,1192 +12502,1239 @@ private static Match e1046M(Session s, Frame f) { private static final Label[] K31 = new Label[]{Label.of("'@'"),Label.of("'('"),Label.of("')'")}; private static final Label[] K32 = new Label[]{Label.of("'='")}; private static final Label[] K33 = new Label[]{Label.of("'('"),Label.of("')'"),Label.of("'{'"),Label.of("'}'")}; - private static final Fields K34 = new Fields(new Field("methodName",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5019:5029:body/1/tokenRef/capture/0"},"text","scalar"),new Field("parameters",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5058:5074:body/3/0/ruleRef/capture/0"},"node","optional"),new Field("expression",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5111:5127:body/6/ruleRef/capture/0"},"node","scalar")); - private static final Effect[] K35 = new Effect[]{new Effect("entry","enter",null,"NumberMethodDeclaration","lexical"),new Effect("successBeforeLeave","leave",null,"NumberMethodDeclaration","lexical"),new Effect("successAfterLeave","declare","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5019:5029:body/1/tokenRef/capture/0","methodName","lexical")}; + private static final Fields K34 = new Fields(new Field("methodName",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5583:5593:body/1/tokenRef/capture/0"},"text","scalar"),new Field("parameters",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5622:5638:body/3/0/ruleRef/capture/0"},"node","optional"),new Field("expression",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5675:5691:body/6/ruleRef/capture/0"},"node","scalar")); + private static final Effect[] K35 = new Effect[]{new Effect("entry","enter",null,"NumberMethodDeclaration","lexical"),new Effect("successBeforeLeave","leave",null,"NumberMethodDeclaration","lexical"),new Effect("successAfterLeave","declare","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5583:5593:body/1/tokenRef/capture/0","methodName","lexical")}; private static final Label[] K36 = new Label[]{Label.of("'number'"),Label.of("'float'"),Label.of("'('"),Label.of("')'"),Label.of("'{'"),Label.of("'}'")}; - private static final Fields K37 = new Fields(new Field("methodName",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5345:5355:body/1/tokenRef/capture/0"},"text","scalar"),new Field("parameters",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5384:5400:body/3/0/ruleRef/capture/0"},"node","optional"),new Field("expression",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5437:5453:body/6/ruleRef/capture/0"},"node","scalar")); - private static final Effect[] K38 = new Effect[]{new Effect("entry","enter",null,"StringMethodDeclaration","lexical"),new Effect("successBeforeLeave","leave",null,"StringMethodDeclaration","lexical"),new Effect("successAfterLeave","declare","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5345:5355:body/1/tokenRef/capture/0","methodName","lexical")}; + private static final Fields K37 = new Fields(new Field("methodName",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5909:5919:body/1/tokenRef/capture/0"},"text","scalar"),new Field("parameters",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5948:5964:body/3/0/ruleRef/capture/0"},"node","optional"),new Field("expression",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6001:6017:body/6/ruleRef/capture/0"},"node","scalar")); + private static final Effect[] K38 = new Effect[]{new Effect("entry","enter",null,"StringMethodDeclaration","lexical"),new Effect("successBeforeLeave","leave",null,"StringMethodDeclaration","lexical"),new Effect("successAfterLeave","declare","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5909:5919:body/1/tokenRef/capture/0","methodName","lexical")}; private static final Label[] K39 = new Label[]{Label.of("'string'"),Label.of("'('"),Label.of("')'"),Label.of("'{'"),Label.of("'}'")}; - private static final Fields K40 = new Fields(new Field("methodName",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5674:5684:body/1/tokenRef/capture/0"},"text","scalar"),new Field("parameters",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5713:5729:body/3/0/ruleRef/capture/0"},"node","optional"),new Field("expression",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5766:5783:body/6/ruleRef/capture/0"},"node","scalar")); - private static final Effect[] K41 = new Effect[]{new Effect("entry","enter",null,"BooleanMethodDeclaration","lexical"),new Effect("successBeforeLeave","leave",null,"BooleanMethodDeclaration","lexical"),new Effect("successAfterLeave","declare","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5674:5684:body/1/tokenRef/capture/0","methodName","lexical")}; + private static final Fields K40 = new Fields(new Field("methodName",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6238:6248:body/1/tokenRef/capture/0"},"text","scalar"),new Field("parameters",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6277:6293:body/3/0/ruleRef/capture/0"},"node","optional"),new Field("expression",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6330:6347:body/6/ruleRef/capture/0"},"node","scalar")); + private static final Effect[] K41 = new Effect[]{new Effect("entry","enter",null,"BooleanMethodDeclaration","lexical"),new Effect("successBeforeLeave","leave",null,"BooleanMethodDeclaration","lexical"),new Effect("successAfterLeave","declare","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6238:6248:body/1/tokenRef/capture/0","methodName","lexical")}; private static final Label[] K42 = new Label[]{Label.of("'boolean'"),Label.of("'('"),Label.of("')'"),Label.of("'{'"),Label.of("'}'")}; - private static final Fields K43 = new Fields(new Field("methodName",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6001:6011:body/1/tokenRef/capture/0"},"text","scalar"),new Field("parameters",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6040:6056:body/3/0/ruleRef/capture/0"},"node","optional"),new Field("expression",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6093:6109:body/6/ruleRef/capture/0"},"node","scalar")); - private static final Effect[] K44 = new Effect[]{new Effect("entry","enter",null,"ObjectMethodDeclaration","lexical"),new Effect("successBeforeLeave","leave",null,"ObjectMethodDeclaration","lexical"),new Effect("successAfterLeave","declare","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6001:6011:body/1/tokenRef/capture/0","methodName","lexical")}; + private static final Fields K43 = new Fields(new Field("methodName",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6565:6575:body/1/tokenRef/capture/0"},"text","scalar"),new Field("parameters",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6604:6620:body/3/0/ruleRef/capture/0"},"node","optional"),new Field("expression",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6657:6673:body/6/ruleRef/capture/0"},"node","scalar")); + private static final Effect[] K44 = new Effect[]{new Effect("entry","enter",null,"ObjectMethodDeclaration","lexical"),new Effect("successBeforeLeave","leave",null,"ObjectMethodDeclaration","lexical"),new Effect("successAfterLeave","declare","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6565:6575:body/1/tokenRef/capture/0","methodName","lexical")}; private static final Label[] K45 = new Label[]{Label.of("'object'"),Label.of("'('"),Label.of("')'"),Label.of("'{'"),Label.of("'}'")}; - private static final Fields K46 = new Fields(new Field("values",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6206:6221:body/0/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6236:6251:body/1/0/1/ruleRef/capture/0"},"node","list")); + private static final Fields K46 = new Fields(new Field("values",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6770:6785:body/0/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6800:6815:body/1/0/1/ruleRef/capture/0"},"node","list")); private static final Label[] K47 = new Label[]{Label.of("MethodParametersParser")}; - private static final Fields K48 = new Fields(new Field("paramName",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6379:6389:body/1/tokenRef/capture/0"},"text","scalar"),new Field("type",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6408:6418:body/2/0/1/ruleRef/capture/0"},"text","optional")); - private static final Effect[] K49 = new Effect[]{new Effect("successAfterLeave","declare","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6379:6389:body/1/tokenRef/capture/0","paramName","lexical")}; + private static final Fields K48 = new Fields(new Field("paramName",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6943:6953:body/1/tokenRef/capture/0"},"text","scalar"),new Field("type",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6972:6982:body/2/0/1/ruleRef/capture/0"},"text","optional")); + private static final Effect[] K49 = new Effect[]{new Effect("successAfterLeave","declare","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6943:6953:body/1/tokenRef/capture/0","paramName","lexical")}; private static final Label[] K50 = new Label[]{Label.of("'$'")}; private static final Label[] K51 = new Label[]{Label.of("'number'"),Label.of("'float'")}; private static final Label[] K52 = new Label[]{Label.of("'string'")}; private static final Label[] K53 = new Label[]{Label.of("'boolean'")}; private static final Label[] K54 = new Label[]{Label.of("'object'")}; private static final Label[] K55 = new Label[]{Label.of("'number'"),Label.of("'float'"),Label.of("'string'"),Label.of("'boolean'"),Label.of("'object'")}; - private static final Fields K56 = new Fields(new Field("className",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7067:7076:body/4/0/0/0/ruleRef/capture/0"},"node","optional"),new Field("name",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7092:7102:body/4/0/0/2/tokenRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7111:7121:body/4/0/1/tokenRef/capture/0"},"text","scalar"),new Field("args",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7140:7149:body/6/0/ruleRef/capture/0"},"node","optional")); + private static final Fields K56 = new Fields(new Field("className",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7631:7640:body/4/0/0/0/ruleRef/capture/0"},"node","optional"),new Field("name",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7656:7666:body/4/0/0/2/tokenRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7675:7685:body/4/0/1/tokenRef/capture/0"},"text","scalar"),new Field("args",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7704:7713:body/6/0/ruleRef/capture/0"},"node","optional")); private static final Label[] K57 = new Label[]{Label.of("'external'"),Label.of("'boolean'"),Label.of("':'"),Label.of("'('"),Label.of("')'")}; - private static final Fields K58 = new Fields(new Field("className",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7358:7367:body/2/0/0/0/ruleRef/capture/0"},"node","optional"),new Field("name",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7383:7393:body/2/0/0/2/tokenRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7402:7412:body/2/0/1/tokenRef/capture/0"},"text","scalar"),new Field("args",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7431:7440:body/4/0/ruleRef/capture/0"},"node","optional")); + private static final Fields K58 = new Fields(new Field("className",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7922:7931:body/2/0/0/0/ruleRef/capture/0"},"node","optional"),new Field("name",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7947:7957:body/2/0/0/2/tokenRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7966:7976:body/2/0/1/tokenRef/capture/0"},"text","scalar"),new Field("args",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7995:8004:body/4/0/ruleRef/capture/0"},"node","optional")); private static final Label[] K59 = new Label[]{Label.of("'external'"),Label.of("'('"),Label.of("')'")}; - private static final Fields K60 = new Fields(new Field("className",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7635:7644:body/4/0/0/0/ruleRef/capture/0"},"node","optional"),new Field("name",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7660:7670:body/4/0/0/2/tokenRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7679:7689:body/4/0/1/tokenRef/capture/0"},"text","scalar"),new Field("args",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7708:7717:body/6/0/ruleRef/capture/0"},"node","optional")); + private static final Fields K60 = new Fields(new Field("className",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8199:8208:body/4/0/0/0/ruleRef/capture/0"},"node","optional"),new Field("name",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8224:8234:body/4/0/0/2/tokenRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8243:8253:body/4/0/1/tokenRef/capture/0"},"text","scalar"),new Field("args",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8272:8281:body/6/0/ruleRef/capture/0"},"node","optional")); private static final Label[] K61 = new Label[]{Label.of("'external'"),Label.of("'string'"),Label.of("':'"),Label.of("'('"),Label.of("')'")}; - private static final Fields K62 = new Fields(new Field("className",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7912:7921:body/4/0/0/0/ruleRef/capture/0"},"node","optional"),new Field("name",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7937:7947:body/4/0/0/2/tokenRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7956:7966:body/4/0/1/tokenRef/capture/0"},"text","scalar"),new Field("args",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7985:7994:body/6/0/ruleRef/capture/0"},"node","optional")); + private static final Fields K62 = new Fields(new Field("className",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8476:8485:body/4/0/0/0/ruleRef/capture/0"},"node","optional"),new Field("name",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8501:8511:body/4/0/0/2/tokenRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8520:8530:body/4/0/1/tokenRef/capture/0"},"text","scalar"),new Field("args",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8549:8558:body/6/0/ruleRef/capture/0"},"node","optional")); private static final Label[] K63 = new Label[]{Label.of("'external'"),Label.of("'object'"),Label.of("':'"),Label.of("'('"),Label.of("')'")}; private static final Label[] K64 = new Label[]{Label.of("'call'"),Label.of("'internal'")}; - private static final Fields K65 = new Fields(new Field("name",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8371:8381:body/1/tokenRef/capture/0"},"text","scalar"),new Field("args",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8394:8403:body/3/0/ruleRef/capture/0"},"node","optional")); - private static final Effect[] K66 = new Effect[]{new Effect("afterDeclarations","use","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8371:8381:body/1/tokenRef/capture/0","name","lexical")}; + private static final Fields K65 = new Fields(new Field("name",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8935:8945:body/1/tokenRef/capture/0"},"text","scalar"),new Field("args",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8958:8967:body/3/0/ruleRef/capture/0"},"node","optional")); + private static final Effect[] K66 = new Effect[]{new Effect("afterDeclarations","use","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8935:8945:body/1/tokenRef/capture/0","name","lexical")}; private static final Label[] K67 = new Label[]{Label.of("'internal'"),Label.of("'('"),Label.of("')'")}; - private static final Fields K68 = new Fields(new Field("condition",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8582:8599:body/0/ruleRef/capture/0"},"node","scalar"),new Field("thenExpr",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8615:8631:body/2/ruleRef/capture/0"},"node","scalar"),new Field("elseExpr",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8646:8662:body/4/ruleRef/capture/0"},"node","scalar")); + private static final Fields K68 = new Fields(new Field("condition",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9146:9163:body/0/ruleRef/capture/0"},"node","scalar"),new Field("thenExpr",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9179:9195:body/2/ruleRef/capture/0"},"node","scalar"),new Field("elseExpr",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9210:9226:body/4/ruleRef/capture/0"},"node","scalar")); private static final Label[] K69 = new Label[]{Label.of("'?'"),Label.of("':'")}; - private static final Fields K70 = new Fields(new Field("value",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8758:8773:body/0/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8787:8807:body/1/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8821:8847:body/2/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8861:8871:body/3/ruleRef/capture/0"},"mixed","scalar")); + private static final Fields K70 = new Fields(new Field("value",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9322:9337:body/0/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9351:9371:body/1/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9385:9411:body/2/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9425:9435:body/3/ruleRef/capture/0"},"mixed","scalar")); private static final Label[] K71 = new Label[]{Label.of("ArgumentExpressionParser")}; - private static final Fields K72 = new Fields(new Field("values",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8941:8959:body/0/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8974:8992:body/1/0/1/ruleRef/capture/0"},"node","list")); + private static final Fields K72 = new Fields(new Field("values",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9505:9523:body/0/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9538:9556:body/1/0/1/ruleRef/capture/0"},"node","list")); private static final Label[] K73 = new Label[]{Label.of("ArgumentsParser")}; - private static final Fields K74 = new Fields(new Field("left",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9197:9207:body/0/ruleRef/capture/0"},"node","scalar"),new Field("op",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9216:9221:body/1/0/0/ruleRef/capture/0"},"text","list"),new Field("right",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9226:9236:body/1/0/1/ruleRef/capture/0"},"node","list")); + private static final Fields K74 = new Fields(new Field("left",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9761:9771:body/0/ruleRef/capture/0"},"node","scalar"),new Field("op",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9780:9785:body/1/0/0/ruleRef/capture/0"},"text","list"),new Field("right",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9790:9800:body/1/0/1/ruleRef/capture/0"},"node","list")); private static final Label[] K75 = new Label[]{Label.of("NumberExpressionParser")}; - private static final Fields K76 = new Fields(new Field("left",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9352:9364:body/0/ruleRef/capture/0"},"node","scalar"),new Field("op",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9373:9378:body/1/0/0/ruleRef/capture/0"},"text","list"),new Field("right",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9383:9395:body/1/0/1/ruleRef/capture/0"},"node","list")); + private static final Fields K76 = new Fields(new Field("left",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9916:9928:body/0/ruleRef/capture/0"},"node","scalar"),new Field("op",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9937:9942:body/1/0/0/ruleRef/capture/0"},"text","list"),new Field("right",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9947:9959:body/1/0/1/ruleRef/capture/0"},"node","list")); private static final Label[] K77 = new Label[]{Label.of("NumberTermParser")}; private static final Label[] K78 = new Label[]{Label.of("'+'"),Label.of("'-'")}; private static final Label[] K79 = new Label[]{Label.of("'*'"),Label.of("'/'")}; private static final Label[] K80 = new Label[]{Label.of("'sin'"),Label.of("'('"),Label.of("')'"),Label.of("'cos'"),Label.of("'tan'"),Label.of("'sqrt'"),Label.of("'min'"),Label.of("'max'"),Label.of("'random'"),Label.of("'abs'"),Label.of("'round'"),Label.of("'ceil'"),Label.of("'floor'"),Label.of("'pow'"),Label.of("','"),Label.of("'log'"),Label.of("'exp'")}; - private static final Fields K81 = new Fields(new Field("arg",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9881:9899:body/2/ruleRef/capture/0"},"node","scalar")); + private static final Fields K81 = new Fields(new Field("arg",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10445:10463:body/2/ruleRef/capture/0"},"node","scalar")); private static final Label[] K82 = new Label[]{Label.of("'sin'"),Label.of("'('"),Label.of("')'")}; - private static final Fields K83 = new Fields(new Field("arg",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9974:9992:body/2/ruleRef/capture/0"},"node","scalar")); + private static final Fields K83 = new Fields(new Field("arg",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10538:10556:body/2/ruleRef/capture/0"},"node","scalar")); private static final Label[] K84 = new Label[]{Label.of("'cos'"),Label.of("'('"),Label.of("')'")}; - private static final Fields K85 = new Fields(new Field("arg",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10067:10085:body/2/ruleRef/capture/0"},"node","scalar")); + private static final Fields K85 = new Fields(new Field("arg",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10631:10649:body/2/ruleRef/capture/0"},"node","scalar")); private static final Label[] K86 = new Label[]{Label.of("'tan'"),Label.of("'('"),Label.of("')'")}; - private static final Fields K87 = new Fields(new Field("arg",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10163:10181:body/2/ruleRef/capture/0"},"node","scalar")); + private static final Fields K87 = new Fields(new Field("arg",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10727:10745:body/2/ruleRef/capture/0"},"node","scalar")); private static final Label[] K88 = new Label[]{Label.of("'sqrt'"),Label.of("'('"),Label.of("')'")}; - private static final Fields K89 = new Fields(new Field("first",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10264:10282:body/2/ruleRef/capture/0"},"node","scalar"),new Field("rest",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10296:10314:body/3/0/1/ruleRef/capture/0"},"node","list")); + private static final Fields K89 = new Fields(new Field("first",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10828:10846:body/2/ruleRef/capture/0"},"node","scalar"),new Field("rest",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10860:10878:body/3/0/1/ruleRef/capture/0"},"node","list")); private static final Label[] K90 = new Label[]{Label.of("'min'"),Label.of("'('"),Label.of("')'")}; - private static final Fields K91 = new Fields(new Field("first",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10400:10418:body/2/ruleRef/capture/0"},"node","scalar"),new Field("rest",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10432:10450:body/3/0/1/ruleRef/capture/0"},"node","list")); + private static final Fields K91 = new Fields(new Field("first",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10964:10982:body/2/ruleRef/capture/0"},"node","scalar"),new Field("rest",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10996:11014:body/3/0/1/ruleRef/capture/0"},"node","list")); private static final Label[] K92 = new Label[]{Label.of("'max'"),Label.of("'('"),Label.of("')'")}; private static final Label[] K93 = new Label[]{Label.of("'random'"),Label.of("'('"),Label.of("')'")}; - private static final Fields K94 = new Fields(new Field("arg",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10592:10610:body/2/ruleRef/capture/0"},"node","scalar")); + private static final Fields K94 = new Fields(new Field("arg",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11156:11174:body/2/ruleRef/capture/0"},"node","scalar")); private static final Label[] K95 = new Label[]{Label.of("'abs'"),Label.of("'('"),Label.of("')'")}; - private static final Fields K96 = new Fields(new Field("arg",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10691:10709:body/2/ruleRef/capture/0"},"node","scalar")); + private static final Fields K96 = new Fields(new Field("arg",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11255:11273:body/2/ruleRef/capture/0"},"node","scalar")); private static final Label[] K97 = new Label[]{Label.of("'round'"),Label.of("'('"),Label.of("')'")}; - private static final Fields K98 = new Fields(new Field("arg",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10787:10805:body/2/ruleRef/capture/0"},"node","scalar")); + private static final Fields K98 = new Fields(new Field("arg",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11351:11369:body/2/ruleRef/capture/0"},"node","scalar")); private static final Label[] K99 = new Label[]{Label.of("'ceil'"),Label.of("'('"),Label.of("')'")}; - private static final Fields K100 = new Fields(new Field("arg",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10886:10904:body/2/ruleRef/capture/0"},"node","scalar")); + private static final Fields K100 = new Fields(new Field("arg",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11450:11468:body/2/ruleRef/capture/0"},"node","scalar")); private static final Label[] K101 = new Label[]{Label.of("'floor'"),Label.of("'('"),Label.of("')'")}; - private static final Fields K102 = new Fields(new Field("base",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10990:11008:body/2/ruleRef/capture/0"},"node","scalar"),new Field("exponent",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11019:11037:body/4/ruleRef/capture/0"},"node","scalar")); + private static final Fields K102 = new Fields(new Field("base",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11554:11572:body/2/ruleRef/capture/0"},"node","scalar"),new Field("exponent",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11583:11601:body/4/ruleRef/capture/0"},"node","scalar")); private static final Label[] K103 = new Label[]{Label.of("'pow'"),Label.of("'('"),Label.of("','"),Label.of("')'")}; - private static final Fields K104 = new Fields(new Field("arg",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11117:11135:body/2/ruleRef/capture/0"},"node","scalar")); + private static final Fields K104 = new Fields(new Field("arg",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11681:11699:body/2/ruleRef/capture/0"},"node","scalar")); private static final Label[] K105 = new Label[]{Label.of("'log'"),Label.of("'('"),Label.of("')'")}; - private static final Fields K106 = new Fields(new Field("arg",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11210:11228:body/2/ruleRef/capture/0"},"node","scalar")); + private static final Fields K106 = new Fields(new Field("arg",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11774:11792:body/2/ruleRef/capture/0"},"node","scalar")); private static final Label[] K107 = new Label[]{Label.of("'exp'"),Label.of("'('"),Label.of("')'")}; - private static final Fields K108 = new Fields(new Field("value",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11403:11419:body/2/ruleRef/capture/0"},"node","scalar"),new Field("defaultValue",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11431:11449:body/4/ruleRef/capture/0"},"node","scalar")); + private static final Fields K108 = new Fields(new Field("value",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11967:11983:body/2/ruleRef/capture/0"},"node","scalar"),new Field("defaultValue",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11995:12013:body/4/ruleRef/capture/0"},"node","scalar")); private static final Label[] K109 = new Label[]{Label.of("'toNum'"),Label.of("'('"),Label.of("','"),Label.of("')'")}; private static final Label[] K110 = new Label[]{Label.of("'('"),Label.of("'?'"),Label.of("':'"),Label.of("')'"),Label.of("'match'"),Label.of("'{'"),Label.of("','"),Label.of("'}'"),Label.of("'if'"),Label.of("'else'"),Label.of("'toNum'"),Label.of("'.length'"),Label.of("'len'"),Label.of("'length'"),Label.of("'external'"),Label.of("'$'")}; - private static final Fields K111 = new Fields(new Field("value",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11947:11963:body/2/ruleRef/capture/0"},"node","scalar")); + private static final Fields K111 = new Fields(new Field("value",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12511:12527:body/2/ruleRef/capture/0"},"node","scalar")); private static final Label[] K112 = new Label[]{Label.of("'toUpperCase'"),Label.of("'('"),Label.of("')'")}; - private static final Fields K113 = new Fields(new Field("value",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12066:12082:body/2/ruleRef/capture/0"},"node","scalar")); + private static final Fields K113 = new Fields(new Field("value",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12630:12646:body/2/ruleRef/capture/0"},"node","scalar")); private static final Label[] K114 = new Label[]{Label.of("'toLowerCase'"),Label.of("'('"),Label.of("')'")}; - private static final Fields K115 = new Fields(new Field("value",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12164:12180:body/2/ruleRef/capture/0"},"node","scalar")); + private static final Fields K115 = new Fields(new Field("value",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12728:12744:body/2/ruleRef/capture/0"},"node","scalar")); private static final Label[] K116 = new Label[]{Label.of("'trim'"),Label.of("'('"),Label.of("')'")}; - private static final Fields K117 = new Fields(new Field("value",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12268:12284:body/2/ruleRef/capture/0"},"node","scalar")); + private static final Fields K117 = new Fields(new Field("value",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12832:12848:body/2/ruleRef/capture/0"},"node","scalar")); private static final Label[] K118 = new Label[]{Label.of("'length'"),Label.of("'('"),Label.of("')'")}; - private static final Fields K119 = new Fields(new Field("value",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12366:12382:body/2/ruleRef/capture/0"},"node","scalar")); + private static final Fields K119 = new Fields(new Field("value",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12930:12946:body/2/ruleRef/capture/0"},"node","scalar")); private static final Label[] K120 = new Label[]{Label.of("'len'"),Label.of("'('"),Label.of("')'")}; - private static final Fields K121 = new Fields(new Field("value",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12718:12729:body/0/ruleRef/capture/0"},"node","scalar")); + private static final Fields K121 = new Fields(new Field("value",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13282:13293:body/0/ruleRef/capture/0"},"node","scalar")); private static final Label[] K122 = new Label[]{Label.of("'.toUpperCase'"),Label.of("'('"),Label.of("')'")}; - private static final Fields K123 = new Fields(new Field("value",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12837:12848:body/0/ruleRef/capture/0"},"node","scalar")); + private static final Fields K123 = new Fields(new Field("value",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13401:13412:body/0/ruleRef/capture/0"},"node","scalar")); private static final Label[] K124 = new Label[]{Label.of("'.toLowerCase'"),Label.of("'('"),Label.of("')'")}; - private static final Fields K125 = new Fields(new Field("value",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12942:12953:body/0/ruleRef/capture/0"},"node","scalar")); + private static final Fields K125 = new Fields(new Field("value",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13506:13517:body/0/ruleRef/capture/0"},"node","scalar")); private static final Label[] K126 = new Label[]{Label.of("'.trim'"),Label.of("'('"),Label.of("')'")}; - private static final Fields K127 = new Fields(new Field("value",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13044:13055:body/0/ruleRef/capture/0"},"node","scalar")); + private static final Fields K127 = new Fields(new Field("value",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13608:13619:body/0/ruleRef/capture/0"},"node","scalar")); private static final Label[] K128 = new Label[]{Label.of("'.length'"),Label.of("'('"),Label.of("')'")}; - private static final Fields K129 = new Fields(new Field("value",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13317:13333:body/2/ruleRef/capture/0"},"node","scalar"),new Field("patterns",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13345:13361:body/4/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13382:13398:body/5/0/1/ruleRef/capture/0"},"node","list")); + private static final Fields K129 = new Fields(new Field("value",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13881:13897:body/2/ruleRef/capture/0"},"node","scalar"),new Field("patterns",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13909:13925:body/4/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13946:13962:body/5/0/1/ruleRef/capture/0"},"node","list")); private static final Label[] K130 = new Label[]{Label.of("'startsWith'"),Label.of("'('"),Label.of("','"),Label.of("')'")}; - private static final Fields K131 = new Fields(new Field("value",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13507:13523:body/2/ruleRef/capture/0"},"node","scalar"),new Field("patterns",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13535:13551:body/4/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13572:13588:body/5/0/1/ruleRef/capture/0"},"node","list")); + private static final Fields K131 = new Fields(new Field("value",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14071:14087:body/2/ruleRef/capture/0"},"node","scalar"),new Field("patterns",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14099:14115:body/4/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14136:14152:body/5/0/1/ruleRef/capture/0"},"node","list")); private static final Label[] K132 = new Label[]{Label.of("'endsWith'"),Label.of("'('"),Label.of("','"),Label.of("')'")}; - private static final Fields K133 = new Fields(new Field("value",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13697:13713:body/2/ruleRef/capture/0"},"node","scalar"),new Field("patterns",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13725:13741:body/4/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13762:13778:body/5/0/1/ruleRef/capture/0"},"node","list")); + private static final Fields K133 = new Fields(new Field("value",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14261:14277:body/2/ruleRef/capture/0"},"node","scalar"),new Field("patterns",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14289:14305:body/4/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14326:14342:body/5/0/1/ruleRef/capture/0"},"node","list")); private static final Label[] K134 = new Label[]{Label.of("'contains'"),Label.of("'('"),Label.of("','"),Label.of("')'")}; - private static final Fields K135 = new Fields(new Field("value",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13860:13876:body/0/ruleRef/capture/0"},"node","scalar"),new Field("candidates",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13894:13910:body/3/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13929:13945:body/4/0/1/ruleRef/capture/0"},"node","list")); + private static final Fields K135 = new Fields(new Field("value",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14424:14440:body/0/ruleRef/capture/0"},"node","scalar"),new Field("candidates",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14458:14474:body/3/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14493:14509:body/4/0/1/ruleRef/capture/0"},"node","list")); private static final Label[] K136 = new Label[]{Label.of("'.in'"),Label.of("'('"),Label.of("')'")}; - private static final Fields K137 = new Fields(new Field("value",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14128:14151:body/0/ruleRef/capture/0"},"mixed","scalar"),new Field("patterns",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14177:14193:body/3/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14214:14230:body/4/0/1/ruleRef/capture/0"},"node","list")); + private static final Fields K137 = new Fields(new Field("value",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14692:14715:body/0/ruleRef/capture/0"},"mixed","scalar"),new Field("patterns",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14741:14757:body/3/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14778:14794:body/4/0/1/ruleRef/capture/0"},"node","list")); private static final Label[] K138 = new Label[]{Label.of("'.startsWith'"),Label.of("'('"),Label.of("')'")}; - private static final Fields K139 = new Fields(new Field("value",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14328:14351:body/0/ruleRef/capture/0"},"mixed","scalar"),new Field("patterns",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14375:14391:body/3/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14412:14428:body/4/0/1/ruleRef/capture/0"},"node","list")); + private static final Fields K139 = new Fields(new Field("value",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14892:14915:body/0/ruleRef/capture/0"},"mixed","scalar"),new Field("patterns",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14939:14955:body/3/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14976:14992:body/4/0/1/ruleRef/capture/0"},"node","list")); private static final Label[] K140 = new Label[]{Label.of("'.endsWith'"),Label.of("'('"),Label.of("')'")}; - private static final Fields K141 = new Fields(new Field("value",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14526:14549:body/0/ruleRef/capture/0"},"mixed","scalar"),new Field("patterns",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14573:14589:body/3/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14610:14626:body/4/0/1/ruleRef/capture/0"},"node","list")); + private static final Fields K141 = new Fields(new Field("value",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15090:15113:body/0/ruleRef/capture/0"},"mixed","scalar"),new Field("patterns",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15137:15153:body/3/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15174:15190:body/4/0/1/ruleRef/capture/0"},"node","list")); private static final Label[] K142 = new Label[]{Label.of("'.contains'"),Label.of("'('"),Label.of("')'")}; private static final Label[] K143 = new Label[]{Label.of("'toLowerCase'"),Label.of("'('"),Label.of("')'"),Label.of("'toUpperCase'"),Label.of("'trim'"),Label.of("'$'")}; - private static final Fields K144 = new Fields(new Field("value",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14911:14922:body/2/ruleRef/capture/0"},"node","scalar")); + private static final Fields K144 = new Fields(new Field("value",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15475:15486:body/2/ruleRef/capture/0"},"node","scalar")); private static final Label[] K145 = new Label[]{Label.of("'isPresent'"),Label.of("'('"),Label.of("')'")}; - private static final Fields K146 = new Fields(new Field("startHour",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15115:15131:body/2/ruleRef/capture/0"},"node","scalar"),new Field("endHour",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15147:15163:body/4/ruleRef/capture/0"},"node","scalar")); + private static final Fields K146 = new Fields(new Field("startHour",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15679:15695:body/2/ruleRef/capture/0"},"node","scalar"),new Field("endHour",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15711:15727:body/4/ruleRef/capture/0"},"node","scalar")); private static final Label[] K147 = new Label[]{Label.of("'inTimeRange'"),Label.of("'('"),Label.of("','"),Label.of("')'")}; - private static final Fields K148 = new Fields(new Field("startDay",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15308:15317:body/2/ruleRef/capture/0"},"text","scalar"),new Field("startHour",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15332:15348:body/4/ruleRef/capture/0"},"node","scalar"),new Field("endDay",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15364:15373:body/6/ruleRef/capture/0"},"text","scalar"),new Field("endHour",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15386:15402:body/8/ruleRef/capture/0"},"node","scalar")); + private static final Fields K148 = new Fields(new Field("startDay",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15872:15881:body/2/ruleRef/capture/0"},"text","scalar"),new Field("startHour",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15896:15912:body/4/ruleRef/capture/0"},"node","scalar"),new Field("endDay",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15928:15937:body/6/ruleRef/capture/0"},"text","scalar"),new Field("endHour",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15950:15966:body/8/ruleRef/capture/0"},"node","scalar")); private static final Label[] K149 = new Label[]{Label.of("'inDayTimeRange'"),Label.of("'('"),Label.of("','"),Label.of("')'")}; private static final Label[] K150 = new Label[]{Label.of("'MONDAY'"),Label.of("'TUESDAY'"),Label.of("'WEDNESDAY'"),Label.of("'THURSDAY'"),Label.of("'FRIDAY'"),Label.of("'SATURDAY'"),Label.of("'SUNDAY'")}; private static final Label[] K151 = new Label[]{Label.of("'external'"),Label.of("'('"),Label.of("')'"),Label.of("'toUpperCase'"),Label.of("'toLowerCase'"),Label.of("'trim'"),Label.of("'.toUpperCase'"),Label.of("'.toLowerCase'"),Label.of("'.trim'"),Label.of("'$'")}; private static final Label[] K152 = new Label[]{Label.of("SliceStartIndexParser")}; private static final Label[] K153 = new Label[]{Label.of("SliceEndIndexParser")}; private static final Label[] K154 = new Label[]{Label.of("SliceStepIndexParser")}; - private static final Fields K155 = new Fields(new Field("value",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16660:16677:body/0/0/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16770:16787:body/1/0/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16855:16872:body/2/0/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16946:16963:body/3/0/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17012:17029:body/4/0/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17099:17116:body/5/0/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17161:17178:body/6/0/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17229:17246:body/7/0/ruleRef/capture/0"},"mixed","scalar"),new Field("start",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16689:16704:body/0/2/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16799:16814:body/1/2/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16884:16899:body/2/2/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16975:16990:body/3/2/ruleRef/capture/0"},"node","optional"),new Field("end",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16716:16729:body/0/4/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16826:16839:body/1/4/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17045:17058:body/4/3/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17132:17145:body/5/3/ruleRef/capture/0"},"node","optional"),new Field("step",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16739:16753:body/0/6/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16915:16929:body/2/5/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17068:17082:body/4/5/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17198:17212:body/6/4/ruleRef/capture/0"},"node","optional")); + private static final Fields K155 = new Fields(new Field("value",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17224:17241:body/0/0/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17334:17351:body/1/0/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17419:17436:body/2/0/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17510:17527:body/3/0/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17576:17593:body/4/0/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17663:17680:body/5/0/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17725:17742:body/6/0/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17793:17810:body/7/0/ruleRef/capture/0"},"mixed","scalar"),new Field("start",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17253:17268:body/0/2/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17363:17378:body/1/2/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17448:17463:body/2/2/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17539:17554:body/3/2/ruleRef/capture/0"},"node","optional"),new Field("end",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17280:17293:body/0/4/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17390:17403:body/1/4/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17609:17622:body/4/3/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17696:17709:body/5/3/ruleRef/capture/0"},"node","optional"),new Field("step",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17303:17317:body/0/6/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17479:17493:body/2/5/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17632:17646:body/4/5/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17762:17776:body/6/4/ruleRef/capture/0"},"node","optional")); private static final Label[] K156 = new Label[]{Label.of("'['"),Label.of("':'"),Label.of("']'")}; - private static final Fields K157 = new Fields(new Field("value",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17359:17378:body/0/0/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17471:17490:body/1/0/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17558:17577:body/2/0/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17651:17670:body/3/0/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17719:17738:body/4/0/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17808:17827:body/5/0/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17872:17891:body/6/0/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17942:17961:body/7/0/ruleRef/capture/0"},"mixed","scalar"),new Field("start",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17390:17405:body/0/2/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17502:17517:body/1/2/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17589:17604:body/2/2/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17682:17697:body/3/2/ruleRef/capture/0"},"node","optional"),new Field("end",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17417:17430:body/0/4/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17529:17542:body/1/4/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17754:17767:body/4/3/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17843:17856:body/5/3/ruleRef/capture/0"},"node","optional"),new Field("step",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17440:17454:body/0/6/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17620:17634:body/2/5/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17777:17791:body/4/5/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17911:17925:body/6/4/ruleRef/capture/0"},"node","optional")); + private static final Fields K157 = new Fields(new Field("value",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17923:17942:body/0/0/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18035:18054:body/1/0/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18122:18141:body/2/0/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18215:18234:body/3/0/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18283:18302:body/4/0/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18372:18391:body/5/0/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18436:18455:body/6/0/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18506:18525:body/7/0/ruleRef/capture/0"},"mixed","scalar"),new Field("start",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17954:17969:body/0/2/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18066:18081:body/1/2/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18153:18168:body/2/2/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18246:18261:body/3/2/ruleRef/capture/0"},"node","optional"),new Field("end",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17981:17994:body/0/4/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18093:18106:body/1/4/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18318:18331:body/4/3/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18407:18420:body/5/3/ruleRef/capture/0"},"node","optional"),new Field("step",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18004:18018:body/0/6/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18184:18198:body/2/5/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18341:18355:body/4/5/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18475:18489:body/6/4/ruleRef/capture/0"},"node","optional")); private static final Label[] K158 = new Label[]{Label.of("SliceExpressionParser")}; - private static final Fields K159 = new Fields(new Field("left",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18250:18260:body/0/ruleRef/capture/0"},"mixed","scalar"),new Field("op",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18269:18272:body/1/0/0/literal/capture/0"},"text","list"),new Field("right",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18277:18287:body/1/0/1/ruleRef/capture/0"},"mixed","list")); + private static final Fields K159 = new Fields(new Field("left",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18814:18824:body/0/ruleRef/capture/0"},"mixed","scalar"),new Field("op",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18833:18836:body/1/0/0/literal/capture/0"},"text","list"),new Field("right",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18841:18851:body/1/0/1/ruleRef/capture/0"},"mixed","list")); private static final Label[] K160 = new Label[]{Label.of("StringExpressionParser")}; private static final Label[] K161 = new Label[]{Label.of("'('"),Label.of("')'")}; private static final Label[] K162 = new Label[]{Label.of("'match'"),Label.of("'{'"),Label.of("','"),Label.of("'}'"),Label.of("'if'"),Label.of("'('"),Label.of("')'"),Label.of("'else'"),Label.of("'$'"),Label.of("'as'"),Label.of("'external'"),Label.of("'toUpperCase'"),Label.of("'toLowerCase'"),Label.of("'trim'"),Label.of("'.toUpperCase'"),Label.of("'.toLowerCase'"),Label.of("'.trim'")}; - private static final Fields K163 = new Fields(new Field("name",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19048:19058:body/4/tokenRef/capture/0"},"text","scalar")); + private static final Fields K163 = new Fields(new Field("name",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19612:19622:body/4/tokenRef/capture/0"},"text","scalar")); private static final Label[] K164 = new Label[]{Label.of("'('"),Label.of("'string'"),Label.of("'String'"),Label.of("')'"),Label.of("'$'")}; - private static final Fields K165 = new Fields(new Field("name",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19152:19162:body/1/tokenRef/capture/0"},"text","scalar")); + private static final Fields K165 = new Fields(new Field("name",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19716:19726:body/1/tokenRef/capture/0"},"text","scalar")); private static final Label[] K166 = new Label[]{Label.of("'$'"),Label.of("'as'"),Label.of("'string'"),Label.of("'String'")}; - private static final Fields K167 = new Fields(new Field("left",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19428:19448:body/0/ruleRef/capture/0"},"node","scalar"),new Field("op",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19457:19460:body/1/0/0/literal/capture/0"},"text","list"),new Field("right",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19465:19485:body/1/0/1/ruleRef/capture/0"},"node","list")); + private static final Fields K167 = new Fields(new Field("left",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19992:20012:body/0/ruleRef/capture/0"},"node","scalar"),new Field("op",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20021:20024:body/1/0/0/literal/capture/0"},"text","list"),new Field("right",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20029:20049:body/1/0/1/ruleRef/capture/0"},"node","list")); private static final Label[] K168 = new Label[]{Label.of("BooleanExpressionParser")}; - private static final Fields K169 = new Fields(new Field("left",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19631:19651:body/0/ruleRef/capture/0"},"node","scalar"),new Field("op",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19660:19663:body/1/0/0/literal/capture/0"},"text","list"),new Field("right",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19668:19688:body/1/0/1/ruleRef/capture/0"},"node","list")); + private static final Fields K169 = new Fields(new Field("left",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20195:20215:body/0/ruleRef/capture/0"},"node","scalar"),new Field("op",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20224:20227:body/1/0/0/literal/capture/0"},"text","list"),new Field("right",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20232:20252:body/1/0/1/ruleRef/capture/0"},"node","list")); private static final Label[] K170 = new Label[]{Label.of("BooleanAndExpressionParser")}; - private static final Fields K171 = new Fields(new Field("left",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19834:19847:body/0/ruleRef/capture/0"},"node","scalar"),new Field("op",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19856:19859:body/1/0/0/literal/capture/0"},"text","list"),new Field("right",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19864:19877:body/1/0/1/ruleRef/capture/0"},"node","list")); + private static final Fields K171 = new Fields(new Field("left",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20398:20411:body/0/ruleRef/capture/0"},"node","scalar"),new Field("op",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20420:20423:body/1/0/0/literal/capture/0"},"text","list"),new Field("right",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20428:20441:body/1/0/1/ruleRef/capture/0"},"node","list")); private static final Label[] K172 = new Label[]{Label.of("BooleanXorExpressionParser")}; - private static final Fields K173 = new Fields(new Field("value",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20034:20051:body/2/ruleRef/capture/0"},"node","scalar")); + private static final Fields K173 = new Fields(new Field("value",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20598:20615:body/2/ruleRef/capture/0"},"node","scalar")); private static final Label[] K174 = new Label[]{Label.of("'not'"),Label.of("'('"),Label.of("')'")}; private static final Label[] K175 = new Label[]{Label.of("'not'"),Label.of("'('"),Label.of("')'"),Label.of("'if'"),Label.of("'{'"),Label.of("'}'"),Label.of("'else'"),Label.of("'match'"),Label.of("','"),Label.of("'external'"),Label.of("'.in'"),Label.of("'.startsWith'"),Label.of("'.endsWith'"),Label.of("'.contains'"),Label.of("'startsWith'"),Label.of("'endsWith'"),Label.of("'contains'"),Label.of("'isPresent'"),Label.of("'inTimeRange'"),Label.of("'inDayTimeRange'"),Label.of("'true'"),Label.of("'false'"),Label.of("'$'")}; - private static final Fields K176 = new Fields(new Field("left",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20622:20639:body/0/ruleRef/capture/0"},"mixed","scalar"),new Field("op",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20646:20656:body/1/ruleRef/capture/0"},"text","scalar"),new Field("right",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20661:20678:body/2/ruleRef/capture/0"},"mixed","scalar")); + private static final Fields K176 = new Fields(new Field("left",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21186:21203:body/0/ruleRef/capture/0"},"mixed","scalar"),new Field("op",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21210:21220:body/1/ruleRef/capture/0"},"text","scalar"),new Field("right",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21225:21242:body/2/ruleRef/capture/0"},"mixed","scalar")); private static final Label[] K177 = new Label[]{Label.of("BooleanEqualityExpressionParser")}; - private static final Fields K178 = new Fields(new Field("value",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20761:20786:body/0/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20800:20820:body/1/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20834:20860:body/2/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20874:20891:body/3/ruleRef/capture/0"},"mixed","scalar")); + private static final Fields K178 = new Fields(new Field("value",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21325:21350:body/0/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21364:21384:body/1/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21398:21424:body/2/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21438:21455:body/3/ruleRef/capture/0"},"mixed","scalar")); private static final Label[] K179 = new Label[]{Label.of("BooleanFactorParser")}; - private static final Fields K180 = new Fields(new Field("left",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21155:21171:body/0/ruleRef/capture/0"},"node","scalar"),new Field("op",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21178:21188:body/1/ruleRef/capture/0"},"text","scalar"),new Field("right",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21193:21209:body/2/ruleRef/capture/0"},"node","scalar")); + private static final Fields K180 = new Fields(new Field("left",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21719:21735:body/0/ruleRef/capture/0"},"node","scalar"),new Field("op",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21742:21752:body/1/ruleRef/capture/0"},"text","scalar"),new Field("right",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21757:21773:body/2/ruleRef/capture/0"},"node","scalar")); private static final Label[] K181 = new Label[]{Label.of("StringComparisonExpressionParser")}; private static final Label[] K182 = new Label[]{Label.of("'=='"),Label.of("'!='")}; - private static final Fields K183 = new Fields(new Field("left",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21331:21347:body/0/ruleRef/capture/0"},"node","scalar"),new Field("op",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21354:21363:body/1/ruleRef/capture/0"},"text","scalar"),new Field("right",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21368:21384:body/2/ruleRef/capture/0"},"node","scalar")); + private static final Fields K183 = new Fields(new Field("left",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21895:21911:body/0/ruleRef/capture/0"},"node","scalar"),new Field("op",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21918:21927:body/1/ruleRef/capture/0"},"text","scalar"),new Field("right",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21932:21948:body/2/ruleRef/capture/0"},"node","scalar")); private static final Label[] K184 = new Label[]{Label.of("ComparisonExpressionParser")}; private static final Label[] K185 = new Label[]{Label.of("'=='"),Label.of("'!='"),Label.of("'<='"),Label.of("'>='"),Label.of("'<'"),Label.of("'>'")}; - private static final Fields K186 = new Fields(new Field("value",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21601:21617:body/0/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21631:21647:body/1/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21661:21678:body/2/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21692:21716:body/3/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21730:21741:body/4/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21755:21771:body/5/ruleRef/capture/0"},"mixed","scalar")); + private static final Fields K186 = new Fields(new Field("value",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22165:22181:body/0/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22195:22211:body/1/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22225:22242:body/2/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22256:22280:body/3/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22294:22305:body/4/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22319:22335:body/5/ruleRef/capture/0"},"mixed","scalar")); private static final Label[] K187 = new Label[]{Label.of("ObjectExpressionParser")}; - private static final Fields K188 = new Fields(new Field("condition",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21955:21972:body/2/ruleRef/capture/0"},"node","scalar"),new Field("thenExpr",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21996:22012:body/5/ruleRef/capture/0"},"node","scalar"),new Field("elseExpr",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22046:22062:body/9/ruleRef/capture/0"},"node","scalar")); + private static final Fields K188 = new Fields(new Field("condition",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22519:22536:body/2/ruleRef/capture/0"},"node","scalar"),new Field("thenExpr",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22560:22576:body/5/ruleRef/capture/0"},"node","scalar"),new Field("elseExpr",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22610:22626:body/9/ruleRef/capture/0"},"node","scalar")); private static final Label[] K189 = new Label[]{Label.of("'if'"),Label.of("'('"),Label.of("')'"),Label.of("'{'"),Label.of("'}'"),Label.of("'else'")}; - private static final Fields K190 = new Fields(new Field("value",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22158:22178:body/0/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22192:22218:body/1/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22232:22257:body/2/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22271:22287:body/3/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22301:22318:body/4/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22332:22348:body/5/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22362:22378:body/6/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22392:22408:body/7/ruleRef/capture/0"},"mixed","scalar")); + private static final Fields K190 = new Fields(new Field("value",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22722:22742:body/0/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22756:22782:body/1/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22796:22821:body/2/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22835:22851:body/3/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22865:22882:body/4/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22896:22912:body/5/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22926:22942:body/6/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22956:22972:body/7/ruleRef/capture/0"},"mixed","scalar")); private static final Label[] K191 = new Label[]{Label.of("BranchExpressionParser")}; - private static final Fields K192 = new Fields(new Field("condition",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22587:22604:body/1/ruleRef/capture/0"},"node","scalar"),new Field("thenExpr",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22620:22636:body/3/ruleRef/capture/0"},"node","scalar"),new Field("elseExpr",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22651:22667:body/5/ruleRef/capture/0"},"node","scalar")); + private static final Fields K192 = new Fields(new Field("condition",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23151:23168:body/1/ruleRef/capture/0"},"node","scalar"),new Field("thenExpr",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23184:23200:body/3/ruleRef/capture/0"},"node","scalar"),new Field("elseExpr",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23215:23231:body/5/ruleRef/capture/0"},"node","scalar")); private static final Label[] K193 = new Label[]{Label.of("'('"),Label.of("'?'"),Label.of("':'"),Label.of("')'")}; - private static final Fields K194 = new Fields(new Field("firstCase",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22889:22899:body/2/ruleRef/capture/0"},"node","scalar"),new Field("moreCases",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22917:22927:body/3/0/1/ruleRef/capture/0"},"node","list"),new Field("defaultCase",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22951:22968:body/5/ruleRef/capture/0"},"node","scalar")); + private static final Fields K194 = new Fields(new Field("firstCase",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23453:23463:body/2/ruleRef/capture/0"},"node","scalar"),new Field("moreCases",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23481:23491:body/3/0/1/ruleRef/capture/0"},"node","list"),new Field("defaultCase",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23515:23532:body/5/ruleRef/capture/0"},"node","scalar")); private static final Label[] K195 = new Label[]{Label.of("'match'"),Label.of("'{'"),Label.of("','"),Label.of("'}'")}; - private static final Fields K196 = new Fields(new Field("condition",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23064:23081:body/0/ruleRef/capture/0"},"node","scalar"),new Field("value",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23098:23113:body/2/ruleRef/capture/0"},"node","scalar")); + private static final Fields K196 = new Fields(new Field("condition",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23628:23645:body/0/ruleRef/capture/0"},"node","scalar"),new Field("value",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23662:23677:body/2/ruleRef/capture/0"},"node","scalar")); private static final Label[] K197 = new Label[]{Label.of("'->'")}; - private static final Fields K198 = new Fields(new Field("value",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23212:23227:body/2/ruleRef/capture/0"},"node","scalar")); + private static final Fields K198 = new Fields(new Field("value",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23776:23791:body/2/ruleRef/capture/0"},"node","scalar")); private static final Label[] K199 = new Label[]{Label.of("'default'"),Label.of("'->'")}; - private static final Fields K200 = new Fields(new Field("value",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23307:23323:body/0/ruleRef/capture/0"},"node","scalar")); + private static final Fields K200 = new Fields(new Field("value",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23871:23887:body/0/ruleRef/capture/0"},"node","scalar")); private static final Label[] K201 = new Label[]{Label.of("NumberCaseValueParser")}; - private static final Fields K202 = new Fields(new Field("firstCase",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23456:23466:body/2/ruleRef/capture/0"},"node","scalar"),new Field("moreCases",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23484:23494:body/3/0/1/ruleRef/capture/0"},"node","list"),new Field("defaultCase",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23518:23535:body/5/ruleRef/capture/0"},"node","scalar")); - private static final Fields K203 = new Fields(new Field("condition",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23631:23648:body/0/ruleRef/capture/0"},"node","scalar"),new Field("value",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23665:23680:body/2/ruleRef/capture/0"},"node","scalar")); - private static final Fields K204 = new Fields(new Field("value",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23779:23794:body/2/ruleRef/capture/0"},"node","scalar")); - private static final Fields K205 = new Fields(new Field("value",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23874:23890:body/0/ruleRef/capture/0"},"node","scalar")); + private static final Fields K202 = new Fields(new Field("firstCase",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24020:24030:body/2/ruleRef/capture/0"},"node","scalar"),new Field("moreCases",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24048:24058:body/3/0/1/ruleRef/capture/0"},"node","list"),new Field("defaultCase",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24082:24099:body/5/ruleRef/capture/0"},"node","scalar")); + private static final Fields K203 = new Fields(new Field("condition",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24195:24212:body/0/ruleRef/capture/0"},"node","scalar"),new Field("value",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24229:24244:body/2/ruleRef/capture/0"},"node","scalar")); + private static final Fields K204 = new Fields(new Field("value",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24343:24358:body/2/ruleRef/capture/0"},"node","scalar")); + private static final Fields K205 = new Fields(new Field("value",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24438:24454:body/0/ruleRef/capture/0"},"node","scalar")); private static final Label[] K206 = new Label[]{Label.of("StringCaseValueParser")}; - private static final Fields K207 = new Fields(new Field("firstCase",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24025:24036:body/2/ruleRef/capture/0"},"node","scalar"),new Field("moreCases",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24054:24065:body/3/0/1/ruleRef/capture/0"},"node","list"),new Field("defaultCase",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24089:24107:body/5/ruleRef/capture/0"},"node","scalar")); - private static final Fields K208 = new Fields(new Field("condition",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24205:24222:body/0/ruleRef/capture/0"},"node","scalar"),new Field("value",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24239:24255:body/2/ruleRef/capture/0"},"node","scalar")); - private static final Fields K209 = new Fields(new Field("value",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24356:24372:body/2/ruleRef/capture/0"},"node","scalar")); - private static final Fields K210 = new Fields(new Field("value",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24454:24471:body/0/ruleRef/capture/0"},"node","scalar")); + private static final Fields K207 = new Fields(new Field("firstCase",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24589:24600:body/2/ruleRef/capture/0"},"node","scalar"),new Field("moreCases",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24618:24629:body/3/0/1/ruleRef/capture/0"},"node","list"),new Field("defaultCase",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24653:24671:body/5/ruleRef/capture/0"},"node","scalar")); + private static final Fields K208 = new Fields(new Field("condition",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24769:24786:body/0/ruleRef/capture/0"},"node","scalar"),new Field("value",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24803:24819:body/2/ruleRef/capture/0"},"node","scalar")); + private static final Fields K209 = new Fields(new Field("value",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24920:24936:body/2/ruleRef/capture/0"},"node","scalar")); + private static final Fields K210 = new Fields(new Field("value",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25018:25035:body/0/ruleRef/capture/0"},"node","scalar")); private static final Label[] K211 = new Label[]{Label.of("BooleanCaseValueParser")}; - private static final Fields K212 = new Fields(new Field("name",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24688:24698:body/1/tokenRef/capture/0"},"text","scalar"),new Field("type",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24716:24727:body/2/0/1/ruleRef/capture/0"},"text","optional")); - private static final Effect[] K213 = new Effect[]{new Effect("afterDeclarations","use","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24688:24698:body/1/tokenRef/capture/0","name","lexical")}; + private static final Fields K212 = new Fields(new Field("name",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25252:25262:body/1/tokenRef/capture/0"},"text","scalar"),new Field("type",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25280:25291:body/2/0/1/ruleRef/capture/0"},"text","optional")); + private static final Effect[] K213 = new Effect[]{new Effect("afterDeclarations","use","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25252:25262:body/1/tokenRef/capture/0","name","lexical")}; private static final Label[] K214 = new Label[]{Label.of("'number'"),Label.of("'Number'"),Label.of("'float'"),Label.of("'Float'"),Label.of("'string'"),Label.of("'String'"),Label.of("'boolean'"),Label.of("'Boolean'"),Label.of("'object'"),Label.of("'Object'")}; - private static final Fields K215 = new Fields(new Field("value",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25187:25203:body/0/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25217:25234:body/1/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25248:25264:body/2/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25278:25294:body/3/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25308:25324:body/4/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25342:25352:body/5/1/ruleRef/capture/0"},"mixed","scalar")); - private static final String[] K216 = new String[]{}; - private static final boolean[] K217 = new boolean[]{}; - private static final Delimiters K218 = new Delimiters(new Delimiter("characters",null,null,new int[]{9,10,11,12,13,32}),new Delimiter("lineComment","//",null,new int[]{}),new Delimiter("blockComment","/*","*/",new int[]{})); - private static final Delimiters[] K219 = new Delimiters[]{K218,K218,K218,K218,K218,K218,K218}; - private static final Trivia K220 = new Trivia(K218,null,K219,null,null); - private static final Call[] K221 = new Call[]{TinyExpressionP4Parser::e1,TinyExpressionP4Parser::e3,TinyExpressionP4Parser::e5,TinyExpressionP4Parser::e7,TinyExpressionP4Parser::e9,TinyExpressionP4Parser::e10,TinyExpressionP4Parser::e12}; - private static final Label[] K222 = new Label[]{Label.of("Repeat")}; - private static final String[] K223 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1009:1018:body/0/0/ruleRef/capture/0"}; - private static final String[] K224 = new String[]{"codeBlocks"}; - private static final String[] K225 = new String[]{"consumedExtent"}; - private static final boolean[] K226 = new boolean[]{false}; - private static final Label[] K227 = new Label[]{Label.of("__CaptureSite")}; - private static final String[] K228 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1035:1052:body/1/0/ruleRef/capture/0"}; - private static final String[] K229 = new String[]{"imports"}; - private static final String[] K230 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1066:1085:body/2/0/ruleRef/capture/0"}; - private static final String[] K231 = new String[]{"declarations"}; - private static final String[] K232 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1121:1131:body/4/ruleRef/capture/0"}; - private static final String[] K233 = new String[]{"expression"}; - private static final String[] K234 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1146:1163:body/5/0/ruleRef/capture/0"}; - private static final String[] K235 = new String[]{"methods"}; - private static final Label[] K236 = new Label[]{Label.of("EOFParser")}; - private static final org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression K237 = new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SCOPE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.EOF,"",0,0,List.of()))))))); - private static final Label K238 = Label.of("EOFParser"); - private static final Delimiters[] K239 = new Delimiters[]{K218}; - private static final Trivia K240 = new Trivia(K218,null,K239,null,null); - private static final Call[] K241 = new Call[]{TinyExpressionP4Parser::e14}; - private static final String[] K242 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1611:1662:body/0/group/capture/0"}; - private static final String[] K243 = new String[]{"source"}; - private static final Label[] K244 = new Label[]{Label.of("CodeBlockGroup0Parser"),Label.of("__CaptureSite")}; - private static final Label[] K245 = new Label[]{Label.of("CodeBlockGroup0Parser")}; - private static final Call[] K246 = new Call[]{TinyExpressionP4Parser::e16,TinyExpressionP4Parser::e17}; - private static final Label[] K247 = new Label[]{Label.of("LONG_CODE_BLOCKParser")}; - private static final org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression K248 = new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SCOPE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SCOPE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.BOL,"",0,0,List.of()),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CAPTURE,"fence",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.REPEAT,"",4,-1,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.LITERAL,"`",0,0,List.of()))))))))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SCOPE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SCOPE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.RANGE,"",97,122,List.of()))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.RANGE,"",65,90,List.of()))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.LITERAL,"_",0,0,List.of()))))))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.REPEAT,"",0,-1,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SCOPE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.RANGE,"",97,122,List.of()))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.RANGE,"",65,90,List.of()))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.LITERAL,"_",0,0,List.of()))))))))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SCOPE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.RANGE,"",48,57,List.of()))))))))))))))))))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.LITERAL,":",0,0,List.of()),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SCOPE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SCOPE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SCOPE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.RANGE,"",97,122,List.of()))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.RANGE,"",65,90,List.of()))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.LITERAL,"_",0,0,List.of()))))))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.REPEAT,"",0,-1,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SCOPE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.RANGE,"",97,122,List.of()))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.RANGE,"",65,90,List.of()))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.LITERAL,"_",0,0,List.of()))))))))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SCOPE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.RANGE,"",48,57,List.of()))))))))))))))))))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.REPEAT,"",0,-1,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.LITERAL,".",0,0,List.of()),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SCOPE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SCOPE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.RANGE,"",97,122,List.of()))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.RANGE,"",65,90,List.of()))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.LITERAL,"_",0,0,List.of()))))))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.REPEAT,"",0,-1,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SCOPE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.RANGE,"",97,122,List.of()))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.RANGE,"",65,90,List.of()))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.LITERAL,"_",0,0,List.of()))))))))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SCOPE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.RANGE,"",48,57,List.of()))))))))))))))))))))))))))))))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SCOPE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.LITERAL,"\r\n",0,0,List.of()))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.LITERAL,"\r",0,0,List.of()))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.LITERAL,"\n",0,0,List.of()))))))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.REPEAT,"",0,-1,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.NOT,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.BOL,"",0,0,List.of()),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.BACKREF,"fence",0,0,List.of()),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.EOL,"",0,0,List.of()))))))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.ANY,"",0,0,List.of()))))))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.BOL,"",0,0,List.of()),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.BACKREF,"fence",0,0,List.of()),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SCOPE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.LITERAL,"\r\n",0,0,List.of()))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.LITERAL,"\r",0,0,List.of()))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.LITERAL,"\n",0,0,List.of()))))))))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.EOF,"",0,0,List.of()))))))))))))))))); - private static final Label K249 = Label.of("LONG_CODE_BLOCKParser"); - private static final Delimiters[] K250 = new Delimiters[]{K218,K218,K218}; - private static final Trivia K251 = new Trivia(K218,null,K250,null,null); - private static final Call[] K252 = new Call[]{TinyExpressionP4Parser::e18,TinyExpressionP4Parser::e19,TinyExpressionP4Parser::e20}; - private static final Label[] K253 = new Label[]{Label.of("CODE_STARTParser")}; - private static final org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression K254 = new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SCOPE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SCOPE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.BOL,"",0,0,List.of()),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.LITERAL,"```",0,0,List.of()),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SCOPE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SCOPE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.RANGE,"",97,122,List.of()))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.RANGE,"",65,90,List.of()))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.LITERAL,"_",0,0,List.of()))))))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.REPEAT,"",0,-1,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SCOPE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.RANGE,"",97,122,List.of()))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.RANGE,"",65,90,List.of()))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.LITERAL,"_",0,0,List.of()))))))))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SCOPE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.RANGE,"",48,57,List.of()))))))))))))))))))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.LITERAL,":",0,0,List.of()),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SCOPE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SCOPE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SCOPE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.RANGE,"",97,122,List.of()))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.RANGE,"",65,90,List.of()))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.LITERAL,"_",0,0,List.of()))))))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.REPEAT,"",0,-1,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SCOPE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.RANGE,"",97,122,List.of()))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.RANGE,"",65,90,List.of()))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.LITERAL,"_",0,0,List.of()))))))))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SCOPE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.RANGE,"",48,57,List.of()))))))))))))))))))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.REPEAT,"",0,-1,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.LITERAL,".",0,0,List.of()),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SCOPE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SCOPE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.RANGE,"",97,122,List.of()))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.RANGE,"",65,90,List.of()))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.LITERAL,"_",0,0,List.of()))))))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.REPEAT,"",0,-1,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SCOPE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.RANGE,"",97,122,List.of()))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.RANGE,"",65,90,List.of()))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.LITERAL,"_",0,0,List.of()))))))))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SCOPE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.RANGE,"",48,57,List.of()))))))))))))))))))))))))))))))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SCOPE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.LITERAL,"\r\n",0,0,List.of()))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.LITERAL,"\r",0,0,List.of()))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.LITERAL,"\n",0,0,List.of()))))))))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.EOF,"",0,0,List.of()))))))))))))))))); - private static final Label K255 = Label.of("CODE_STARTParser"); - private static final Label[] K256 = new Label[]{Label.of("CODE_BODYParser")}; - private static final org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression K257 = new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SCOPE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SCOPE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.REPEAT,"",0,-1,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.NOT,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.LITERAL,"```",0,0,List.of()))))))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.ANY,"",0,0,List.of()))))))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.LOOK,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.LITERAL,"```",0,0,List.of()))))))))))))))))))); - private static final Label K258 = Label.of("CODE_BODYParser"); - private static final Label[] K259 = new Label[]{Label.of("CODE_ENDParser")}; - private static final org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression K260 = new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SCOPE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SCOPE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.BOL,"",0,0,List.of()),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.LITERAL,"```",0,0,List.of()),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SCOPE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.LITERAL,"\r\n",0,0,List.of()))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.LITERAL,"\r",0,0,List.of()))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.LITERAL,"\n",0,0,List.of()))))))))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.EOF,"",0,0,List.of()))))))))))))))))); - private static final Label K261 = Label.of("CODE_ENDParser"); - private static final Delimiters[] K262 = new Delimiters[]{K218,K218,K218,K218,K218,K218}; - private static final Trivia K263 = new Trivia(K218,null,K262,null,null); - private static final Call[] K264 = new Call[]{TinyExpressionP4Parser::e22,TinyExpressionP4Parser::e23,TinyExpressionP4Parser::e24,TinyExpressionP4Parser::e28,TinyExpressionP4Parser::e29,TinyExpressionP4Parser::e30}; - private static final Label[] K265 = new Label[]{Label.of("'import'")}; - private static final Label K266 = Label.of("'import'"); - private static final String[] K267 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2127:2136:body/1/ruleRef/capture/0"}; - private static final String[] K268 = new String[]{"className"}; - private static final Label[] K269 = new Label[]{Label.of("'#'")}; - private static final Delimiters[] K270 = new Delimiters[]{K218,K218}; - private static final Trivia K271 = new Trivia(K218,null,K270,null,null); - private static final Call[] K272 = new Call[]{TinyExpressionP4Parser::e26,TinyExpressionP4Parser::e27}; - private static final Label K273 = Label.of("'#'"); - private static final String[] K274 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2154:2164:body/2/0/1/tokenRef/capture/0"}; - private static final String[] K275 = new String[]{"method"}; - private static final Label[] K276 = new Label[]{Label.of("IDENTIFIERParser"),Label.of("__CaptureSite")}; - private static final org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression K277 = new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SCOPE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SCOPE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SCOPE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.RANGE,"",97,122,List.of()))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.RANGE,"",65,90,List.of()))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.LITERAL,"_",0,0,List.of()))))))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.REPEAT,"",0,-1,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SCOPE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.RANGE,"",97,122,List.of()))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.RANGE,"",65,90,List.of()))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.LITERAL,"_",0,0,List.of()))))))))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SCOPE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.RANGE,"",48,57,List.of()))))))))))))))))))))))))); - private static final Label K278 = Label.of("IDENTIFIERParser"); - private static final Label[] K279 = new Label[]{Label.of("'as'")}; - private static final Label K280 = Label.of("'as'"); - private static final String[] K281 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2180:2190:body/4/tokenRef/capture/0"}; - private static final String[] K282 = new String[]{"alias"}; - private static final Label[] K283 = new Label[]{Label.of("';'")}; - private static final Label K284 = Label.of("';'"); - private static final Call[] K285 = new Call[]{TinyExpressionP4Parser::e32,TinyExpressionP4Parser::e33}; - private static final String[] K286 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2272:2282:body/0/tokenRef/capture/0"}; - private static final String[] K287 = new String[]{"head"}; - private static final Label[] K288 = new Label[]{Label.of("'.'")}; - private static final Call[] K289 = new Call[]{TinyExpressionP4Parser::e35,TinyExpressionP4Parser::e36}; - private static final Label K290 = Label.of("'.'"); - private static final String[] K291 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2295:2305:body/1/0/1/tokenRef/capture/0"}; - private static final String[] K292 = new String[]{"tail"}; - private static final int[] K293 = new int[]{9,13,32,32,47,47,118,118}; - private static final Label[] K294 = new Label[]{null,Label.of("'variable'"),Label.of("'var'"),Label.of("'$'"),Label.of("';'")}; - private static final int[] K295 = new int[]{5}; - private static final Guard K296 = new Guard(K293,K294,K218,K295,1); - private static final int[] K297 = new int[]{6}; - private static final Guard K298 = new Guard(K293,K294,K218,K297,1); - private static final int[] K299 = new int[]{7}; - private static final Guard K300 = new Guard(K293,K294,K218,K299,1); - private static final int[] K301 = new int[]{8}; - private static final Guard K302 = new Guard(K293,K294,K218,K301,1); - private static final Guard[] K303 = new Guard[]{K296,K298,K300,K302}; - private static final Call[] K304 = new Call[]{TinyExpressionP4Parser::e38,TinyExpressionP4Parser::e39,TinyExpressionP4Parser::e40,TinyExpressionP4Parser::e41}; - private static final Call[] K305 = new Call[]{TinyExpressionP4Parser::e43,TinyExpressionP4Parser::e47,TinyExpressionP4Parser::e48,TinyExpressionP4Parser::e49,TinyExpressionP4Parser::e51,TinyExpressionP4Parser::e57,TinyExpressionP4Parser::e59}; - private static final Label[] K306 = new Label[]{Label.of("'variable'"),Label.of("'var'")}; - private static final Call[] K307 = new Call[]{TinyExpressionP4Parser::e45,TinyExpressionP4Parser::e46}; - private static final Label[] K308 = new Label[]{Label.of("'variable'")}; - private static final Label K309 = Label.of("'variable'"); - private static final Label[] K310 = new Label[]{Label.of("'var'")}; - private static final Label K311 = Label.of("'var'"); - private static final Label K312 = Label.of("'$'"); - private static final String[] K313 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2790:2800:body/2/tokenRef/capture/0"}; - private static final String[] K314 = new String[]{"varName"}; - private static final boolean[] K315 = new boolean[]{true}; - private static final Label[] K316 = new Label[]{Label.of("Optional")}; - private static final Label[] K317 = new Label[]{Label.of("'set'")}; - private static final Call[] K318 = new Call[]{TinyExpressionP4Parser::e53,TinyExpressionP4Parser::e54,TinyExpressionP4Parser::e56}; - private static final Label K319 = Label.of("'set'"); - private static final String[] K320 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2847:2859:body/4/0/1/0/ruleRef/capture/0"}; - private static final String[] K321 = new String[]{"onlyIfAbsent"}; - private static final String[] K322 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2876:2892:body/4/0/2/ruleRef/capture/0"}; - private static final String[] K323 = new String[]{"value"}; - private static final String[] K324 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2908:2919:body/5/0/ruleRef/capture/0"}; - private static final String[] K325 = new String[]{"desc"}; - private static final Call[] K326 = new Call[]{TinyExpressionP4Parser::e61,TinyExpressionP4Parser::e65,TinyExpressionP4Parser::e66,TinyExpressionP4Parser::e67,TinyExpressionP4Parser::e69,TinyExpressionP4Parser::e75,TinyExpressionP4Parser::e77}; + private static final Fields K215 = new Fields(new Field("value",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25749:25765:body/0/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25779:25796:body/1/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25810:25826:body/2/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25840:25856:body/3/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25870:25886:body/4/ruleRef/capture/0","expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25904:25914:body/5/1/ruleRef/capture/0"},"mixed","scalar")); + private static final Fields K216 = new Fields(new Field("value",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:26172:26188:body/0/ruleRef/capture/0"},"mixed","scalar")); + private static final Label[] K217 = new Label[]{Label.of("NumberRootExpressionParser")}; + private static final Fields K218 = new Fields(new Field("value",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:26270:26287:body/0/ruleRef/capture/0"},"mixed","scalar")); + private static final Label[] K219 = new Label[]{Label.of("BooleanRootExpressionParser")}; + private static final Fields K220 = new Fields(new Field("value",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:26368:26384:body/0/ruleRef/capture/0"},"mixed","scalar")); + private static final Label[] K221 = new Label[]{Label.of("StringRootExpressionParser")}; + private static final Fields K222 = new Fields(new Field("value",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:26465:26481:body/0/ruleRef/capture/0"},"mixed","scalar")); + private static final Label[] K223 = new Label[]{Label.of("ObjectRootExpressionParser")}; + private static final Fields K224 = new Fields(new Field("value",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:26562:26578:body/0/ruleRef/capture/0"},"mixed","scalar")); + private static final Label[] K225 = new Label[]{Label.of("MethodRootExpressionParser")}; + private static final Fields K226 = new Fields(new Field("value",new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:26670:26680:body/1/ruleRef/capture/0"},"mixed","scalar")); + private static final String[] K227 = new String[]{}; + private static final boolean[] K228 = new boolean[]{}; + private static final Delimiters K229 = new Delimiters(new Delimiter("characters",null,null,new int[]{9,10,11,12,13,32}),new Delimiter("lineComment","//",null,new int[]{}),new Delimiter("blockComment","/*","*/",new int[]{})); + private static final Delimiters[] K230 = new Delimiters[]{K229,K229,K229,K229,K229}; + private static final Trivia K231 = new Trivia(K229,null,K230,null,null); + private static final Call[] K232 = new Call[]{TinyExpressionP4Parser::e1,TinyExpressionP4Parser::e3,TinyExpressionP4Parser::e5,TinyExpressionP4Parser::e7,TinyExpressionP4Parser::e9}; + private static final Label[] K233 = new Label[]{Label.of("Repeat")}; + private static final String[] K234 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1177:1186:body/0/0/ruleRef/capture/0"}; + private static final String[] K235 = new String[]{"codeBlocks"}; + private static final String[] K236 = new String[]{"consumedExtent"}; + private static final boolean[] K237 = new boolean[]{false}; + private static final Label[] K238 = new Label[]{Label.of("__CaptureSite")}; + private static final String[] K239 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1203:1220:body/1/0/ruleRef/capture/0"}; + private static final String[] K240 = new String[]{"imports"}; + private static final String[] K241 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1234:1253:body/2/0/ruleRef/capture/0"}; + private static final String[] K242 = new String[]{"declarations"}; + private static final Label[] K243 = new Label[]{Label.of("FormulaGroup0Parser")}; + private static final int[] K244 = new int[]{9,13,32,32,47,47,99,99,105,105}; + private static final Label[] K245 = new Label[]{null,Label.of("'call'"),Label.of("'internal'"),Label.of("'('"),Label.of("')'"),Label.of("MethodRootExpressionParser"),Label.of("__CaptureSite")}; + private static final int[] K246 = new int[]{128,36,35}; + private static final Guard K247 = new Guard(K244,K245,K229,K246,3); + private static final int[] K248 = new int[]{9,13,32,32,40,40,47,47}; + private static final Label[] K249 = new Label[]{null,Label.of("'('"),Label.of("')'")}; + private static final int[] K250 = new int[]{129}; + private static final Guard K251 = new Guard(K248,K249,K229,K250,1); + private static final Guard[] K252 = new Guard[]{null,null,null,null,K247,K251}; + private static final Call[] K253 = new Call[]{TinyExpressionP4Parser::e11,TinyExpressionP4Parser::e16,TinyExpressionP4Parser::e21,TinyExpressionP4Parser::e26,TinyExpressionP4Parser::e31,TinyExpressionP4Parser::e36}; + private static final Delimiters[] K254 = new Delimiters[]{K229,K229,K229}; + private static final Trivia K255 = new Trivia(K229,null,K254,null,null); + private static final Call[] K256 = new Call[]{TinyExpressionP4Parser::e12,TinyExpressionP4Parser::e13,TinyExpressionP4Parser::e15}; + private static final String[] K257 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1295:1315:body/4/0/0/0/ruleRef/capture/0"}; + private static final String[] K258 = new String[]{"expression"}; + private static final String[] K259 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1330:1347:body/4/0/0/1/0/ruleRef/capture/0"}; + private static final String[] K260 = new String[]{"methods"}; + private static final Label[] K261 = new Label[]{Label.of("EOFParser")}; + private static final org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression K262 = new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SCOPE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.EOF,"",0,0,List.of()))))))); + private static final Label K263 = Label.of("EOFParser"); + private static final Call[] K264 = new Call[]{TinyExpressionP4Parser::e17,TinyExpressionP4Parser::e18,TinyExpressionP4Parser::e20}; + private static final String[] K265 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1369:1390:body/4/0/1/0/ruleRef/capture/0"}; + private static final String[] K266 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1405:1422:body/4/0/1/1/0/ruleRef/capture/0"}; + private static final Call[] K267 = new Call[]{TinyExpressionP4Parser::e22,TinyExpressionP4Parser::e23,TinyExpressionP4Parser::e25}; + private static final String[] K268 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1444:1464:body/4/0/2/0/ruleRef/capture/0"}; + private static final String[] K269 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1479:1496:body/4/0/2/1/0/ruleRef/capture/0"}; + private static final Call[] K270 = new Call[]{TinyExpressionP4Parser::e27,TinyExpressionP4Parser::e28,TinyExpressionP4Parser::e30}; + private static final String[] K271 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1518:1538:body/4/0/3/0/ruleRef/capture/0"}; + private static final String[] K272 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1553:1570:body/4/0/3/1/0/ruleRef/capture/0"}; + private static final Call[] K273 = new Call[]{TinyExpressionP4Parser::e32,TinyExpressionP4Parser::e33,TinyExpressionP4Parser::e35}; + private static final String[] K274 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1592:1612:body/4/0/4/0/ruleRef/capture/0"}; + private static final String[] K275 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1627:1644:body/4/0/4/1/0/ruleRef/capture/0"}; + private static final Call[] K276 = new Call[]{TinyExpressionP4Parser::e37,TinyExpressionP4Parser::e38,TinyExpressionP4Parser::e40}; + private static final String[] K277 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1666:1693:body/4/0/5/0/ruleRef/capture/0"}; + private static final String[] K278 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1708:1725:body/4/0/5/1/0/ruleRef/capture/0"}; + private static final Delimiters[] K279 = new Delimiters[]{K229}; + private static final Trivia K280 = new Trivia(K229,null,K279,null,null); + private static final Call[] K281 = new Call[]{TinyExpressionP4Parser::e42}; + private static final String[] K282 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2175:2226:body/0/group/capture/0"}; + private static final String[] K283 = new String[]{"source"}; + private static final Label[] K284 = new Label[]{Label.of("CodeBlockGroup0Parser"),Label.of("__CaptureSite")}; + private static final Label[] K285 = new Label[]{Label.of("CodeBlockGroup0Parser")}; + private static final Call[] K286 = new Call[]{TinyExpressionP4Parser::e44,TinyExpressionP4Parser::e45}; + private static final Label[] K287 = new Label[]{Label.of("LONG_CODE_BLOCKParser")}; + private static final org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression K288 = new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SCOPE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SCOPE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.BOL,"",0,0,List.of()),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CAPTURE,"fence",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.REPEAT,"",4,-1,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.LITERAL,"`",0,0,List.of()))))))))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SCOPE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SCOPE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.RANGE,"",97,122,List.of()))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.RANGE,"",65,90,List.of()))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.LITERAL,"_",0,0,List.of()))))))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.REPEAT,"",0,-1,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SCOPE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.RANGE,"",97,122,List.of()))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.RANGE,"",65,90,List.of()))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.LITERAL,"_",0,0,List.of()))))))))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SCOPE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.RANGE,"",48,57,List.of()))))))))))))))))))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.LITERAL,":",0,0,List.of()),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SCOPE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SCOPE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SCOPE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.RANGE,"",97,122,List.of()))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.RANGE,"",65,90,List.of()))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.LITERAL,"_",0,0,List.of()))))))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.REPEAT,"",0,-1,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SCOPE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.RANGE,"",97,122,List.of()))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.RANGE,"",65,90,List.of()))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.LITERAL,"_",0,0,List.of()))))))))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SCOPE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.RANGE,"",48,57,List.of()))))))))))))))))))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.REPEAT,"",0,-1,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.LITERAL,".",0,0,List.of()),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SCOPE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SCOPE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.RANGE,"",97,122,List.of()))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.RANGE,"",65,90,List.of()))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.LITERAL,"_",0,0,List.of()))))))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.REPEAT,"",0,-1,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SCOPE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.RANGE,"",97,122,List.of()))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.RANGE,"",65,90,List.of()))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.LITERAL,"_",0,0,List.of()))))))))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SCOPE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.RANGE,"",48,57,List.of()))))))))))))))))))))))))))))))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SCOPE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.LITERAL,"\r\n",0,0,List.of()))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.LITERAL,"\r",0,0,List.of()))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.LITERAL,"\n",0,0,List.of()))))))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.REPEAT,"",0,-1,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.NOT,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.BOL,"",0,0,List.of()),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.BACKREF,"fence",0,0,List.of()),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.EOL,"",0,0,List.of()))))))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.ANY,"",0,0,List.of()))))))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.BOL,"",0,0,List.of()),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.BACKREF,"fence",0,0,List.of()),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SCOPE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.LITERAL,"\r\n",0,0,List.of()))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.LITERAL,"\r",0,0,List.of()))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.LITERAL,"\n",0,0,List.of()))))))))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.EOF,"",0,0,List.of()))))))))))))))))); + private static final Label K289 = Label.of("LONG_CODE_BLOCKParser"); + private static final Call[] K290 = new Call[]{TinyExpressionP4Parser::e46,TinyExpressionP4Parser::e47,TinyExpressionP4Parser::e48}; + private static final Label[] K291 = new Label[]{Label.of("CODE_STARTParser")}; + private static final org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression K292 = new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SCOPE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SCOPE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.BOL,"",0,0,List.of()),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.LITERAL,"```",0,0,List.of()),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SCOPE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SCOPE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.RANGE,"",97,122,List.of()))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.RANGE,"",65,90,List.of()))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.LITERAL,"_",0,0,List.of()))))))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.REPEAT,"",0,-1,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SCOPE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.RANGE,"",97,122,List.of()))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.RANGE,"",65,90,List.of()))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.LITERAL,"_",0,0,List.of()))))))))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SCOPE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.RANGE,"",48,57,List.of()))))))))))))))))))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.LITERAL,":",0,0,List.of()),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SCOPE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SCOPE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SCOPE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.RANGE,"",97,122,List.of()))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.RANGE,"",65,90,List.of()))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.LITERAL,"_",0,0,List.of()))))))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.REPEAT,"",0,-1,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SCOPE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.RANGE,"",97,122,List.of()))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.RANGE,"",65,90,List.of()))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.LITERAL,"_",0,0,List.of()))))))))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SCOPE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.RANGE,"",48,57,List.of()))))))))))))))))))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.REPEAT,"",0,-1,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.LITERAL,".",0,0,List.of()),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SCOPE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SCOPE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.RANGE,"",97,122,List.of()))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.RANGE,"",65,90,List.of()))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.LITERAL,"_",0,0,List.of()))))))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.REPEAT,"",0,-1,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SCOPE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.RANGE,"",97,122,List.of()))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.RANGE,"",65,90,List.of()))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.LITERAL,"_",0,0,List.of()))))))))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SCOPE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.RANGE,"",48,57,List.of()))))))))))))))))))))))))))))))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SCOPE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.LITERAL,"\r\n",0,0,List.of()))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.LITERAL,"\r",0,0,List.of()))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.LITERAL,"\n",0,0,List.of()))))))))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.EOF,"",0,0,List.of()))))))))))))))))); + private static final Label K293 = Label.of("CODE_STARTParser"); + private static final Label[] K294 = new Label[]{Label.of("CODE_BODYParser")}; + private static final org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression K295 = new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SCOPE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SCOPE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.REPEAT,"",0,-1,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.NOT,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.LITERAL,"```",0,0,List.of()))))))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.ANY,"",0,0,List.of()))))))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.LOOK,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.LITERAL,"```",0,0,List.of()))))))))))))))))))); + private static final Label K296 = Label.of("CODE_BODYParser"); + private static final Label[] K297 = new Label[]{Label.of("CODE_ENDParser")}; + private static final org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression K298 = new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SCOPE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SCOPE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.BOL,"",0,0,List.of()),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.LITERAL,"```",0,0,List.of()),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SCOPE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.LITERAL,"\r\n",0,0,List.of()))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.LITERAL,"\r",0,0,List.of()))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.LITERAL,"\n",0,0,List.of()))))))))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.EOF,"",0,0,List.of()))))))))))))))))); + private static final Label K299 = Label.of("CODE_ENDParser"); + private static final Delimiters[] K300 = new Delimiters[]{K229,K229,K229,K229,K229,K229}; + private static final Trivia K301 = new Trivia(K229,null,K300,null,null); + private static final Call[] K302 = new Call[]{TinyExpressionP4Parser::e50,TinyExpressionP4Parser::e51,TinyExpressionP4Parser::e52,TinyExpressionP4Parser::e56,TinyExpressionP4Parser::e57,TinyExpressionP4Parser::e58}; + private static final Label[] K303 = new Label[]{Label.of("'import'")}; + private static final Label K304 = Label.of("'import'"); + private static final String[] K305 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2691:2700:body/1/ruleRef/capture/0"}; + private static final String[] K306 = new String[]{"className"}; + private static final Label[] K307 = new Label[]{Label.of("'#'")}; + private static final Delimiters[] K308 = new Delimiters[]{K229,K229}; + private static final Trivia K309 = new Trivia(K229,null,K308,null,null); + private static final Call[] K310 = new Call[]{TinyExpressionP4Parser::e54,TinyExpressionP4Parser::e55}; + private static final Label K311 = Label.of("'#'"); + private static final String[] K312 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2718:2728:body/2/0/1/tokenRef/capture/0"}; + private static final String[] K313 = new String[]{"method"}; + private static final Label[] K314 = new Label[]{Label.of("IDENTIFIERParser"),Label.of("__CaptureSite")}; + private static final org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression K315 = new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SCOPE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SCOPE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SCOPE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.RANGE,"",97,122,List.of()))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.RANGE,"",65,90,List.of()))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.LITERAL,"_",0,0,List.of()))))))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.REPEAT,"",0,-1,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SCOPE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.RANGE,"",97,122,List.of()))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.RANGE,"",65,90,List.of()))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.LITERAL,"_",0,0,List.of()))))))))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SCOPE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.RANGE,"",48,57,List.of()))))))))))))))))))))))))); + private static final Label K316 = Label.of("IDENTIFIERParser"); + private static final Label[] K317 = new Label[]{Label.of("'as'")}; + private static final Label K318 = Label.of("'as'"); + private static final String[] K319 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2744:2754:body/4/tokenRef/capture/0"}; + private static final String[] K320 = new String[]{"alias"}; + private static final Label[] K321 = new Label[]{Label.of("';'")}; + private static final Label K322 = Label.of("';'"); + private static final Call[] K323 = new Call[]{TinyExpressionP4Parser::e60,TinyExpressionP4Parser::e61}; + private static final String[] K324 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2836:2846:body/0/tokenRef/capture/0"}; + private static final String[] K325 = new String[]{"head"}; + private static final Label[] K326 = new Label[]{Label.of("'.'")}; private static final Call[] K327 = new Call[]{TinyExpressionP4Parser::e63,TinyExpressionP4Parser::e64}; - private static final String[] K328 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3139:3149:body/2/tokenRef/capture/0"}; - private static final Call[] K329 = new Call[]{TinyExpressionP4Parser::e71,TinyExpressionP4Parser::e72,TinyExpressionP4Parser::e74}; - private static final String[] K330 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3196:3208:body/4/0/1/0/ruleRef/capture/0"}; - private static final String[] K331 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3225:3241:body/4/0/2/ruleRef/capture/0"}; - private static final String[] K332 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3257:3268:body/5/0/ruleRef/capture/0"}; - private static final Call[] K333 = new Call[]{TinyExpressionP4Parser::e79,TinyExpressionP4Parser::e83,TinyExpressionP4Parser::e84,TinyExpressionP4Parser::e85,TinyExpressionP4Parser::e87,TinyExpressionP4Parser::e93,TinyExpressionP4Parser::e95}; - private static final Call[] K334 = new Call[]{TinyExpressionP4Parser::e81,TinyExpressionP4Parser::e82}; - private static final String[] K335 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3490:3500:body/2/tokenRef/capture/0"}; - private static final Call[] K336 = new Call[]{TinyExpressionP4Parser::e89,TinyExpressionP4Parser::e90,TinyExpressionP4Parser::e92}; - private static final String[] K337 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3548:3560:body/4/0/1/0/ruleRef/capture/0"}; - private static final String[] K338 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3577:3594:body/4/0/2/ruleRef/capture/0"}; - private static final String[] K339 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3610:3621:body/5/0/ruleRef/capture/0"}; - private static final Call[] K340 = new Call[]{TinyExpressionP4Parser::e97,TinyExpressionP4Parser::e101,TinyExpressionP4Parser::e102,TinyExpressionP4Parser::e103,TinyExpressionP4Parser::e105,TinyExpressionP4Parser::e111,TinyExpressionP4Parser::e113}; - private static final Call[] K341 = new Call[]{TinyExpressionP4Parser::e99,TinyExpressionP4Parser::e100}; - private static final String[] K342 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3841:3851:body/2/tokenRef/capture/0"}; - private static final Call[] K343 = new Call[]{TinyExpressionP4Parser::e107,TinyExpressionP4Parser::e108,TinyExpressionP4Parser::e110}; - private static final String[] K344 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3898:3910:body/4/0/1/0/ruleRef/capture/0"}; - private static final String[] K345 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3927:3943:body/4/0/2/ruleRef/capture/0"}; - private static final String[] K346 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3959:3970:body/5/0/ruleRef/capture/0"}; - private static final Call[] K347 = new Call[]{TinyExpressionP4Parser::e115,TinyExpressionP4Parser::e117}; - private static final Label[] K348 = new Label[]{Label.of("'number'"),Label.of("'Number'"),Label.of("'string'"),Label.of("'String'"),Label.of("'boolean'"),Label.of("'Boolean'"),Label.of("'object'"),Label.of("'Object'")}; - private static final Call[] K349 = new Call[]{TinyExpressionP4Parser::e119,TinyExpressionP4Parser::e120,TinyExpressionP4Parser::e121,TinyExpressionP4Parser::e122,TinyExpressionP4Parser::e123,TinyExpressionP4Parser::e124,TinyExpressionP4Parser::e125,TinyExpressionP4Parser::e126}; - private static final Label[] K350 = new Label[]{Label.of("'number'")}; - private static final Label K351 = Label.of("'number'"); - private static final Label[] K352 = new Label[]{Label.of("'Number'")}; - private static final Label K353 = Label.of("'Number'"); - private static final Label K354 = Label.of("'string'"); - private static final Label[] K355 = new Label[]{Label.of("'String'")}; - private static final Label K356 = Label.of("'String'"); - private static final Label K357 = Label.of("'boolean'"); - private static final Label[] K358 = new Label[]{Label.of("'Boolean'")}; - private static final Label K359 = Label.of("'Boolean'"); - private static final Label K360 = Label.of("'object'"); - private static final Label[] K361 = new Label[]{Label.of("'Object'")}; - private static final Label K362 = Label.of("'Object'"); - private static final Call[] K363 = new Call[]{TinyExpressionP4Parser::e128,TinyExpressionP4Parser::e130}; - private static final Label[] K364 = new Label[]{Label.of("'number'"),Label.of("'Number'"),Label.of("'float'"),Label.of("'Float'")}; - private static final Call[] K365 = new Call[]{TinyExpressionP4Parser::e132,TinyExpressionP4Parser::e133,TinyExpressionP4Parser::e134,TinyExpressionP4Parser::e135}; - private static final Label[] K366 = new Label[]{Label.of("'float'")}; - private static final Label K367 = Label.of("'float'"); - private static final Label[] K368 = new Label[]{Label.of("'Float'")}; - private static final Label K369 = Label.of("'Float'"); - private static final Call[] K370 = new Call[]{TinyExpressionP4Parser::e137,TinyExpressionP4Parser::e139}; - private static final Label[] K371 = new Label[]{Label.of("'string'"),Label.of("'String'")}; - private static final Call[] K372 = new Call[]{TinyExpressionP4Parser::e141,TinyExpressionP4Parser::e142}; - private static final Call[] K373 = new Call[]{TinyExpressionP4Parser::e144,TinyExpressionP4Parser::e146}; - private static final Label[] K374 = new Label[]{Label.of("'boolean'"),Label.of("'Boolean'")}; - private static final Call[] K375 = new Call[]{TinyExpressionP4Parser::e148,TinyExpressionP4Parser::e149}; - private static final Call[] K376 = new Call[]{TinyExpressionP4Parser::e151,TinyExpressionP4Parser::e153}; - private static final Label[] K377 = new Label[]{Label.of("'object'"),Label.of("'Object'")}; - private static final Call[] K378 = new Call[]{TinyExpressionP4Parser::e155,TinyExpressionP4Parser::e156}; - private static final Call[] K379 = new Call[]{TinyExpressionP4Parser::e158,TinyExpressionP4Parser::e159,TinyExpressionP4Parser::e160}; - private static final Label[] K380 = new Label[]{Label.of("'if'")}; - private static final Label K381 = Label.of("'if'"); - private static final Label[] K382 = new Label[]{Label.of("'not'")}; - private static final Label K383 = Label.of("'not'"); - private static final Label[] K384 = new Label[]{Label.of("'exists'")}; - private static final Label K385 = Label.of("'exists'"); - private static final Call[] K386 = new Call[]{TinyExpressionP4Parser::e162,TinyExpressionP4Parser::e163,TinyExpressionP4Parser::e164}; - private static final Label[] K387 = new Label[]{Label.of("'description'")}; - private static final Label K388 = Label.of("'description'"); - private static final Label K389 = Label.of("'='"); - private static final Label[] K390 = new Label[]{Label.of("STRINGParser")}; - private static final org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression K391 = new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SCOPE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SCOPE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.LITERAL,"\"",0,0,List.of()),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.REPEAT,"",0,-1,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.LITERAL,"\\",0,0,List.of()),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.ANY,"",0,0,List.of()))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.EXCEPT,"\"\\",0,0,List.of()))))))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.LITERAL,"\"",0,0,List.of()))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.LITERAL,"'",0,0,List.of()),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.REPEAT,"",0,-1,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.LITERAL,"\\",0,0,List.of()),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.ANY,"",0,0,List.of()))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.EXCEPT,"'\\",0,0,List.of()))))))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.LITERAL,"'",0,0,List.of()))))))))))))); - private static final Label K392 = Label.of("STRINGParser"); - private static final Delimiters[] K393 = new Delimiters[]{K218,K218,K218,K218,K218}; - private static final Trivia K394 = new Trivia(K218,null,K393,null,null); - private static final Call[] K395 = new Call[]{TinyExpressionP4Parser::e166,TinyExpressionP4Parser::e167,TinyExpressionP4Parser::e168,TinyExpressionP4Parser::e169,TinyExpressionP4Parser::e171}; - private static final Label[] K396 = new Label[]{Label.of("'@'")}; - private static final Label K397 = Label.of("'@'"); - private static final Label[] K398 = new Label[]{Label.of("IDENTIFIERParser")}; - private static final Label[] K399 = new Label[]{Label.of("'('")}; - private static final Label K400 = Label.of("'('"); - private static final Label[] K401 = new Label[]{Label.of("')'")}; - private static final Label K402 = Label.of("')'"); - private static final Call[] K403 = new Call[]{TinyExpressionP4Parser::e173,TinyExpressionP4Parser::e174}; - private static final Label[] K404 = new Label[]{Label.of("','")}; - private static final Label[] K405 = new Label[]{Label.of("','"),Label.of("'='")}; - private static final Call[] K406 = new Call[]{TinyExpressionP4Parser::e176,TinyExpressionP4Parser::e177}; - private static final Label K407 = Label.of("','"); - private static final Call[] K408 = new Call[]{TinyExpressionP4Parser::e179,TinyExpressionP4Parser::e180,TinyExpressionP4Parser::e181}; - private static final Call[] K409 = new Call[]{TinyExpressionP4Parser::e183,TinyExpressionP4Parser::e184,TinyExpressionP4Parser::e185,TinyExpressionP4Parser::e186}; - private static final Delimiters[] K410 = new Delimiters[]{K218,K218,K218,K218,K218,K218,K218,K218}; - private static final Trivia K411 = new Trivia(K218,null,K410,null,null); - private static final Call[] K412 = new Call[]{TinyExpressionP4Parser::e188,TinyExpressionP4Parser::e189,TinyExpressionP4Parser::e190,TinyExpressionP4Parser::e191,TinyExpressionP4Parser::e193,TinyExpressionP4Parser::e194,TinyExpressionP4Parser::e195,TinyExpressionP4Parser::e196}; - private static final String[] K413 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5019:5029:body/1/tokenRef/capture/0"}; - private static final String[] K414 = new String[]{"methodName"}; - private static final String[] K415 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5058:5074:body/3/0/ruleRef/capture/0"}; - private static final String[] K416 = new String[]{"parameters"}; - private static final Label[] K417 = new Label[]{Label.of("'{'")}; - private static final Label K418 = Label.of("'{'"); - private static final String[] K419 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5111:5127:body/6/ruleRef/capture/0"}; - private static final Label[] K420 = new Label[]{Label.of("'}'")}; - private static final Label K421 = Label.of("'}'"); - private static final Call[] K422 = new Call[]{TinyExpressionP4Parser::e198,TinyExpressionP4Parser::e199,TinyExpressionP4Parser::e200,TinyExpressionP4Parser::e201,TinyExpressionP4Parser::e203,TinyExpressionP4Parser::e204,TinyExpressionP4Parser::e205,TinyExpressionP4Parser::e206}; - private static final String[] K423 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5345:5355:body/1/tokenRef/capture/0"}; - private static final String[] K424 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5384:5400:body/3/0/ruleRef/capture/0"}; - private static final String[] K425 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5437:5453:body/6/ruleRef/capture/0"}; - private static final Call[] K426 = new Call[]{TinyExpressionP4Parser::e208,TinyExpressionP4Parser::e209,TinyExpressionP4Parser::e210,TinyExpressionP4Parser::e211,TinyExpressionP4Parser::e213,TinyExpressionP4Parser::e214,TinyExpressionP4Parser::e215,TinyExpressionP4Parser::e216}; - private static final String[] K427 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5674:5684:body/1/tokenRef/capture/0"}; - private static final String[] K428 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5713:5729:body/3/0/ruleRef/capture/0"}; - private static final String[] K429 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5766:5783:body/6/ruleRef/capture/0"}; - private static final Call[] K430 = new Call[]{TinyExpressionP4Parser::e218,TinyExpressionP4Parser::e219,TinyExpressionP4Parser::e220,TinyExpressionP4Parser::e221,TinyExpressionP4Parser::e223,TinyExpressionP4Parser::e224,TinyExpressionP4Parser::e225,TinyExpressionP4Parser::e226}; - private static final String[] K431 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6001:6011:body/1/tokenRef/capture/0"}; - private static final String[] K432 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6040:6056:body/3/0/ruleRef/capture/0"}; - private static final String[] K433 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6093:6109:body/6/ruleRef/capture/0"}; - private static final Call[] K434 = new Call[]{TinyExpressionP4Parser::e228,TinyExpressionP4Parser::e229}; - private static final String[] K435 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6206:6221:body/0/ruleRef/capture/0"}; - private static final String[] K436 = new String[]{"values"}; - private static final Call[] K437 = new Call[]{TinyExpressionP4Parser::e231,TinyExpressionP4Parser::e232}; - private static final String[] K438 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6236:6251:body/1/0/1/ruleRef/capture/0"}; - private static final Call[] K439 = new Call[]{TinyExpressionP4Parser::e234,TinyExpressionP4Parser::e235,TinyExpressionP4Parser::e236}; - private static final String[] K440 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6379:6389:body/1/tokenRef/capture/0"}; - private static final String[] K441 = new String[]{"paramName"}; - private static final Call[] K442 = new Call[]{TinyExpressionP4Parser::e238,TinyExpressionP4Parser::e239}; - private static final String[] K443 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6408:6418:body/2/0/1/ruleRef/capture/0"}; - private static final String[] K444 = new String[]{"type"}; - private static final Call[] K445 = new Call[]{TinyExpressionP4Parser::e241,TinyExpressionP4Parser::e242}; - private static final Call[] K446 = new Call[]{TinyExpressionP4Parser::e244}; - private static final Call[] K447 = new Call[]{TinyExpressionP4Parser::e246}; - private static final Call[] K448 = new Call[]{TinyExpressionP4Parser::e248}; - private static final int[] K449 = new int[]{9,13,32,32,47,47,102,102,110,110}; - private static final int[] K450 = new int[]{26}; - private static final Guard K451 = new Guard(K449,K51,null,K450,1); - private static final int[] K452 = new int[]{9,13,32,32,47,47,115,115}; - private static final Label[] K453 = new Label[]{null,Label.of("'string'")}; - private static final int[] K454 = new int[]{27}; - private static final Guard K455 = new Guard(K452,K453,K218,K454,1); - private static final int[] K456 = new int[]{9,13,32,32,47,47,98,98}; - private static final Label[] K457 = new Label[]{null,Label.of("'boolean'")}; - private static final int[] K458 = new int[]{28}; - private static final Guard K459 = new Guard(K456,K457,K218,K458,1); - private static final int[] K460 = new int[]{9,13,32,32,47,47,111,111}; - private static final Label[] K461 = new Label[]{null,Label.of("'object'")}; - private static final int[] K462 = new int[]{29}; - private static final Guard K463 = new Guard(K460,K461,K218,K462,1); - private static final Guard[] K464 = new Guard[]{K451,K455,K459,K463}; - private static final Call[] K465 = new Call[]{TinyExpressionP4Parser::e250,TinyExpressionP4Parser::e251,TinyExpressionP4Parser::e252,TinyExpressionP4Parser::e253}; - private static final Call[] K466 = new Call[]{TinyExpressionP4Parser::e255,TinyExpressionP4Parser::e256,TinyExpressionP4Parser::e261,TinyExpressionP4Parser::e262,TinyExpressionP4Parser::e264,TinyExpressionP4Parser::e271,TinyExpressionP4Parser::e272,TinyExpressionP4Parser::e274}; - private static final Label[] K467 = new Label[]{Label.of("'external'")}; - private static final Label K468 = Label.of("'external'"); - private static final Label[] K469 = new Label[]{Label.of("'returning'")}; - private static final Label[] K470 = new Label[]{Label.of("'returning'"),Label.of("'as'")}; - private static final Call[] K471 = new Call[]{TinyExpressionP4Parser::e258,TinyExpressionP4Parser::e259}; - private static final Label K472 = Label.of("'returning'"); - private static final Label[] K473 = new Label[]{Label.of("':'")}; - private static final Label K474 = Label.of("':'"); - private static final Call[] K475 = new Call[]{TinyExpressionP4Parser::e266,TinyExpressionP4Parser::e270}; - private static final Call[] K476 = new Call[]{TinyExpressionP4Parser::e267,TinyExpressionP4Parser::e268,TinyExpressionP4Parser::e269}; - private static final String[] K477 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7067:7076:body/4/0/0/0/ruleRef/capture/0"}; - private static final String[] K478 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7092:7102:body/4/0/0/2/tokenRef/capture/0"}; - private static final String[] K479 = new String[]{"name"}; - private static final String[] K480 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7111:7121:body/4/0/1/tokenRef/capture/0"}; - private static final String[] K481 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7140:7149:body/6/0/ruleRef/capture/0"}; - private static final String[] K482 = new String[]{"args"}; - private static final Call[] K483 = new Call[]{TinyExpressionP4Parser::e276,TinyExpressionP4Parser::e277,TinyExpressionP4Parser::e290,TinyExpressionP4Parser::e297,TinyExpressionP4Parser::e298,TinyExpressionP4Parser::e300}; - private static final Call[] K484 = new Call[]{TinyExpressionP4Parser::e279,TinyExpressionP4Parser::e288}; - private static final Label[] K485 = new Label[]{Label.of("'number'"),Label.of("'float'"),Label.of("':'")}; - private static final Call[] K486 = new Call[]{TinyExpressionP4Parser::e280,TinyExpressionP4Parser::e285,TinyExpressionP4Parser::e286}; - private static final Call[] K487 = new Call[]{TinyExpressionP4Parser::e282,TinyExpressionP4Parser::e283}; - private static final Call[] K488 = new Call[]{TinyExpressionP4Parser::e292,TinyExpressionP4Parser::e296}; - private static final Call[] K489 = new Call[]{TinyExpressionP4Parser::e293,TinyExpressionP4Parser::e294,TinyExpressionP4Parser::e295}; - private static final String[] K490 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7358:7367:body/2/0/0/0/ruleRef/capture/0"}; - private static final String[] K491 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7383:7393:body/2/0/0/2/tokenRef/capture/0"}; - private static final String[] K492 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7402:7412:body/2/0/1/tokenRef/capture/0"}; - private static final String[] K493 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7431:7440:body/4/0/ruleRef/capture/0"}; - private static final Call[] K494 = new Call[]{TinyExpressionP4Parser::e302,TinyExpressionP4Parser::e303,TinyExpressionP4Parser::e308,TinyExpressionP4Parser::e309,TinyExpressionP4Parser::e311,TinyExpressionP4Parser::e318,TinyExpressionP4Parser::e319,TinyExpressionP4Parser::e321}; - private static final Call[] K495 = new Call[]{TinyExpressionP4Parser::e305,TinyExpressionP4Parser::e306}; - private static final Call[] K496 = new Call[]{TinyExpressionP4Parser::e313,TinyExpressionP4Parser::e317}; - private static final Call[] K497 = new Call[]{TinyExpressionP4Parser::e314,TinyExpressionP4Parser::e315,TinyExpressionP4Parser::e316}; - private static final String[] K498 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7635:7644:body/4/0/0/0/ruleRef/capture/0"}; - private static final String[] K499 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7660:7670:body/4/0/0/2/tokenRef/capture/0"}; - private static final String[] K500 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7679:7689:body/4/0/1/tokenRef/capture/0"}; - private static final String[] K501 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7708:7717:body/6/0/ruleRef/capture/0"}; - private static final Call[] K502 = new Call[]{TinyExpressionP4Parser::e323,TinyExpressionP4Parser::e324,TinyExpressionP4Parser::e329,TinyExpressionP4Parser::e330,TinyExpressionP4Parser::e332,TinyExpressionP4Parser::e339,TinyExpressionP4Parser::e340,TinyExpressionP4Parser::e342}; - private static final Call[] K503 = new Call[]{TinyExpressionP4Parser::e326,TinyExpressionP4Parser::e327}; - private static final Call[] K504 = new Call[]{TinyExpressionP4Parser::e334,TinyExpressionP4Parser::e338}; - private static final Call[] K505 = new Call[]{TinyExpressionP4Parser::e335,TinyExpressionP4Parser::e336,TinyExpressionP4Parser::e337}; - private static final String[] K506 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7912:7921:body/4/0/0/0/ruleRef/capture/0"}; - private static final String[] K507 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7937:7947:body/4/0/0/2/tokenRef/capture/0"}; - private static final String[] K508 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7956:7966:body/4/0/1/tokenRef/capture/0"}; - private static final String[] K509 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7985:7994:body/6/0/ruleRef/capture/0"}; - private static final int[] K510 = new int[]{9,13,32,32,47,47,99,99}; - private static final Label[] K511 = new Label[]{null,Label.of("'call'"),Label.of("'internal'")}; - private static final int[] K512 = new int[]{}; - private static final Guard K513 = new Guard(K510,K511,K218,K512,0); - private static final Guard[] K514 = new Guard[]{K513,null}; - private static final Call[] K515 = new Call[]{TinyExpressionP4Parser::e344,TinyExpressionP4Parser::e348}; - private static final Call[] K516 = new Call[]{TinyExpressionP4Parser::e345,TinyExpressionP4Parser::e346}; - private static final Label[] K517 = new Label[]{Label.of("'call'")}; - private static final Label K518 = Label.of("'call'"); - private static final Label[] K519 = new Label[]{Label.of("'internal'")}; - private static final Label K520 = Label.of("'internal'"); - private static final Call[] K521 = new Call[]{TinyExpressionP4Parser::e350,TinyExpressionP4Parser::e351,TinyExpressionP4Parser::e352,TinyExpressionP4Parser::e353,TinyExpressionP4Parser::e355}; - private static final String[] K522 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8371:8381:body/1/tokenRef/capture/0"}; - private static final String[] K523 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8394:8403:body/3/0/ruleRef/capture/0"}; - private static final Call[] K524 = new Call[]{TinyExpressionP4Parser::e357,TinyExpressionP4Parser::e358,TinyExpressionP4Parser::e359,TinyExpressionP4Parser::e360,TinyExpressionP4Parser::e361}; - private static final String[] K525 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8582:8599:body/0/ruleRef/capture/0"}; - private static final String[] K526 = new String[]{"condition"}; - private static final Label[] K527 = new Label[]{Label.of("'?'")}; - private static final Label K528 = Label.of("'?'"); - private static final String[] K529 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8615:8631:body/2/ruleRef/capture/0"}; - private static final String[] K530 = new String[]{"thenExpr"}; - private static final String[] K531 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8646:8662:body/4/ruleRef/capture/0"}; - private static final String[] K532 = new String[]{"elseExpr"}; - private static final Call[] K533 = new Call[]{TinyExpressionP4Parser::e363,TinyExpressionP4Parser::e364,TinyExpressionP4Parser::e365,TinyExpressionP4Parser::e366}; - private static final String[] K534 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8758:8773:body/0/ruleRef/capture/0"}; - private static final String[] K535 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8787:8807:body/1/ruleRef/capture/0"}; - private static final String[] K536 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8821:8847:body/2/ruleRef/capture/0"}; - private static final String[] K537 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8861:8871:body/3/ruleRef/capture/0"}; - private static final Call[] K538 = new Call[]{TinyExpressionP4Parser::e368,TinyExpressionP4Parser::e369}; - private static final String[] K539 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8941:8959:body/0/ruleRef/capture/0"}; - private static final Call[] K540 = new Call[]{TinyExpressionP4Parser::e371,TinyExpressionP4Parser::e372}; - private static final String[] K541 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8974:8992:body/1/0/1/ruleRef/capture/0"}; - private static final Call[] K542 = new Call[]{TinyExpressionP4Parser::e374,TinyExpressionP4Parser::e375}; - private static final String[] K543 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9197:9207:body/0/ruleRef/capture/0"}; - private static final String[] K544 = new String[]{"left"}; - private static final Label[] K545 = new Label[]{Label.of("NumberExpressionRepeat0Parser")}; - private static final Call[] K546 = new Call[]{TinyExpressionP4Parser::e377,TinyExpressionP4Parser::e378}; - private static final String[] K547 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9216:9221:body/1/0/0/ruleRef/capture/0"}; - private static final String[] K548 = new String[]{"op"}; - private static final String[] K549 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9226:9236:body/1/0/1/ruleRef/capture/0"}; - private static final String[] K550 = new String[]{"right"}; - private static final Call[] K551 = new Call[]{TinyExpressionP4Parser::e380,TinyExpressionP4Parser::e381}; - private static final String[] K552 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9352:9364:body/0/ruleRef/capture/0"}; - private static final Label[] K553 = new Label[]{Label.of("NumberTermRepeat0Parser")}; - private static final Call[] K554 = new Call[]{TinyExpressionP4Parser::e383,TinyExpressionP4Parser::e384}; - private static final String[] K555 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9373:9378:body/1/0/0/ruleRef/capture/0"}; - private static final String[] K556 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9383:9395:body/1/0/1/ruleRef/capture/0"}; - private static final Call[] K557 = new Call[]{TinyExpressionP4Parser::e386,TinyExpressionP4Parser::e387}; - private static final Label[] K558 = new Label[]{Label.of("'+'")}; - private static final Label K559 = Label.of("'+'"); - private static final Label[] K560 = new Label[]{Label.of("'-'")}; - private static final Label K561 = Label.of("'-'"); - private static final Call[] K562 = new Call[]{TinyExpressionP4Parser::e389,TinyExpressionP4Parser::e390}; - private static final Label[] K563 = new Label[]{Label.of("'*'")}; - private static final Label K564 = Label.of("'*'"); - private static final Label[] K565 = new Label[]{Label.of("'/'")}; - private static final Label K566 = Label.of("'/'"); - private static final Label[] K567 = new Label[]{null,Label.of("'sin'"),Label.of("'('"),Label.of("')'")}; - private static final int[] K568 = new int[]{45}; - private static final Guard K569 = new Guard(K452,K567,K218,K568,1); - private static final Label[] K570 = new Label[]{null,Label.of("'cos'"),Label.of("'('"),Label.of("')'")}; - private static final int[] K571 = new int[]{46}; - private static final Guard K572 = new Guard(K510,K570,K218,K571,1); - private static final int[] K573 = new int[]{9,13,32,32,47,47,116,116}; - private static final Label[] K574 = new Label[]{null,Label.of("'tan'"),Label.of("'('"),Label.of("')'")}; - private static final int[] K575 = new int[]{47}; - private static final Guard K576 = new Guard(K573,K574,K218,K575,1); - private static final Label[] K577 = new Label[]{null,Label.of("'sqrt'"),Label.of("'('"),Label.of("')'")}; - private static final int[] K578 = new int[]{48}; - private static final Guard K579 = new Guard(K452,K577,K218,K578,1); - private static final int[] K580 = new int[]{9,13,32,32,47,47,109,109}; - private static final Label[] K581 = new Label[]{null,Label.of("'min'"),Label.of("'('"),Label.of("')'")}; - private static final int[] K582 = new int[]{49}; - private static final Guard K583 = new Guard(K580,K581,K218,K582,1); - private static final Label[] K584 = new Label[]{null,Label.of("'max'"),Label.of("'('"),Label.of("')'")}; - private static final int[] K585 = new int[]{50}; - private static final Guard K586 = new Guard(K580,K584,K218,K585,1); - private static final int[] K587 = new int[]{9,13,32,32,47,47,114,114}; - private static final Label[] K588 = new Label[]{null,Label.of("'random'"),Label.of("'('"),Label.of("')'")}; - private static final int[] K589 = new int[]{51}; - private static final Guard K590 = new Guard(K587,K588,K218,K589,1); - private static final int[] K591 = new int[]{9,13,32,32,47,47,97,97}; - private static final Label[] K592 = new Label[]{null,Label.of("'abs'"),Label.of("'('"),Label.of("')'")}; - private static final int[] K593 = new int[]{52}; - private static final Guard K594 = new Guard(K591,K592,K218,K593,1); - private static final Label[] K595 = new Label[]{null,Label.of("'round'"),Label.of("'('"),Label.of("')'")}; - private static final int[] K596 = new int[]{53}; - private static final Guard K597 = new Guard(K587,K595,K218,K596,1); - private static final Label[] K598 = new Label[]{null,Label.of("'ceil'"),Label.of("'('"),Label.of("')'")}; - private static final int[] K599 = new int[]{54}; - private static final Guard K600 = new Guard(K510,K598,K218,K599,1); - private static final int[] K601 = new int[]{9,13,32,32,47,47,102,102}; - private static final Label[] K602 = new Label[]{null,Label.of("'floor'"),Label.of("'('"),Label.of("')'")}; - private static final int[] K603 = new int[]{55}; - private static final Guard K604 = new Guard(K601,K602,K218,K603,1); - private static final int[] K605 = new int[]{9,13,32,32,47,47,112,112}; - private static final Label[] K606 = new Label[]{null,Label.of("'pow'"),Label.of("'('"),Label.of("','"),Label.of("')'")}; - private static final int[] K607 = new int[]{56}; - private static final Guard K608 = new Guard(K605,K606,K218,K607,1); - private static final int[] K609 = new int[]{9,13,32,32,47,47,108,108}; - private static final Label[] K610 = new Label[]{null,Label.of("'log'"),Label.of("'('"),Label.of("')'")}; - private static final int[] K611 = new int[]{57}; - private static final Guard K612 = new Guard(K609,K610,K218,K611,1); - private static final int[] K613 = new int[]{9,13,32,32,47,47,101,101}; - private static final Label[] K614 = new Label[]{null,Label.of("'exp'"),Label.of("'('"),Label.of("')'")}; - private static final int[] K615 = new int[]{58}; - private static final Guard K616 = new Guard(K613,K614,K218,K615,1); - private static final Guard[] K617 = new Guard[]{K569,K572,K576,K579,K583,K586,K590,K594,K597,K600,K604,K608,K612,K616}; - private static final Call[] K618 = new Call[]{TinyExpressionP4Parser::e392,TinyExpressionP4Parser::e393,TinyExpressionP4Parser::e394,TinyExpressionP4Parser::e395,TinyExpressionP4Parser::e396,TinyExpressionP4Parser::e397,TinyExpressionP4Parser::e398,TinyExpressionP4Parser::e399,TinyExpressionP4Parser::e400,TinyExpressionP4Parser::e401,TinyExpressionP4Parser::e402,TinyExpressionP4Parser::e403,TinyExpressionP4Parser::e404,TinyExpressionP4Parser::e405}; - private static final Delimiters[] K619 = new Delimiters[]{K218,K218,K218,K218}; - private static final Trivia K620 = new Trivia(K218,null,K619,null,null); - private static final Call[] K621 = new Call[]{TinyExpressionP4Parser::e407,TinyExpressionP4Parser::e408,TinyExpressionP4Parser::e409,TinyExpressionP4Parser::e410}; - private static final Label[] K622 = new Label[]{Label.of("'sin'")}; - private static final Label K623 = Label.of("'sin'"); - private static final String[] K624 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9881:9899:body/2/ruleRef/capture/0"}; - private static final String[] K625 = new String[]{"arg"}; - private static final Call[] K626 = new Call[]{TinyExpressionP4Parser::e412,TinyExpressionP4Parser::e413,TinyExpressionP4Parser::e414,TinyExpressionP4Parser::e415}; - private static final Label[] K627 = new Label[]{Label.of("'cos'")}; - private static final Label K628 = Label.of("'cos'"); - private static final String[] K629 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9974:9992:body/2/ruleRef/capture/0"}; - private static final Call[] K630 = new Call[]{TinyExpressionP4Parser::e417,TinyExpressionP4Parser::e418,TinyExpressionP4Parser::e419,TinyExpressionP4Parser::e420}; - private static final Label[] K631 = new Label[]{Label.of("'tan'")}; - private static final Label K632 = Label.of("'tan'"); - private static final String[] K633 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10067:10085:body/2/ruleRef/capture/0"}; - private static final Call[] K634 = new Call[]{TinyExpressionP4Parser::e422,TinyExpressionP4Parser::e423,TinyExpressionP4Parser::e424,TinyExpressionP4Parser::e425}; - private static final Label[] K635 = new Label[]{Label.of("'sqrt'")}; - private static final Label K636 = Label.of("'sqrt'"); - private static final String[] K637 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10163:10181:body/2/ruleRef/capture/0"}; - private static final Call[] K638 = new Call[]{TinyExpressionP4Parser::e427,TinyExpressionP4Parser::e428,TinyExpressionP4Parser::e429,TinyExpressionP4Parser::e430,TinyExpressionP4Parser::e434}; - private static final Label[] K639 = new Label[]{Label.of("'min'")}; - private static final Label K640 = Label.of("'min'"); - private static final String[] K641 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10264:10282:body/2/ruleRef/capture/0"}; - private static final String[] K642 = new String[]{"first"}; - private static final Call[] K643 = new Call[]{TinyExpressionP4Parser::e432,TinyExpressionP4Parser::e433}; - private static final String[] K644 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10296:10314:body/3/0/1/ruleRef/capture/0"}; - private static final String[] K645 = new String[]{"rest"}; - private static final Call[] K646 = new Call[]{TinyExpressionP4Parser::e436,TinyExpressionP4Parser::e437,TinyExpressionP4Parser::e438,TinyExpressionP4Parser::e439,TinyExpressionP4Parser::e443}; - private static final Label[] K647 = new Label[]{Label.of("'max'")}; - private static final Label K648 = Label.of("'max'"); - private static final String[] K649 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10400:10418:body/2/ruleRef/capture/0"}; - private static final Call[] K650 = new Call[]{TinyExpressionP4Parser::e441,TinyExpressionP4Parser::e442}; - private static final String[] K651 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10432:10450:body/3/0/1/ruleRef/capture/0"}; - private static final Call[] K652 = new Call[]{TinyExpressionP4Parser::e445,TinyExpressionP4Parser::e446,TinyExpressionP4Parser::e447}; - private static final Label[] K653 = new Label[]{Label.of("'random'")}; - private static final Label K654 = Label.of("'random'"); - private static final Call[] K655 = new Call[]{TinyExpressionP4Parser::e449,TinyExpressionP4Parser::e450,TinyExpressionP4Parser::e451,TinyExpressionP4Parser::e452}; - private static final Label[] K656 = new Label[]{Label.of("'abs'")}; - private static final Label K657 = Label.of("'abs'"); - private static final String[] K658 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10592:10610:body/2/ruleRef/capture/0"}; - private static final Call[] K659 = new Call[]{TinyExpressionP4Parser::e454,TinyExpressionP4Parser::e455,TinyExpressionP4Parser::e456,TinyExpressionP4Parser::e457}; - private static final Label[] K660 = new Label[]{Label.of("'round'")}; - private static final Label K661 = Label.of("'round'"); - private static final String[] K662 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10691:10709:body/2/ruleRef/capture/0"}; - private static final Call[] K663 = new Call[]{TinyExpressionP4Parser::e459,TinyExpressionP4Parser::e460,TinyExpressionP4Parser::e461,TinyExpressionP4Parser::e462}; - private static final Label[] K664 = new Label[]{Label.of("'ceil'")}; - private static final Label K665 = Label.of("'ceil'"); - private static final String[] K666 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10787:10805:body/2/ruleRef/capture/0"}; - private static final Call[] K667 = new Call[]{TinyExpressionP4Parser::e464,TinyExpressionP4Parser::e465,TinyExpressionP4Parser::e466,TinyExpressionP4Parser::e467}; - private static final Label[] K668 = new Label[]{Label.of("'floor'")}; - private static final Label K669 = Label.of("'floor'"); - private static final String[] K670 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10886:10904:body/2/ruleRef/capture/0"}; - private static final Call[] K671 = new Call[]{TinyExpressionP4Parser::e469,TinyExpressionP4Parser::e470,TinyExpressionP4Parser::e471,TinyExpressionP4Parser::e472,TinyExpressionP4Parser::e473,TinyExpressionP4Parser::e474}; - private static final Label[] K672 = new Label[]{Label.of("'pow'")}; - private static final Label K673 = Label.of("'pow'"); - private static final String[] K674 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10990:11008:body/2/ruleRef/capture/0"}; - private static final String[] K675 = new String[]{"base"}; - private static final String[] K676 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11019:11037:body/4/ruleRef/capture/0"}; - private static final String[] K677 = new String[]{"exponent"}; - private static final Call[] K678 = new Call[]{TinyExpressionP4Parser::e476,TinyExpressionP4Parser::e477,TinyExpressionP4Parser::e478,TinyExpressionP4Parser::e479}; - private static final Label[] K679 = new Label[]{Label.of("'log'")}; - private static final Label K680 = Label.of("'log'"); - private static final String[] K681 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11117:11135:body/2/ruleRef/capture/0"}; - private static final Call[] K682 = new Call[]{TinyExpressionP4Parser::e481,TinyExpressionP4Parser::e482,TinyExpressionP4Parser::e483,TinyExpressionP4Parser::e484}; - private static final Label[] K683 = new Label[]{Label.of("'exp'")}; - private static final Label K684 = Label.of("'exp'"); - private static final String[] K685 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11210:11228:body/2/ruleRef/capture/0"}; - private static final Call[] K686 = new Call[]{TinyExpressionP4Parser::e486,TinyExpressionP4Parser::e487,TinyExpressionP4Parser::e488,TinyExpressionP4Parser::e489,TinyExpressionP4Parser::e490,TinyExpressionP4Parser::e491}; - private static final Label[] K687 = new Label[]{Label.of("'toNum'")}; - private static final Label K688 = Label.of("'toNum'"); - private static final String[] K689 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11403:11419:body/2/ruleRef/capture/0"}; - private static final String[] K690 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11431:11449:body/4/ruleRef/capture/0"}; - private static final String[] K691 = new String[]{"defaultValue"}; - private static final int[] K692 = new int[]{9,13,32,32,40,40,47,47}; - private static final Label[] K693 = new Label[]{null,Label.of("'('"),Label.of("'?'"),Label.of("':'"),Label.of("')'")}; - private static final int[] K694 = new int[]{108}; - private static final Guard K695 = new Guard(K692,K693,K218,K694,1); - private static final Label[] K696 = new Label[]{null,Label.of("'match'"),Label.of("'{'"),Label.of("','"),Label.of("'}'")}; - private static final int[] K697 = new int[]{109}; - private static final Guard K698 = new Guard(K580,K696,K218,K697,1); - private static final int[] K699 = new int[]{9,13,32,32,47,47,105,105}; - private static final Label[] K700 = new Label[]{null,Label.of("'if'"),Label.of("'('"),Label.of("')'"),Label.of("'{'"),Label.of("'}'"),Label.of("'else'")}; - private static final int[] K701 = new int[]{106}; - private static final Guard K702 = new Guard(K699,K700,K218,K701,1); - private static final int[] K703 = new int[]{9,13,32,32,47,47,97,97,99,99,101,102,108,109,112,112,114,116}; - private static final Label[] K704 = new Label[]{null,Label.of("'sin'"),Label.of("'('"),Label.of("')'"),Label.of("'cos'"),Label.of("'tan'"),Label.of("'sqrt'"),Label.of("'min'"),Label.of("'max'"),Label.of("'random'"),Label.of("'abs'"),Label.of("'round'"),Label.of("'ceil'"),Label.of("'floor'"),Label.of("'pow'"),Label.of("','"),Label.of("'log'"),Label.of("'exp'")}; - private static final int[] K705 = new int[]{44,45}; - private static final Guard K706 = new Guard(K703,K704,K218,K705,2); - private static final Label[] K707 = new Label[]{null,Label.of("'toNum'"),Label.of("'('"),Label.of("','"),Label.of("')'")}; - private static final int[] K708 = new int[]{59}; - private static final Guard K709 = new Guard(K573,K707,K218,K708,1); - private static final int[] K710 = new int[]{9,13,32,32,36,36,47,47}; - private static final Label[] K711 = new Label[]{null,Label.of("'$'"),Label.of("'.length'"),Label.of("'('"),Label.of("')'")}; - private static final int[] K712 = new int[]{69,121}; - private static final Guard K713 = new Guard(K710,K711,K218,K712,2); - private static final Label[] K714 = new Label[]{null,Label.of("'len'"),Label.of("'('"),Label.of("')'")}; - private static final int[] K715 = new int[]{65}; - private static final Guard K716 = new Guard(K609,K714,K218,K715,1); - private static final Label[] K717 = new Label[]{null,Label.of("'length'"),Label.of("'('"),Label.of("')'")}; - private static final int[] K718 = new int[]{64}; - private static final Guard K719 = new Guard(K609,K717,K218,K718,1); - private static final Label[] K720 = new Label[]{null,Label.of("'external'"),Label.of("'('"),Label.of("')'")}; - private static final int[] K721 = new int[]{32}; - private static final Guard K722 = new Guard(K613,K720,K218,K721,1); - private static final Label[] K723 = new Label[]{null,Label.of("'$'")}; - private static final int[] K724 = new int[]{121}; - private static final Guard K725 = new Guard(K710,K723,K218,K724,1); - private static final int[] K726 = new int[]{9,13,32,32,47,47,99,99,105,105}; - private static final Label[] K727 = new Label[]{null,Label.of("'call'"),Label.of("'internal'"),Label.of("'('"),Label.of("')'")}; - private static final int[] K728 = new int[]{36,35}; - private static final Guard K729 = new Guard(K726,K727,K218,K728,2); - private static final Label[] K730 = new Label[]{null,Label.of("'('"),Label.of("')'")}; - private static final Guard K731 = new Guard(K692,K730,K218,K512,0); - private static final Guard[] K732 = new Guard[]{K695,K698,K702,K706,K709,K713,K716,K719,K722,null,K725,K729,K731}; - private static final Call[] K733 = new Call[]{TinyExpressionP4Parser::e493,TinyExpressionP4Parser::e494,TinyExpressionP4Parser::e495,TinyExpressionP4Parser::e496,TinyExpressionP4Parser::e497,TinyExpressionP4Parser::e498,TinyExpressionP4Parser::e499,TinyExpressionP4Parser::e500,TinyExpressionP4Parser::e501,TinyExpressionP4Parser::e502,TinyExpressionP4Parser::e503,TinyExpressionP4Parser::e504,TinyExpressionP4Parser::e505}; - private static final Label[] K734 = new Label[]{Label.of("NUMBERParser")}; - private static final org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression K735 = new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SCOPE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SCOPE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.REPEAT,"",0,1,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.LITERAL,"+",0,0,List.of()))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.LITERAL,"-",0,0,List.of()))))))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.REPEAT,"",1,-1,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SCOPE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.RANGE,"",48,57,List.of()))))))))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.LITERAL,".",0,0,List.of()),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.REPEAT,"",0,-1,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SCOPE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.RANGE,"",48,57,List.of()))))))))))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.LITERAL,".",0,0,List.of()),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.REPEAT,"",1,-1,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SCOPE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.RANGE,"",48,57,List.of()))))))))))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.REPEAT,"",1,-1,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SCOPE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.RANGE,"",48,57,List.of()))))))))))))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.REPEAT,"",0,1,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.LITERAL,"e",0,0,List.of()))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.LITERAL,"E",0,0,List.of()))))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.REPEAT,"",0,1,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.LITERAL,"+",0,0,List.of()))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.LITERAL,"-",0,0,List.of()))))))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.REPEAT,"",1,-1,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SCOPE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.RANGE,"",48,57,List.of()))))))))))))))))))))))))))); - private static final Label K736 = Label.of("NUMBERParser"); - private static final Call[] K737 = new Call[]{TinyExpressionP4Parser::e506,TinyExpressionP4Parser::e507,TinyExpressionP4Parser::e508}; - private static final Call[] K738 = new Call[]{TinyExpressionP4Parser::e510,TinyExpressionP4Parser::e511,TinyExpressionP4Parser::e512,TinyExpressionP4Parser::e513}; - private static final Label[] K739 = new Label[]{Label.of("'toUpperCase'")}; - private static final Label K740 = Label.of("'toUpperCase'"); - private static final String[] K741 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11947:11963:body/2/ruleRef/capture/0"}; - private static final Call[] K742 = new Call[]{TinyExpressionP4Parser::e515,TinyExpressionP4Parser::e516,TinyExpressionP4Parser::e517,TinyExpressionP4Parser::e518}; - private static final Label[] K743 = new Label[]{Label.of("'toLowerCase'")}; - private static final Label K744 = Label.of("'toLowerCase'"); - private static final String[] K745 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12066:12082:body/2/ruleRef/capture/0"}; - private static final Call[] K746 = new Call[]{TinyExpressionP4Parser::e520,TinyExpressionP4Parser::e521,TinyExpressionP4Parser::e522,TinyExpressionP4Parser::e523}; - private static final Label[] K747 = new Label[]{Label.of("'trim'")}; - private static final Label K748 = Label.of("'trim'"); - private static final String[] K749 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12164:12180:body/2/ruleRef/capture/0"}; - private static final Call[] K750 = new Call[]{TinyExpressionP4Parser::e525,TinyExpressionP4Parser::e526,TinyExpressionP4Parser::e527,TinyExpressionP4Parser::e528}; - private static final Label[] K751 = new Label[]{Label.of("'length'")}; - private static final Label K752 = Label.of("'length'"); - private static final String[] K753 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12268:12284:body/2/ruleRef/capture/0"}; - private static final Call[] K754 = new Call[]{TinyExpressionP4Parser::e530,TinyExpressionP4Parser::e531,TinyExpressionP4Parser::e532,TinyExpressionP4Parser::e533}; - private static final Label[] K755 = new Label[]{Label.of("'len'")}; - private static final Label K756 = Label.of("'len'"); - private static final String[] K757 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12366:12382:body/2/ruleRef/capture/0"}; - private static final Call[] K758 = new Call[]{TinyExpressionP4Parser::e535,TinyExpressionP4Parser::e536,TinyExpressionP4Parser::e537,TinyExpressionP4Parser::e538}; - private static final String[] K759 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12718:12729:body/0/ruleRef/capture/0"}; - private static final Label[] K760 = new Label[]{Label.of("'.toUpperCase'")}; - private static final Label K761 = Label.of("'.toUpperCase'"); - private static final Call[] K762 = new Call[]{TinyExpressionP4Parser::e540,TinyExpressionP4Parser::e541,TinyExpressionP4Parser::e542,TinyExpressionP4Parser::e543}; - private static final String[] K763 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12837:12848:body/0/ruleRef/capture/0"}; - private static final Label[] K764 = new Label[]{Label.of("'.toLowerCase'")}; - private static final Label K765 = Label.of("'.toLowerCase'"); - private static final Call[] K766 = new Call[]{TinyExpressionP4Parser::e545,TinyExpressionP4Parser::e546,TinyExpressionP4Parser::e547,TinyExpressionP4Parser::e548}; - private static final String[] K767 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12942:12953:body/0/ruleRef/capture/0"}; - private static final Label[] K768 = new Label[]{Label.of("'.trim'")}; - private static final Label K769 = Label.of("'.trim'"); - private static final Call[] K770 = new Call[]{TinyExpressionP4Parser::e550,TinyExpressionP4Parser::e551,TinyExpressionP4Parser::e552,TinyExpressionP4Parser::e553}; - private static final String[] K771 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13044:13055:body/0/ruleRef/capture/0"}; - private static final Label[] K772 = new Label[]{Label.of("'.length'")}; - private static final Label K773 = Label.of("'.length'"); - private static final Call[] K774 = new Call[]{TinyExpressionP4Parser::e555,TinyExpressionP4Parser::e556,TinyExpressionP4Parser::e557,TinyExpressionP4Parser::e558,TinyExpressionP4Parser::e559,TinyExpressionP4Parser::e560,TinyExpressionP4Parser::e564}; - private static final Label[] K775 = new Label[]{Label.of("'startsWith'")}; - private static final Label K776 = Label.of("'startsWith'"); - private static final String[] K777 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13317:13333:body/2/ruleRef/capture/0"}; - private static final String[] K778 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13345:13361:body/4/ruleRef/capture/0"}; - private static final String[] K779 = new String[]{"patterns"}; - private static final Call[] K780 = new Call[]{TinyExpressionP4Parser::e562,TinyExpressionP4Parser::e563}; - private static final String[] K781 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13382:13398:body/5/0/1/ruleRef/capture/0"}; - private static final Call[] K782 = new Call[]{TinyExpressionP4Parser::e566,TinyExpressionP4Parser::e567,TinyExpressionP4Parser::e568,TinyExpressionP4Parser::e569,TinyExpressionP4Parser::e570,TinyExpressionP4Parser::e571,TinyExpressionP4Parser::e575}; - private static final Label[] K783 = new Label[]{Label.of("'endsWith'")}; - private static final Label K784 = Label.of("'endsWith'"); - private static final String[] K785 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13507:13523:body/2/ruleRef/capture/0"}; - private static final String[] K786 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13535:13551:body/4/ruleRef/capture/0"}; - private static final Call[] K787 = new Call[]{TinyExpressionP4Parser::e573,TinyExpressionP4Parser::e574}; - private static final String[] K788 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13572:13588:body/5/0/1/ruleRef/capture/0"}; - private static final Call[] K789 = new Call[]{TinyExpressionP4Parser::e577,TinyExpressionP4Parser::e578,TinyExpressionP4Parser::e579,TinyExpressionP4Parser::e580,TinyExpressionP4Parser::e581,TinyExpressionP4Parser::e582,TinyExpressionP4Parser::e586}; - private static final Label[] K790 = new Label[]{Label.of("'contains'")}; - private static final Label K791 = Label.of("'contains'"); - private static final String[] K792 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13697:13713:body/2/ruleRef/capture/0"}; - private static final String[] K793 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13725:13741:body/4/ruleRef/capture/0"}; - private static final Call[] K794 = new Call[]{TinyExpressionP4Parser::e584,TinyExpressionP4Parser::e585}; - private static final String[] K795 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13762:13778:body/5/0/1/ruleRef/capture/0"}; - private static final Call[] K796 = new Call[]{TinyExpressionP4Parser::e588,TinyExpressionP4Parser::e589,TinyExpressionP4Parser::e590,TinyExpressionP4Parser::e591,TinyExpressionP4Parser::e592,TinyExpressionP4Parser::e596}; - private static final String[] K797 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13860:13876:body/0/ruleRef/capture/0"}; - private static final Label[] K798 = new Label[]{Label.of("'.in'")}; - private static final Label K799 = Label.of("'.in'"); - private static final String[] K800 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13894:13910:body/3/ruleRef/capture/0"}; - private static final String[] K801 = new String[]{"candidates"}; - private static final Call[] K802 = new Call[]{TinyExpressionP4Parser::e594,TinyExpressionP4Parser::e595}; - private static final String[] K803 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13929:13945:body/4/0/1/ruleRef/capture/0"}; - private static final Call[] K804 = new Call[]{TinyExpressionP4Parser::e598,TinyExpressionP4Parser::e599,TinyExpressionP4Parser::e600,TinyExpressionP4Parser::e601,TinyExpressionP4Parser::e602,TinyExpressionP4Parser::e606}; - private static final String[] K805 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14128:14151:body/0/ruleRef/capture/0"}; - private static final Label[] K806 = new Label[]{Label.of("'.startsWith'")}; - private static final Label K807 = Label.of("'.startsWith'"); - private static final String[] K808 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14177:14193:body/3/ruleRef/capture/0"}; - private static final Call[] K809 = new Call[]{TinyExpressionP4Parser::e604,TinyExpressionP4Parser::e605}; - private static final String[] K810 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14214:14230:body/4/0/1/ruleRef/capture/0"}; - private static final Call[] K811 = new Call[]{TinyExpressionP4Parser::e608,TinyExpressionP4Parser::e609,TinyExpressionP4Parser::e610,TinyExpressionP4Parser::e611,TinyExpressionP4Parser::e612,TinyExpressionP4Parser::e616}; - private static final String[] K812 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14328:14351:body/0/ruleRef/capture/0"}; - private static final Label[] K813 = new Label[]{Label.of("'.endsWith'")}; - private static final Label K814 = Label.of("'.endsWith'"); - private static final String[] K815 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14375:14391:body/3/ruleRef/capture/0"}; - private static final Call[] K816 = new Call[]{TinyExpressionP4Parser::e614,TinyExpressionP4Parser::e615}; - private static final String[] K817 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14412:14428:body/4/0/1/ruleRef/capture/0"}; - private static final Call[] K818 = new Call[]{TinyExpressionP4Parser::e618,TinyExpressionP4Parser::e619,TinyExpressionP4Parser::e620,TinyExpressionP4Parser::e621,TinyExpressionP4Parser::e622,TinyExpressionP4Parser::e626}; - private static final String[] K819 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14526:14549:body/0/ruleRef/capture/0"}; - private static final Label[] K820 = new Label[]{Label.of("'.contains'")}; - private static final Label K821 = Label.of("'.contains'"); - private static final String[] K822 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14573:14589:body/3/ruleRef/capture/0"}; - private static final Call[] K823 = new Call[]{TinyExpressionP4Parser::e624,TinyExpressionP4Parser::e625}; - private static final String[] K824 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14610:14626:body/4/0/1/ruleRef/capture/0"}; - private static final Label[] K825 = new Label[]{null,Label.of("'toLowerCase'"),Label.of("'('"),Label.of("')'")}; - private static final int[] K826 = new int[]{62}; - private static final Guard K827 = new Guard(K573,K825,K218,K826,1); - private static final Label[] K828 = new Label[]{null,Label.of("'toUpperCase'"),Label.of("'('"),Label.of("')'")}; - private static final int[] K829 = new int[]{61}; - private static final Guard K830 = new Guard(K573,K828,K218,K829,1); - private static final Label[] K831 = new Label[]{null,Label.of("'trim'"),Label.of("'('"),Label.of("')'")}; - private static final int[] K832 = new int[]{63}; - private static final Guard K833 = new Guard(K573,K831,K218,K832,1); - private static final Guard[] K834 = new Guard[]{K827,K830,K833,K725}; - private static final Call[] K835 = new Call[]{TinyExpressionP4Parser::e628,TinyExpressionP4Parser::e629,TinyExpressionP4Parser::e630,TinyExpressionP4Parser::e631}; - private static final Call[] K836 = new Call[]{TinyExpressionP4Parser::e633,TinyExpressionP4Parser::e634,TinyExpressionP4Parser::e635,TinyExpressionP4Parser::e636}; - private static final Label[] K837 = new Label[]{Label.of("'isPresent'")}; - private static final Label K838 = Label.of("'isPresent'"); - private static final String[] K839 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14911:14922:body/2/ruleRef/capture/0"}; - private static final Call[] K840 = new Call[]{TinyExpressionP4Parser::e638,TinyExpressionP4Parser::e639,TinyExpressionP4Parser::e640,TinyExpressionP4Parser::e641,TinyExpressionP4Parser::e642,TinyExpressionP4Parser::e643}; - private static final Label[] K841 = new Label[]{Label.of("'inTimeRange'")}; - private static final Label K842 = Label.of("'inTimeRange'"); - private static final String[] K843 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15115:15131:body/2/ruleRef/capture/0"}; - private static final String[] K844 = new String[]{"startHour"}; - private static final String[] K845 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15147:15163:body/4/ruleRef/capture/0"}; - private static final String[] K846 = new String[]{"endHour"}; - private static final Delimiters[] K847 = new Delimiters[]{K218,K218,K218,K218,K218,K218,K218,K218,K218,K218}; - private static final Trivia K848 = new Trivia(K218,null,K847,null,null); - private static final Call[] K849 = new Call[]{TinyExpressionP4Parser::e645,TinyExpressionP4Parser::e646,TinyExpressionP4Parser::e647,TinyExpressionP4Parser::e648,TinyExpressionP4Parser::e649,TinyExpressionP4Parser::e650,TinyExpressionP4Parser::e651,TinyExpressionP4Parser::e652,TinyExpressionP4Parser::e653,TinyExpressionP4Parser::e654}; - private static final Label[] K850 = new Label[]{Label.of("'inDayTimeRange'")}; - private static final Label K851 = Label.of("'inDayTimeRange'"); - private static final String[] K852 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15308:15317:body/2/ruleRef/capture/0"}; - private static final String[] K853 = new String[]{"startDay"}; - private static final String[] K854 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15332:15348:body/4/ruleRef/capture/0"}; - private static final String[] K855 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15364:15373:body/6/ruleRef/capture/0"}; - private static final String[] K856 = new String[]{"endDay"}; - private static final String[] K857 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15386:15402:body/8/ruleRef/capture/0"}; - private static final Call[] K858 = new Call[]{TinyExpressionP4Parser::e656,TinyExpressionP4Parser::e657,TinyExpressionP4Parser::e658,TinyExpressionP4Parser::e659,TinyExpressionP4Parser::e660,TinyExpressionP4Parser::e661,TinyExpressionP4Parser::e662}; - private static final Label[] K859 = new Label[]{Label.of("'MONDAY'")}; - private static final Label K860 = Label.of("'MONDAY'"); - private static final Label[] K861 = new Label[]{Label.of("'TUESDAY'")}; - private static final Label K862 = Label.of("'TUESDAY'"); - private static final Label[] K863 = new Label[]{Label.of("'WEDNESDAY'")}; - private static final Label K864 = Label.of("'WEDNESDAY'"); - private static final Label[] K865 = new Label[]{Label.of("'THURSDAY'")}; - private static final Label K866 = Label.of("'THURSDAY'"); - private static final Label[] K867 = new Label[]{Label.of("'FRIDAY'")}; - private static final Label K868 = Label.of("'FRIDAY'"); - private static final Label[] K869 = new Label[]{Label.of("'SATURDAY'")}; - private static final Label K870 = Label.of("'SATURDAY'"); - private static final Label[] K871 = new Label[]{Label.of("'SUNDAY'")}; - private static final Label K872 = Label.of("'SUNDAY'"); - private static final Label[] K873 = new Label[]{null,Label.of("'external'"),Label.of("'string'"),Label.of("':'"),Label.of("'('"),Label.of("')'")}; - private static final int[] K874 = new int[]{33}; - private static final Guard K875 = new Guard(K613,K873,K218,K874,1); - private static final Label[] K876 = new Label[]{null,Label.of("'('"),Label.of("'$'"),Label.of("')'")}; - private static final Guard K877 = new Guard(K692,K876,K218,K512,0); - private static final int[] K878 = new int[]{90}; - private static final Guard K879 = new Guard(K692,K730,K218,K878,1); - private static final Label[] K880 = new Label[]{null,Label.of("'$'"),Label.of("'.toUpperCase'"),Label.of("'('"),Label.of("')'")}; - private static final int[] K881 = new int[]{66,121}; - private static final Guard K882 = new Guard(K710,K880,K218,K881,2); - private static final Label[] K883 = new Label[]{null,Label.of("'$'"),Label.of("'.toLowerCase'"),Label.of("'('"),Label.of("')'")}; - private static final int[] K884 = new int[]{67,121}; - private static final Guard K885 = new Guard(K710,K883,K218,K884,2); - private static final Label[] K886 = new Label[]{null,Label.of("'$'"),Label.of("'.trim'"),Label.of("'('"),Label.of("')'")}; - private static final int[] K887 = new int[]{68,121}; - private static final Guard K888 = new Guard(K710,K886,K218,K887,2); - private static final Guard[] K889 = new Guard[]{K875,K877,K879,K830,K827,K833,K882,K885,K888,null,K725,K729}; - private static final Call[] K890 = new Call[]{TinyExpressionP4Parser::e664,TinyExpressionP4Parser::e665,TinyExpressionP4Parser::e669,TinyExpressionP4Parser::e670,TinyExpressionP4Parser::e671,TinyExpressionP4Parser::e672,TinyExpressionP4Parser::e673,TinyExpressionP4Parser::e674,TinyExpressionP4Parser::e675,TinyExpressionP4Parser::e676,TinyExpressionP4Parser::e677,TinyExpressionP4Parser::e678}; - private static final Label[] K891 = new Label[]{Label.of("'('"),Label.of("'$'"),Label.of("')'")}; - private static final Call[] K892 = new Call[]{TinyExpressionP4Parser::e666,TinyExpressionP4Parser::e667,TinyExpressionP4Parser::e668}; - private static final Call[] K893 = new Call[]{TinyExpressionP4Parser::e680}; - private static final Call[] K894 = new Call[]{TinyExpressionP4Parser::e682}; - private static final Call[] K895 = new Call[]{TinyExpressionP4Parser::e684}; - private static final Call[] K896 = new Call[]{TinyExpressionP4Parser::e692,TinyExpressionP4Parser::e693,TinyExpressionP4Parser::e694}; - private static final Cap K897 = new Cap(K216, K216, K216, K217, K217, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16660:16763:body/0/seq", false, false, "mixed", true, K156,true,true); - private static final Call[] K898 = new Call[]{TinyExpressionP4Parser::e701}; - private static final Cap K899 = new Cap(K216, K216, K216, K217, K217, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16770:16848:body/1/seq", false, false, "mixed", true, K156,true,true); - private static final String[] K900 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16770:16787:body/1/0/ruleRef/capture/0","value",null,null,"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16799:16814:body/1/2/ruleRef/capture/0","start",null,null,"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16826:16839:body/1/4/ruleRef/capture/0","end"}; - private static final Call[] K901 = new Call[]{TinyExpressionP4Parser::e707,TinyExpressionP4Parser::e708,TinyExpressionP4Parser::e709}; - private static final Cap K902 = new Cap(K216, K216, K216, K217, K217, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16855:16939:body/2/seq", false, false, "mixed", true, K156,true,true); - private static final String[] K903 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16855:16872:body/2/0/ruleRef/capture/0","value",null,null,"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16884:16899:body/2/2/ruleRef/capture/0","start",null,null}; - private static final Call[] K904 = new Call[]{TinyExpressionP4Parser::e715}; - private static final Cap K905 = new Cap(K216, K216, K216, K217, K217, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16946:17005:body/3/seq", false, false, "mixed", true, K156,true,true); - private static final String[] K906 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16946:16963:body/3/0/ruleRef/capture/0","value",null,null,"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16975:16990:body/3/2/ruleRef/capture/0","start",null,null}; - private static final Call[] K907 = new Call[]{TinyExpressionP4Parser::e721,TinyExpressionP4Parser::e722,TinyExpressionP4Parser::e723}; - private static final Cap K908 = new Cap(K216, K216, K216, K217, K217, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17012:17092:body/4/seq", false, false, "mixed", true, K156,true,true); - private static final String[] K909 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17012:17029:body/4/0/ruleRef/capture/0","value",null,null,null,null,null,null}; - private static final Call[] K910 = new Call[]{TinyExpressionP4Parser::e729}; - private static final Cap K911 = new Cap(K216, K216, K216, K217, K217, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17099:17154:body/5/seq", false, false, "mixed", true, K156,true,true); - private static final String[] K912 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17099:17116:body/5/0/ruleRef/capture/0","value",null,null,null,null,"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17132:17145:body/5/3/ruleRef/capture/0","end"}; - private static final Call[] K913 = new Call[]{TinyExpressionP4Parser::e734,TinyExpressionP4Parser::e735,TinyExpressionP4Parser::e736}; - private static final Cap K914 = new Cap(K216, K216, K216, K217, K217, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17161:17222:body/6/seq", false, false, "mixed", true, K156,true,true); - private static final String[] K915 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17161:17178:body/6/0/ruleRef/capture/0","value",null,null,null,null}; - private static final Call[] K916 = new Call[]{TinyExpressionP4Parser::e741}; - private static final Cap K917 = new Cap(K216, K216, K216, K217, K217, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17229:17265:body/7/seq", false, false, "mixed", false, K156,true,true); - private static final String[] K918 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17229:17246:body/7/0/ruleRef/capture/0","value",null,null,null,null}; - private static final Group[] K919 = new Group[]{new Group(0,8,true,K411,8,new Level(TinyExpressionP4Parser::e687,K411,0,new Branch(new Level(TinyExpressionP4Parser::e688,K411,1,new Branch(new Level(TinyExpressionP4Parser::e689,K411,2,new Branch(new Level(TinyExpressionP4Parser::e690,K411,3,new Branch(new Level(TinyExpressionP4Parser::e691,K411,4,new Branch(K896,K411,5,K897,null),new Branch(K898,K263,5,K899,K900))),new Branch(K901,K220,4,K902,K903),new Branch(K904,K394,4,K905,K906))))),new Branch(new Level(TinyExpressionP4Parser::e719,K220,2,new Branch(new Level(TinyExpressionP4Parser::e720,K220,3,new Branch(K907,K220,4,K908,K909),new Branch(K910,K394,4,K911,K912))),new Branch(K913,K263,3,K914,K915),new Branch(K916,K620,3,K917,K918)))))))}; - private static final Call[] K920 = new Call[]{TinyExpressionP4Parser::e686,TinyExpressionP4Parser::e695,TinyExpressionP4Parser::e702,TinyExpressionP4Parser::e710,TinyExpressionP4Parser::e716,TinyExpressionP4Parser::e724,TinyExpressionP4Parser::e730,TinyExpressionP4Parser::e737}; - private static final Call[] K921 = new Call[]{TinyExpressionP4Parser::e687,TinyExpressionP4Parser::e688,TinyExpressionP4Parser::e689,TinyExpressionP4Parser::e690,TinyExpressionP4Parser::e691,TinyExpressionP4Parser::e692,TinyExpressionP4Parser::e693,TinyExpressionP4Parser::e694}; - private static final String[] K922 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16660:16677:body/0/0/ruleRef/capture/0"}; - private static final Label[] K923 = new Label[]{Label.of("'['")}; - private static final Label K924 = Label.of("'['"); - private static final String[] K925 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16689:16704:body/0/2/ruleRef/capture/0"}; - private static final String[] K926 = new String[]{"start"}; - private static final String[] K927 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16716:16729:body/0/4/ruleRef/capture/0"}; - private static final String[] K928 = new String[]{"end"}; - private static final String[] K929 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16739:16753:body/0/6/ruleRef/capture/0"}; - private static final String[] K930 = new String[]{"step"}; - private static final Label[] K931 = new Label[]{Label.of("']'")}; - private static final Label K932 = Label.of("']'"); - private static final Call[] K933 = new Call[]{TinyExpressionP4Parser::e696,TinyExpressionP4Parser::e697,TinyExpressionP4Parser::e698,TinyExpressionP4Parser::e699,TinyExpressionP4Parser::e700,TinyExpressionP4Parser::e701}; - private static final String[] K934 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16770:16787:body/1/0/ruleRef/capture/0"}; - private static final String[] K935 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16799:16814:body/1/2/ruleRef/capture/0"}; - private static final String[] K936 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16826:16839:body/1/4/ruleRef/capture/0"}; - private static final Call[] K937 = new Call[]{TinyExpressionP4Parser::e703,TinyExpressionP4Parser::e704,TinyExpressionP4Parser::e705,TinyExpressionP4Parser::e706,TinyExpressionP4Parser::e707,TinyExpressionP4Parser::e708,TinyExpressionP4Parser::e709}; - private static final String[] K938 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16855:16872:body/2/0/ruleRef/capture/0"}; - private static final String[] K939 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16884:16899:body/2/2/ruleRef/capture/0"}; - private static final String[] K940 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16915:16929:body/2/5/ruleRef/capture/0"}; - private static final Call[] K941 = new Call[]{TinyExpressionP4Parser::e711,TinyExpressionP4Parser::e712,TinyExpressionP4Parser::e713,TinyExpressionP4Parser::e714,TinyExpressionP4Parser::e715}; - private static final String[] K942 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16946:16963:body/3/0/ruleRef/capture/0"}; - private static final String[] K943 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16975:16990:body/3/2/ruleRef/capture/0"}; - private static final Call[] K944 = new Call[]{TinyExpressionP4Parser::e717,TinyExpressionP4Parser::e718,TinyExpressionP4Parser::e719,TinyExpressionP4Parser::e720,TinyExpressionP4Parser::e721,TinyExpressionP4Parser::e722,TinyExpressionP4Parser::e723}; - private static final String[] K945 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17012:17029:body/4/0/ruleRef/capture/0"}; - private static final String[] K946 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17045:17058:body/4/3/ruleRef/capture/0"}; - private static final String[] K947 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17068:17082:body/4/5/ruleRef/capture/0"}; - private static final Call[] K948 = new Call[]{TinyExpressionP4Parser::e725,TinyExpressionP4Parser::e726,TinyExpressionP4Parser::e727,TinyExpressionP4Parser::e728,TinyExpressionP4Parser::e729}; - private static final String[] K949 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17099:17116:body/5/0/ruleRef/capture/0"}; - private static final String[] K950 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17132:17145:body/5/3/ruleRef/capture/0"}; - private static final Call[] K951 = new Call[]{TinyExpressionP4Parser::e731,TinyExpressionP4Parser::e732,TinyExpressionP4Parser::e733,TinyExpressionP4Parser::e734,TinyExpressionP4Parser::e735,TinyExpressionP4Parser::e736}; - private static final String[] K952 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17161:17178:body/6/0/ruleRef/capture/0"}; - private static final String[] K953 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17198:17212:body/6/4/ruleRef/capture/0"}; - private static final Call[] K954 = new Call[]{TinyExpressionP4Parser::e738,TinyExpressionP4Parser::e739,TinyExpressionP4Parser::e740,TinyExpressionP4Parser::e741}; - private static final String[] K955 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17229:17246:body/7/0/ruleRef/capture/0"}; - private static final Call[] K956 = new Call[]{TinyExpressionP4Parser::e749,TinyExpressionP4Parser::e750,TinyExpressionP4Parser::e751}; - private static final Cap K957 = new Cap(K216, K216, K216, K217, K217, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17359:17464:body/0/seq", false, false, "node", true, K156,true,true); - private static final Call[] K958 = new Call[]{TinyExpressionP4Parser::e758}; - private static final Cap K959 = new Cap(K216, K216, K216, K217, K217, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17471:17551:body/1/seq", false, false, "node", true, K156,true,true); - private static final String[] K960 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17471:17490:body/1/0/ruleRef/capture/0","value",null,null,"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17502:17517:body/1/2/ruleRef/capture/0","start",null,null,"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17529:17542:body/1/4/ruleRef/capture/0","end"}; - private static final Call[] K961 = new Call[]{TinyExpressionP4Parser::e764,TinyExpressionP4Parser::e765,TinyExpressionP4Parser::e766}; - private static final Cap K962 = new Cap(K216, K216, K216, K217, K217, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17558:17644:body/2/seq", false, false, "node", true, K156,true,true); - private static final String[] K963 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17558:17577:body/2/0/ruleRef/capture/0","value",null,null,"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17589:17604:body/2/2/ruleRef/capture/0","start",null,null}; - private static final Call[] K964 = new Call[]{TinyExpressionP4Parser::e772}; - private static final Cap K965 = new Cap(K216, K216, K216, K217, K217, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17651:17712:body/3/seq", false, false, "node", true, K156,true,true); - private static final String[] K966 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17651:17670:body/3/0/ruleRef/capture/0","value",null,null,"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17682:17697:body/3/2/ruleRef/capture/0","start",null,null}; - private static final Call[] K967 = new Call[]{TinyExpressionP4Parser::e778,TinyExpressionP4Parser::e779,TinyExpressionP4Parser::e780}; - private static final Cap K968 = new Cap(K216, K216, K216, K217, K217, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17719:17801:body/4/seq", false, false, "node", true, K156,true,true); - private static final String[] K969 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17719:17738:body/4/0/ruleRef/capture/0","value",null,null,null,null,null,null}; - private static final Call[] K970 = new Call[]{TinyExpressionP4Parser::e786}; - private static final Cap K971 = new Cap(K216, K216, K216, K217, K217, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17808:17865:body/5/seq", false, false, "node", true, K156,true,true); - private static final String[] K972 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17808:17827:body/5/0/ruleRef/capture/0","value",null,null,null,null,"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17843:17856:body/5/3/ruleRef/capture/0","end"}; - private static final Call[] K973 = new Call[]{TinyExpressionP4Parser::e791,TinyExpressionP4Parser::e792,TinyExpressionP4Parser::e793}; - private static final Cap K974 = new Cap(K216, K216, K216, K217, K217, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17872:17935:body/6/seq", false, false, "node", true, K156,true,true); - private static final String[] K975 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17872:17891:body/6/0/ruleRef/capture/0","value",null,null,null,null}; - private static final Call[] K976 = new Call[]{TinyExpressionP4Parser::e798}; - private static final Cap K977 = new Cap(K216, K216, K216, K217, K217, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17942:17980:body/7/seq", false, false, "node", false, K156,true,true); - private static final String[] K978 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17942:17961:body/7/0/ruleRef/capture/0","value",null,null,null,null}; - private static final Group[] K979 = new Group[]{new Group(0,8,true,K411,8,new Level(TinyExpressionP4Parser::e744,K411,0,new Branch(new Level(TinyExpressionP4Parser::e745,K411,1,new Branch(new Level(TinyExpressionP4Parser::e746,K411,2,new Branch(new Level(TinyExpressionP4Parser::e747,K411,3,new Branch(new Level(TinyExpressionP4Parser::e748,K411,4,new Branch(K956,K411,5,K957,null),new Branch(K958,K263,5,K959,K960))),new Branch(K961,K220,4,K962,K963),new Branch(K964,K394,4,K965,K966))))),new Branch(new Level(TinyExpressionP4Parser::e776,K220,2,new Branch(new Level(TinyExpressionP4Parser::e777,K220,3,new Branch(K967,K220,4,K968,K969),new Branch(K970,K394,4,K971,K972))),new Branch(K973,K263,3,K974,K975),new Branch(K976,K620,3,K977,K978)))))))}; - private static final Call[] K980 = new Call[]{TinyExpressionP4Parser::e743,TinyExpressionP4Parser::e752,TinyExpressionP4Parser::e759,TinyExpressionP4Parser::e767,TinyExpressionP4Parser::e773,TinyExpressionP4Parser::e781,TinyExpressionP4Parser::e787,TinyExpressionP4Parser::e794}; - private static final Call[] K981 = new Call[]{TinyExpressionP4Parser::e744,TinyExpressionP4Parser::e745,TinyExpressionP4Parser::e746,TinyExpressionP4Parser::e747,TinyExpressionP4Parser::e748,TinyExpressionP4Parser::e749,TinyExpressionP4Parser::e750,TinyExpressionP4Parser::e751}; - private static final String[] K982 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17359:17378:body/0/0/ruleRef/capture/0"}; - private static final String[] K983 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17390:17405:body/0/2/ruleRef/capture/0"}; - private static final String[] K984 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17417:17430:body/0/4/ruleRef/capture/0"}; - private static final String[] K985 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17440:17454:body/0/6/ruleRef/capture/0"}; - private static final Call[] K986 = new Call[]{TinyExpressionP4Parser::e753,TinyExpressionP4Parser::e754,TinyExpressionP4Parser::e755,TinyExpressionP4Parser::e756,TinyExpressionP4Parser::e757,TinyExpressionP4Parser::e758}; - private static final String[] K987 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17471:17490:body/1/0/ruleRef/capture/0"}; - private static final String[] K988 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17502:17517:body/1/2/ruleRef/capture/0"}; - private static final String[] K989 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17529:17542:body/1/4/ruleRef/capture/0"}; - private static final Call[] K990 = new Call[]{TinyExpressionP4Parser::e760,TinyExpressionP4Parser::e761,TinyExpressionP4Parser::e762,TinyExpressionP4Parser::e763,TinyExpressionP4Parser::e764,TinyExpressionP4Parser::e765,TinyExpressionP4Parser::e766}; - private static final String[] K991 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17558:17577:body/2/0/ruleRef/capture/0"}; - private static final String[] K992 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17589:17604:body/2/2/ruleRef/capture/0"}; - private static final String[] K993 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17620:17634:body/2/5/ruleRef/capture/0"}; - private static final Call[] K994 = new Call[]{TinyExpressionP4Parser::e768,TinyExpressionP4Parser::e769,TinyExpressionP4Parser::e770,TinyExpressionP4Parser::e771,TinyExpressionP4Parser::e772}; - private static final String[] K995 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17651:17670:body/3/0/ruleRef/capture/0"}; - private static final String[] K996 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17682:17697:body/3/2/ruleRef/capture/0"}; - private static final Call[] K997 = new Call[]{TinyExpressionP4Parser::e774,TinyExpressionP4Parser::e775,TinyExpressionP4Parser::e776,TinyExpressionP4Parser::e777,TinyExpressionP4Parser::e778,TinyExpressionP4Parser::e779,TinyExpressionP4Parser::e780}; - private static final String[] K998 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17719:17738:body/4/0/ruleRef/capture/0"}; - private static final String[] K999 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17754:17767:body/4/3/ruleRef/capture/0"}; - private static final String[] K1000 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17777:17791:body/4/5/ruleRef/capture/0"}; - private static final Call[] K1001 = new Call[]{TinyExpressionP4Parser::e782,TinyExpressionP4Parser::e783,TinyExpressionP4Parser::e784,TinyExpressionP4Parser::e785,TinyExpressionP4Parser::e786}; - private static final String[] K1002 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17808:17827:body/5/0/ruleRef/capture/0"}; - private static final String[] K1003 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17843:17856:body/5/3/ruleRef/capture/0"}; - private static final Call[] K1004 = new Call[]{TinyExpressionP4Parser::e788,TinyExpressionP4Parser::e789,TinyExpressionP4Parser::e790,TinyExpressionP4Parser::e791,TinyExpressionP4Parser::e792,TinyExpressionP4Parser::e793}; - private static final String[] K1005 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17872:17891:body/6/0/ruleRef/capture/0"}; - private static final String[] K1006 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17911:17925:body/6/4/ruleRef/capture/0"}; - private static final Call[] K1007 = new Call[]{TinyExpressionP4Parser::e795,TinyExpressionP4Parser::e796,TinyExpressionP4Parser::e797,TinyExpressionP4Parser::e798}; - private static final String[] K1008 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17942:17961:body/7/0/ruleRef/capture/0"}; - private static final Call[] K1009 = new Call[]{TinyExpressionP4Parser::e800,TinyExpressionP4Parser::e801}; - private static final Call[] K1010 = new Call[]{TinyExpressionP4Parser::e803,TinyExpressionP4Parser::e804}; - private static final String[] K1011 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18250:18260:body/0/ruleRef/capture/0"}; - private static final Call[] K1012 = new Call[]{TinyExpressionP4Parser::e806,TinyExpressionP4Parser::e807}; - private static final String[] K1013 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18269:18272:body/1/0/0/literal/capture/0"}; - private static final String[] K1014 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18277:18287:body/1/0/1/ruleRef/capture/0"}; - private static final Call[] K1015 = new Call[]{TinyExpressionP4Parser::e809,TinyExpressionP4Parser::e810,TinyExpressionP4Parser::e811}; - private static final int[] K1016 = new int[]{113}; - private static final Guard K1017 = new Guard(K580,K696,K218,K1016,1); - private static final Label[] K1018 = new Label[]{null,Label.of("'('"),Label.of("'string'"),Label.of("'String'"),Label.of("')'"),Label.of("'$'")}; - private static final int[] K1019 = new int[]{92}; - private static final Guard K1020 = new Guard(K692,K1018,K218,K1019,1); - private static final Label[] K1021 = new Label[]{null,Label.of("'$'"),Label.of("'as'"),Label.of("'string'"),Label.of("'String'")}; - private static final int[] K1022 = new int[]{93}; - private static final Guard K1023 = new Guard(K710,K1021,K218,K1022,1); - private static final Guard[] K1024 = new Guard[]{K1017,K702,K1020,K1023,null,K879,K875,K830,K827,K833,K882,K885,K888,null,K725,K729}; - private static final Call[] K1025 = new Call[]{TinyExpressionP4Parser::e813,TinyExpressionP4Parser::e814,TinyExpressionP4Parser::e815,TinyExpressionP4Parser::e816,TinyExpressionP4Parser::e817,TinyExpressionP4Parser::e818,TinyExpressionP4Parser::e819,TinyExpressionP4Parser::e820,TinyExpressionP4Parser::e821,TinyExpressionP4Parser::e822,TinyExpressionP4Parser::e823,TinyExpressionP4Parser::e824,TinyExpressionP4Parser::e825,TinyExpressionP4Parser::e826,TinyExpressionP4Parser::e827,TinyExpressionP4Parser::e828}; - private static final Call[] K1026 = new Call[]{TinyExpressionP4Parser::e830,TinyExpressionP4Parser::e831,TinyExpressionP4Parser::e835,TinyExpressionP4Parser::e836,TinyExpressionP4Parser::e837}; - private static final Call[] K1027 = new Call[]{TinyExpressionP4Parser::e833,TinyExpressionP4Parser::e834}; - private static final String[] K1028 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19048:19058:body/4/tokenRef/capture/0"}; - private static final Call[] K1029 = new Call[]{TinyExpressionP4Parser::e839,TinyExpressionP4Parser::e840,TinyExpressionP4Parser::e841,TinyExpressionP4Parser::e842}; - private static final String[] K1030 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19152:19162:body/1/tokenRef/capture/0"}; - private static final Call[] K1031 = new Call[]{TinyExpressionP4Parser::e844,TinyExpressionP4Parser::e845}; - private static final Call[] K1032 = new Call[]{TinyExpressionP4Parser::e847,TinyExpressionP4Parser::e848}; - private static final String[] K1033 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19428:19448:body/0/ruleRef/capture/0"}; - private static final Label[] K1034 = new Label[]{Label.of("'|'")}; - private static final Call[] K1035 = new Call[]{TinyExpressionP4Parser::e850,TinyExpressionP4Parser::e851}; - private static final String[] K1036 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19457:19460:body/1/0/0/literal/capture/0"}; - private static final Label K1037 = Label.of("'|'"); - private static final String[] K1038 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19465:19485:body/1/0/1/ruleRef/capture/0"}; - private static final Call[] K1039 = new Call[]{TinyExpressionP4Parser::e853,TinyExpressionP4Parser::e854}; - private static final String[] K1040 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19631:19651:body/0/ruleRef/capture/0"}; - private static final Label[] K1041 = new Label[]{Label.of("'&'")}; - private static final Call[] K1042 = new Call[]{TinyExpressionP4Parser::e856,TinyExpressionP4Parser::e857}; - private static final String[] K1043 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19660:19663:body/1/0/0/literal/capture/0"}; - private static final Label K1044 = Label.of("'&'"); - private static final String[] K1045 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19668:19688:body/1/0/1/ruleRef/capture/0"}; - private static final Call[] K1046 = new Call[]{TinyExpressionP4Parser::e859,TinyExpressionP4Parser::e860}; - private static final String[] K1047 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19834:19847:body/0/ruleRef/capture/0"}; - private static final Label[] K1048 = new Label[]{Label.of("'^'")}; - private static final Call[] K1049 = new Call[]{TinyExpressionP4Parser::e862,TinyExpressionP4Parser::e863}; - private static final String[] K1050 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19856:19859:body/1/0/0/literal/capture/0"}; - private static final Label K1051 = Label.of("'^'"); - private static final String[] K1052 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19864:19877:body/1/0/1/ruleRef/capture/0"}; - private static final Call[] K1053 = new Call[]{TinyExpressionP4Parser::e865,TinyExpressionP4Parser::e866,TinyExpressionP4Parser::e867,TinyExpressionP4Parser::e868}; - private static final String[] K1054 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20034:20051:body/2/ruleRef/capture/0"}; - private static final int[] K1055 = new int[]{9,13,32,32,47,47,110,110}; - private static final Label[] K1056 = new Label[]{null,Label.of("'not'"),Label.of("'('"),Label.of("')'")}; - private static final int[] K1057 = new int[]{97}; - private static final Guard K1058 = new Guard(K1055,K1056,K218,K1057,1); - private static final int[] K1059 = new int[]{117}; - private static final Guard K1060 = new Guard(K580,K696,K218,K1059,1); - private static final Label[] K1061 = new Label[]{null,Label.of("'external'"),Label.of("'boolean'"),Label.of("':'"),Label.of("'('"),Label.of("')'")}; - private static final int[] K1062 = new int[]{31}; - private static final Guard K1063 = new Guard(K613,K1061,K218,K1062,1); - private static final int[] K1064 = new int[]{9,13,32,32,36,36,47,47,116,116}; - private static final Label[] K1065 = new Label[]{null,Label.of("'toLowerCase'"),Label.of("'('"),Label.of("')'"),Label.of("'toUpperCase'"),Label.of("'trim'"),Label.of("'$'"),Label.of("__CaptureSite"),Label.of("'.startsWith'")}; - private static final int[] K1066 = new int[]{74,77,62}; - private static final Guard K1067 = new Guard(K1064,K1065,K218,K1066,3); - private static final Label[] K1068 = new Label[]{null,Label.of("'toLowerCase'"),Label.of("'('"),Label.of("')'"),Label.of("'toUpperCase'"),Label.of("'trim'"),Label.of("'$'"),Label.of("__CaptureSite"),Label.of("'.endsWith'")}; - private static final int[] K1069 = new int[]{75,77,62}; - private static final Guard K1070 = new Guard(K1064,K1068,K218,K1069,3); - private static final Label[] K1071 = new Label[]{null,Label.of("'toLowerCase'"),Label.of("'('"),Label.of("')'"),Label.of("'toUpperCase'"),Label.of("'trim'"),Label.of("'$'"),Label.of("__CaptureSite"),Label.of("'.contains'")}; - private static final int[] K1072 = new int[]{76,77,62}; - private static final Guard K1073 = new Guard(K1064,K1071,K218,K1072,3); - private static final Label[] K1074 = new Label[]{null,Label.of("'startsWith'"),Label.of("'('"),Label.of("','"),Label.of("')'")}; - private static final int[] K1075 = new int[]{70}; - private static final Guard K1076 = new Guard(K452,K1074,K218,K1075,1); - private static final Label[] K1077 = new Label[]{null,Label.of("'endsWith'"),Label.of("'('"),Label.of("','"),Label.of("')'")}; - private static final int[] K1078 = new int[]{71}; - private static final Guard K1079 = new Guard(K613,K1077,K218,K1078,1); - private static final Label[] K1080 = new Label[]{null,Label.of("'contains'"),Label.of("'('"),Label.of("','"),Label.of("')'")}; - private static final int[] K1081 = new int[]{72}; - private static final Guard K1082 = new Guard(K510,K1080,K218,K1081,1); - private static final Label[] K1083 = new Label[]{null,Label.of("'isPresent'"),Label.of("'('"),Label.of("')'")}; - private static final int[] K1084 = new int[]{78}; - private static final Guard K1085 = new Guard(K699,K1083,K218,K1084,1); - private static final Label[] K1086 = new Label[]{null,Label.of("'inTimeRange'"),Label.of("'('"),Label.of("','"),Label.of("')'")}; - private static final int[] K1087 = new int[]{79}; - private static final Guard K1088 = new Guard(K699,K1086,K218,K1087,1); - private static final Label[] K1089 = new Label[]{null,Label.of("'inDayTimeRange'"),Label.of("'('"),Label.of("','"),Label.of("')'")}; - private static final int[] K1090 = new int[]{80}; - private static final Guard K1091 = new Guard(K699,K1089,K218,K1090,1); - private static final Guard[] K1092 = new Guard[]{K1058,K702,K1060,K1063,null,K1067,K1070,K1073,K1076,K1079,K1082,K1085,K1088,K1091,null,null,K725,K729,K731}; - private static final Call[] K1093 = new Call[]{TinyExpressionP4Parser::e870,TinyExpressionP4Parser::e871,TinyExpressionP4Parser::e872,TinyExpressionP4Parser::e873,TinyExpressionP4Parser::e874,TinyExpressionP4Parser::e875,TinyExpressionP4Parser::e876,TinyExpressionP4Parser::e877,TinyExpressionP4Parser::e878,TinyExpressionP4Parser::e879,TinyExpressionP4Parser::e880,TinyExpressionP4Parser::e881,TinyExpressionP4Parser::e882,TinyExpressionP4Parser::e883,TinyExpressionP4Parser::e884,TinyExpressionP4Parser::e885,TinyExpressionP4Parser::e886,TinyExpressionP4Parser::e887,TinyExpressionP4Parser::e888}; - private static final Label[] K1094 = new Label[]{Label.of("'true'")}; - private static final Label K1095 = Label.of("'true'"); - private static final Label[] K1096 = new Label[]{Label.of("'false'")}; - private static final Label K1097 = Label.of("'false'"); - private static final Call[] K1098 = new Call[]{TinyExpressionP4Parser::e889,TinyExpressionP4Parser::e890,TinyExpressionP4Parser::e891}; - private static final Call[] K1099 = new Call[]{TinyExpressionP4Parser::e893,TinyExpressionP4Parser::e894,TinyExpressionP4Parser::e895}; - private static final String[] K1100 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20622:20639:body/0/ruleRef/capture/0"}; - private static final Label[] K1101 = new Label[]{Label.of("'true'"),Label.of("'false'")}; - private static final String[] K1102 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20646:20656:body/1/ruleRef/capture/0"}; - private static final String[] K1103 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20661:20678:body/2/ruleRef/capture/0"}; - private static final Call[] K1104 = new Call[]{TinyExpressionP4Parser::e897,TinyExpressionP4Parser::e898,TinyExpressionP4Parser::e899,TinyExpressionP4Parser::e900}; - private static final String[] K1105 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20761:20786:body/0/ruleRef/capture/0"}; - private static final String[] K1106 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20800:20820:body/1/ruleRef/capture/0"}; - private static final String[] K1107 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20834:20860:body/2/ruleRef/capture/0"}; - private static final String[] K1108 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20874:20891:body/3/ruleRef/capture/0"}; - private static final Call[] K1109 = new Call[]{TinyExpressionP4Parser::e902,TinyExpressionP4Parser::e903,TinyExpressionP4Parser::e904}; - private static final String[] K1110 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21155:21171:body/0/ruleRef/capture/0"}; - private static final String[] K1111 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21178:21188:body/1/ruleRef/capture/0"}; - private static final String[] K1112 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21193:21209:body/2/ruleRef/capture/0"}; - private static final Call[] K1113 = new Call[]{TinyExpressionP4Parser::e906,TinyExpressionP4Parser::e907}; - private static final Label[] K1114 = new Label[]{Label.of("'=='")}; - private static final Label K1115 = Label.of("'=='"); - private static final Label[] K1116 = new Label[]{Label.of("'!='")}; - private static final Label K1117 = Label.of("'!='"); - private static final Call[] K1118 = new Call[]{TinyExpressionP4Parser::e909,TinyExpressionP4Parser::e910,TinyExpressionP4Parser::e911}; - private static final String[] K1119 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21331:21347:body/0/ruleRef/capture/0"}; - private static final String[] K1120 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21354:21363:body/1/ruleRef/capture/0"}; - private static final String[] K1121 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21368:21384:body/2/ruleRef/capture/0"}; - private static final Call[] K1122 = new Call[]{TinyExpressionP4Parser::e913,TinyExpressionP4Parser::e914,TinyExpressionP4Parser::e915,TinyExpressionP4Parser::e916,TinyExpressionP4Parser::e917,TinyExpressionP4Parser::e918}; - private static final Label[] K1123 = new Label[]{Label.of("'<='")}; - private static final Label K1124 = Label.of("'<='"); - private static final Label[] K1125 = new Label[]{Label.of("'>='")}; - private static final Label K1126 = Label.of("'>='"); - private static final Label[] K1127 = new Label[]{Label.of("'<'")}; - private static final Label K1128 = Label.of("'<'"); - private static final Label[] K1129 = new Label[]{Label.of("'>'")}; - private static final Label K1130 = Label.of("'>'"); - private static final Label[] K1131 = new Label[]{null,Label.of("'external'"),Label.of("'object'"),Label.of("':'"),Label.of("'('"),Label.of("')'")}; - private static final int[] K1132 = new int[]{34}; - private static final Guard K1133 = new Guard(K613,K1131,K218,K1132,1); - private static final Guard[] K1134 = new Guard[]{null,null,null,K1133,K725,K729}; - private static final Call[] K1135 = new Call[]{TinyExpressionP4Parser::e920,TinyExpressionP4Parser::e921,TinyExpressionP4Parser::e922,TinyExpressionP4Parser::e923,TinyExpressionP4Parser::e924,TinyExpressionP4Parser::e925}; - private static final String[] K1136 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21601:21617:body/0/ruleRef/capture/0"}; - private static final String[] K1137 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21631:21647:body/1/ruleRef/capture/0"}; - private static final String[] K1138 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21661:21678:body/2/ruleRef/capture/0"}; - private static final String[] K1139 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21692:21716:body/3/ruleRef/capture/0"}; - private static final String[] K1140 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21730:21741:body/4/ruleRef/capture/0"}; - private static final String[] K1141 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21755:21771:body/5/ruleRef/capture/0"}; - private static final Delimiters[] K1142 = new Delimiters[]{K218,K218,K218,K218,K218,K218,K218,K218,K218,K218,K218}; - private static final Trivia K1143 = new Trivia(K218,null,K1142,null,null); - private static final Call[] K1144 = new Call[]{TinyExpressionP4Parser::e927,TinyExpressionP4Parser::e928,TinyExpressionP4Parser::e929,TinyExpressionP4Parser::e930,TinyExpressionP4Parser::e931,TinyExpressionP4Parser::e932,TinyExpressionP4Parser::e933,TinyExpressionP4Parser::e934,TinyExpressionP4Parser::e935,TinyExpressionP4Parser::e936,TinyExpressionP4Parser::e937}; - private static final String[] K1145 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21955:21972:body/2/ruleRef/capture/0"}; - private static final String[] K1146 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21996:22012:body/5/ruleRef/capture/0"}; - private static final Label[] K1147 = new Label[]{Label.of("'else'")}; - private static final Label K1148 = Label.of("'else'"); - private static final String[] K1149 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22046:22062:body/9/ruleRef/capture/0"}; - private static final Guard[] K1150 = new Guard[]{null,null,null,null,null,null,null,K729}; - private static final Call[] K1151 = new Call[]{TinyExpressionP4Parser::e939,TinyExpressionP4Parser::e940,TinyExpressionP4Parser::e941,TinyExpressionP4Parser::e942,TinyExpressionP4Parser::e943,TinyExpressionP4Parser::e944,TinyExpressionP4Parser::e945,TinyExpressionP4Parser::e946}; - private static final String[] K1152 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22158:22178:body/0/ruleRef/capture/0"}; - private static final String[] K1153 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22192:22218:body/1/ruleRef/capture/0"}; - private static final String[] K1154 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22232:22257:body/2/ruleRef/capture/0"}; - private static final String[] K1155 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22271:22287:body/3/ruleRef/capture/0"}; - private static final String[] K1156 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22301:22318:body/4/ruleRef/capture/0"}; - private static final String[] K1157 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22332:22348:body/5/ruleRef/capture/0"}; - private static final String[] K1158 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22362:22378:body/6/ruleRef/capture/0"}; - private static final String[] K1159 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22392:22408:body/7/ruleRef/capture/0"}; - private static final Call[] K1160 = new Call[]{TinyExpressionP4Parser::e948,TinyExpressionP4Parser::e949,TinyExpressionP4Parser::e950,TinyExpressionP4Parser::e951,TinyExpressionP4Parser::e952,TinyExpressionP4Parser::e953,TinyExpressionP4Parser::e954}; - private static final String[] K1161 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22587:22604:body/1/ruleRef/capture/0"}; - private static final String[] K1162 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22620:22636:body/3/ruleRef/capture/0"}; - private static final String[] K1163 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22651:22667:body/5/ruleRef/capture/0"}; - private static final Call[] K1164 = new Call[]{TinyExpressionP4Parser::e956,TinyExpressionP4Parser::e957,TinyExpressionP4Parser::e958,TinyExpressionP4Parser::e959,TinyExpressionP4Parser::e963,TinyExpressionP4Parser::e964,TinyExpressionP4Parser::e965}; - private static final Label[] K1165 = new Label[]{Label.of("'match'")}; - private static final Label K1166 = Label.of("'match'"); - private static final String[] K1167 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22889:22899:body/2/ruleRef/capture/0"}; - private static final String[] K1168 = new String[]{"firstCase"}; - private static final Call[] K1169 = new Call[]{TinyExpressionP4Parser::e961,TinyExpressionP4Parser::e962}; - private static final String[] K1170 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22917:22927:body/3/0/1/ruleRef/capture/0"}; - private static final String[] K1171 = new String[]{"moreCases"}; - private static final String[] K1172 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22951:22968:body/5/ruleRef/capture/0"}; - private static final String[] K1173 = new String[]{"defaultCase"}; - private static final Call[] K1174 = new Call[]{TinyExpressionP4Parser::e967,TinyExpressionP4Parser::e968,TinyExpressionP4Parser::e969}; - private static final String[] K1175 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23064:23081:body/0/ruleRef/capture/0"}; - private static final Label K1176 = Label.of("'->'"); - private static final String[] K1177 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23098:23113:body/2/ruleRef/capture/0"}; - private static final Call[] K1178 = new Call[]{TinyExpressionP4Parser::e971,TinyExpressionP4Parser::e972,TinyExpressionP4Parser::e973}; - private static final Label[] K1179 = new Label[]{Label.of("'default'")}; - private static final Label K1180 = Label.of("'default'"); - private static final String[] K1181 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23212:23227:body/2/ruleRef/capture/0"}; - private static final Call[] K1182 = new Call[]{TinyExpressionP4Parser::e975}; - private static final String[] K1183 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23307:23323:body/0/ruleRef/capture/0"}; - private static final Call[] K1184 = new Call[]{TinyExpressionP4Parser::e977,TinyExpressionP4Parser::e978,TinyExpressionP4Parser::e979,TinyExpressionP4Parser::e980,TinyExpressionP4Parser::e984,TinyExpressionP4Parser::e985,TinyExpressionP4Parser::e986}; - private static final String[] K1185 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23456:23466:body/2/ruleRef/capture/0"}; - private static final Call[] K1186 = new Call[]{TinyExpressionP4Parser::e982,TinyExpressionP4Parser::e983}; - private static final String[] K1187 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23484:23494:body/3/0/1/ruleRef/capture/0"}; - private static final String[] K1188 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23518:23535:body/5/ruleRef/capture/0"}; - private static final Call[] K1189 = new Call[]{TinyExpressionP4Parser::e988,TinyExpressionP4Parser::e989,TinyExpressionP4Parser::e990}; - private static final String[] K1190 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23631:23648:body/0/ruleRef/capture/0"}; - private static final String[] K1191 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23665:23680:body/2/ruleRef/capture/0"}; - private static final Call[] K1192 = new Call[]{TinyExpressionP4Parser::e992,TinyExpressionP4Parser::e993,TinyExpressionP4Parser::e994}; - private static final String[] K1193 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23779:23794:body/2/ruleRef/capture/0"}; - private static final Call[] K1194 = new Call[]{TinyExpressionP4Parser::e996}; - private static final String[] K1195 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23874:23890:body/0/ruleRef/capture/0"}; - private static final Call[] K1196 = new Call[]{TinyExpressionP4Parser::e998,TinyExpressionP4Parser::e999,TinyExpressionP4Parser::e1000,TinyExpressionP4Parser::e1001,TinyExpressionP4Parser::e1005,TinyExpressionP4Parser::e1006,TinyExpressionP4Parser::e1007}; - private static final String[] K1197 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24025:24036:body/2/ruleRef/capture/0"}; - private static final Call[] K1198 = new Call[]{TinyExpressionP4Parser::e1003,TinyExpressionP4Parser::e1004}; - private static final String[] K1199 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24054:24065:body/3/0/1/ruleRef/capture/0"}; - private static final String[] K1200 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24089:24107:body/5/ruleRef/capture/0"}; - private static final Call[] K1201 = new Call[]{TinyExpressionP4Parser::e1009,TinyExpressionP4Parser::e1010,TinyExpressionP4Parser::e1011}; - private static final String[] K1202 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24205:24222:body/0/ruleRef/capture/0"}; - private static final String[] K1203 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24239:24255:body/2/ruleRef/capture/0"}; - private static final Call[] K1204 = new Call[]{TinyExpressionP4Parser::e1013,TinyExpressionP4Parser::e1014,TinyExpressionP4Parser::e1015}; - private static final String[] K1205 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24356:24372:body/2/ruleRef/capture/0"}; - private static final Call[] K1206 = new Call[]{TinyExpressionP4Parser::e1017}; - private static final String[] K1207 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24454:24471:body/0/ruleRef/capture/0"}; - private static final Call[] K1208 = new Call[]{TinyExpressionP4Parser::e1019,TinyExpressionP4Parser::e1020,TinyExpressionP4Parser::e1021}; - private static final String[] K1209 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24688:24698:body/1/tokenRef/capture/0"}; - private static final Call[] K1210 = new Call[]{TinyExpressionP4Parser::e1023,TinyExpressionP4Parser::e1025}; - private static final String[] K1211 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24716:24727:body/2/0/1/ruleRef/capture/0"}; - private static final Call[] K1212 = new Call[]{TinyExpressionP4Parser::e1027,TinyExpressionP4Parser::e1028,TinyExpressionP4Parser::e1029,TinyExpressionP4Parser::e1030,TinyExpressionP4Parser::e1031,TinyExpressionP4Parser::e1032,TinyExpressionP4Parser::e1033,TinyExpressionP4Parser::e1034,TinyExpressionP4Parser::e1035,TinyExpressionP4Parser::e1036}; - private static final Guard[] K1213 = new Guard[]{null,null,null,null,K729,K731}; - private static final Call[] K1214 = new Call[]{TinyExpressionP4Parser::e1038,TinyExpressionP4Parser::e1039,TinyExpressionP4Parser::e1040,TinyExpressionP4Parser::e1041,TinyExpressionP4Parser::e1042,TinyExpressionP4Parser::e1043}; - private static final String[] K1215 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25187:25203:body/0/ruleRef/capture/0"}; - private static final String[] K1216 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25217:25234:body/1/ruleRef/capture/0"}; - private static final String[] K1217 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25248:25264:body/2/ruleRef/capture/0"}; - private static final String[] K1218 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25278:25294:body/3/ruleRef/capture/0"}; - private static final String[] K1219 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25308:25324:body/4/ruleRef/capture/0"}; - private static final Call[] K1220 = new Call[]{TinyExpressionP4Parser::e1044,TinyExpressionP4Parser::e1045,TinyExpressionP4Parser::e1046}; - private static final String[] K1221 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25342:25352:body/5/1/ruleRef/capture/0"}; + private static final Label K328 = Label.of("'.'"); + private static final String[] K329 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2859:2869:body/1/0/1/tokenRef/capture/0"}; + private static final String[] K330 = new String[]{"tail"}; + private static final int[] K331 = new int[]{9,13,32,32,47,47,118,118}; + private static final Label[] K332 = new Label[]{null,Label.of("'variable'"),Label.of("'var'"),Label.of("'$'"),Label.of("';'")}; + private static final int[] K333 = new int[]{5}; + private static final Guard K334 = new Guard(K331,K332,K229,K333,1); + private static final int[] K335 = new int[]{6}; + private static final Guard K336 = new Guard(K331,K332,K229,K335,1); + private static final int[] K337 = new int[]{7}; + private static final Guard K338 = new Guard(K331,K332,K229,K337,1); + private static final int[] K339 = new int[]{8}; + private static final Guard K340 = new Guard(K331,K332,K229,K339,1); + private static final Guard[] K341 = new Guard[]{K334,K336,K338,K340}; + private static final Call[] K342 = new Call[]{TinyExpressionP4Parser::e66,TinyExpressionP4Parser::e67,TinyExpressionP4Parser::e68,TinyExpressionP4Parser::e69}; + private static final Delimiters[] K343 = new Delimiters[]{K229,K229,K229,K229,K229,K229,K229}; + private static final Trivia K344 = new Trivia(K229,null,K343,null,null); + private static final Call[] K345 = new Call[]{TinyExpressionP4Parser::e71,TinyExpressionP4Parser::e75,TinyExpressionP4Parser::e76,TinyExpressionP4Parser::e77,TinyExpressionP4Parser::e79,TinyExpressionP4Parser::e85,TinyExpressionP4Parser::e87}; + private static final Label[] K346 = new Label[]{Label.of("'variable'"),Label.of("'var'")}; + private static final Call[] K347 = new Call[]{TinyExpressionP4Parser::e73,TinyExpressionP4Parser::e74}; + private static final Label[] K348 = new Label[]{Label.of("'variable'")}; + private static final Label K349 = Label.of("'variable'"); + private static final Label[] K350 = new Label[]{Label.of("'var'")}; + private static final Label K351 = Label.of("'var'"); + private static final Label K352 = Label.of("'$'"); + private static final String[] K353 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3354:3364:body/2/tokenRef/capture/0"}; + private static final String[] K354 = new String[]{"varName"}; + private static final boolean[] K355 = new boolean[]{true}; + private static final Label[] K356 = new Label[]{Label.of("Optional")}; + private static final Label[] K357 = new Label[]{Label.of("'set'")}; + private static final Call[] K358 = new Call[]{TinyExpressionP4Parser::e81,TinyExpressionP4Parser::e82,TinyExpressionP4Parser::e84}; + private static final Label K359 = Label.of("'set'"); + private static final String[] K360 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3411:3423:body/4/0/1/0/ruleRef/capture/0"}; + private static final String[] K361 = new String[]{"onlyIfAbsent"}; + private static final String[] K362 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3440:3456:body/4/0/2/ruleRef/capture/0"}; + private static final String[] K363 = new String[]{"value"}; + private static final String[] K364 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3472:3483:body/5/0/ruleRef/capture/0"}; + private static final String[] K365 = new String[]{"desc"}; + private static final Call[] K366 = new Call[]{TinyExpressionP4Parser::e89,TinyExpressionP4Parser::e93,TinyExpressionP4Parser::e94,TinyExpressionP4Parser::e95,TinyExpressionP4Parser::e97,TinyExpressionP4Parser::e103,TinyExpressionP4Parser::e105}; + private static final Call[] K367 = new Call[]{TinyExpressionP4Parser::e91,TinyExpressionP4Parser::e92}; + private static final String[] K368 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3703:3713:body/2/tokenRef/capture/0"}; + private static final Call[] K369 = new Call[]{TinyExpressionP4Parser::e99,TinyExpressionP4Parser::e100,TinyExpressionP4Parser::e102}; + private static final String[] K370 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3760:3772:body/4/0/1/0/ruleRef/capture/0"}; + private static final String[] K371 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3789:3805:body/4/0/2/ruleRef/capture/0"}; + private static final String[] K372 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3821:3832:body/5/0/ruleRef/capture/0"}; + private static final Call[] K373 = new Call[]{TinyExpressionP4Parser::e107,TinyExpressionP4Parser::e111,TinyExpressionP4Parser::e112,TinyExpressionP4Parser::e113,TinyExpressionP4Parser::e115,TinyExpressionP4Parser::e121,TinyExpressionP4Parser::e123}; + private static final Call[] K374 = new Call[]{TinyExpressionP4Parser::e109,TinyExpressionP4Parser::e110}; + private static final String[] K375 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4054:4064:body/2/tokenRef/capture/0"}; + private static final Call[] K376 = new Call[]{TinyExpressionP4Parser::e117,TinyExpressionP4Parser::e118,TinyExpressionP4Parser::e120}; + private static final String[] K377 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4112:4124:body/4/0/1/0/ruleRef/capture/0"}; + private static final String[] K378 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4141:4158:body/4/0/2/ruleRef/capture/0"}; + private static final String[] K379 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4174:4185:body/5/0/ruleRef/capture/0"}; + private static final Call[] K380 = new Call[]{TinyExpressionP4Parser::e125,TinyExpressionP4Parser::e129,TinyExpressionP4Parser::e130,TinyExpressionP4Parser::e131,TinyExpressionP4Parser::e133,TinyExpressionP4Parser::e139,TinyExpressionP4Parser::e141}; + private static final Call[] K381 = new Call[]{TinyExpressionP4Parser::e127,TinyExpressionP4Parser::e128}; + private static final String[] K382 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4405:4415:body/2/tokenRef/capture/0"}; + private static final Call[] K383 = new Call[]{TinyExpressionP4Parser::e135,TinyExpressionP4Parser::e136,TinyExpressionP4Parser::e138}; + private static final String[] K384 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4462:4474:body/4/0/1/0/ruleRef/capture/0"}; + private static final String[] K385 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4491:4507:body/4/0/2/ruleRef/capture/0"}; + private static final String[] K386 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4523:4534:body/5/0/ruleRef/capture/0"}; + private static final Call[] K387 = new Call[]{TinyExpressionP4Parser::e143,TinyExpressionP4Parser::e145}; + private static final Label[] K388 = new Label[]{Label.of("'number'"),Label.of("'Number'"),Label.of("'string'"),Label.of("'String'"),Label.of("'boolean'"),Label.of("'Boolean'"),Label.of("'object'"),Label.of("'Object'")}; + private static final Call[] K389 = new Call[]{TinyExpressionP4Parser::e147,TinyExpressionP4Parser::e148,TinyExpressionP4Parser::e149,TinyExpressionP4Parser::e150,TinyExpressionP4Parser::e151,TinyExpressionP4Parser::e152,TinyExpressionP4Parser::e153,TinyExpressionP4Parser::e154}; + private static final Label[] K390 = new Label[]{Label.of("'number'")}; + private static final Label K391 = Label.of("'number'"); + private static final Label[] K392 = new Label[]{Label.of("'Number'")}; + private static final Label K393 = Label.of("'Number'"); + private static final Label K394 = Label.of("'string'"); + private static final Label[] K395 = new Label[]{Label.of("'String'")}; + private static final Label K396 = Label.of("'String'"); + private static final Label K397 = Label.of("'boolean'"); + private static final Label[] K398 = new Label[]{Label.of("'Boolean'")}; + private static final Label K399 = Label.of("'Boolean'"); + private static final Label K400 = Label.of("'object'"); + private static final Label[] K401 = new Label[]{Label.of("'Object'")}; + private static final Label K402 = Label.of("'Object'"); + private static final Call[] K403 = new Call[]{TinyExpressionP4Parser::e156,TinyExpressionP4Parser::e158}; + private static final Label[] K404 = new Label[]{Label.of("'number'"),Label.of("'Number'"),Label.of("'float'"),Label.of("'Float'")}; + private static final Call[] K405 = new Call[]{TinyExpressionP4Parser::e160,TinyExpressionP4Parser::e161,TinyExpressionP4Parser::e162,TinyExpressionP4Parser::e163}; + private static final Label[] K406 = new Label[]{Label.of("'float'")}; + private static final Label K407 = Label.of("'float'"); + private static final Label[] K408 = new Label[]{Label.of("'Float'")}; + private static final Label K409 = Label.of("'Float'"); + private static final Call[] K410 = new Call[]{TinyExpressionP4Parser::e165,TinyExpressionP4Parser::e167}; + private static final Label[] K411 = new Label[]{Label.of("'string'"),Label.of("'String'")}; + private static final Call[] K412 = new Call[]{TinyExpressionP4Parser::e169,TinyExpressionP4Parser::e170}; + private static final Call[] K413 = new Call[]{TinyExpressionP4Parser::e172,TinyExpressionP4Parser::e174}; + private static final Label[] K414 = new Label[]{Label.of("'boolean'"),Label.of("'Boolean'")}; + private static final Call[] K415 = new Call[]{TinyExpressionP4Parser::e176,TinyExpressionP4Parser::e177}; + private static final Call[] K416 = new Call[]{TinyExpressionP4Parser::e179,TinyExpressionP4Parser::e181}; + private static final Label[] K417 = new Label[]{Label.of("'object'"),Label.of("'Object'")}; + private static final Call[] K418 = new Call[]{TinyExpressionP4Parser::e183,TinyExpressionP4Parser::e184}; + private static final Call[] K419 = new Call[]{TinyExpressionP4Parser::e186,TinyExpressionP4Parser::e187,TinyExpressionP4Parser::e188}; + private static final Label[] K420 = new Label[]{Label.of("'if'")}; + private static final Label K421 = Label.of("'if'"); + private static final Label[] K422 = new Label[]{Label.of("'not'")}; + private static final Label K423 = Label.of("'not'"); + private static final Label[] K424 = new Label[]{Label.of("'exists'")}; + private static final Label K425 = Label.of("'exists'"); + private static final Call[] K426 = new Call[]{TinyExpressionP4Parser::e190,TinyExpressionP4Parser::e191,TinyExpressionP4Parser::e192}; + private static final Label[] K427 = new Label[]{Label.of("'description'")}; + private static final Label K428 = Label.of("'description'"); + private static final Label K429 = Label.of("'='"); + private static final Label[] K430 = new Label[]{Label.of("STRINGParser")}; + private static final org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression K431 = new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SCOPE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SCOPE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.LITERAL,"\"",0,0,List.of()),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.REPEAT,"",0,-1,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.LITERAL,"\\",0,0,List.of()),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.ANY,"",0,0,List.of()))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.EXCEPT,"\"\\",0,0,List.of()))))))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.LITERAL,"\"",0,0,List.of()))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.LITERAL,"'",0,0,List.of()),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.REPEAT,"",0,-1,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.LITERAL,"\\",0,0,List.of()),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.ANY,"",0,0,List.of()))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.EXCEPT,"'\\",0,0,List.of()))))))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.LITERAL,"'",0,0,List.of()))))))))))))); + private static final Label K432 = Label.of("STRINGParser"); + private static final Call[] K433 = new Call[]{TinyExpressionP4Parser::e194,TinyExpressionP4Parser::e195,TinyExpressionP4Parser::e196,TinyExpressionP4Parser::e197,TinyExpressionP4Parser::e199}; + private static final Label[] K434 = new Label[]{Label.of("'@'")}; + private static final Label K435 = Label.of("'@'"); + private static final Label[] K436 = new Label[]{Label.of("IDENTIFIERParser")}; + private static final Label[] K437 = new Label[]{Label.of("'('")}; + private static final Label K438 = Label.of("'('"); + private static final Label[] K439 = new Label[]{Label.of("')'")}; + private static final Label K440 = Label.of("')'"); + private static final Call[] K441 = new Call[]{TinyExpressionP4Parser::e201,TinyExpressionP4Parser::e202}; + private static final Label[] K442 = new Label[]{Label.of("','")}; + private static final Label[] K443 = new Label[]{Label.of("','"),Label.of("'='")}; + private static final Call[] K444 = new Call[]{TinyExpressionP4Parser::e204,TinyExpressionP4Parser::e205}; + private static final Label K445 = Label.of("','"); + private static final Call[] K446 = new Call[]{TinyExpressionP4Parser::e207,TinyExpressionP4Parser::e208,TinyExpressionP4Parser::e209}; + private static final Call[] K447 = new Call[]{TinyExpressionP4Parser::e211,TinyExpressionP4Parser::e212,TinyExpressionP4Parser::e213,TinyExpressionP4Parser::e214}; + private static final Delimiters[] K448 = new Delimiters[]{K229,K229,K229,K229,K229,K229,K229,K229}; + private static final Trivia K449 = new Trivia(K229,null,K448,null,null); + private static final Call[] K450 = new Call[]{TinyExpressionP4Parser::e216,TinyExpressionP4Parser::e217,TinyExpressionP4Parser::e218,TinyExpressionP4Parser::e219,TinyExpressionP4Parser::e221,TinyExpressionP4Parser::e222,TinyExpressionP4Parser::e223,TinyExpressionP4Parser::e224}; + private static final String[] K451 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5583:5593:body/1/tokenRef/capture/0"}; + private static final String[] K452 = new String[]{"methodName"}; + private static final String[] K453 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5622:5638:body/3/0/ruleRef/capture/0"}; + private static final String[] K454 = new String[]{"parameters"}; + private static final Label[] K455 = new Label[]{Label.of("'{'")}; + private static final Label K456 = Label.of("'{'"); + private static final String[] K457 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5675:5691:body/6/ruleRef/capture/0"}; + private static final Label[] K458 = new Label[]{Label.of("'}'")}; + private static final Label K459 = Label.of("'}'"); + private static final Call[] K460 = new Call[]{TinyExpressionP4Parser::e226,TinyExpressionP4Parser::e227,TinyExpressionP4Parser::e228,TinyExpressionP4Parser::e229,TinyExpressionP4Parser::e231,TinyExpressionP4Parser::e232,TinyExpressionP4Parser::e233,TinyExpressionP4Parser::e234}; + private static final String[] K461 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5909:5919:body/1/tokenRef/capture/0"}; + private static final String[] K462 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5948:5964:body/3/0/ruleRef/capture/0"}; + private static final String[] K463 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6001:6017:body/6/ruleRef/capture/0"}; + private static final Call[] K464 = new Call[]{TinyExpressionP4Parser::e236,TinyExpressionP4Parser::e237,TinyExpressionP4Parser::e238,TinyExpressionP4Parser::e239,TinyExpressionP4Parser::e241,TinyExpressionP4Parser::e242,TinyExpressionP4Parser::e243,TinyExpressionP4Parser::e244}; + private static final String[] K465 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6238:6248:body/1/tokenRef/capture/0"}; + private static final String[] K466 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6277:6293:body/3/0/ruleRef/capture/0"}; + private static final String[] K467 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6330:6347:body/6/ruleRef/capture/0"}; + private static final Call[] K468 = new Call[]{TinyExpressionP4Parser::e246,TinyExpressionP4Parser::e247,TinyExpressionP4Parser::e248,TinyExpressionP4Parser::e249,TinyExpressionP4Parser::e251,TinyExpressionP4Parser::e252,TinyExpressionP4Parser::e253,TinyExpressionP4Parser::e254}; + private static final String[] K469 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6565:6575:body/1/tokenRef/capture/0"}; + private static final String[] K470 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6604:6620:body/3/0/ruleRef/capture/0"}; + private static final String[] K471 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6657:6673:body/6/ruleRef/capture/0"}; + private static final Call[] K472 = new Call[]{TinyExpressionP4Parser::e256,TinyExpressionP4Parser::e257}; + private static final String[] K473 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6770:6785:body/0/ruleRef/capture/0"}; + private static final String[] K474 = new String[]{"values"}; + private static final Call[] K475 = new Call[]{TinyExpressionP4Parser::e259,TinyExpressionP4Parser::e260}; + private static final String[] K476 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6800:6815:body/1/0/1/ruleRef/capture/0"}; + private static final Call[] K477 = new Call[]{TinyExpressionP4Parser::e262,TinyExpressionP4Parser::e263,TinyExpressionP4Parser::e264}; + private static final String[] K478 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6943:6953:body/1/tokenRef/capture/0"}; + private static final String[] K479 = new String[]{"paramName"}; + private static final Call[] K480 = new Call[]{TinyExpressionP4Parser::e266,TinyExpressionP4Parser::e267}; + private static final String[] K481 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6972:6982:body/2/0/1/ruleRef/capture/0"}; + private static final String[] K482 = new String[]{"type"}; + private static final Call[] K483 = new Call[]{TinyExpressionP4Parser::e269,TinyExpressionP4Parser::e270}; + private static final Call[] K484 = new Call[]{TinyExpressionP4Parser::e272}; + private static final Call[] K485 = new Call[]{TinyExpressionP4Parser::e274}; + private static final Call[] K486 = new Call[]{TinyExpressionP4Parser::e276}; + private static final int[] K487 = new int[]{9,13,32,32,47,47,102,102,110,110}; + private static final int[] K488 = new int[]{26}; + private static final Guard K489 = new Guard(K487,K51,null,K488,1); + private static final int[] K490 = new int[]{9,13,32,32,47,47,115,115}; + private static final Label[] K491 = new Label[]{null,Label.of("'string'")}; + private static final int[] K492 = new int[]{27}; + private static final Guard K493 = new Guard(K490,K491,K229,K492,1); + private static final int[] K494 = new int[]{9,13,32,32,47,47,98,98}; + private static final Label[] K495 = new Label[]{null,Label.of("'boolean'")}; + private static final int[] K496 = new int[]{28}; + private static final Guard K497 = new Guard(K494,K495,K229,K496,1); + private static final int[] K498 = new int[]{9,13,32,32,47,47,111,111}; + private static final Label[] K499 = new Label[]{null,Label.of("'object'")}; + private static final int[] K500 = new int[]{29}; + private static final Guard K501 = new Guard(K498,K499,K229,K500,1); + private static final Guard[] K502 = new Guard[]{K489,K493,K497,K501}; + private static final Call[] K503 = new Call[]{TinyExpressionP4Parser::e278,TinyExpressionP4Parser::e279,TinyExpressionP4Parser::e280,TinyExpressionP4Parser::e281}; + private static final Call[] K504 = new Call[]{TinyExpressionP4Parser::e283,TinyExpressionP4Parser::e284,TinyExpressionP4Parser::e289,TinyExpressionP4Parser::e290,TinyExpressionP4Parser::e292,TinyExpressionP4Parser::e299,TinyExpressionP4Parser::e300,TinyExpressionP4Parser::e302}; + private static final Label[] K505 = new Label[]{Label.of("'external'")}; + private static final Label K506 = Label.of("'external'"); + private static final Label[] K507 = new Label[]{Label.of("'returning'")}; + private static final Label[] K508 = new Label[]{Label.of("'returning'"),Label.of("'as'")}; + private static final Call[] K509 = new Call[]{TinyExpressionP4Parser::e286,TinyExpressionP4Parser::e287}; + private static final Label K510 = Label.of("'returning'"); + private static final Label[] K511 = new Label[]{Label.of("':'")}; + private static final Label K512 = Label.of("':'"); + private static final Call[] K513 = new Call[]{TinyExpressionP4Parser::e294,TinyExpressionP4Parser::e298}; + private static final Call[] K514 = new Call[]{TinyExpressionP4Parser::e295,TinyExpressionP4Parser::e296,TinyExpressionP4Parser::e297}; + private static final String[] K515 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7631:7640:body/4/0/0/0/ruleRef/capture/0"}; + private static final String[] K516 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7656:7666:body/4/0/0/2/tokenRef/capture/0"}; + private static final String[] K517 = new String[]{"name"}; + private static final String[] K518 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7675:7685:body/4/0/1/tokenRef/capture/0"}; + private static final String[] K519 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7704:7713:body/6/0/ruleRef/capture/0"}; + private static final String[] K520 = new String[]{"args"}; + private static final Call[] K521 = new Call[]{TinyExpressionP4Parser::e304,TinyExpressionP4Parser::e305,TinyExpressionP4Parser::e318,TinyExpressionP4Parser::e325,TinyExpressionP4Parser::e326,TinyExpressionP4Parser::e328}; + private static final Call[] K522 = new Call[]{TinyExpressionP4Parser::e307,TinyExpressionP4Parser::e316}; + private static final Label[] K523 = new Label[]{Label.of("'number'"),Label.of("'float'"),Label.of("':'")}; + private static final Call[] K524 = new Call[]{TinyExpressionP4Parser::e308,TinyExpressionP4Parser::e313,TinyExpressionP4Parser::e314}; + private static final Call[] K525 = new Call[]{TinyExpressionP4Parser::e310,TinyExpressionP4Parser::e311}; + private static final Call[] K526 = new Call[]{TinyExpressionP4Parser::e320,TinyExpressionP4Parser::e324}; + private static final Call[] K527 = new Call[]{TinyExpressionP4Parser::e321,TinyExpressionP4Parser::e322,TinyExpressionP4Parser::e323}; + private static final String[] K528 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7922:7931:body/2/0/0/0/ruleRef/capture/0"}; + private static final String[] K529 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7947:7957:body/2/0/0/2/tokenRef/capture/0"}; + private static final String[] K530 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7966:7976:body/2/0/1/tokenRef/capture/0"}; + private static final String[] K531 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7995:8004:body/4/0/ruleRef/capture/0"}; + private static final Call[] K532 = new Call[]{TinyExpressionP4Parser::e330,TinyExpressionP4Parser::e331,TinyExpressionP4Parser::e336,TinyExpressionP4Parser::e337,TinyExpressionP4Parser::e339,TinyExpressionP4Parser::e346,TinyExpressionP4Parser::e347,TinyExpressionP4Parser::e349}; + private static final Call[] K533 = new Call[]{TinyExpressionP4Parser::e333,TinyExpressionP4Parser::e334}; + private static final Call[] K534 = new Call[]{TinyExpressionP4Parser::e341,TinyExpressionP4Parser::e345}; + private static final Call[] K535 = new Call[]{TinyExpressionP4Parser::e342,TinyExpressionP4Parser::e343,TinyExpressionP4Parser::e344}; + private static final String[] K536 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8199:8208:body/4/0/0/0/ruleRef/capture/0"}; + private static final String[] K537 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8224:8234:body/4/0/0/2/tokenRef/capture/0"}; + private static final String[] K538 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8243:8253:body/4/0/1/tokenRef/capture/0"}; + private static final String[] K539 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8272:8281:body/6/0/ruleRef/capture/0"}; + private static final Call[] K540 = new Call[]{TinyExpressionP4Parser::e351,TinyExpressionP4Parser::e352,TinyExpressionP4Parser::e357,TinyExpressionP4Parser::e358,TinyExpressionP4Parser::e360,TinyExpressionP4Parser::e367,TinyExpressionP4Parser::e368,TinyExpressionP4Parser::e370}; + private static final Call[] K541 = new Call[]{TinyExpressionP4Parser::e354,TinyExpressionP4Parser::e355}; + private static final Call[] K542 = new Call[]{TinyExpressionP4Parser::e362,TinyExpressionP4Parser::e366}; + private static final Call[] K543 = new Call[]{TinyExpressionP4Parser::e363,TinyExpressionP4Parser::e364,TinyExpressionP4Parser::e365}; + private static final String[] K544 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8476:8485:body/4/0/0/0/ruleRef/capture/0"}; + private static final String[] K545 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8501:8511:body/4/0/0/2/tokenRef/capture/0"}; + private static final String[] K546 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8520:8530:body/4/0/1/tokenRef/capture/0"}; + private static final String[] K547 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8549:8558:body/6/0/ruleRef/capture/0"}; + private static final int[] K548 = new int[]{9,13,32,32,47,47,99,99}; + private static final Label[] K549 = new Label[]{null,Label.of("'call'"),Label.of("'internal'")}; + private static final int[] K550 = new int[]{}; + private static final Guard K551 = new Guard(K548,K549,K229,K550,0); + private static final Guard[] K552 = new Guard[]{K551,null}; + private static final Call[] K553 = new Call[]{TinyExpressionP4Parser::e372,TinyExpressionP4Parser::e376}; + private static final Call[] K554 = new Call[]{TinyExpressionP4Parser::e373,TinyExpressionP4Parser::e374}; + private static final Label[] K555 = new Label[]{Label.of("'call'")}; + private static final Label K556 = Label.of("'call'"); + private static final Label[] K557 = new Label[]{Label.of("'internal'")}; + private static final Label K558 = Label.of("'internal'"); + private static final Call[] K559 = new Call[]{TinyExpressionP4Parser::e378,TinyExpressionP4Parser::e379,TinyExpressionP4Parser::e380,TinyExpressionP4Parser::e381,TinyExpressionP4Parser::e383}; + private static final String[] K560 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8935:8945:body/1/tokenRef/capture/0"}; + private static final String[] K561 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8958:8967:body/3/0/ruleRef/capture/0"}; + private static final Call[] K562 = new Call[]{TinyExpressionP4Parser::e385,TinyExpressionP4Parser::e386,TinyExpressionP4Parser::e387,TinyExpressionP4Parser::e388,TinyExpressionP4Parser::e389}; + private static final String[] K563 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9146:9163:body/0/ruleRef/capture/0"}; + private static final String[] K564 = new String[]{"condition"}; + private static final Label[] K565 = new Label[]{Label.of("'?'")}; + private static final Label K566 = Label.of("'?'"); + private static final String[] K567 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9179:9195:body/2/ruleRef/capture/0"}; + private static final String[] K568 = new String[]{"thenExpr"}; + private static final String[] K569 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9210:9226:body/4/ruleRef/capture/0"}; + private static final String[] K570 = new String[]{"elseExpr"}; + private static final Call[] K571 = new Call[]{TinyExpressionP4Parser::e391,TinyExpressionP4Parser::e392,TinyExpressionP4Parser::e393,TinyExpressionP4Parser::e394}; + private static final String[] K572 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9322:9337:body/0/ruleRef/capture/0"}; + private static final String[] K573 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9351:9371:body/1/ruleRef/capture/0"}; + private static final String[] K574 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9385:9411:body/2/ruleRef/capture/0"}; + private static final String[] K575 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9425:9435:body/3/ruleRef/capture/0"}; + private static final Call[] K576 = new Call[]{TinyExpressionP4Parser::e396,TinyExpressionP4Parser::e397}; + private static final String[] K577 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9505:9523:body/0/ruleRef/capture/0"}; + private static final Call[] K578 = new Call[]{TinyExpressionP4Parser::e399,TinyExpressionP4Parser::e400}; + private static final String[] K579 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9538:9556:body/1/0/1/ruleRef/capture/0"}; + private static final Call[] K580 = new Call[]{TinyExpressionP4Parser::e402,TinyExpressionP4Parser::e403}; + private static final String[] K581 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9761:9771:body/0/ruleRef/capture/0"}; + private static final String[] K582 = new String[]{"left"}; + private static final Label[] K583 = new Label[]{Label.of("NumberExpressionRepeat0Parser")}; + private static final Call[] K584 = new Call[]{TinyExpressionP4Parser::e405,TinyExpressionP4Parser::e406}; + private static final String[] K585 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9780:9785:body/1/0/0/ruleRef/capture/0"}; + private static final String[] K586 = new String[]{"op"}; + private static final String[] K587 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9790:9800:body/1/0/1/ruleRef/capture/0"}; + private static final String[] K588 = new String[]{"right"}; + private static final Call[] K589 = new Call[]{TinyExpressionP4Parser::e408,TinyExpressionP4Parser::e409}; + private static final String[] K590 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9916:9928:body/0/ruleRef/capture/0"}; + private static final Label[] K591 = new Label[]{Label.of("NumberTermRepeat0Parser")}; + private static final Call[] K592 = new Call[]{TinyExpressionP4Parser::e411,TinyExpressionP4Parser::e412}; + private static final String[] K593 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9937:9942:body/1/0/0/ruleRef/capture/0"}; + private static final String[] K594 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9947:9959:body/1/0/1/ruleRef/capture/0"}; + private static final Call[] K595 = new Call[]{TinyExpressionP4Parser::e414,TinyExpressionP4Parser::e415}; + private static final Label[] K596 = new Label[]{Label.of("'+'")}; + private static final Label K597 = Label.of("'+'"); + private static final Label[] K598 = new Label[]{Label.of("'-'")}; + private static final Label K599 = Label.of("'-'"); + private static final Call[] K600 = new Call[]{TinyExpressionP4Parser::e417,TinyExpressionP4Parser::e418}; + private static final Label[] K601 = new Label[]{Label.of("'*'")}; + private static final Label K602 = Label.of("'*'"); + private static final Label[] K603 = new Label[]{Label.of("'/'")}; + private static final Label K604 = Label.of("'/'"); + private static final Label[] K605 = new Label[]{null,Label.of("'sin'"),Label.of("'('"),Label.of("')'")}; + private static final int[] K606 = new int[]{45}; + private static final Guard K607 = new Guard(K490,K605,K229,K606,1); + private static final Label[] K608 = new Label[]{null,Label.of("'cos'"),Label.of("'('"),Label.of("')'")}; + private static final int[] K609 = new int[]{46}; + private static final Guard K610 = new Guard(K548,K608,K229,K609,1); + private static final int[] K611 = new int[]{9,13,32,32,47,47,116,116}; + private static final Label[] K612 = new Label[]{null,Label.of("'tan'"),Label.of("'('"),Label.of("')'")}; + private static final int[] K613 = new int[]{47}; + private static final Guard K614 = new Guard(K611,K612,K229,K613,1); + private static final Label[] K615 = new Label[]{null,Label.of("'sqrt'"),Label.of("'('"),Label.of("')'")}; + private static final int[] K616 = new int[]{48}; + private static final Guard K617 = new Guard(K490,K615,K229,K616,1); + private static final int[] K618 = new int[]{9,13,32,32,47,47,109,109}; + private static final Label[] K619 = new Label[]{null,Label.of("'min'"),Label.of("'('"),Label.of("')'")}; + private static final int[] K620 = new int[]{49}; + private static final Guard K621 = new Guard(K618,K619,K229,K620,1); + private static final Label[] K622 = new Label[]{null,Label.of("'max'"),Label.of("'('"),Label.of("')'")}; + private static final int[] K623 = new int[]{50}; + private static final Guard K624 = new Guard(K618,K622,K229,K623,1); + private static final int[] K625 = new int[]{9,13,32,32,47,47,114,114}; + private static final Label[] K626 = new Label[]{null,Label.of("'random'"),Label.of("'('"),Label.of("')'")}; + private static final int[] K627 = new int[]{51}; + private static final Guard K628 = new Guard(K625,K626,K229,K627,1); + private static final int[] K629 = new int[]{9,13,32,32,47,47,97,97}; + private static final Label[] K630 = new Label[]{null,Label.of("'abs'"),Label.of("'('"),Label.of("')'")}; + private static final int[] K631 = new int[]{52}; + private static final Guard K632 = new Guard(K629,K630,K229,K631,1); + private static final Label[] K633 = new Label[]{null,Label.of("'round'"),Label.of("'('"),Label.of("')'")}; + private static final int[] K634 = new int[]{53}; + private static final Guard K635 = new Guard(K625,K633,K229,K634,1); + private static final Label[] K636 = new Label[]{null,Label.of("'ceil'"),Label.of("'('"),Label.of("')'")}; + private static final int[] K637 = new int[]{54}; + private static final Guard K638 = new Guard(K548,K636,K229,K637,1); + private static final int[] K639 = new int[]{9,13,32,32,47,47,102,102}; + private static final Label[] K640 = new Label[]{null,Label.of("'floor'"),Label.of("'('"),Label.of("')'")}; + private static final int[] K641 = new int[]{55}; + private static final Guard K642 = new Guard(K639,K640,K229,K641,1); + private static final int[] K643 = new int[]{9,13,32,32,47,47,112,112}; + private static final Label[] K644 = new Label[]{null,Label.of("'pow'"),Label.of("'('"),Label.of("','"),Label.of("')'")}; + private static final int[] K645 = new int[]{56}; + private static final Guard K646 = new Guard(K643,K644,K229,K645,1); + private static final int[] K647 = new int[]{9,13,32,32,47,47,108,108}; + private static final Label[] K648 = new Label[]{null,Label.of("'log'"),Label.of("'('"),Label.of("')'")}; + private static final int[] K649 = new int[]{57}; + private static final Guard K650 = new Guard(K647,K648,K229,K649,1); + private static final int[] K651 = new int[]{9,13,32,32,47,47,101,101}; + private static final Label[] K652 = new Label[]{null,Label.of("'exp'"),Label.of("'('"),Label.of("')'")}; + private static final int[] K653 = new int[]{58}; + private static final Guard K654 = new Guard(K651,K652,K229,K653,1); + private static final Guard[] K655 = new Guard[]{K607,K610,K614,K617,K621,K624,K628,K632,K635,K638,K642,K646,K650,K654}; + private static final Call[] K656 = new Call[]{TinyExpressionP4Parser::e420,TinyExpressionP4Parser::e421,TinyExpressionP4Parser::e422,TinyExpressionP4Parser::e423,TinyExpressionP4Parser::e424,TinyExpressionP4Parser::e425,TinyExpressionP4Parser::e426,TinyExpressionP4Parser::e427,TinyExpressionP4Parser::e428,TinyExpressionP4Parser::e429,TinyExpressionP4Parser::e430,TinyExpressionP4Parser::e431,TinyExpressionP4Parser::e432,TinyExpressionP4Parser::e433}; + private static final Delimiters[] K657 = new Delimiters[]{K229,K229,K229,K229}; + private static final Trivia K658 = new Trivia(K229,null,K657,null,null); + private static final Call[] K659 = new Call[]{TinyExpressionP4Parser::e435,TinyExpressionP4Parser::e436,TinyExpressionP4Parser::e437,TinyExpressionP4Parser::e438}; + private static final Label[] K660 = new Label[]{Label.of("'sin'")}; + private static final Label K661 = Label.of("'sin'"); + private static final String[] K662 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10445:10463:body/2/ruleRef/capture/0"}; + private static final String[] K663 = new String[]{"arg"}; + private static final Call[] K664 = new Call[]{TinyExpressionP4Parser::e440,TinyExpressionP4Parser::e441,TinyExpressionP4Parser::e442,TinyExpressionP4Parser::e443}; + private static final Label[] K665 = new Label[]{Label.of("'cos'")}; + private static final Label K666 = Label.of("'cos'"); + private static final String[] K667 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10538:10556:body/2/ruleRef/capture/0"}; + private static final Call[] K668 = new Call[]{TinyExpressionP4Parser::e445,TinyExpressionP4Parser::e446,TinyExpressionP4Parser::e447,TinyExpressionP4Parser::e448}; + private static final Label[] K669 = new Label[]{Label.of("'tan'")}; + private static final Label K670 = Label.of("'tan'"); + private static final String[] K671 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10631:10649:body/2/ruleRef/capture/0"}; + private static final Call[] K672 = new Call[]{TinyExpressionP4Parser::e450,TinyExpressionP4Parser::e451,TinyExpressionP4Parser::e452,TinyExpressionP4Parser::e453}; + private static final Label[] K673 = new Label[]{Label.of("'sqrt'")}; + private static final Label K674 = Label.of("'sqrt'"); + private static final String[] K675 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10727:10745:body/2/ruleRef/capture/0"}; + private static final Call[] K676 = new Call[]{TinyExpressionP4Parser::e455,TinyExpressionP4Parser::e456,TinyExpressionP4Parser::e457,TinyExpressionP4Parser::e458,TinyExpressionP4Parser::e462}; + private static final Label[] K677 = new Label[]{Label.of("'min'")}; + private static final Label K678 = Label.of("'min'"); + private static final String[] K679 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10828:10846:body/2/ruleRef/capture/0"}; + private static final String[] K680 = new String[]{"first"}; + private static final Call[] K681 = new Call[]{TinyExpressionP4Parser::e460,TinyExpressionP4Parser::e461}; + private static final String[] K682 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10860:10878:body/3/0/1/ruleRef/capture/0"}; + private static final String[] K683 = new String[]{"rest"}; + private static final Call[] K684 = new Call[]{TinyExpressionP4Parser::e464,TinyExpressionP4Parser::e465,TinyExpressionP4Parser::e466,TinyExpressionP4Parser::e467,TinyExpressionP4Parser::e471}; + private static final Label[] K685 = new Label[]{Label.of("'max'")}; + private static final Label K686 = Label.of("'max'"); + private static final String[] K687 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10964:10982:body/2/ruleRef/capture/0"}; + private static final Call[] K688 = new Call[]{TinyExpressionP4Parser::e469,TinyExpressionP4Parser::e470}; + private static final String[] K689 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10996:11014:body/3/0/1/ruleRef/capture/0"}; + private static final Call[] K690 = new Call[]{TinyExpressionP4Parser::e473,TinyExpressionP4Parser::e474,TinyExpressionP4Parser::e475}; + private static final Label[] K691 = new Label[]{Label.of("'random'")}; + private static final Label K692 = Label.of("'random'"); + private static final Call[] K693 = new Call[]{TinyExpressionP4Parser::e477,TinyExpressionP4Parser::e478,TinyExpressionP4Parser::e479,TinyExpressionP4Parser::e480}; + private static final Label[] K694 = new Label[]{Label.of("'abs'")}; + private static final Label K695 = Label.of("'abs'"); + private static final String[] K696 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11156:11174:body/2/ruleRef/capture/0"}; + private static final Call[] K697 = new Call[]{TinyExpressionP4Parser::e482,TinyExpressionP4Parser::e483,TinyExpressionP4Parser::e484,TinyExpressionP4Parser::e485}; + private static final Label[] K698 = new Label[]{Label.of("'round'")}; + private static final Label K699 = Label.of("'round'"); + private static final String[] K700 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11255:11273:body/2/ruleRef/capture/0"}; + private static final Call[] K701 = new Call[]{TinyExpressionP4Parser::e487,TinyExpressionP4Parser::e488,TinyExpressionP4Parser::e489,TinyExpressionP4Parser::e490}; + private static final Label[] K702 = new Label[]{Label.of("'ceil'")}; + private static final Label K703 = Label.of("'ceil'"); + private static final String[] K704 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11351:11369:body/2/ruleRef/capture/0"}; + private static final Call[] K705 = new Call[]{TinyExpressionP4Parser::e492,TinyExpressionP4Parser::e493,TinyExpressionP4Parser::e494,TinyExpressionP4Parser::e495}; + private static final Label[] K706 = new Label[]{Label.of("'floor'")}; + private static final Label K707 = Label.of("'floor'"); + private static final String[] K708 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11450:11468:body/2/ruleRef/capture/0"}; + private static final Call[] K709 = new Call[]{TinyExpressionP4Parser::e497,TinyExpressionP4Parser::e498,TinyExpressionP4Parser::e499,TinyExpressionP4Parser::e500,TinyExpressionP4Parser::e501,TinyExpressionP4Parser::e502}; + private static final Label[] K710 = new Label[]{Label.of("'pow'")}; + private static final Label K711 = Label.of("'pow'"); + private static final String[] K712 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11554:11572:body/2/ruleRef/capture/0"}; + private static final String[] K713 = new String[]{"base"}; + private static final String[] K714 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11583:11601:body/4/ruleRef/capture/0"}; + private static final String[] K715 = new String[]{"exponent"}; + private static final Call[] K716 = new Call[]{TinyExpressionP4Parser::e504,TinyExpressionP4Parser::e505,TinyExpressionP4Parser::e506,TinyExpressionP4Parser::e507}; + private static final Label[] K717 = new Label[]{Label.of("'log'")}; + private static final Label K718 = Label.of("'log'"); + private static final String[] K719 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11681:11699:body/2/ruleRef/capture/0"}; + private static final Call[] K720 = new Call[]{TinyExpressionP4Parser::e509,TinyExpressionP4Parser::e510,TinyExpressionP4Parser::e511,TinyExpressionP4Parser::e512}; + private static final Label[] K721 = new Label[]{Label.of("'exp'")}; + private static final Label K722 = Label.of("'exp'"); + private static final String[] K723 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11774:11792:body/2/ruleRef/capture/0"}; + private static final Call[] K724 = new Call[]{TinyExpressionP4Parser::e514,TinyExpressionP4Parser::e515,TinyExpressionP4Parser::e516,TinyExpressionP4Parser::e517,TinyExpressionP4Parser::e518,TinyExpressionP4Parser::e519}; + private static final Label[] K725 = new Label[]{Label.of("'toNum'")}; + private static final Label K726 = Label.of("'toNum'"); + private static final String[] K727 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11967:11983:body/2/ruleRef/capture/0"}; + private static final String[] K728 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11995:12013:body/4/ruleRef/capture/0"}; + private static final String[] K729 = new String[]{"defaultValue"}; + private static final Label[] K730 = new Label[]{null,Label.of("'('"),Label.of("'?'"),Label.of("':'"),Label.of("')'")}; + private static final int[] K731 = new int[]{108}; + private static final Guard K732 = new Guard(K248,K730,K229,K731,1); + private static final Label[] K733 = new Label[]{null,Label.of("'match'"),Label.of("'{'"),Label.of("','"),Label.of("'}'")}; + private static final int[] K734 = new int[]{109}; + private static final Guard K735 = new Guard(K618,K733,K229,K734,1); + private static final int[] K736 = new int[]{9,13,32,32,47,47,105,105}; + private static final Label[] K737 = new Label[]{null,Label.of("'if'"),Label.of("'('"),Label.of("')'"),Label.of("'{'"),Label.of("'}'"),Label.of("'else'")}; + private static final int[] K738 = new int[]{106}; + private static final Guard K739 = new Guard(K736,K737,K229,K738,1); + private static final int[] K740 = new int[]{9,13,32,32,47,47,97,97,99,99,101,102,108,109,112,112,114,116}; + private static final Label[] K741 = new Label[]{null,Label.of("'sin'"),Label.of("'('"),Label.of("')'"),Label.of("'cos'"),Label.of("'tan'"),Label.of("'sqrt'"),Label.of("'min'"),Label.of("'max'"),Label.of("'random'"),Label.of("'abs'"),Label.of("'round'"),Label.of("'ceil'"),Label.of("'floor'"),Label.of("'pow'"),Label.of("','"),Label.of("'log'"),Label.of("'exp'")}; + private static final int[] K742 = new int[]{44,45}; + private static final Guard K743 = new Guard(K740,K741,K229,K742,2); + private static final Label[] K744 = new Label[]{null,Label.of("'toNum'"),Label.of("'('"),Label.of("','"),Label.of("')'")}; + private static final int[] K745 = new int[]{59}; + private static final Guard K746 = new Guard(K611,K744,K229,K745,1); + private static final int[] K747 = new int[]{9,13,32,32,36,36,47,47}; + private static final Label[] K748 = new Label[]{null,Label.of("'$'"),Label.of("'.length'"),Label.of("'('"),Label.of("')'")}; + private static final int[] K749 = new int[]{69,121}; + private static final Guard K750 = new Guard(K747,K748,K229,K749,2); + private static final Label[] K751 = new Label[]{null,Label.of("'len'"),Label.of("'('"),Label.of("')'")}; + private static final int[] K752 = new int[]{65}; + private static final Guard K753 = new Guard(K647,K751,K229,K752,1); + private static final Label[] K754 = new Label[]{null,Label.of("'length'"),Label.of("'('"),Label.of("')'")}; + private static final int[] K755 = new int[]{64}; + private static final Guard K756 = new Guard(K647,K754,K229,K755,1); + private static final Label[] K757 = new Label[]{null,Label.of("'external'"),Label.of("'('"),Label.of("')'")}; + private static final int[] K758 = new int[]{32}; + private static final Guard K759 = new Guard(K651,K757,K229,K758,1); + private static final Label[] K760 = new Label[]{null,Label.of("'$'")}; + private static final int[] K761 = new int[]{121}; + private static final Guard K762 = new Guard(K747,K760,K229,K761,1); + private static final Label[] K763 = new Label[]{null,Label.of("'call'"),Label.of("'internal'"),Label.of("'('"),Label.of("')'")}; + private static final int[] K764 = new int[]{36,35}; + private static final Guard K765 = new Guard(K244,K763,K229,K764,2); + private static final Guard K766 = new Guard(K248,K249,K229,K550,0); + private static final Guard[] K767 = new Guard[]{K732,K735,K739,K743,K746,K750,K753,K756,K759,null,K762,K765,K766}; + private static final Call[] K768 = new Call[]{TinyExpressionP4Parser::e521,TinyExpressionP4Parser::e522,TinyExpressionP4Parser::e523,TinyExpressionP4Parser::e524,TinyExpressionP4Parser::e525,TinyExpressionP4Parser::e526,TinyExpressionP4Parser::e527,TinyExpressionP4Parser::e528,TinyExpressionP4Parser::e529,TinyExpressionP4Parser::e530,TinyExpressionP4Parser::e531,TinyExpressionP4Parser::e532,TinyExpressionP4Parser::e533}; + private static final Label[] K769 = new Label[]{Label.of("NUMBERParser")}; + private static final org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression K770 = new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SCOPE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SCOPE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.REPEAT,"",0,1,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.LITERAL,"+",0,0,List.of()))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.LITERAL,"-",0,0,List.of()))))))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.REPEAT,"",1,-1,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SCOPE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.RANGE,"",48,57,List.of()))))))))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.LITERAL,".",0,0,List.of()),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.REPEAT,"",0,-1,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SCOPE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.RANGE,"",48,57,List.of()))))))))))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.LITERAL,".",0,0,List.of()),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.REPEAT,"",1,-1,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SCOPE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.RANGE,"",48,57,List.of()))))))))))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.REPEAT,"",1,-1,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SCOPE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.RANGE,"",48,57,List.of()))))))))))))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.REPEAT,"",0,1,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.LITERAL,"e",0,0,List.of()))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.LITERAL,"E",0,0,List.of()))))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.REPEAT,"",0,1,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.LITERAL,"+",0,0,List.of()))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.LITERAL,"-",0,0,List.of()))))))),new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.REPEAT,"",1,-1,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SCOPE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.CHOICE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.SEQUENCE,"",0,0,List.of(new org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression(org.unlaxer.tinyexpression.p4.ubnfc.generated.internal.LexicalExpression.Op.RANGE,"",48,57,List.of()))))))))))))))))))))))))))); + private static final Label K771 = Label.of("NUMBERParser"); + private static final Call[] K772 = new Call[]{TinyExpressionP4Parser::e534,TinyExpressionP4Parser::e535,TinyExpressionP4Parser::e536}; + private static final Call[] K773 = new Call[]{TinyExpressionP4Parser::e538,TinyExpressionP4Parser::e539,TinyExpressionP4Parser::e540,TinyExpressionP4Parser::e541}; + private static final Label[] K774 = new Label[]{Label.of("'toUpperCase'")}; + private static final Label K775 = Label.of("'toUpperCase'"); + private static final String[] K776 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12511:12527:body/2/ruleRef/capture/0"}; + private static final Call[] K777 = new Call[]{TinyExpressionP4Parser::e543,TinyExpressionP4Parser::e544,TinyExpressionP4Parser::e545,TinyExpressionP4Parser::e546}; + private static final Label[] K778 = new Label[]{Label.of("'toLowerCase'")}; + private static final Label K779 = Label.of("'toLowerCase'"); + private static final String[] K780 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12630:12646:body/2/ruleRef/capture/0"}; + private static final Call[] K781 = new Call[]{TinyExpressionP4Parser::e548,TinyExpressionP4Parser::e549,TinyExpressionP4Parser::e550,TinyExpressionP4Parser::e551}; + private static final Label[] K782 = new Label[]{Label.of("'trim'")}; + private static final Label K783 = Label.of("'trim'"); + private static final String[] K784 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12728:12744:body/2/ruleRef/capture/0"}; + private static final Call[] K785 = new Call[]{TinyExpressionP4Parser::e553,TinyExpressionP4Parser::e554,TinyExpressionP4Parser::e555,TinyExpressionP4Parser::e556}; + private static final Label[] K786 = new Label[]{Label.of("'length'")}; + private static final Label K787 = Label.of("'length'"); + private static final String[] K788 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12832:12848:body/2/ruleRef/capture/0"}; + private static final Call[] K789 = new Call[]{TinyExpressionP4Parser::e558,TinyExpressionP4Parser::e559,TinyExpressionP4Parser::e560,TinyExpressionP4Parser::e561}; + private static final Label[] K790 = new Label[]{Label.of("'len'")}; + private static final Label K791 = Label.of("'len'"); + private static final String[] K792 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12930:12946:body/2/ruleRef/capture/0"}; + private static final Call[] K793 = new Call[]{TinyExpressionP4Parser::e563,TinyExpressionP4Parser::e564,TinyExpressionP4Parser::e565,TinyExpressionP4Parser::e566}; + private static final String[] K794 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13282:13293:body/0/ruleRef/capture/0"}; + private static final Label[] K795 = new Label[]{Label.of("'.toUpperCase'")}; + private static final Label K796 = Label.of("'.toUpperCase'"); + private static final Call[] K797 = new Call[]{TinyExpressionP4Parser::e568,TinyExpressionP4Parser::e569,TinyExpressionP4Parser::e570,TinyExpressionP4Parser::e571}; + private static final String[] K798 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13401:13412:body/0/ruleRef/capture/0"}; + private static final Label[] K799 = new Label[]{Label.of("'.toLowerCase'")}; + private static final Label K800 = Label.of("'.toLowerCase'"); + private static final Call[] K801 = new Call[]{TinyExpressionP4Parser::e573,TinyExpressionP4Parser::e574,TinyExpressionP4Parser::e575,TinyExpressionP4Parser::e576}; + private static final String[] K802 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13506:13517:body/0/ruleRef/capture/0"}; + private static final Label[] K803 = new Label[]{Label.of("'.trim'")}; + private static final Label K804 = Label.of("'.trim'"); + private static final Call[] K805 = new Call[]{TinyExpressionP4Parser::e578,TinyExpressionP4Parser::e579,TinyExpressionP4Parser::e580,TinyExpressionP4Parser::e581}; + private static final String[] K806 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13608:13619:body/0/ruleRef/capture/0"}; + private static final Label[] K807 = new Label[]{Label.of("'.length'")}; + private static final Label K808 = Label.of("'.length'"); + private static final Call[] K809 = new Call[]{TinyExpressionP4Parser::e583,TinyExpressionP4Parser::e584,TinyExpressionP4Parser::e585,TinyExpressionP4Parser::e586,TinyExpressionP4Parser::e587,TinyExpressionP4Parser::e588,TinyExpressionP4Parser::e592}; + private static final Label[] K810 = new Label[]{Label.of("'startsWith'")}; + private static final Label K811 = Label.of("'startsWith'"); + private static final String[] K812 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13881:13897:body/2/ruleRef/capture/0"}; + private static final String[] K813 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13909:13925:body/4/ruleRef/capture/0"}; + private static final String[] K814 = new String[]{"patterns"}; + private static final Call[] K815 = new Call[]{TinyExpressionP4Parser::e590,TinyExpressionP4Parser::e591}; + private static final String[] K816 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13946:13962:body/5/0/1/ruleRef/capture/0"}; + private static final Call[] K817 = new Call[]{TinyExpressionP4Parser::e594,TinyExpressionP4Parser::e595,TinyExpressionP4Parser::e596,TinyExpressionP4Parser::e597,TinyExpressionP4Parser::e598,TinyExpressionP4Parser::e599,TinyExpressionP4Parser::e603}; + private static final Label[] K818 = new Label[]{Label.of("'endsWith'")}; + private static final Label K819 = Label.of("'endsWith'"); + private static final String[] K820 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14071:14087:body/2/ruleRef/capture/0"}; + private static final String[] K821 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14099:14115:body/4/ruleRef/capture/0"}; + private static final Call[] K822 = new Call[]{TinyExpressionP4Parser::e601,TinyExpressionP4Parser::e602}; + private static final String[] K823 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14136:14152:body/5/0/1/ruleRef/capture/0"}; + private static final Call[] K824 = new Call[]{TinyExpressionP4Parser::e605,TinyExpressionP4Parser::e606,TinyExpressionP4Parser::e607,TinyExpressionP4Parser::e608,TinyExpressionP4Parser::e609,TinyExpressionP4Parser::e610,TinyExpressionP4Parser::e614}; + private static final Label[] K825 = new Label[]{Label.of("'contains'")}; + private static final Label K826 = Label.of("'contains'"); + private static final String[] K827 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14261:14277:body/2/ruleRef/capture/0"}; + private static final String[] K828 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14289:14305:body/4/ruleRef/capture/0"}; + private static final Call[] K829 = new Call[]{TinyExpressionP4Parser::e612,TinyExpressionP4Parser::e613}; + private static final String[] K830 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14326:14342:body/5/0/1/ruleRef/capture/0"}; + private static final Call[] K831 = new Call[]{TinyExpressionP4Parser::e616,TinyExpressionP4Parser::e617,TinyExpressionP4Parser::e618,TinyExpressionP4Parser::e619,TinyExpressionP4Parser::e620,TinyExpressionP4Parser::e624}; + private static final String[] K832 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14424:14440:body/0/ruleRef/capture/0"}; + private static final Label[] K833 = new Label[]{Label.of("'.in'")}; + private static final Label K834 = Label.of("'.in'"); + private static final String[] K835 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14458:14474:body/3/ruleRef/capture/0"}; + private static final String[] K836 = new String[]{"candidates"}; + private static final Call[] K837 = new Call[]{TinyExpressionP4Parser::e622,TinyExpressionP4Parser::e623}; + private static final String[] K838 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14493:14509:body/4/0/1/ruleRef/capture/0"}; + private static final Call[] K839 = new Call[]{TinyExpressionP4Parser::e626,TinyExpressionP4Parser::e627,TinyExpressionP4Parser::e628,TinyExpressionP4Parser::e629,TinyExpressionP4Parser::e630,TinyExpressionP4Parser::e634}; + private static final String[] K840 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14692:14715:body/0/ruleRef/capture/0"}; + private static final Label[] K841 = new Label[]{Label.of("'.startsWith'")}; + private static final Label K842 = Label.of("'.startsWith'"); + private static final String[] K843 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14741:14757:body/3/ruleRef/capture/0"}; + private static final Call[] K844 = new Call[]{TinyExpressionP4Parser::e632,TinyExpressionP4Parser::e633}; + private static final String[] K845 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14778:14794:body/4/0/1/ruleRef/capture/0"}; + private static final Call[] K846 = new Call[]{TinyExpressionP4Parser::e636,TinyExpressionP4Parser::e637,TinyExpressionP4Parser::e638,TinyExpressionP4Parser::e639,TinyExpressionP4Parser::e640,TinyExpressionP4Parser::e644}; + private static final String[] K847 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14892:14915:body/0/ruleRef/capture/0"}; + private static final Label[] K848 = new Label[]{Label.of("'.endsWith'")}; + private static final Label K849 = Label.of("'.endsWith'"); + private static final String[] K850 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14939:14955:body/3/ruleRef/capture/0"}; + private static final Call[] K851 = new Call[]{TinyExpressionP4Parser::e642,TinyExpressionP4Parser::e643}; + private static final String[] K852 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14976:14992:body/4/0/1/ruleRef/capture/0"}; + private static final Call[] K853 = new Call[]{TinyExpressionP4Parser::e646,TinyExpressionP4Parser::e647,TinyExpressionP4Parser::e648,TinyExpressionP4Parser::e649,TinyExpressionP4Parser::e650,TinyExpressionP4Parser::e654}; + private static final String[] K854 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15090:15113:body/0/ruleRef/capture/0"}; + private static final Label[] K855 = new Label[]{Label.of("'.contains'")}; + private static final Label K856 = Label.of("'.contains'"); + private static final String[] K857 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15137:15153:body/3/ruleRef/capture/0"}; + private static final Call[] K858 = new Call[]{TinyExpressionP4Parser::e652,TinyExpressionP4Parser::e653}; + private static final String[] K859 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15174:15190:body/4/0/1/ruleRef/capture/0"}; + private static final Label[] K860 = new Label[]{null,Label.of("'toLowerCase'"),Label.of("'('"),Label.of("')'")}; + private static final int[] K861 = new int[]{62}; + private static final Guard K862 = new Guard(K611,K860,K229,K861,1); + private static final Label[] K863 = new Label[]{null,Label.of("'toUpperCase'"),Label.of("'('"),Label.of("')'")}; + private static final int[] K864 = new int[]{61}; + private static final Guard K865 = new Guard(K611,K863,K229,K864,1); + private static final Label[] K866 = new Label[]{null,Label.of("'trim'"),Label.of("'('"),Label.of("')'")}; + private static final int[] K867 = new int[]{63}; + private static final Guard K868 = new Guard(K611,K866,K229,K867,1); + private static final Guard[] K869 = new Guard[]{K862,K865,K868,K762}; + private static final Call[] K870 = new Call[]{TinyExpressionP4Parser::e656,TinyExpressionP4Parser::e657,TinyExpressionP4Parser::e658,TinyExpressionP4Parser::e659}; + private static final Call[] K871 = new Call[]{TinyExpressionP4Parser::e661,TinyExpressionP4Parser::e662,TinyExpressionP4Parser::e663,TinyExpressionP4Parser::e664}; + private static final Label[] K872 = new Label[]{Label.of("'isPresent'")}; + private static final Label K873 = Label.of("'isPresent'"); + private static final String[] K874 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15475:15486:body/2/ruleRef/capture/0"}; + private static final Call[] K875 = new Call[]{TinyExpressionP4Parser::e666,TinyExpressionP4Parser::e667,TinyExpressionP4Parser::e668,TinyExpressionP4Parser::e669,TinyExpressionP4Parser::e670,TinyExpressionP4Parser::e671}; + private static final Label[] K876 = new Label[]{Label.of("'inTimeRange'")}; + private static final Label K877 = Label.of("'inTimeRange'"); + private static final String[] K878 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15679:15695:body/2/ruleRef/capture/0"}; + private static final String[] K879 = new String[]{"startHour"}; + private static final String[] K880 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15711:15727:body/4/ruleRef/capture/0"}; + private static final String[] K881 = new String[]{"endHour"}; + private static final Delimiters[] K882 = new Delimiters[]{K229,K229,K229,K229,K229,K229,K229,K229,K229,K229}; + private static final Trivia K883 = new Trivia(K229,null,K882,null,null); + private static final Call[] K884 = new Call[]{TinyExpressionP4Parser::e673,TinyExpressionP4Parser::e674,TinyExpressionP4Parser::e675,TinyExpressionP4Parser::e676,TinyExpressionP4Parser::e677,TinyExpressionP4Parser::e678,TinyExpressionP4Parser::e679,TinyExpressionP4Parser::e680,TinyExpressionP4Parser::e681,TinyExpressionP4Parser::e682}; + private static final Label[] K885 = new Label[]{Label.of("'inDayTimeRange'")}; + private static final Label K886 = Label.of("'inDayTimeRange'"); + private static final String[] K887 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15872:15881:body/2/ruleRef/capture/0"}; + private static final String[] K888 = new String[]{"startDay"}; + private static final String[] K889 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15896:15912:body/4/ruleRef/capture/0"}; + private static final String[] K890 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15928:15937:body/6/ruleRef/capture/0"}; + private static final String[] K891 = new String[]{"endDay"}; + private static final String[] K892 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15950:15966:body/8/ruleRef/capture/0"}; + private static final Call[] K893 = new Call[]{TinyExpressionP4Parser::e684,TinyExpressionP4Parser::e685,TinyExpressionP4Parser::e686,TinyExpressionP4Parser::e687,TinyExpressionP4Parser::e688,TinyExpressionP4Parser::e689,TinyExpressionP4Parser::e690}; + private static final Label[] K894 = new Label[]{Label.of("'MONDAY'")}; + private static final Label K895 = Label.of("'MONDAY'"); + private static final Label[] K896 = new Label[]{Label.of("'TUESDAY'")}; + private static final Label K897 = Label.of("'TUESDAY'"); + private static final Label[] K898 = new Label[]{Label.of("'WEDNESDAY'")}; + private static final Label K899 = Label.of("'WEDNESDAY'"); + private static final Label[] K900 = new Label[]{Label.of("'THURSDAY'")}; + private static final Label K901 = Label.of("'THURSDAY'"); + private static final Label[] K902 = new Label[]{Label.of("'FRIDAY'")}; + private static final Label K903 = Label.of("'FRIDAY'"); + private static final Label[] K904 = new Label[]{Label.of("'SATURDAY'")}; + private static final Label K905 = Label.of("'SATURDAY'"); + private static final Label[] K906 = new Label[]{Label.of("'SUNDAY'")}; + private static final Label K907 = Label.of("'SUNDAY'"); + private static final Label[] K908 = new Label[]{null,Label.of("'external'"),Label.of("'string'"),Label.of("':'"),Label.of("'('"),Label.of("')'")}; + private static final int[] K909 = new int[]{33}; + private static final Guard K910 = new Guard(K651,K908,K229,K909,1); + private static final Label[] K911 = new Label[]{null,Label.of("'('"),Label.of("'$'"),Label.of("')'")}; + private static final Guard K912 = new Guard(K248,K911,K229,K550,0); + private static final int[] K913 = new int[]{90}; + private static final Guard K914 = new Guard(K248,K249,K229,K913,1); + private static final Label[] K915 = new Label[]{null,Label.of("'$'"),Label.of("'.toUpperCase'"),Label.of("'('"),Label.of("')'")}; + private static final int[] K916 = new int[]{66,121}; + private static final Guard K917 = new Guard(K747,K915,K229,K916,2); + private static final Label[] K918 = new Label[]{null,Label.of("'$'"),Label.of("'.toLowerCase'"),Label.of("'('"),Label.of("')'")}; + private static final int[] K919 = new int[]{67,121}; + private static final Guard K920 = new Guard(K747,K918,K229,K919,2); + private static final Label[] K921 = new Label[]{null,Label.of("'$'"),Label.of("'.trim'"),Label.of("'('"),Label.of("')'")}; + private static final int[] K922 = new int[]{68,121}; + private static final Guard K923 = new Guard(K747,K921,K229,K922,2); + private static final Guard[] K924 = new Guard[]{K910,K912,K914,K865,K862,K868,K917,K920,K923,null,K762,K765}; + private static final Call[] K925 = new Call[]{TinyExpressionP4Parser::e692,TinyExpressionP4Parser::e693,TinyExpressionP4Parser::e697,TinyExpressionP4Parser::e698,TinyExpressionP4Parser::e699,TinyExpressionP4Parser::e700,TinyExpressionP4Parser::e701,TinyExpressionP4Parser::e702,TinyExpressionP4Parser::e703,TinyExpressionP4Parser::e704,TinyExpressionP4Parser::e705,TinyExpressionP4Parser::e706}; + private static final Label[] K926 = new Label[]{Label.of("'('"),Label.of("'$'"),Label.of("')'")}; + private static final Call[] K927 = new Call[]{TinyExpressionP4Parser::e694,TinyExpressionP4Parser::e695,TinyExpressionP4Parser::e696}; + private static final Call[] K928 = new Call[]{TinyExpressionP4Parser::e708}; + private static final Call[] K929 = new Call[]{TinyExpressionP4Parser::e710}; + private static final Call[] K930 = new Call[]{TinyExpressionP4Parser::e712}; + private static final Call[] K931 = new Call[]{TinyExpressionP4Parser::e720,TinyExpressionP4Parser::e721,TinyExpressionP4Parser::e722}; + private static final Cap K932 = new Cap(K227, K227, K227, K228, K228, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17224:17327:body/0/seq", false, false, "mixed", true, K156,true,true); + private static final Call[] K933 = new Call[]{TinyExpressionP4Parser::e729}; + private static final Cap K934 = new Cap(K227, K227, K227, K228, K228, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17334:17412:body/1/seq", false, false, "mixed", true, K156,true,true); + private static final String[] K935 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17334:17351:body/1/0/ruleRef/capture/0","value",null,null,"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17363:17378:body/1/2/ruleRef/capture/0","start",null,null,"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17390:17403:body/1/4/ruleRef/capture/0","end"}; + private static final Call[] K936 = new Call[]{TinyExpressionP4Parser::e735,TinyExpressionP4Parser::e736,TinyExpressionP4Parser::e737}; + private static final Cap K937 = new Cap(K227, K227, K227, K228, K228, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17419:17503:body/2/seq", false, false, "mixed", true, K156,true,true); + private static final String[] K938 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17419:17436:body/2/0/ruleRef/capture/0","value",null,null,"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17448:17463:body/2/2/ruleRef/capture/0","start",null,null}; + private static final Call[] K939 = new Call[]{TinyExpressionP4Parser::e743}; + private static final Cap K940 = new Cap(K227, K227, K227, K228, K228, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17510:17569:body/3/seq", false, false, "mixed", true, K156,true,true); + private static final String[] K941 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17510:17527:body/3/0/ruleRef/capture/0","value",null,null,"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17539:17554:body/3/2/ruleRef/capture/0","start",null,null}; + private static final Call[] K942 = new Call[]{TinyExpressionP4Parser::e749,TinyExpressionP4Parser::e750,TinyExpressionP4Parser::e751}; + private static final Cap K943 = new Cap(K227, K227, K227, K228, K228, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17576:17656:body/4/seq", false, false, "mixed", true, K156,true,true); + private static final String[] K944 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17576:17593:body/4/0/ruleRef/capture/0","value",null,null,null,null,null,null}; + private static final Call[] K945 = new Call[]{TinyExpressionP4Parser::e757}; + private static final Cap K946 = new Cap(K227, K227, K227, K228, K228, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17663:17718:body/5/seq", false, false, "mixed", true, K156,true,true); + private static final String[] K947 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17663:17680:body/5/0/ruleRef/capture/0","value",null,null,null,null,"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17696:17709:body/5/3/ruleRef/capture/0","end"}; + private static final Call[] K948 = new Call[]{TinyExpressionP4Parser::e762,TinyExpressionP4Parser::e763,TinyExpressionP4Parser::e764}; + private static final Cap K949 = new Cap(K227, K227, K227, K228, K228, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17725:17786:body/6/seq", false, false, "mixed", true, K156,true,true); + private static final String[] K950 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17725:17742:body/6/0/ruleRef/capture/0","value",null,null,null,null}; + private static final Call[] K951 = new Call[]{TinyExpressionP4Parser::e769}; + private static final Cap K952 = new Cap(K227, K227, K227, K228, K228, "TinyExpressionP4::SliceBaseExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17793:17829:body/7/seq", false, false, "mixed", false, K156,true,true); + private static final String[] K953 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17793:17810:body/7/0/ruleRef/capture/0","value",null,null,null,null}; + private static final Group[] K954 = new Group[]{new Group(0,8,true,K449,8,new Level(TinyExpressionP4Parser::e715,K449,0,new Branch(new Level(TinyExpressionP4Parser::e716,K449,1,new Branch(new Level(TinyExpressionP4Parser::e717,K449,2,new Branch(new Level(TinyExpressionP4Parser::e718,K449,3,new Branch(new Level(TinyExpressionP4Parser::e719,K449,4,new Branch(K931,K449,5,K932,null),new Branch(K933,K301,5,K934,K935))),new Branch(K936,K344,4,K937,K938),new Branch(K939,K231,4,K940,K941))))),new Branch(new Level(TinyExpressionP4Parser::e747,K344,2,new Branch(new Level(TinyExpressionP4Parser::e748,K344,3,new Branch(K942,K344,4,K943,K944),new Branch(K945,K231,4,K946,K947))),new Branch(K948,K301,3,K949,K950),new Branch(K951,K658,3,K952,K953)))))))}; + private static final Call[] K955 = new Call[]{TinyExpressionP4Parser::e714,TinyExpressionP4Parser::e723,TinyExpressionP4Parser::e730,TinyExpressionP4Parser::e738,TinyExpressionP4Parser::e744,TinyExpressionP4Parser::e752,TinyExpressionP4Parser::e758,TinyExpressionP4Parser::e765}; + private static final Call[] K956 = new Call[]{TinyExpressionP4Parser::e715,TinyExpressionP4Parser::e716,TinyExpressionP4Parser::e717,TinyExpressionP4Parser::e718,TinyExpressionP4Parser::e719,TinyExpressionP4Parser::e720,TinyExpressionP4Parser::e721,TinyExpressionP4Parser::e722}; + private static final String[] K957 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17224:17241:body/0/0/ruleRef/capture/0"}; + private static final Label[] K958 = new Label[]{Label.of("'['")}; + private static final Label K959 = Label.of("'['"); + private static final String[] K960 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17253:17268:body/0/2/ruleRef/capture/0"}; + private static final String[] K961 = new String[]{"start"}; + private static final String[] K962 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17280:17293:body/0/4/ruleRef/capture/0"}; + private static final String[] K963 = new String[]{"end"}; + private static final String[] K964 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17303:17317:body/0/6/ruleRef/capture/0"}; + private static final String[] K965 = new String[]{"step"}; + private static final Label[] K966 = new Label[]{Label.of("']'")}; + private static final Label K967 = Label.of("']'"); + private static final Call[] K968 = new Call[]{TinyExpressionP4Parser::e724,TinyExpressionP4Parser::e725,TinyExpressionP4Parser::e726,TinyExpressionP4Parser::e727,TinyExpressionP4Parser::e728,TinyExpressionP4Parser::e729}; + private static final String[] K969 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17334:17351:body/1/0/ruleRef/capture/0"}; + private static final String[] K970 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17363:17378:body/1/2/ruleRef/capture/0"}; + private static final String[] K971 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17390:17403:body/1/4/ruleRef/capture/0"}; + private static final Call[] K972 = new Call[]{TinyExpressionP4Parser::e731,TinyExpressionP4Parser::e732,TinyExpressionP4Parser::e733,TinyExpressionP4Parser::e734,TinyExpressionP4Parser::e735,TinyExpressionP4Parser::e736,TinyExpressionP4Parser::e737}; + private static final String[] K973 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17419:17436:body/2/0/ruleRef/capture/0"}; + private static final String[] K974 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17448:17463:body/2/2/ruleRef/capture/0"}; + private static final String[] K975 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17479:17493:body/2/5/ruleRef/capture/0"}; + private static final Call[] K976 = new Call[]{TinyExpressionP4Parser::e739,TinyExpressionP4Parser::e740,TinyExpressionP4Parser::e741,TinyExpressionP4Parser::e742,TinyExpressionP4Parser::e743}; + private static final String[] K977 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17510:17527:body/3/0/ruleRef/capture/0"}; + private static final String[] K978 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17539:17554:body/3/2/ruleRef/capture/0"}; + private static final Call[] K979 = new Call[]{TinyExpressionP4Parser::e745,TinyExpressionP4Parser::e746,TinyExpressionP4Parser::e747,TinyExpressionP4Parser::e748,TinyExpressionP4Parser::e749,TinyExpressionP4Parser::e750,TinyExpressionP4Parser::e751}; + private static final String[] K980 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17576:17593:body/4/0/ruleRef/capture/0"}; + private static final String[] K981 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17609:17622:body/4/3/ruleRef/capture/0"}; + private static final String[] K982 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17632:17646:body/4/5/ruleRef/capture/0"}; + private static final Call[] K983 = new Call[]{TinyExpressionP4Parser::e753,TinyExpressionP4Parser::e754,TinyExpressionP4Parser::e755,TinyExpressionP4Parser::e756,TinyExpressionP4Parser::e757}; + private static final String[] K984 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17663:17680:body/5/0/ruleRef/capture/0"}; + private static final String[] K985 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17696:17709:body/5/3/ruleRef/capture/0"}; + private static final Call[] K986 = new Call[]{TinyExpressionP4Parser::e759,TinyExpressionP4Parser::e760,TinyExpressionP4Parser::e761,TinyExpressionP4Parser::e762,TinyExpressionP4Parser::e763,TinyExpressionP4Parser::e764}; + private static final String[] K987 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17725:17742:body/6/0/ruleRef/capture/0"}; + private static final String[] K988 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17762:17776:body/6/4/ruleRef/capture/0"}; + private static final Call[] K989 = new Call[]{TinyExpressionP4Parser::e766,TinyExpressionP4Parser::e767,TinyExpressionP4Parser::e768,TinyExpressionP4Parser::e769}; + private static final String[] K990 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17793:17810:body/7/0/ruleRef/capture/0"}; + private static final Call[] K991 = new Call[]{TinyExpressionP4Parser::e777,TinyExpressionP4Parser::e778,TinyExpressionP4Parser::e779}; + private static final Cap K992 = new Cap(K227, K227, K227, K228, K228, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17923:18028:body/0/seq", false, false, "node", true, K156,true,true); + private static final Call[] K993 = new Call[]{TinyExpressionP4Parser::e786}; + private static final Cap K994 = new Cap(K227, K227, K227, K228, K228, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18035:18115:body/1/seq", false, false, "node", true, K156,true,true); + private static final String[] K995 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18035:18054:body/1/0/ruleRef/capture/0","value",null,null,"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18066:18081:body/1/2/ruleRef/capture/0","start",null,null,"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18093:18106:body/1/4/ruleRef/capture/0","end"}; + private static final Call[] K996 = new Call[]{TinyExpressionP4Parser::e792,TinyExpressionP4Parser::e793,TinyExpressionP4Parser::e794}; + private static final Cap K997 = new Cap(K227, K227, K227, K228, K228, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18122:18208:body/2/seq", false, false, "node", true, K156,true,true); + private static final String[] K998 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18122:18141:body/2/0/ruleRef/capture/0","value",null,null,"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18153:18168:body/2/2/ruleRef/capture/0","start",null,null}; + private static final Call[] K999 = new Call[]{TinyExpressionP4Parser::e800}; + private static final Cap K1000 = new Cap(K227, K227, K227, K228, K228, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18215:18276:body/3/seq", false, false, "node", true, K156,true,true); + private static final String[] K1001 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18215:18234:body/3/0/ruleRef/capture/0","value",null,null,"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18246:18261:body/3/2/ruleRef/capture/0","start",null,null}; + private static final Call[] K1002 = new Call[]{TinyExpressionP4Parser::e806,TinyExpressionP4Parser::e807,TinyExpressionP4Parser::e808}; + private static final Cap K1003 = new Cap(K227, K227, K227, K228, K228, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18283:18365:body/4/seq", false, false, "node", true, K156,true,true); + private static final String[] K1004 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18283:18302:body/4/0/ruleRef/capture/0","value",null,null,null,null,null,null}; + private static final Call[] K1005 = new Call[]{TinyExpressionP4Parser::e814}; + private static final Cap K1006 = new Cap(K227, K227, K227, K228, K228, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18372:18429:body/5/seq", false, false, "node", true, K156,true,true); + private static final String[] K1007 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18372:18391:body/5/0/ruleRef/capture/0","value",null,null,null,null,"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18407:18420:body/5/3/ruleRef/capture/0","end"}; + private static final Call[] K1008 = new Call[]{TinyExpressionP4Parser::e819,TinyExpressionP4Parser::e820,TinyExpressionP4Parser::e821}; + private static final Cap K1009 = new Cap(K227, K227, K227, K228, K228, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18436:18499:body/6/seq", false, false, "node", true, K156,true,true); + private static final String[] K1010 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18436:18455:body/6/0/ruleRef/capture/0","value",null,null,null,null}; + private static final Call[] K1011 = new Call[]{TinyExpressionP4Parser::e826}; + private static final Cap K1012 = new Cap(K227, K227, K227, K228, K228, "TinyExpressionP4::SliceNestedExpression", "expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18506:18544:body/7/seq", false, false, "node", false, K156,true,true); + private static final String[] K1013 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18506:18525:body/7/0/ruleRef/capture/0","value",null,null,null,null}; + private static final Group[] K1014 = new Group[]{new Group(0,8,true,K449,8,new Level(TinyExpressionP4Parser::e772,K449,0,new Branch(new Level(TinyExpressionP4Parser::e773,K449,1,new Branch(new Level(TinyExpressionP4Parser::e774,K449,2,new Branch(new Level(TinyExpressionP4Parser::e775,K449,3,new Branch(new Level(TinyExpressionP4Parser::e776,K449,4,new Branch(K991,K449,5,K992,null),new Branch(K993,K301,5,K994,K995))),new Branch(K996,K344,4,K997,K998),new Branch(K999,K231,4,K1000,K1001))))),new Branch(new Level(TinyExpressionP4Parser::e804,K344,2,new Branch(new Level(TinyExpressionP4Parser::e805,K344,3,new Branch(K1002,K344,4,K1003,K1004),new Branch(K1005,K231,4,K1006,K1007))),new Branch(K1008,K301,3,K1009,K1010),new Branch(K1011,K658,3,K1012,K1013)))))))}; + private static final Call[] K1015 = new Call[]{TinyExpressionP4Parser::e771,TinyExpressionP4Parser::e780,TinyExpressionP4Parser::e787,TinyExpressionP4Parser::e795,TinyExpressionP4Parser::e801,TinyExpressionP4Parser::e809,TinyExpressionP4Parser::e815,TinyExpressionP4Parser::e822}; + private static final Call[] K1016 = new Call[]{TinyExpressionP4Parser::e772,TinyExpressionP4Parser::e773,TinyExpressionP4Parser::e774,TinyExpressionP4Parser::e775,TinyExpressionP4Parser::e776,TinyExpressionP4Parser::e777,TinyExpressionP4Parser::e778,TinyExpressionP4Parser::e779}; + private static final String[] K1017 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17923:17942:body/0/0/ruleRef/capture/0"}; + private static final String[] K1018 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17954:17969:body/0/2/ruleRef/capture/0"}; + private static final String[] K1019 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17981:17994:body/0/4/ruleRef/capture/0"}; + private static final String[] K1020 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18004:18018:body/0/6/ruleRef/capture/0"}; + private static final Call[] K1021 = new Call[]{TinyExpressionP4Parser::e781,TinyExpressionP4Parser::e782,TinyExpressionP4Parser::e783,TinyExpressionP4Parser::e784,TinyExpressionP4Parser::e785,TinyExpressionP4Parser::e786}; + private static final String[] K1022 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18035:18054:body/1/0/ruleRef/capture/0"}; + private static final String[] K1023 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18066:18081:body/1/2/ruleRef/capture/0"}; + private static final String[] K1024 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18093:18106:body/1/4/ruleRef/capture/0"}; + private static final Call[] K1025 = new Call[]{TinyExpressionP4Parser::e788,TinyExpressionP4Parser::e789,TinyExpressionP4Parser::e790,TinyExpressionP4Parser::e791,TinyExpressionP4Parser::e792,TinyExpressionP4Parser::e793,TinyExpressionP4Parser::e794}; + private static final String[] K1026 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18122:18141:body/2/0/ruleRef/capture/0"}; + private static final String[] K1027 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18153:18168:body/2/2/ruleRef/capture/0"}; + private static final String[] K1028 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18184:18198:body/2/5/ruleRef/capture/0"}; + private static final Call[] K1029 = new Call[]{TinyExpressionP4Parser::e796,TinyExpressionP4Parser::e797,TinyExpressionP4Parser::e798,TinyExpressionP4Parser::e799,TinyExpressionP4Parser::e800}; + private static final String[] K1030 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18215:18234:body/3/0/ruleRef/capture/0"}; + private static final String[] K1031 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18246:18261:body/3/2/ruleRef/capture/0"}; + private static final Call[] K1032 = new Call[]{TinyExpressionP4Parser::e802,TinyExpressionP4Parser::e803,TinyExpressionP4Parser::e804,TinyExpressionP4Parser::e805,TinyExpressionP4Parser::e806,TinyExpressionP4Parser::e807,TinyExpressionP4Parser::e808}; + private static final String[] K1033 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18283:18302:body/4/0/ruleRef/capture/0"}; + private static final String[] K1034 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18318:18331:body/4/3/ruleRef/capture/0"}; + private static final String[] K1035 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18341:18355:body/4/5/ruleRef/capture/0"}; + private static final Call[] K1036 = new Call[]{TinyExpressionP4Parser::e810,TinyExpressionP4Parser::e811,TinyExpressionP4Parser::e812,TinyExpressionP4Parser::e813,TinyExpressionP4Parser::e814}; + private static final String[] K1037 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18372:18391:body/5/0/ruleRef/capture/0"}; + private static final String[] K1038 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18407:18420:body/5/3/ruleRef/capture/0"}; + private static final Call[] K1039 = new Call[]{TinyExpressionP4Parser::e816,TinyExpressionP4Parser::e817,TinyExpressionP4Parser::e818,TinyExpressionP4Parser::e819,TinyExpressionP4Parser::e820,TinyExpressionP4Parser::e821}; + private static final String[] K1040 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18436:18455:body/6/0/ruleRef/capture/0"}; + private static final String[] K1041 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18475:18489:body/6/4/ruleRef/capture/0"}; + private static final Call[] K1042 = new Call[]{TinyExpressionP4Parser::e823,TinyExpressionP4Parser::e824,TinyExpressionP4Parser::e825,TinyExpressionP4Parser::e826}; + private static final String[] K1043 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18506:18525:body/7/0/ruleRef/capture/0"}; + private static final Call[] K1044 = new Call[]{TinyExpressionP4Parser::e828,TinyExpressionP4Parser::e829}; + private static final Call[] K1045 = new Call[]{TinyExpressionP4Parser::e831,TinyExpressionP4Parser::e832}; + private static final String[] K1046 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18814:18824:body/0/ruleRef/capture/0"}; + private static final Call[] K1047 = new Call[]{TinyExpressionP4Parser::e834,TinyExpressionP4Parser::e835}; + private static final String[] K1048 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18833:18836:body/1/0/0/literal/capture/0"}; + private static final String[] K1049 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18841:18851:body/1/0/1/ruleRef/capture/0"}; + private static final Call[] K1050 = new Call[]{TinyExpressionP4Parser::e837,TinyExpressionP4Parser::e838,TinyExpressionP4Parser::e839}; + private static final int[] K1051 = new int[]{113}; + private static final Guard K1052 = new Guard(K618,K733,K229,K1051,1); + private static final Label[] K1053 = new Label[]{null,Label.of("'('"),Label.of("'string'"),Label.of("'String'"),Label.of("')'"),Label.of("'$'")}; + private static final int[] K1054 = new int[]{92}; + private static final Guard K1055 = new Guard(K248,K1053,K229,K1054,1); + private static final Label[] K1056 = new Label[]{null,Label.of("'$'"),Label.of("'as'"),Label.of("'string'"),Label.of("'String'")}; + private static final int[] K1057 = new int[]{93}; + private static final Guard K1058 = new Guard(K747,K1056,K229,K1057,1); + private static final Guard[] K1059 = new Guard[]{K1052,K739,K1055,K1058,null,K914,K910,K865,K862,K868,K917,K920,K923,null,K762,K765}; + private static final Call[] K1060 = new Call[]{TinyExpressionP4Parser::e841,TinyExpressionP4Parser::e842,TinyExpressionP4Parser::e843,TinyExpressionP4Parser::e844,TinyExpressionP4Parser::e845,TinyExpressionP4Parser::e846,TinyExpressionP4Parser::e847,TinyExpressionP4Parser::e848,TinyExpressionP4Parser::e849,TinyExpressionP4Parser::e850,TinyExpressionP4Parser::e851,TinyExpressionP4Parser::e852,TinyExpressionP4Parser::e853,TinyExpressionP4Parser::e854,TinyExpressionP4Parser::e855,TinyExpressionP4Parser::e856}; + private static final Call[] K1061 = new Call[]{TinyExpressionP4Parser::e858,TinyExpressionP4Parser::e859,TinyExpressionP4Parser::e863,TinyExpressionP4Parser::e864,TinyExpressionP4Parser::e865}; + private static final Call[] K1062 = new Call[]{TinyExpressionP4Parser::e861,TinyExpressionP4Parser::e862}; + private static final String[] K1063 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19612:19622:body/4/tokenRef/capture/0"}; + private static final Call[] K1064 = new Call[]{TinyExpressionP4Parser::e867,TinyExpressionP4Parser::e868,TinyExpressionP4Parser::e869,TinyExpressionP4Parser::e870}; + private static final String[] K1065 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19716:19726:body/1/tokenRef/capture/0"}; + private static final Call[] K1066 = new Call[]{TinyExpressionP4Parser::e872,TinyExpressionP4Parser::e873}; + private static final Call[] K1067 = new Call[]{TinyExpressionP4Parser::e875,TinyExpressionP4Parser::e876}; + private static final String[] K1068 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19992:20012:body/0/ruleRef/capture/0"}; + private static final Label[] K1069 = new Label[]{Label.of("'|'")}; + private static final Call[] K1070 = new Call[]{TinyExpressionP4Parser::e878,TinyExpressionP4Parser::e879}; + private static final String[] K1071 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20021:20024:body/1/0/0/literal/capture/0"}; + private static final Label K1072 = Label.of("'|'"); + private static final String[] K1073 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20029:20049:body/1/0/1/ruleRef/capture/0"}; + private static final Call[] K1074 = new Call[]{TinyExpressionP4Parser::e881,TinyExpressionP4Parser::e882}; + private static final String[] K1075 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20195:20215:body/0/ruleRef/capture/0"}; + private static final Label[] K1076 = new Label[]{Label.of("'&'")}; + private static final Call[] K1077 = new Call[]{TinyExpressionP4Parser::e884,TinyExpressionP4Parser::e885}; + private static final String[] K1078 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20224:20227:body/1/0/0/literal/capture/0"}; + private static final Label K1079 = Label.of("'&'"); + private static final String[] K1080 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20232:20252:body/1/0/1/ruleRef/capture/0"}; + private static final Call[] K1081 = new Call[]{TinyExpressionP4Parser::e887,TinyExpressionP4Parser::e888}; + private static final String[] K1082 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20398:20411:body/0/ruleRef/capture/0"}; + private static final Label[] K1083 = new Label[]{Label.of("'^'")}; + private static final Call[] K1084 = new Call[]{TinyExpressionP4Parser::e890,TinyExpressionP4Parser::e891}; + private static final String[] K1085 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20420:20423:body/1/0/0/literal/capture/0"}; + private static final Label K1086 = Label.of("'^'"); + private static final String[] K1087 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20428:20441:body/1/0/1/ruleRef/capture/0"}; + private static final Call[] K1088 = new Call[]{TinyExpressionP4Parser::e893,TinyExpressionP4Parser::e894,TinyExpressionP4Parser::e895,TinyExpressionP4Parser::e896}; + private static final String[] K1089 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20598:20615:body/2/ruleRef/capture/0"}; + private static final int[] K1090 = new int[]{9,13,32,32,47,47,110,110}; + private static final Label[] K1091 = new Label[]{null,Label.of("'not'"),Label.of("'('"),Label.of("')'")}; + private static final int[] K1092 = new int[]{97}; + private static final Guard K1093 = new Guard(K1090,K1091,K229,K1092,1); + private static final int[] K1094 = new int[]{117}; + private static final Guard K1095 = new Guard(K618,K733,K229,K1094,1); + private static final Label[] K1096 = new Label[]{null,Label.of("'external'"),Label.of("'boolean'"),Label.of("':'"),Label.of("'('"),Label.of("')'")}; + private static final int[] K1097 = new int[]{31}; + private static final Guard K1098 = new Guard(K651,K1096,K229,K1097,1); + private static final int[] K1099 = new int[]{9,13,32,32,36,36,47,47,116,116}; + private static final Label[] K1100 = new Label[]{null,Label.of("'toLowerCase'"),Label.of("'('"),Label.of("')'"),Label.of("'toUpperCase'"),Label.of("'trim'"),Label.of("'$'"),Label.of("__CaptureSite"),Label.of("'.startsWith'")}; + private static final int[] K1101 = new int[]{74,77,62}; + private static final Guard K1102 = new Guard(K1099,K1100,K229,K1101,3); + private static final Label[] K1103 = new Label[]{null,Label.of("'toLowerCase'"),Label.of("'('"),Label.of("')'"),Label.of("'toUpperCase'"),Label.of("'trim'"),Label.of("'$'"),Label.of("__CaptureSite"),Label.of("'.endsWith'")}; + private static final int[] K1104 = new int[]{75,77,62}; + private static final Guard K1105 = new Guard(K1099,K1103,K229,K1104,3); + private static final Label[] K1106 = new Label[]{null,Label.of("'toLowerCase'"),Label.of("'('"),Label.of("')'"),Label.of("'toUpperCase'"),Label.of("'trim'"),Label.of("'$'"),Label.of("__CaptureSite"),Label.of("'.contains'")}; + private static final int[] K1107 = new int[]{76,77,62}; + private static final Guard K1108 = new Guard(K1099,K1106,K229,K1107,3); + private static final Label[] K1109 = new Label[]{null,Label.of("'startsWith'"),Label.of("'('"),Label.of("','"),Label.of("')'")}; + private static final int[] K1110 = new int[]{70}; + private static final Guard K1111 = new Guard(K490,K1109,K229,K1110,1); + private static final Label[] K1112 = new Label[]{null,Label.of("'endsWith'"),Label.of("'('"),Label.of("','"),Label.of("')'")}; + private static final int[] K1113 = new int[]{71}; + private static final Guard K1114 = new Guard(K651,K1112,K229,K1113,1); + private static final Label[] K1115 = new Label[]{null,Label.of("'contains'"),Label.of("'('"),Label.of("','"),Label.of("')'")}; + private static final int[] K1116 = new int[]{72}; + private static final Guard K1117 = new Guard(K548,K1115,K229,K1116,1); + private static final Label[] K1118 = new Label[]{null,Label.of("'isPresent'"),Label.of("'('"),Label.of("')'")}; + private static final int[] K1119 = new int[]{78}; + private static final Guard K1120 = new Guard(K736,K1118,K229,K1119,1); + private static final Label[] K1121 = new Label[]{null,Label.of("'inTimeRange'"),Label.of("'('"),Label.of("','"),Label.of("')'")}; + private static final int[] K1122 = new int[]{79}; + private static final Guard K1123 = new Guard(K736,K1121,K229,K1122,1); + private static final Label[] K1124 = new Label[]{null,Label.of("'inDayTimeRange'"),Label.of("'('"),Label.of("','"),Label.of("')'")}; + private static final int[] K1125 = new int[]{80}; + private static final Guard K1126 = new Guard(K736,K1124,K229,K1125,1); + private static final Guard[] K1127 = new Guard[]{K1093,K739,K1095,K1098,null,K1102,K1105,K1108,K1111,K1114,K1117,K1120,K1123,K1126,null,null,K762,K765,K766}; + private static final Call[] K1128 = new Call[]{TinyExpressionP4Parser::e898,TinyExpressionP4Parser::e899,TinyExpressionP4Parser::e900,TinyExpressionP4Parser::e901,TinyExpressionP4Parser::e902,TinyExpressionP4Parser::e903,TinyExpressionP4Parser::e904,TinyExpressionP4Parser::e905,TinyExpressionP4Parser::e906,TinyExpressionP4Parser::e907,TinyExpressionP4Parser::e908,TinyExpressionP4Parser::e909,TinyExpressionP4Parser::e910,TinyExpressionP4Parser::e911,TinyExpressionP4Parser::e912,TinyExpressionP4Parser::e913,TinyExpressionP4Parser::e914,TinyExpressionP4Parser::e915,TinyExpressionP4Parser::e916}; + private static final Label[] K1129 = new Label[]{Label.of("'true'")}; + private static final Label K1130 = Label.of("'true'"); + private static final Label[] K1131 = new Label[]{Label.of("'false'")}; + private static final Label K1132 = Label.of("'false'"); + private static final Call[] K1133 = new Call[]{TinyExpressionP4Parser::e917,TinyExpressionP4Parser::e918,TinyExpressionP4Parser::e919}; + private static final Call[] K1134 = new Call[]{TinyExpressionP4Parser::e921,TinyExpressionP4Parser::e922,TinyExpressionP4Parser::e923}; + private static final String[] K1135 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21186:21203:body/0/ruleRef/capture/0"}; + private static final Label[] K1136 = new Label[]{Label.of("'true'"),Label.of("'false'")}; + private static final String[] K1137 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21210:21220:body/1/ruleRef/capture/0"}; + private static final String[] K1138 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21225:21242:body/2/ruleRef/capture/0"}; + private static final Call[] K1139 = new Call[]{TinyExpressionP4Parser::e925,TinyExpressionP4Parser::e926,TinyExpressionP4Parser::e927,TinyExpressionP4Parser::e928}; + private static final String[] K1140 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21325:21350:body/0/ruleRef/capture/0"}; + private static final String[] K1141 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21364:21384:body/1/ruleRef/capture/0"}; + private static final String[] K1142 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21398:21424:body/2/ruleRef/capture/0"}; + private static final String[] K1143 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21438:21455:body/3/ruleRef/capture/0"}; + private static final Call[] K1144 = new Call[]{TinyExpressionP4Parser::e930,TinyExpressionP4Parser::e931,TinyExpressionP4Parser::e932}; + private static final String[] K1145 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21719:21735:body/0/ruleRef/capture/0"}; + private static final String[] K1146 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21742:21752:body/1/ruleRef/capture/0"}; + private static final String[] K1147 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21757:21773:body/2/ruleRef/capture/0"}; + private static final Call[] K1148 = new Call[]{TinyExpressionP4Parser::e934,TinyExpressionP4Parser::e935}; + private static final Label[] K1149 = new Label[]{Label.of("'=='")}; + private static final Label K1150 = Label.of("'=='"); + private static final Label[] K1151 = new Label[]{Label.of("'!='")}; + private static final Label K1152 = Label.of("'!='"); + private static final Call[] K1153 = new Call[]{TinyExpressionP4Parser::e937,TinyExpressionP4Parser::e938,TinyExpressionP4Parser::e939}; + private static final String[] K1154 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21895:21911:body/0/ruleRef/capture/0"}; + private static final String[] K1155 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21918:21927:body/1/ruleRef/capture/0"}; + private static final String[] K1156 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21932:21948:body/2/ruleRef/capture/0"}; + private static final Call[] K1157 = new Call[]{TinyExpressionP4Parser::e941,TinyExpressionP4Parser::e942,TinyExpressionP4Parser::e943,TinyExpressionP4Parser::e944,TinyExpressionP4Parser::e945,TinyExpressionP4Parser::e946}; + private static final Label[] K1158 = new Label[]{Label.of("'<='")}; + private static final Label K1159 = Label.of("'<='"); + private static final Label[] K1160 = new Label[]{Label.of("'>='")}; + private static final Label K1161 = Label.of("'>='"); + private static final Label[] K1162 = new Label[]{Label.of("'<'")}; + private static final Label K1163 = Label.of("'<'"); + private static final Label[] K1164 = new Label[]{Label.of("'>'")}; + private static final Label K1165 = Label.of("'>'"); + private static final Label[] K1166 = new Label[]{null,Label.of("'external'"),Label.of("'object'"),Label.of("':'"),Label.of("'('"),Label.of("')'")}; + private static final int[] K1167 = new int[]{34}; + private static final Guard K1168 = new Guard(K651,K1166,K229,K1167,1); + private static final Guard[] K1169 = new Guard[]{null,null,null,K1168,K762,K765}; + private static final Call[] K1170 = new Call[]{TinyExpressionP4Parser::e948,TinyExpressionP4Parser::e949,TinyExpressionP4Parser::e950,TinyExpressionP4Parser::e951,TinyExpressionP4Parser::e952,TinyExpressionP4Parser::e953}; + private static final String[] K1171 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22165:22181:body/0/ruleRef/capture/0"}; + private static final String[] K1172 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22195:22211:body/1/ruleRef/capture/0"}; + private static final String[] K1173 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22225:22242:body/2/ruleRef/capture/0"}; + private static final String[] K1174 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22256:22280:body/3/ruleRef/capture/0"}; + private static final String[] K1175 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22294:22305:body/4/ruleRef/capture/0"}; + private static final String[] K1176 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22319:22335:body/5/ruleRef/capture/0"}; + private static final Delimiters[] K1177 = new Delimiters[]{K229,K229,K229,K229,K229,K229,K229,K229,K229,K229,K229}; + private static final Trivia K1178 = new Trivia(K229,null,K1177,null,null); + private static final Call[] K1179 = new Call[]{TinyExpressionP4Parser::e955,TinyExpressionP4Parser::e956,TinyExpressionP4Parser::e957,TinyExpressionP4Parser::e958,TinyExpressionP4Parser::e959,TinyExpressionP4Parser::e960,TinyExpressionP4Parser::e961,TinyExpressionP4Parser::e962,TinyExpressionP4Parser::e963,TinyExpressionP4Parser::e964,TinyExpressionP4Parser::e965}; + private static final String[] K1180 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22519:22536:body/2/ruleRef/capture/0"}; + private static final String[] K1181 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22560:22576:body/5/ruleRef/capture/0"}; + private static final Label[] K1182 = new Label[]{Label.of("'else'")}; + private static final Label K1183 = Label.of("'else'"); + private static final String[] K1184 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22610:22626:body/9/ruleRef/capture/0"}; + private static final Guard[] K1185 = new Guard[]{null,null,null,null,null,null,null,K765}; + private static final Call[] K1186 = new Call[]{TinyExpressionP4Parser::e967,TinyExpressionP4Parser::e968,TinyExpressionP4Parser::e969,TinyExpressionP4Parser::e970,TinyExpressionP4Parser::e971,TinyExpressionP4Parser::e972,TinyExpressionP4Parser::e973,TinyExpressionP4Parser::e974}; + private static final String[] K1187 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22722:22742:body/0/ruleRef/capture/0"}; + private static final String[] K1188 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22756:22782:body/1/ruleRef/capture/0"}; + private static final String[] K1189 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22796:22821:body/2/ruleRef/capture/0"}; + private static final String[] K1190 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22835:22851:body/3/ruleRef/capture/0"}; + private static final String[] K1191 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22865:22882:body/4/ruleRef/capture/0"}; + private static final String[] K1192 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22896:22912:body/5/ruleRef/capture/0"}; + private static final String[] K1193 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22926:22942:body/6/ruleRef/capture/0"}; + private static final String[] K1194 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22956:22972:body/7/ruleRef/capture/0"}; + private static final Call[] K1195 = new Call[]{TinyExpressionP4Parser::e976,TinyExpressionP4Parser::e977,TinyExpressionP4Parser::e978,TinyExpressionP4Parser::e979,TinyExpressionP4Parser::e980,TinyExpressionP4Parser::e981,TinyExpressionP4Parser::e982}; + private static final String[] K1196 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23151:23168:body/1/ruleRef/capture/0"}; + private static final String[] K1197 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23184:23200:body/3/ruleRef/capture/0"}; + private static final String[] K1198 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23215:23231:body/5/ruleRef/capture/0"}; + private static final Call[] K1199 = new Call[]{TinyExpressionP4Parser::e984,TinyExpressionP4Parser::e985,TinyExpressionP4Parser::e986,TinyExpressionP4Parser::e987,TinyExpressionP4Parser::e991,TinyExpressionP4Parser::e992,TinyExpressionP4Parser::e993}; + private static final Label[] K1200 = new Label[]{Label.of("'match'")}; + private static final Label K1201 = Label.of("'match'"); + private static final String[] K1202 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23453:23463:body/2/ruleRef/capture/0"}; + private static final String[] K1203 = new String[]{"firstCase"}; + private static final Call[] K1204 = new Call[]{TinyExpressionP4Parser::e989,TinyExpressionP4Parser::e990}; + private static final String[] K1205 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23481:23491:body/3/0/1/ruleRef/capture/0"}; + private static final String[] K1206 = new String[]{"moreCases"}; + private static final String[] K1207 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23515:23532:body/5/ruleRef/capture/0"}; + private static final String[] K1208 = new String[]{"defaultCase"}; + private static final Call[] K1209 = new Call[]{TinyExpressionP4Parser::e995,TinyExpressionP4Parser::e996,TinyExpressionP4Parser::e997}; + private static final String[] K1210 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23628:23645:body/0/ruleRef/capture/0"}; + private static final Label K1211 = Label.of("'->'"); + private static final String[] K1212 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23662:23677:body/2/ruleRef/capture/0"}; + private static final Call[] K1213 = new Call[]{TinyExpressionP4Parser::e999,TinyExpressionP4Parser::e1000,TinyExpressionP4Parser::e1001}; + private static final Label[] K1214 = new Label[]{Label.of("'default'")}; + private static final Label K1215 = Label.of("'default'"); + private static final String[] K1216 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23776:23791:body/2/ruleRef/capture/0"}; + private static final Call[] K1217 = new Call[]{TinyExpressionP4Parser::e1003}; + private static final String[] K1218 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23871:23887:body/0/ruleRef/capture/0"}; + private static final Call[] K1219 = new Call[]{TinyExpressionP4Parser::e1005,TinyExpressionP4Parser::e1006,TinyExpressionP4Parser::e1007,TinyExpressionP4Parser::e1008,TinyExpressionP4Parser::e1012,TinyExpressionP4Parser::e1013,TinyExpressionP4Parser::e1014}; + private static final String[] K1220 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24020:24030:body/2/ruleRef/capture/0"}; + private static final Call[] K1221 = new Call[]{TinyExpressionP4Parser::e1010,TinyExpressionP4Parser::e1011}; + private static final String[] K1222 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24048:24058:body/3/0/1/ruleRef/capture/0"}; + private static final String[] K1223 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24082:24099:body/5/ruleRef/capture/0"}; + private static final Call[] K1224 = new Call[]{TinyExpressionP4Parser::e1016,TinyExpressionP4Parser::e1017,TinyExpressionP4Parser::e1018}; + private static final String[] K1225 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24195:24212:body/0/ruleRef/capture/0"}; + private static final String[] K1226 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24229:24244:body/2/ruleRef/capture/0"}; + private static final Call[] K1227 = new Call[]{TinyExpressionP4Parser::e1020,TinyExpressionP4Parser::e1021,TinyExpressionP4Parser::e1022}; + private static final String[] K1228 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24343:24358:body/2/ruleRef/capture/0"}; + private static final Call[] K1229 = new Call[]{TinyExpressionP4Parser::e1024}; + private static final String[] K1230 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24438:24454:body/0/ruleRef/capture/0"}; + private static final Call[] K1231 = new Call[]{TinyExpressionP4Parser::e1026,TinyExpressionP4Parser::e1027,TinyExpressionP4Parser::e1028,TinyExpressionP4Parser::e1029,TinyExpressionP4Parser::e1033,TinyExpressionP4Parser::e1034,TinyExpressionP4Parser::e1035}; + private static final String[] K1232 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24589:24600:body/2/ruleRef/capture/0"}; + private static final Call[] K1233 = new Call[]{TinyExpressionP4Parser::e1031,TinyExpressionP4Parser::e1032}; + private static final String[] K1234 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24618:24629:body/3/0/1/ruleRef/capture/0"}; + private static final String[] K1235 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24653:24671:body/5/ruleRef/capture/0"}; + private static final Call[] K1236 = new Call[]{TinyExpressionP4Parser::e1037,TinyExpressionP4Parser::e1038,TinyExpressionP4Parser::e1039}; + private static final String[] K1237 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24769:24786:body/0/ruleRef/capture/0"}; + private static final String[] K1238 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24803:24819:body/2/ruleRef/capture/0"}; + private static final Call[] K1239 = new Call[]{TinyExpressionP4Parser::e1041,TinyExpressionP4Parser::e1042,TinyExpressionP4Parser::e1043}; + private static final String[] K1240 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24920:24936:body/2/ruleRef/capture/0"}; + private static final Call[] K1241 = new Call[]{TinyExpressionP4Parser::e1045}; + private static final String[] K1242 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25018:25035:body/0/ruleRef/capture/0"}; + private static final Call[] K1243 = new Call[]{TinyExpressionP4Parser::e1047,TinyExpressionP4Parser::e1048,TinyExpressionP4Parser::e1049}; + private static final String[] K1244 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25252:25262:body/1/tokenRef/capture/0"}; + private static final Call[] K1245 = new Call[]{TinyExpressionP4Parser::e1051,TinyExpressionP4Parser::e1053}; + private static final String[] K1246 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25280:25291:body/2/0/1/ruleRef/capture/0"}; + private static final Call[] K1247 = new Call[]{TinyExpressionP4Parser::e1055,TinyExpressionP4Parser::e1056,TinyExpressionP4Parser::e1057,TinyExpressionP4Parser::e1058,TinyExpressionP4Parser::e1059,TinyExpressionP4Parser::e1060,TinyExpressionP4Parser::e1061,TinyExpressionP4Parser::e1062,TinyExpressionP4Parser::e1063,TinyExpressionP4Parser::e1064}; + private static final Guard[] K1248 = new Guard[]{null,null,null,null,K765,K766}; + private static final Call[] K1249 = new Call[]{TinyExpressionP4Parser::e1066,TinyExpressionP4Parser::e1067,TinyExpressionP4Parser::e1068,TinyExpressionP4Parser::e1069,TinyExpressionP4Parser::e1070,TinyExpressionP4Parser::e1071}; + private static final String[] K1250 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25749:25765:body/0/ruleRef/capture/0"}; + private static final String[] K1251 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25779:25796:body/1/ruleRef/capture/0"}; + private static final String[] K1252 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25810:25826:body/2/ruleRef/capture/0"}; + private static final String[] K1253 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25840:25856:body/3/ruleRef/capture/0"}; + private static final String[] K1254 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25870:25886:body/4/ruleRef/capture/0"}; + private static final Call[] K1255 = new Call[]{TinyExpressionP4Parser::e1072,TinyExpressionP4Parser::e1073,TinyExpressionP4Parser::e1074}; + private static final String[] K1256 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25904:25914:body/5/1/ruleRef/capture/0"}; + private static final Call[] K1257 = new Call[]{TinyExpressionP4Parser::e1076}; + private static final String[] K1258 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:26172:26188:body/0/ruleRef/capture/0"}; + private static final Call[] K1259 = new Call[]{TinyExpressionP4Parser::e1078}; + private static final String[] K1260 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:26270:26287:body/0/ruleRef/capture/0"}; + private static final Call[] K1261 = new Call[]{TinyExpressionP4Parser::e1080}; + private static final String[] K1262 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:26368:26384:body/0/ruleRef/capture/0"}; + private static final Call[] K1263 = new Call[]{TinyExpressionP4Parser::e1082}; + private static final String[] K1264 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:26465:26481:body/0/ruleRef/capture/0"}; + private static final Call[] K1265 = new Call[]{TinyExpressionP4Parser::e1084}; + private static final String[] K1266 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:26562:26578:body/0/ruleRef/capture/0"}; + private static final Call[] K1267 = new Call[]{TinyExpressionP4Parser::e1086,TinyExpressionP4Parser::e1087,TinyExpressionP4Parser::e1088}; + private static final String[] K1268 = new String[]{"expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:26670:26680:body/1/ruleRef/capture/0"}; } diff --git a/src/main/java/org/unlaxer/tinyexpression/p4/ubnfc/generated/driver/Driver.java b/src/main/java/org/unlaxer/tinyexpression/p4/ubnfc/generated/driver/Driver.java index eec73aa1..4695cbbf 100644 --- a/src/main/java/org/unlaxer/tinyexpression/p4/ubnfc/generated/driver/Driver.java +++ b/src/main/java/org/unlaxer/tinyexpression/p4/ubnfc/generated/driver/Driver.java @@ -19,7 +19,7 @@ public final class Driver { private Driver() {} private static final Set> OPERATOR_TYPES = Set.of(TinyExpressionP4AST.BinaryExpr.class); - private static final Map BINDINGS = Map.ofEntries(Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1009:1018:body/0/0/ruleRef/capture/0","Formula:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1035:1052:body/1/0/ruleRef/capture/0","Formula:1"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1066:1085:body/2/0/ruleRef/capture/0","Formula:2"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1121:1131:body/4/ruleRef/capture/0","Formula:3"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1146:1163:body/5/0/ruleRef/capture/0","Formula:4"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1611:1662:body/0/group/capture/0","CodeBlock:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2127:2136:body/1/ruleRef/capture/0","ImportDeclaration:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2154:2164:body/2/0/1/tokenRef/capture/0","ImportDeclaration:1"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2180:2190:body/4/tokenRef/capture/0","ImportDeclaration:2"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2272:2282:body/0/tokenRef/capture/0","ClassName:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2295:2305:body/1/0/1/tokenRef/capture/0","ClassName:1"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2790:2800:body/2/tokenRef/capture/0","NumberVariableDeclaration:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2847:2859:body/4/0/1/0/ruleRef/capture/0","NumberVariableDeclaration:1"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2876:2892:body/4/0/2/ruleRef/capture/0","NumberVariableDeclaration:2"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2908:2919:body/5/0/ruleRef/capture/0","NumberVariableDeclaration:3"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3139:3149:body/2/tokenRef/capture/0","StringVariableDeclaration:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3196:3208:body/4/0/1/0/ruleRef/capture/0","StringVariableDeclaration:1"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3225:3241:body/4/0/2/ruleRef/capture/0","StringVariableDeclaration:2"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3257:3268:body/5/0/ruleRef/capture/0","StringVariableDeclaration:3"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3490:3500:body/2/tokenRef/capture/0","BooleanVariableDeclaration:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3548:3560:body/4/0/1/0/ruleRef/capture/0","BooleanVariableDeclaration:1"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3577:3594:body/4/0/2/ruleRef/capture/0","BooleanVariableDeclaration:2"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3610:3621:body/5/0/ruleRef/capture/0","BooleanVariableDeclaration:3"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3841:3851:body/2/tokenRef/capture/0","ObjectVariableDeclaration:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3898:3910:body/4/0/1/0/ruleRef/capture/0","ObjectVariableDeclaration:1"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3927:3943:body/4/0/2/ruleRef/capture/0","ObjectVariableDeclaration:2"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3959:3970:body/5/0/ruleRef/capture/0","ObjectVariableDeclaration:3"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5019:5029:body/1/tokenRef/capture/0","NumberMethodDeclaration:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5058:5074:body/3/0/ruleRef/capture/0","NumberMethodDeclaration:1"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5111:5127:body/6/ruleRef/capture/0","NumberMethodDeclaration:2"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5345:5355:body/1/tokenRef/capture/0","StringMethodDeclaration:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5384:5400:body/3/0/ruleRef/capture/0","StringMethodDeclaration:1"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5437:5453:body/6/ruleRef/capture/0","StringMethodDeclaration:2"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5674:5684:body/1/tokenRef/capture/0","BooleanMethodDeclaration:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5713:5729:body/3/0/ruleRef/capture/0","BooleanMethodDeclaration:1"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5766:5783:body/6/ruleRef/capture/0","BooleanMethodDeclaration:2"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6001:6011:body/1/tokenRef/capture/0","ObjectMethodDeclaration:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6040:6056:body/3/0/ruleRef/capture/0","ObjectMethodDeclaration:1"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6093:6109:body/6/ruleRef/capture/0","ObjectMethodDeclaration:2"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6206:6221:body/0/ruleRef/capture/0","MethodParameters:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6236:6251:body/1/0/1/ruleRef/capture/0","MethodParameters:1"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6379:6389:body/1/tokenRef/capture/0","MethodParameter:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6408:6418:body/2/0/1/ruleRef/capture/0","MethodParameter:1"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7067:7076:body/4/0/0/0/ruleRef/capture/0","ExternalBooleanInvocation:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7092:7102:body/4/0/0/2/tokenRef/capture/0","ExternalBooleanInvocation:1"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7111:7121:body/4/0/1/tokenRef/capture/0","ExternalBooleanInvocation:2"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7140:7149:body/6/0/ruleRef/capture/0","ExternalBooleanInvocation:3"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7358:7367:body/2/0/0/0/ruleRef/capture/0","ExternalNumberInvocation:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7383:7393:body/2/0/0/2/tokenRef/capture/0","ExternalNumberInvocation:1"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7402:7412:body/2/0/1/tokenRef/capture/0","ExternalNumberInvocation:2"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7431:7440:body/4/0/ruleRef/capture/0","ExternalNumberInvocation:3"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7635:7644:body/4/0/0/0/ruleRef/capture/0","ExternalStringInvocation:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7660:7670:body/4/0/0/2/tokenRef/capture/0","ExternalStringInvocation:1"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7679:7689:body/4/0/1/tokenRef/capture/0","ExternalStringInvocation:2"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7708:7717:body/6/0/ruleRef/capture/0","ExternalStringInvocation:3"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7912:7921:body/4/0/0/0/ruleRef/capture/0","ExternalObjectInvocation:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7937:7947:body/4/0/0/2/tokenRef/capture/0","ExternalObjectInvocation:1"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7956:7966:body/4/0/1/tokenRef/capture/0","ExternalObjectInvocation:2"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7985:7994:body/6/0/ruleRef/capture/0","ExternalObjectInvocation:3"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8371:8381:body/1/tokenRef/capture/0","MethodInvocation:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8394:8403:body/3/0/ruleRef/capture/0","MethodInvocation:1"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8582:8599:body/0/ruleRef/capture/0","ArgumentTernary:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8615:8631:body/2/ruleRef/capture/0","ArgumentTernary:1"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8646:8662:body/4/ruleRef/capture/0","ArgumentTernary:2"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8758:8773:body/0/ruleRef/capture/0","ArgumentExpression:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8787:8807:body/1/ruleRef/capture/0","ArgumentExpression:1"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8821:8847:body/2/ruleRef/capture/0","ArgumentExpression:2"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8861:8871:body/3/ruleRef/capture/0","ArgumentExpression:3"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8941:8959:body/0/ruleRef/capture/0","Arguments:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8974:8992:body/1/0/1/ruleRef/capture/0","Arguments:1"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9197:9207:body/0/ruleRef/capture/0","NumberExpression:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9216:9221:body/1/0/0/ruleRef/capture/0","NumberExpression:1"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9226:9236:body/1/0/1/ruleRef/capture/0","NumberExpression:2"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9352:9364:body/0/ruleRef/capture/0","NumberTerm:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9373:9378:body/1/0/0/ruleRef/capture/0","NumberTerm:1"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9383:9395:body/1/0/1/ruleRef/capture/0","NumberTerm:2"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9881:9899:body/2/ruleRef/capture/0","SinFunction:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9974:9992:body/2/ruleRef/capture/0","CosFunction:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10067:10085:body/2/ruleRef/capture/0","TanFunction:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10163:10181:body/2/ruleRef/capture/0","SqrtFunction:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10264:10282:body/2/ruleRef/capture/0","MinFunction:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10296:10314:body/3/0/1/ruleRef/capture/0","MinFunction:1"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10400:10418:body/2/ruleRef/capture/0","MaxFunction:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10432:10450:body/3/0/1/ruleRef/capture/0","MaxFunction:1"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10592:10610:body/2/ruleRef/capture/0","AbsFunction:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10691:10709:body/2/ruleRef/capture/0","RoundFunction:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10787:10805:body/2/ruleRef/capture/0","CeilFunction:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10886:10904:body/2/ruleRef/capture/0","FloorFunction:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10990:11008:body/2/ruleRef/capture/0","PowFunction:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11019:11037:body/4/ruleRef/capture/0","PowFunction:1"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11117:11135:body/2/ruleRef/capture/0","LogFunction:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11210:11228:body/2/ruleRef/capture/0","ExpFunction:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11403:11419:body/2/ruleRef/capture/0","ToNumFunction:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11431:11449:body/4/ruleRef/capture/0","ToNumFunction:1"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11947:11963:body/2/ruleRef/capture/0","ToUpperCaseFunction:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12066:12082:body/2/ruleRef/capture/0","ToLowerCaseFunction:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12164:12180:body/2/ruleRef/capture/0","TrimFunction:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12268:12284:body/2/ruleRef/capture/0","LengthFunction:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12366:12382:body/2/ruleRef/capture/0","LenFunction:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12718:12729:body/0/ruleRef/capture/0","ToUpperCaseDotMethod:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12837:12848:body/0/ruleRef/capture/0","ToLowerCaseDotMethod:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12942:12953:body/0/ruleRef/capture/0","TrimDotMethod:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13044:13055:body/0/ruleRef/capture/0","LengthDotMethod:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13317:13333:body/2/ruleRef/capture/0","StartsWithFunction:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13345:13361:body/4/ruleRef/capture/0","StartsWithFunction:1"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13382:13398:body/5/0/1/ruleRef/capture/0","StartsWithFunction:2"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13507:13523:body/2/ruleRef/capture/0","EndsWithFunction:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13535:13551:body/4/ruleRef/capture/0","EndsWithFunction:1"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13572:13588:body/5/0/1/ruleRef/capture/0","EndsWithFunction:2"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13697:13713:body/2/ruleRef/capture/0","ContainsFunction:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13725:13741:body/4/ruleRef/capture/0","ContainsFunction:1"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13762:13778:body/5/0/1/ruleRef/capture/0","ContainsFunction:2"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13860:13876:body/0/ruleRef/capture/0","InMethod:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13894:13910:body/3/ruleRef/capture/0","InMethod:1"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13929:13945:body/4/0/1/ruleRef/capture/0","InMethod:2"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14128:14151:body/0/ruleRef/capture/0","StartsWithDotMethod:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14177:14193:body/3/ruleRef/capture/0","StartsWithDotMethod:1"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14214:14230:body/4/0/1/ruleRef/capture/0","StartsWithDotMethod:2"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14328:14351:body/0/ruleRef/capture/0","EndsWithDotMethod:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14375:14391:body/3/ruleRef/capture/0","EndsWithDotMethod:1"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14412:14428:body/4/0/1/ruleRef/capture/0","EndsWithDotMethod:2"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14526:14549:body/0/ruleRef/capture/0","ContainsDotMethod:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14573:14589:body/3/ruleRef/capture/0","ContainsDotMethod:1"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14610:14626:body/4/0/1/ruleRef/capture/0","ContainsDotMethod:2"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14911:14922:body/2/ruleRef/capture/0","IsPresentFunction:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15115:15131:body/2/ruleRef/capture/0","InTimeRangeFunction:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15147:15163:body/4/ruleRef/capture/0","InTimeRangeFunction:1"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15308:15317:body/2/ruleRef/capture/0","InDayTimeRangeFunction:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15332:15348:body/4/ruleRef/capture/0","InDayTimeRangeFunction:1"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15364:15373:body/6/ruleRef/capture/0","InDayTimeRangeFunction:2"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15386:15402:body/8/ruleRef/capture/0","InDayTimeRangeFunction:3"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16660:16677:body/0/0/ruleRef/capture/0","SliceBaseExpression:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16689:16704:body/0/2/ruleRef/capture/0","SliceBaseExpression:1"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16716:16729:body/0/4/ruleRef/capture/0","SliceBaseExpression:2"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16739:16753:body/0/6/ruleRef/capture/0","SliceBaseExpression:3"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16770:16787:body/1/0/ruleRef/capture/0","SliceBaseExpression:4"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16799:16814:body/1/2/ruleRef/capture/0","SliceBaseExpression:5"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16826:16839:body/1/4/ruleRef/capture/0","SliceBaseExpression:6"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16855:16872:body/2/0/ruleRef/capture/0","SliceBaseExpression:7"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16884:16899:body/2/2/ruleRef/capture/0","SliceBaseExpression:8"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16915:16929:body/2/5/ruleRef/capture/0","SliceBaseExpression:9"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16946:16963:body/3/0/ruleRef/capture/0","SliceBaseExpression:10"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:16975:16990:body/3/2/ruleRef/capture/0","SliceBaseExpression:11"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17012:17029:body/4/0/ruleRef/capture/0","SliceBaseExpression:12"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17045:17058:body/4/3/ruleRef/capture/0","SliceBaseExpression:13"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17068:17082:body/4/5/ruleRef/capture/0","SliceBaseExpression:14"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17099:17116:body/5/0/ruleRef/capture/0","SliceBaseExpression:15"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17132:17145:body/5/3/ruleRef/capture/0","SliceBaseExpression:16"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17161:17178:body/6/0/ruleRef/capture/0","SliceBaseExpression:17"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17198:17212:body/6/4/ruleRef/capture/0","SliceBaseExpression:18"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17229:17246:body/7/0/ruleRef/capture/0","SliceBaseExpression:19"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17359:17378:body/0/0/ruleRef/capture/0","SliceNestedExpression:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17390:17405:body/0/2/ruleRef/capture/0","SliceNestedExpression:1"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17417:17430:body/0/4/ruleRef/capture/0","SliceNestedExpression:2"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17440:17454:body/0/6/ruleRef/capture/0","SliceNestedExpression:3"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17471:17490:body/1/0/ruleRef/capture/0","SliceNestedExpression:4"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17502:17517:body/1/2/ruleRef/capture/0","SliceNestedExpression:5"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17529:17542:body/1/4/ruleRef/capture/0","SliceNestedExpression:6"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17558:17577:body/2/0/ruleRef/capture/0","SliceNestedExpression:7"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17589:17604:body/2/2/ruleRef/capture/0","SliceNestedExpression:8"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17620:17634:body/2/5/ruleRef/capture/0","SliceNestedExpression:9"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17651:17670:body/3/0/ruleRef/capture/0","SliceNestedExpression:10"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17682:17697:body/3/2/ruleRef/capture/0","SliceNestedExpression:11"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17719:17738:body/4/0/ruleRef/capture/0","SliceNestedExpression:12"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17754:17767:body/4/3/ruleRef/capture/0","SliceNestedExpression:13"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17777:17791:body/4/5/ruleRef/capture/0","SliceNestedExpression:14"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17808:17827:body/5/0/ruleRef/capture/0","SliceNestedExpression:15"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17843:17856:body/5/3/ruleRef/capture/0","SliceNestedExpression:16"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17872:17891:body/6/0/ruleRef/capture/0","SliceNestedExpression:17"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17911:17925:body/6/4/ruleRef/capture/0","SliceNestedExpression:18"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17942:17961:body/7/0/ruleRef/capture/0","SliceNestedExpression:19"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18250:18260:body/0/ruleRef/capture/0","StringExpression:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18269:18272:body/1/0/0/literal/capture/0","StringExpression:1"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18277:18287:body/1/0/1/ruleRef/capture/0","StringExpression:2"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19048:19058:body/4/tokenRef/capture/0","StringCastVariable:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19152:19162:body/1/tokenRef/capture/0","StringTypedVariable:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19428:19448:body/0/ruleRef/capture/0","BooleanExpression:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19457:19460:body/1/0/0/literal/capture/0","BooleanExpression:1"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19465:19485:body/1/0/1/ruleRef/capture/0","BooleanExpression:2"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19631:19651:body/0/ruleRef/capture/0","BooleanAndExpression:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19660:19663:body/1/0/0/literal/capture/0","BooleanAndExpression:1"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19668:19688:body/1/0/1/ruleRef/capture/0","BooleanAndExpression:2"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19834:19847:body/0/ruleRef/capture/0","BooleanXorExpression:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19856:19859:body/1/0/0/literal/capture/0","BooleanXorExpression:1"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19864:19877:body/1/0/1/ruleRef/capture/0","BooleanXorExpression:2"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20034:20051:body/2/ruleRef/capture/0","NotExpression:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20622:20639:body/0/ruleRef/capture/0","BooleanEqualityExpression:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20646:20656:body/1/ruleRef/capture/0","BooleanEqualityExpression:1"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20661:20678:body/2/ruleRef/capture/0","BooleanEqualityExpression:2"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20761:20786:body/0/ruleRef/capture/0","BooleanFactor:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20800:20820:body/1/ruleRef/capture/0","BooleanFactor:1"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20834:20860:body/2/ruleRef/capture/0","BooleanFactor:2"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20874:20891:body/3/ruleRef/capture/0","BooleanFactor:3"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21155:21171:body/0/ruleRef/capture/0","StringComparisonExpression:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21178:21188:body/1/ruleRef/capture/0","StringComparisonExpression:1"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21193:21209:body/2/ruleRef/capture/0","StringComparisonExpression:2"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21331:21347:body/0/ruleRef/capture/0","ComparisonExpression:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21354:21363:body/1/ruleRef/capture/0","ComparisonExpression:1"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21368:21384:body/2/ruleRef/capture/0","ComparisonExpression:2"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21601:21617:body/0/ruleRef/capture/0","ObjectExpression:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21631:21647:body/1/ruleRef/capture/0","ObjectExpression:1"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21661:21678:body/2/ruleRef/capture/0","ObjectExpression:2"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21692:21716:body/3/ruleRef/capture/0","ObjectExpression:3"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21730:21741:body/4/ruleRef/capture/0","ObjectExpression:4"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21755:21771:body/5/ruleRef/capture/0","ObjectExpression:5"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21955:21972:body/2/ruleRef/capture/0","IfExpression:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21996:22012:body/5/ruleRef/capture/0","IfExpression:1"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22046:22062:body/9/ruleRef/capture/0","IfExpression:2"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22158:22178:body/0/ruleRef/capture/0","BranchExpression:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22192:22218:body/1/ruleRef/capture/0","BranchExpression:1"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22232:22257:body/2/ruleRef/capture/0","BranchExpression:2"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22271:22287:body/3/ruleRef/capture/0","BranchExpression:3"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22301:22318:body/4/ruleRef/capture/0","BranchExpression:4"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22332:22348:body/5/ruleRef/capture/0","BranchExpression:5"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22362:22378:body/6/ruleRef/capture/0","BranchExpression:6"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22392:22408:body/7/ruleRef/capture/0","BranchExpression:7"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22587:22604:body/1/ruleRef/capture/0","TernaryExpression:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22620:22636:body/3/ruleRef/capture/0","TernaryExpression:1"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22651:22667:body/5/ruleRef/capture/0","TernaryExpression:2"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22889:22899:body/2/ruleRef/capture/0","NumberMatchExpression:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22917:22927:body/3/0/1/ruleRef/capture/0","NumberMatchExpression:1"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22951:22968:body/5/ruleRef/capture/0","NumberMatchExpression:2"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23064:23081:body/0/ruleRef/capture/0","NumberCase:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23098:23113:body/2/ruleRef/capture/0","NumberCase:1"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23212:23227:body/2/ruleRef/capture/0","NumberDefaultCase:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23307:23323:body/0/ruleRef/capture/0","NumberCaseValue:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23456:23466:body/2/ruleRef/capture/0","StringMatchExpression:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23484:23494:body/3/0/1/ruleRef/capture/0","StringMatchExpression:1"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23518:23535:body/5/ruleRef/capture/0","StringMatchExpression:2"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23631:23648:body/0/ruleRef/capture/0","StringCase:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23665:23680:body/2/ruleRef/capture/0","StringCase:1"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23779:23794:body/2/ruleRef/capture/0","StringDefaultCase:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23874:23890:body/0/ruleRef/capture/0","StringCaseValue:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24025:24036:body/2/ruleRef/capture/0","BooleanMatchExpression:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24054:24065:body/3/0/1/ruleRef/capture/0","BooleanMatchExpression:1"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24089:24107:body/5/ruleRef/capture/0","BooleanMatchExpression:2"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24205:24222:body/0/ruleRef/capture/0","BooleanCase:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24239:24255:body/2/ruleRef/capture/0","BooleanCase:1"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24356:24372:body/2/ruleRef/capture/0","BooleanDefaultCase:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24454:24471:body/0/ruleRef/capture/0","BooleanCaseValue:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24688:24698:body/1/tokenRef/capture/0","VariableRef:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24716:24727:body/2/0/1/ruleRef/capture/0","VariableRef:1"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25187:25203:body/0/ruleRef/capture/0","Expression:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25217:25234:body/1/ruleRef/capture/0","Expression:1"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25248:25264:body/2/ruleRef/capture/0","Expression:2"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25278:25294:body/3/ruleRef/capture/0","Expression:3"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25308:25324:body/4/ruleRef/capture/0","Expression:4"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25342:25352:body/5/1/ruleRef/capture/0","Expression:5")); + private static final Map BINDINGS = Map.ofEntries(Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1177:1186:body/0/0/ruleRef/capture/0","Formula:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1203:1220:body/1/0/ruleRef/capture/0","Formula:1"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1234:1253:body/2/0/ruleRef/capture/0","Formula:2"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1295:1315:body/4/0/0/0/ruleRef/capture/0","Formula:3"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1330:1347:body/4/0/0/1/0/ruleRef/capture/0","Formula:4"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1369:1390:body/4/0/1/0/ruleRef/capture/0","Formula:5"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1405:1422:body/4/0/1/1/0/ruleRef/capture/0","Formula:6"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1444:1464:body/4/0/2/0/ruleRef/capture/0","Formula:7"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1479:1496:body/4/0/2/1/0/ruleRef/capture/0","Formula:8"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1518:1538:body/4/0/3/0/ruleRef/capture/0","Formula:9"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1553:1570:body/4/0/3/1/0/ruleRef/capture/0","Formula:10"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1592:1612:body/4/0/4/0/ruleRef/capture/0","Formula:11"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1627:1644:body/4/0/4/1/0/ruleRef/capture/0","Formula:12"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1666:1693:body/4/0/5/0/ruleRef/capture/0","Formula:13"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:1708:1725:body/4/0/5/1/0/ruleRef/capture/0","Formula:14"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2175:2226:body/0/group/capture/0","CodeBlock:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2691:2700:body/1/ruleRef/capture/0","ImportDeclaration:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2718:2728:body/2/0/1/tokenRef/capture/0","ImportDeclaration:1"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2744:2754:body/4/tokenRef/capture/0","ImportDeclaration:2"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2836:2846:body/0/tokenRef/capture/0","ClassName:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:2859:2869:body/1/0/1/tokenRef/capture/0","ClassName:1"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3354:3364:body/2/tokenRef/capture/0","NumberVariableDeclaration:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3411:3423:body/4/0/1/0/ruleRef/capture/0","NumberVariableDeclaration:1"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3440:3456:body/4/0/2/ruleRef/capture/0","NumberVariableDeclaration:2"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3472:3483:body/5/0/ruleRef/capture/0","NumberVariableDeclaration:3"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3703:3713:body/2/tokenRef/capture/0","StringVariableDeclaration:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3760:3772:body/4/0/1/0/ruleRef/capture/0","StringVariableDeclaration:1"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3789:3805:body/4/0/2/ruleRef/capture/0","StringVariableDeclaration:2"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:3821:3832:body/5/0/ruleRef/capture/0","StringVariableDeclaration:3"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4054:4064:body/2/tokenRef/capture/0","BooleanVariableDeclaration:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4112:4124:body/4/0/1/0/ruleRef/capture/0","BooleanVariableDeclaration:1"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4141:4158:body/4/0/2/ruleRef/capture/0","BooleanVariableDeclaration:2"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4174:4185:body/5/0/ruleRef/capture/0","BooleanVariableDeclaration:3"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4405:4415:body/2/tokenRef/capture/0","ObjectVariableDeclaration:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4462:4474:body/4/0/1/0/ruleRef/capture/0","ObjectVariableDeclaration:1"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4491:4507:body/4/0/2/ruleRef/capture/0","ObjectVariableDeclaration:2"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:4523:4534:body/5/0/ruleRef/capture/0","ObjectVariableDeclaration:3"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5583:5593:body/1/tokenRef/capture/0","NumberMethodDeclaration:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5622:5638:body/3/0/ruleRef/capture/0","NumberMethodDeclaration:1"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5675:5691:body/6/ruleRef/capture/0","NumberMethodDeclaration:2"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5909:5919:body/1/tokenRef/capture/0","StringMethodDeclaration:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:5948:5964:body/3/0/ruleRef/capture/0","StringMethodDeclaration:1"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6001:6017:body/6/ruleRef/capture/0","StringMethodDeclaration:2"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6238:6248:body/1/tokenRef/capture/0","BooleanMethodDeclaration:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6277:6293:body/3/0/ruleRef/capture/0","BooleanMethodDeclaration:1"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6330:6347:body/6/ruleRef/capture/0","BooleanMethodDeclaration:2"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6565:6575:body/1/tokenRef/capture/0","ObjectMethodDeclaration:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6604:6620:body/3/0/ruleRef/capture/0","ObjectMethodDeclaration:1"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6657:6673:body/6/ruleRef/capture/0","ObjectMethodDeclaration:2"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6770:6785:body/0/ruleRef/capture/0","MethodParameters:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6800:6815:body/1/0/1/ruleRef/capture/0","MethodParameters:1"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6943:6953:body/1/tokenRef/capture/0","MethodParameter:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:6972:6982:body/2/0/1/ruleRef/capture/0","MethodParameter:1"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7631:7640:body/4/0/0/0/ruleRef/capture/0","ExternalBooleanInvocation:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7656:7666:body/4/0/0/2/tokenRef/capture/0","ExternalBooleanInvocation:1"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7675:7685:body/4/0/1/tokenRef/capture/0","ExternalBooleanInvocation:2"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7704:7713:body/6/0/ruleRef/capture/0","ExternalBooleanInvocation:3"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7922:7931:body/2/0/0/0/ruleRef/capture/0","ExternalNumberInvocation:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7947:7957:body/2/0/0/2/tokenRef/capture/0","ExternalNumberInvocation:1"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7966:7976:body/2/0/1/tokenRef/capture/0","ExternalNumberInvocation:2"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:7995:8004:body/4/0/ruleRef/capture/0","ExternalNumberInvocation:3"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8199:8208:body/4/0/0/0/ruleRef/capture/0","ExternalStringInvocation:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8224:8234:body/4/0/0/2/tokenRef/capture/0","ExternalStringInvocation:1"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8243:8253:body/4/0/1/tokenRef/capture/0","ExternalStringInvocation:2"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8272:8281:body/6/0/ruleRef/capture/0","ExternalStringInvocation:3"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8476:8485:body/4/0/0/0/ruleRef/capture/0","ExternalObjectInvocation:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8501:8511:body/4/0/0/2/tokenRef/capture/0","ExternalObjectInvocation:1"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8520:8530:body/4/0/1/tokenRef/capture/0","ExternalObjectInvocation:2"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8549:8558:body/6/0/ruleRef/capture/0","ExternalObjectInvocation:3"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8935:8945:body/1/tokenRef/capture/0","MethodInvocation:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:8958:8967:body/3/0/ruleRef/capture/0","MethodInvocation:1"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9146:9163:body/0/ruleRef/capture/0","ArgumentTernary:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9179:9195:body/2/ruleRef/capture/0","ArgumentTernary:1"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9210:9226:body/4/ruleRef/capture/0","ArgumentTernary:2"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9322:9337:body/0/ruleRef/capture/0","ArgumentExpression:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9351:9371:body/1/ruleRef/capture/0","ArgumentExpression:1"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9385:9411:body/2/ruleRef/capture/0","ArgumentExpression:2"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9425:9435:body/3/ruleRef/capture/0","ArgumentExpression:3"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9505:9523:body/0/ruleRef/capture/0","Arguments:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9538:9556:body/1/0/1/ruleRef/capture/0","Arguments:1"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9761:9771:body/0/ruleRef/capture/0","NumberExpression:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9780:9785:body/1/0/0/ruleRef/capture/0","NumberExpression:1"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9790:9800:body/1/0/1/ruleRef/capture/0","NumberExpression:2"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9916:9928:body/0/ruleRef/capture/0","NumberTerm:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9937:9942:body/1/0/0/ruleRef/capture/0","NumberTerm:1"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:9947:9959:body/1/0/1/ruleRef/capture/0","NumberTerm:2"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10445:10463:body/2/ruleRef/capture/0","SinFunction:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10538:10556:body/2/ruleRef/capture/0","CosFunction:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10631:10649:body/2/ruleRef/capture/0","TanFunction:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10727:10745:body/2/ruleRef/capture/0","SqrtFunction:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10828:10846:body/2/ruleRef/capture/0","MinFunction:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10860:10878:body/3/0/1/ruleRef/capture/0","MinFunction:1"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10964:10982:body/2/ruleRef/capture/0","MaxFunction:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:10996:11014:body/3/0/1/ruleRef/capture/0","MaxFunction:1"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11156:11174:body/2/ruleRef/capture/0","AbsFunction:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11255:11273:body/2/ruleRef/capture/0","RoundFunction:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11351:11369:body/2/ruleRef/capture/0","CeilFunction:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11450:11468:body/2/ruleRef/capture/0","FloorFunction:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11554:11572:body/2/ruleRef/capture/0","PowFunction:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11583:11601:body/4/ruleRef/capture/0","PowFunction:1"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11681:11699:body/2/ruleRef/capture/0","LogFunction:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11774:11792:body/2/ruleRef/capture/0","ExpFunction:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11967:11983:body/2/ruleRef/capture/0","ToNumFunction:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:11995:12013:body/4/ruleRef/capture/0","ToNumFunction:1"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12511:12527:body/2/ruleRef/capture/0","ToUpperCaseFunction:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12630:12646:body/2/ruleRef/capture/0","ToLowerCaseFunction:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12728:12744:body/2/ruleRef/capture/0","TrimFunction:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12832:12848:body/2/ruleRef/capture/0","LengthFunction:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:12930:12946:body/2/ruleRef/capture/0","LenFunction:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13282:13293:body/0/ruleRef/capture/0","ToUpperCaseDotMethod:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13401:13412:body/0/ruleRef/capture/0","ToLowerCaseDotMethod:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13506:13517:body/0/ruleRef/capture/0","TrimDotMethod:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13608:13619:body/0/ruleRef/capture/0","LengthDotMethod:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13881:13897:body/2/ruleRef/capture/0","StartsWithFunction:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13909:13925:body/4/ruleRef/capture/0","StartsWithFunction:1"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:13946:13962:body/5/0/1/ruleRef/capture/0","StartsWithFunction:2"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14071:14087:body/2/ruleRef/capture/0","EndsWithFunction:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14099:14115:body/4/ruleRef/capture/0","EndsWithFunction:1"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14136:14152:body/5/0/1/ruleRef/capture/0","EndsWithFunction:2"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14261:14277:body/2/ruleRef/capture/0","ContainsFunction:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14289:14305:body/4/ruleRef/capture/0","ContainsFunction:1"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14326:14342:body/5/0/1/ruleRef/capture/0","ContainsFunction:2"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14424:14440:body/0/ruleRef/capture/0","InMethod:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14458:14474:body/3/ruleRef/capture/0","InMethod:1"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14493:14509:body/4/0/1/ruleRef/capture/0","InMethod:2"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14692:14715:body/0/ruleRef/capture/0","StartsWithDotMethod:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14741:14757:body/3/ruleRef/capture/0","StartsWithDotMethod:1"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14778:14794:body/4/0/1/ruleRef/capture/0","StartsWithDotMethod:2"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14892:14915:body/0/ruleRef/capture/0","EndsWithDotMethod:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14939:14955:body/3/ruleRef/capture/0","EndsWithDotMethod:1"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:14976:14992:body/4/0/1/ruleRef/capture/0","EndsWithDotMethod:2"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15090:15113:body/0/ruleRef/capture/0","ContainsDotMethod:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15137:15153:body/3/ruleRef/capture/0","ContainsDotMethod:1"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15174:15190:body/4/0/1/ruleRef/capture/0","ContainsDotMethod:2"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15475:15486:body/2/ruleRef/capture/0","IsPresentFunction:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15679:15695:body/2/ruleRef/capture/0","InTimeRangeFunction:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15711:15727:body/4/ruleRef/capture/0","InTimeRangeFunction:1"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15872:15881:body/2/ruleRef/capture/0","InDayTimeRangeFunction:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15896:15912:body/4/ruleRef/capture/0","InDayTimeRangeFunction:1"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15928:15937:body/6/ruleRef/capture/0","InDayTimeRangeFunction:2"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:15950:15966:body/8/ruleRef/capture/0","InDayTimeRangeFunction:3"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17224:17241:body/0/0/ruleRef/capture/0","SliceBaseExpression:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17253:17268:body/0/2/ruleRef/capture/0","SliceBaseExpression:1"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17280:17293:body/0/4/ruleRef/capture/0","SliceBaseExpression:2"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17303:17317:body/0/6/ruleRef/capture/0","SliceBaseExpression:3"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17334:17351:body/1/0/ruleRef/capture/0","SliceBaseExpression:4"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17363:17378:body/1/2/ruleRef/capture/0","SliceBaseExpression:5"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17390:17403:body/1/4/ruleRef/capture/0","SliceBaseExpression:6"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17419:17436:body/2/0/ruleRef/capture/0","SliceBaseExpression:7"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17448:17463:body/2/2/ruleRef/capture/0","SliceBaseExpression:8"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17479:17493:body/2/5/ruleRef/capture/0","SliceBaseExpression:9"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17510:17527:body/3/0/ruleRef/capture/0","SliceBaseExpression:10"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17539:17554:body/3/2/ruleRef/capture/0","SliceBaseExpression:11"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17576:17593:body/4/0/ruleRef/capture/0","SliceBaseExpression:12"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17609:17622:body/4/3/ruleRef/capture/0","SliceBaseExpression:13"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17632:17646:body/4/5/ruleRef/capture/0","SliceBaseExpression:14"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17663:17680:body/5/0/ruleRef/capture/0","SliceBaseExpression:15"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17696:17709:body/5/3/ruleRef/capture/0","SliceBaseExpression:16"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17725:17742:body/6/0/ruleRef/capture/0","SliceBaseExpression:17"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17762:17776:body/6/4/ruleRef/capture/0","SliceBaseExpression:18"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17793:17810:body/7/0/ruleRef/capture/0","SliceBaseExpression:19"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17923:17942:body/0/0/ruleRef/capture/0","SliceNestedExpression:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17954:17969:body/0/2/ruleRef/capture/0","SliceNestedExpression:1"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:17981:17994:body/0/4/ruleRef/capture/0","SliceNestedExpression:2"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18004:18018:body/0/6/ruleRef/capture/0","SliceNestedExpression:3"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18035:18054:body/1/0/ruleRef/capture/0","SliceNestedExpression:4"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18066:18081:body/1/2/ruleRef/capture/0","SliceNestedExpression:5"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18093:18106:body/1/4/ruleRef/capture/0","SliceNestedExpression:6"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18122:18141:body/2/0/ruleRef/capture/0","SliceNestedExpression:7"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18153:18168:body/2/2/ruleRef/capture/0","SliceNestedExpression:8"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18184:18198:body/2/5/ruleRef/capture/0","SliceNestedExpression:9"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18215:18234:body/3/0/ruleRef/capture/0","SliceNestedExpression:10"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18246:18261:body/3/2/ruleRef/capture/0","SliceNestedExpression:11"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18283:18302:body/4/0/ruleRef/capture/0","SliceNestedExpression:12"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18318:18331:body/4/3/ruleRef/capture/0","SliceNestedExpression:13"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18341:18355:body/4/5/ruleRef/capture/0","SliceNestedExpression:14"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18372:18391:body/5/0/ruleRef/capture/0","SliceNestedExpression:15"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18407:18420:body/5/3/ruleRef/capture/0","SliceNestedExpression:16"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18436:18455:body/6/0/ruleRef/capture/0","SliceNestedExpression:17"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18475:18489:body/6/4/ruleRef/capture/0","SliceNestedExpression:18"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18506:18525:body/7/0/ruleRef/capture/0","SliceNestedExpression:19"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18814:18824:body/0/ruleRef/capture/0","StringExpression:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18833:18836:body/1/0/0/literal/capture/0","StringExpression:1"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:18841:18851:body/1/0/1/ruleRef/capture/0","StringExpression:2"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19612:19622:body/4/tokenRef/capture/0","StringCastVariable:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19716:19726:body/1/tokenRef/capture/0","StringTypedVariable:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:19992:20012:body/0/ruleRef/capture/0","BooleanExpression:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20021:20024:body/1/0/0/literal/capture/0","BooleanExpression:1"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20029:20049:body/1/0/1/ruleRef/capture/0","BooleanExpression:2"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20195:20215:body/0/ruleRef/capture/0","BooleanAndExpression:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20224:20227:body/1/0/0/literal/capture/0","BooleanAndExpression:1"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20232:20252:body/1/0/1/ruleRef/capture/0","BooleanAndExpression:2"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20398:20411:body/0/ruleRef/capture/0","BooleanXorExpression:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20420:20423:body/1/0/0/literal/capture/0","BooleanXorExpression:1"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20428:20441:body/1/0/1/ruleRef/capture/0","BooleanXorExpression:2"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:20598:20615:body/2/ruleRef/capture/0","NotExpression:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21186:21203:body/0/ruleRef/capture/0","BooleanEqualityExpression:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21210:21220:body/1/ruleRef/capture/0","BooleanEqualityExpression:1"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21225:21242:body/2/ruleRef/capture/0","BooleanEqualityExpression:2"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21325:21350:body/0/ruleRef/capture/0","BooleanFactor:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21364:21384:body/1/ruleRef/capture/0","BooleanFactor:1"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21398:21424:body/2/ruleRef/capture/0","BooleanFactor:2"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21438:21455:body/3/ruleRef/capture/0","BooleanFactor:3"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21719:21735:body/0/ruleRef/capture/0","StringComparisonExpression:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21742:21752:body/1/ruleRef/capture/0","StringComparisonExpression:1"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21757:21773:body/2/ruleRef/capture/0","StringComparisonExpression:2"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21895:21911:body/0/ruleRef/capture/0","ComparisonExpression:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21918:21927:body/1/ruleRef/capture/0","ComparisonExpression:1"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:21932:21948:body/2/ruleRef/capture/0","ComparisonExpression:2"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22165:22181:body/0/ruleRef/capture/0","ObjectExpression:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22195:22211:body/1/ruleRef/capture/0","ObjectExpression:1"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22225:22242:body/2/ruleRef/capture/0","ObjectExpression:2"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22256:22280:body/3/ruleRef/capture/0","ObjectExpression:3"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22294:22305:body/4/ruleRef/capture/0","ObjectExpression:4"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22319:22335:body/5/ruleRef/capture/0","ObjectExpression:5"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22519:22536:body/2/ruleRef/capture/0","IfExpression:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22560:22576:body/5/ruleRef/capture/0","IfExpression:1"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22610:22626:body/9/ruleRef/capture/0","IfExpression:2"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22722:22742:body/0/ruleRef/capture/0","BranchExpression:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22756:22782:body/1/ruleRef/capture/0","BranchExpression:1"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22796:22821:body/2/ruleRef/capture/0","BranchExpression:2"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22835:22851:body/3/ruleRef/capture/0","BranchExpression:3"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22865:22882:body/4/ruleRef/capture/0","BranchExpression:4"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22896:22912:body/5/ruleRef/capture/0","BranchExpression:5"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22926:22942:body/6/ruleRef/capture/0","BranchExpression:6"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:22956:22972:body/7/ruleRef/capture/0","BranchExpression:7"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23151:23168:body/1/ruleRef/capture/0","TernaryExpression:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23184:23200:body/3/ruleRef/capture/0","TernaryExpression:1"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23215:23231:body/5/ruleRef/capture/0","TernaryExpression:2"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23453:23463:body/2/ruleRef/capture/0","NumberMatchExpression:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23481:23491:body/3/0/1/ruleRef/capture/0","NumberMatchExpression:1"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23515:23532:body/5/ruleRef/capture/0","NumberMatchExpression:2"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23628:23645:body/0/ruleRef/capture/0","NumberCase:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23662:23677:body/2/ruleRef/capture/0","NumberCase:1"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23776:23791:body/2/ruleRef/capture/0","NumberDefaultCase:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:23871:23887:body/0/ruleRef/capture/0","NumberCaseValue:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24020:24030:body/2/ruleRef/capture/0","StringMatchExpression:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24048:24058:body/3/0/1/ruleRef/capture/0","StringMatchExpression:1"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24082:24099:body/5/ruleRef/capture/0","StringMatchExpression:2"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24195:24212:body/0/ruleRef/capture/0","StringCase:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24229:24244:body/2/ruleRef/capture/0","StringCase:1"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24343:24358:body/2/ruleRef/capture/0","StringDefaultCase:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24438:24454:body/0/ruleRef/capture/0","StringCaseValue:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24589:24600:body/2/ruleRef/capture/0","BooleanMatchExpression:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24618:24629:body/3/0/1/ruleRef/capture/0","BooleanMatchExpression:1"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24653:24671:body/5/ruleRef/capture/0","BooleanMatchExpression:2"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24769:24786:body/0/ruleRef/capture/0","BooleanCase:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24803:24819:body/2/ruleRef/capture/0","BooleanCase:1"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:24920:24936:body/2/ruleRef/capture/0","BooleanDefaultCase:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25018:25035:body/0/ruleRef/capture/0","BooleanCaseValue:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25252:25262:body/1/tokenRef/capture/0","VariableRef:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25280:25291:body/2/0/1/ruleRef/capture/0","VariableRef:1"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25749:25765:body/0/ruleRef/capture/0","Expression:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25779:25796:body/1/ruleRef/capture/0","Expression:1"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25810:25826:body/2/ruleRef/capture/0","Expression:2"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25840:25856:body/3/ruleRef/capture/0","Expression:3"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25870:25886:body/4/ruleRef/capture/0","Expression:4"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:25904:25914:body/5/1/ruleRef/capture/0","Expression:5"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:26172:26188:body/0/ruleRef/capture/0","NumberRootExpression:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:26270:26287:body/0/ruleRef/capture/0","BooleanRootExpression:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:26368:26384:body/0/ruleRef/capture/0","StringRootExpression:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:26465:26481:body/0/ruleRef/capture/0","ObjectRootExpression:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:26562:26578:body/0/ruleRef/capture/0","MethodRootExpression:0"),Map.entry("expr:tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf:26670:26680:body/1/ruleRef/capture/0","ParenthesizedRootExpression:0")); /** D-025: `@catalog` の静的表。入力に依存しない grammar metadata。 */ private static final List CATALOGS = List.of(object("rule", "VariableRef", "context", "variable", "captures", List.of("name", "type"))); /** D-025: 文法が宣言した scope mode(観測されたイベントの mode ではない)。 */ diff --git a/src/test/java/org/unlaxer/tinyexpression/p4/P4ProjectionTextReaderTest.java b/src/test/java/org/unlaxer/tinyexpression/p4/P4ProjectionTextReaderTest.java new file mode 100644 index 00000000..84a978e0 --- /dev/null +++ b/src/test/java/org/unlaxer/tinyexpression/p4/P4ProjectionTextReaderTest.java @@ -0,0 +1,26 @@ +package org.unlaxer.tinyexpression.p4; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertThrows; +import java.util.Optional; +import org.junit.Test; + +public class P4ProjectionTextReaderTest { + @Test + public void readsForwardReverseRepeatedUnicodeAndEofSpans() { + var source = P4SourceText.fromSnapshot("a😀e\u0301👨‍👩‍👧‍👦z", + node -> Optional.of((int[]) node)); + var reader = source.projectionTextReader(); + assertEquals("😀", reader.text(new int[] {1, 2})); + assertEquals("👨‍👩‍👧‍👦", reader.text(new int[] {4, 11})); + assertEquals("a", reader.text(new int[] {0, 1})); + assertEquals("e\u0301", reader.text(new int[] {2, 4})); + assertEquals("😀", reader.text(new int[] {1, 2})); + assertEquals("😀", reader.text(new int[] {1, 2})); + assertEquals("", reader.text(new int[] {12, 12})); + for (int[] invalid : new int[][] {{-1, 0}, {4, 3}, {12, 13}, {0}, {0, 1, 2}}) { + assertThrows(IllegalArgumentException.class, () -> reader.text(invalid)); + } + assertEquals("a", reader.text(new int[] {0, 1})); + } +} diff --git a/src/test/java/org/unlaxer/tinyexpression/p4/ubnfc/P4SingleRecognitionProjectionTest.java b/src/test/java/org/unlaxer/tinyexpression/p4/ubnfc/P4SingleRecognitionProjectionTest.java new file mode 100644 index 00000000..1ceff597 --- /dev/null +++ b/src/test/java/org/unlaxer/tinyexpression/p4/ubnfc/P4SingleRecognitionProjectionTest.java @@ -0,0 +1,166 @@ +package org.unlaxer.tinyexpression.p4.ubnfc; + +import static org.junit.Assert.*; + +import java.nio.file.Files; +import java.nio.file.Path; +import java.lang.reflect.RecordComponent; +import java.util.List; +import java.util.Optional; +import org.junit.Test; +import org.unlaxer.tinyexpression.generated.p4.TinyExpressionP4AST; +import org.unlaxer.tinyexpression.p4.P4ParserEngine; +import org.unlaxer.tinyexpression.p4.P4PreferredAstMapper; +import org.unlaxer.tinyexpression.p4.P4SourceText; +import org.unlaxer.tinyexpression.p4.ubnfc.generated.TinyExpressionP4Parser; +import org.unlaxer.tinyexpression.p4.ubnfc.generated.api.ParseOptions; +import org.unlaxer.tinyexpression.parser.TinyExpressionParserCapabilities; + +/** The explicit public entry remains a test oracle, never a production retry. */ +public class P4SingleRecognitionProjectionTest { + @Test + public void typedProjectionMatchesExplicitSubtreeStructureAndEveryOwnedSpan() throws Exception { + Path fixture = Path.of("rust/tinyexpression-rs/tests/fixtures/root-family-projection.tsv"); + for (String line : Files.readAllLines(fixture)) { + if (line.isEmpty() || line.startsWith("#")) continue; + String[] fields = line.split("\t", -1); + assertEquals(line, 4, fields.length); + String source = TinyExpressionParserCapabilities.stripJavaStyleCommentsPreservingLayout(fields[1]); + var result = TinyExpressionP4Parser.parseEntry("TinyExpressionP4", fields[2], source, + new ParseOptions(true, false, false, true, java.util.Map.of())); + assertTrue(fields[0] + " explicit entry", result.ok()); + assertEquals(fields[0] + " full recognition", source.codePointCount(0, source.length()), result.consumedCp()); + var converter = new UbnfcAstConverter(result.nodeSpans(), source); + var expected = converter.convert(result.ast().orElseThrow()); + var spans = converter.spans(); + for (var engine : P4ParserEngine.values()) { + var actual = P4ParserEngine.with(engine, () -> P4PreferredAstMapper.parseDetailed(fields[1])); + assertEquals(fields[0] + "/" + engine + " root", fields[3], actual.ast().getClass().getSimpleName()); + assertEquals(fields[0] + "/" + engine + " structure", expected, actual.ast()); + compareSpans(fields[0] + "/" + engine, expected, actual.ast(), spans, actual.sourceText()); + var retained = actual.sourceText(); + P4ParserEngine.with(engine, () -> P4PreferredAstMapper.parseDetailed("'👨‍👩‍👧‍👦' + 'x'")); + compareSpans(fields[0] + "/retained/" + engine, expected, actual.ast(), spans, retained); + } + } + } + + @Test + public void bothJavaEnginesKeepTheSharedRootAndTypedFailureContract() throws Exception { + for (var engine : P4ParserEngine.values()) { + P4ParserEngine.with(engine, () -> { + var test = new org.unlaxer.tinyexpression.p4.P4RustRootExpressionAcceptanceTest(); + try { + test.javaFrontendMatchesSharedRootExpressionFixture(); + test.javaFrontendRejectsMixedMatchHintFamiliesExplicitly(); + test.javaProductionEntrypointsApplyExplicitResultFamilySelection(); + } catch (java.io.IOException failure) { + throw new java.io.UncheckedIOException(failure); + } + }); + } + } + + @Test + public void identifierAlphabetAndIllegalUnicodeTailAreNotBroadened() { + for (var source : List.of("$名 as string", "$𐐀 as string", "/*😀*/1<2@", "")) { + var raw = TinyExpressionP4Parser.parseEntry("TinyExpressionP4", "Formula", source, + new ParseOptions(true, false, false, true, java.util.Map.of())); + assertFalse(source, raw.ok()); + if (source.equals("/*😀*/1<2@")) { + assertEquals(source, 8, raw.diagnostics().farthestCp()); + } + for (var engine : P4ParserEngine.values()) { + assertThrows(source + "/" + engine, IllegalArgumentException.class, + () -> P4ParserEngine.with(engine, () -> P4PreferredAstMapper.parseDetailed(source))); + } + } + } + + @Test + public void completeDocumentBranchesKeepOneDeclarationSetAndOwnedExpressionPositions() throws Exception { + var fixture = Path.of("rust/tinyexpression-rs/tests/fixtures/root-document-dispatch.tsv"); + for (String line : Files.readAllLines(fixture)) { + if (line.isEmpty() || line.startsWith("#")) continue; + var fields = line.split("\t", -1); + assertEquals(line, 9, fields.length); + var type = fields[2].equals("string") ? org.unlaxer.tinyexpression.parser.ExpressionTypes.string + : org.unlaxer.tinyexpression.parser.ExpressionTypes._boolean; + for (var engine : P4ParserEngine.values()) { + var parsed = P4ParserEngine.with(engine, () -> P4PreferredAstMapper.parseDetailed(fields[1], type)); + var formula = (TinyExpressionP4AST.FormulaExpr) parsed.ast(); + assertEquals(fields[0], Integer.parseInt(fields[7]), formula.declarations().size()); + assertEquals(fields[0], Integer.parseInt(fields[8]), formula.methods().size()); + assertEquals(fields[0], fields[4], formula.expression().value().getClass().getSimpleName()); + assertArrayEquals(fields[0], new int[] {Integer.parseInt(fields[5]), Integer.parseInt(fields[6])}, + parsed.sourceText().spanOf(formula.expression()).orElseThrow()); + assertArrayEquals(fields[0], new int[] {0, fields[1].codePointCount(0, fields[1].length())}, + parsed.sourceText().spanOf(formula).orElseThrow()); + var calculator = P4ParserEngine.with(engine, () -> + org.unlaxer.tinyexpression.loader.model.CalculatorCreatorRegistry.p4AstEvaluatorCreator().create( + new org.unlaxer.tinyexpression.Source(fields[1]), "RootDocument", + new org.unlaxer.tinyexpression.evaluator.javacode.SpecifiedExpressionTypes(type, + org.unlaxer.tinyexpression.parser.ExpressionTypes._float), getClass().getClassLoader())); + P4ParserEngine.with(engine, () -> P4PreferredAstMapper.parseDetailed("'different😀'")); + assertEquals(fields[0], fields[3], String.valueOf(calculator.apply( + org.unlaxer.tinyexpression.CalculationContext.newContext()))); + assertEquals(fields[0], "p4-typed", calculator.getObject("_astEvaluatorRuntime", String.class)); + assertEquals(fields[0], Boolean.FALSE, calculator.getObject("_astEvaluatorGeneratedEmbeddedBridgeUsed", Boolean.class)); + assertNull(fields[0], calculator.getObject("_p4FallbackReason", String.class)); + assertEquals(fields[0], fields[1].substring(fields[1].offsetByCodePoints(0, Integer.parseInt(fields[5])), + fields[1].offsetByCodePoints(0, Integer.parseInt(fields[6]))), + parsed.sourceText().text(formula.expression())); + } + } + } + + @Test + public void losingFormulaBranchesRollBackScopesReferencesAndCommittedCst() { + var parser = org.unlaxer.tinyexpression.generated.p4.TinyExpressionP4Parsers.getRootParser(); + for (String source : List.of("var $n as number set 1;$n<2", "var $n as number set 1;$n<2 @", + "var $n as number set 1;$n<2 float unused($x as number){$x} @")) { + var raw = TinyExpressionP4Parser.parseEntry("TinyExpressionP4", "Formula", source, + new ParseOptions(true, false, false, true, java.util.Map.of())); + assertEquals(source, !source.endsWith("@"), raw.ok()); + assertEquals(source, raw.ok() ? 1 : 0, raw.scope().declarations().size()); + assertEquals(source, raw.ok() ? 1 : 0, raw.scope().references().size()); + assertEquals(source, raw.ok() ? 1L : 0L, + raw.captures().stream().filter(c -> c.name().equals("expression")).count()); + if (!raw.ok()) assertTrue(source, raw.captures().isEmpty()); + try (var context = new org.unlaxer.context.ParseContext(org.unlaxer.StringSource.createRootSource(source))) { + org.unlaxer.dsl.runtime.ScopeStore.registerDispatcher(context); + var parsed = parser.parse(context); + assertEquals(source, !source.endsWith("@"), parsed.isSucceeded()); + assertEquals(source, 0, org.unlaxer.dsl.runtime.ScopeStore.currentScopeDepth(context)); + assertEquals(source, parsed.isSucceeded() ? 1 : 0, + org.unlaxer.dsl.runtime.ScopeStore.getAllDeclarations(context).size()); + assertEquals(source, parsed.isSucceeded() ? 1 : 0, + org.unlaxer.dsl.runtime.ScopeStore.getAllReferences(context).size()); + if (parsed.isSucceeded()) { + var formula = (TinyExpressionP4AST.FormulaExpr) + org.unlaxer.tinyexpression.generated.p4.TinyExpressionP4Mapper.mapParsedToken( + context.getCurrent().getTokens().get(0), "FormulaExpr").ast(); + assertEquals(source, 1, formula.declarations().size()); + } else { + assertEquals(source, 0, context.getPosition(org.unlaxer.TokenKind.consumed).value()); + } + } + } + } + + private static void compareSpans(String label, Object expected, Object actual, + java.util.Map spans, P4SourceText source) throws Exception { + if (expected instanceof TinyExpressionP4AST) { + assertArrayEquals(label + "/" + expected.getClass().getSimpleName(), spans.get(expected), + source.spanOf(actual).orElse(null)); + for (RecordComponent component : expected.getClass().getRecordComponents()) { + compareSpans(label, component.getAccessor().invoke(expected), component.getAccessor().invoke(actual), spans, source); + } + } else if (expected instanceof List list) { + List other = (List) actual; + for (int index = 0; index < list.size(); index++) compareSpans(label, list.get(index), other.get(index), spans, source); + } else if (expected instanceof Optional optional && optional.isPresent()) { + compareSpans(label, optional.orElseThrow(), ((Optional) actual).orElseThrow(), spans, source); + } + } +} diff --git a/tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf b/tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf index 03515833..2d0f647f 100644 --- a/tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf +++ b/tools/tinyexpression-p4-lsp-vscode/grammar/tinyexpression-p4.ubnf @@ -28,8 +28,16 @@ grammar TinyExpressionP4 { @whitespace(layout.SPACES_AND_COMMENTS) @scopeTree(mode=lexical) @mapping(FormulaExpr, params=[imports, declarations, expression, methods, codeBlocks]) + // Recognize the prologue once. EOF belongs to each ordered tail branch: a short + // prefix rolls back inside this Formula, preserving one shared declaration scope. Formula ::= { CodeBlock @codeBlocks } { ImportDeclaration @imports } { VariableDeclaration @declarations } - { Annotation } Expression @expression { MethodDeclaration @methods } EOF ; + { Annotation } + ( NumberRootExpression @expression { MethodDeclaration @methods } EOF + | BooleanRootExpression @expression { MethodDeclaration @methods } EOF + | StringRootExpression @expression { MethodDeclaration @methods } EOF + | ObjectRootExpression @expression { MethodDeclaration @methods } EOF + | MethodRootExpression @expression { MethodDeclaration @methods } EOF + | ParenthesizedRootExpression @expression { MethodDeclaration @methods } EOF ) ; // ── Fenced Java code block ───────────────────────────────────────────────── // Syntax: ```scheme:JavaClassName\n...\n``` @@ -654,8 +662,8 @@ grammar TinyExpressionP4 { // ── Top-level expression ─────────────────────────────────────────────────── - // NumberExpression first: matches hand-written ExpressionsParser ordering. - // NumberExpression consumes "$a+$b" fully; BooleanExpression would only consume "$a". + // Nested expressions retain the existing PEG choice: making every argument's + // dispatch longest repeatedly explores the other families inside recursive calls. @mapping(ExpressionExpr, params=[value]) Expression ::= NumberExpression @value @@ -664,4 +672,25 @@ grammar TinyExpressionP4 { | ObjectExpression @value | MethodInvocation @value | '(' Expression @value ')' ; + + // The family wrappers deliberately share ExpressionExpr; the public AST schema and + // nested Expression's PEG priority stay unchanged. Formula owns the EOF commitment. + @mapping(ExpressionExpr, params=[value]) + NumberRootExpression ::= NumberExpression @value ; + + @mapping(ExpressionExpr, params=[value]) + BooleanRootExpression ::= BooleanExpression @value ; + + @mapping(ExpressionExpr, params=[value]) + StringRootExpression ::= StringExpression @value ; + + @mapping(ExpressionExpr, params=[value]) + ObjectRootExpression ::= ObjectExpression @value ; + + @mapping(ExpressionExpr, params=[value]) + MethodRootExpression ::= MethodInvocation @value ; + + @mapping(ExpressionExpr, params=[value]) + ParenthesizedRootExpression ::= '(' Expression @value ')' ; + } From 1087ff24ea35a904dd875939613387f419cdc0e5 Mon Sep 17 00:00:00 2001 From: opaopa6969 Date: Sat, 17 Oct 2026 09:39:10 +0900 Subject: [PATCH 4/5] test: align layout snapshot with single-root grammar --- scripts/test_ubnfc_layout.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/test_ubnfc_layout.py b/scripts/test_ubnfc_layout.py index 05db8574..7fccc2ac 100644 --- a/scripts/test_ubnfc_layout.py +++ b/scripts/test_ubnfc_layout.py @@ -27,8 +27,8 @@ def rejects(self): LAYOUT.prepare(self.source, self.destination) self.assertFalse(self.destination.exists(), "reject before publishing the derived grammar") - def test_exact_snapshot_restores_the_pinned_old_grammar(self): - self.assertEqual("4a02d31de4e646a0664fd78a4b77ff2e145e7af7dde83a209e244e38298e962a", + def test_exact_snapshot_matches_the_pinned_compatibility_grammar(self): + self.assertEqual("91a0d150e53a0c901498979ca720f4c8b07040129a1427a030a3f18f3850ac65", LAYOUT.prepare(self.source, self.destination)) self.assertNotIn("pkg:", self.destination.read_text()) From 935d75a3d1fd9f320d563ccc11a1ffc363bb3284 Mon Sep 17 00:00:00 2001 From: opaopa6969 Date: Sat, 17 Oct 2026 09:44:19 +0900 Subject: [PATCH 5/5] fix(catalog): classify double operators at either failure boundary --- catalog/fixtures/operator-diagnostics.json | 136 ++++++++++++++++++ catalog/scripts/catalog-lib.mjs | 7 + playground/scripts/check.mjs | 26 +++- playground/src/diagnostics.js | 6 +- .../lsp/p4/CatalogProvider.java | 9 ++ .../p4/TinyExpressionP4LanguageServerExt.java | 4 + ...inyExpressionP4OperatorDiagnosticTest.java | 74 ++++++++++ 7 files changed, 259 insertions(+), 3 deletions(-) create mode 100644 catalog/fixtures/operator-diagnostics.json create mode 100644 tools/tinyexpression-p4-lsp-vscode/src/test/java/org/unlaxer/tinyexpression/lsp/p4/TinyExpressionP4OperatorDiagnosticTest.java diff --git a/catalog/fixtures/operator-diagnostics.json b/catalog/fixtures/operator-diagnostics.json new file mode 100644 index 00000000..265adc2f --- /dev/null +++ b/catalog/fixtures/operator-diagnostics.json @@ -0,0 +1,136 @@ +[ + { + "input": "$a&&$b", + "operator": "&&", + "failureCp": 3 + }, + { + "input": "$a && $b", + "operator": "&&", + "failureCp": 4 + }, + { + "input": "true&&false", + "operator": "&&", + "failureCp": 5 + }, + { + "input": "true && false", + "operator": "&&", + "failureCp": 6 + }, + { + "input": "1&&2", + "operator": "&&", + "failureCp": 1 + }, + { + "input": "1 && 2", + "operator": "&&", + "failureCp": 2 + }, + { + "input": "/*😀*/\r\ntrue && false", + "operator": "&&", + "failureCp": 13 + }, + { + "input": "/* x */ true && false", + "operator": "&&", + "failureCp": 14 + }, + { + "input": "&& true", + "operator": "&&", + "failureCp": 0 + }, + { + "input": "$a||$b", + "operator": "||", + "failureCp": 3 + }, + { + "input": "$a || $b", + "operator": "||", + "failureCp": 4 + }, + { + "input": "true||false", + "operator": "||", + "failureCp": 5 + }, + { + "input": "true || false", + "operator": "||", + "failureCp": 6 + }, + { + "input": "1||2", + "operator": "||", + "failureCp": 1 + }, + { + "input": "1 || 2", + "operator": "||", + "failureCp": 2 + }, + { + "input": "/*😀*/\r\ntrue || false", + "operator": "||", + "failureCp": 13 + }, + { + "input": "/* x */ true || false", + "operator": "||", + "failureCp": 14 + }, + { + "input": "|| true", + "operator": "||", + "failureCp": 0 + }, + { + "input": "\"&&\" +", + "operator": null + }, + { + "input": "\"||\" +", + "operator": null + }, + { + "input": "true &", + "operator": null + }, + { + "input": "false |", + "operator": null + }, + { + "input": "\"&&\" @", + "operator": null + }, + { + "input": "/* && */ 1 +", + "operator": null + }, + { + "input": "true & false", + "operator": null + }, + { + "input": "true | false", + "operator": null + }, + { + "input": "'😀 &&' +", + "operator": null + }, + { + "input": "true & & false", + "operator": null + }, + { + "input": "false | | true", + "operator": null + } +] diff --git a/catalog/scripts/catalog-lib.mjs b/catalog/scripts/catalog-lib.mjs index 12da73bc..e37bd081 100644 --- a/catalog/scripts/catalog-lib.mjs +++ b/catalog/scripts/catalog-lib.mjs @@ -113,6 +113,13 @@ export function countsOf(catalog) { return counts; } +/** The unsupported double operator touching a failure UTF-16 offset, without scanning elsewhere. */ +export function operatorAtFailure(text, offset) { + const c = text[offset]; + if (c !== '&' && c !== '|') return null; + return text[offset + 1] === c || (offset > 0 && text[offset - 1] === c) ? c + c : null; +} + /** * Maps a parser failure to a TE code with the catalog's diagnosticRules. `expected` is the * list of terminals the parser could accept at the failure (without quotes), `snippet` the diff --git a/playground/scripts/check.mjs b/playground/scripts/check.mjs index c020299c..004c53f3 100644 --- a/playground/scripts/check.mjs +++ b/playground/scripts/check.mjs @@ -10,7 +10,7 @@ import assert from 'node:assert/strict'; import Ajv2020 from 'ajv/dist/2020.js'; import { loadTinyExpression } from '../../rust/examples/wasm/tinyexpression.mjs'; import { toRequest, emptyState } from '../src/context.js'; -import { diagnose, describeFailure } from '../src/diagnostics.js'; +import { diagnose, describeFailure, parseDiagnostic } from '../src/diagnostics.js'; import { EXAMPLES, FORMULA_INFO_SAMPLE } from '../src/examples.js'; import { prepareTrace, stepEvents, stackAt, failingNode } from '../src/trace.js'; import { validate as validateGenerated } from '../src/generated/catalog-validator.js'; @@ -76,6 +76,30 @@ assert.equal(semi.message, '[TE006] 文末のセミコロンが必要です。 // The parser reports the failure after the whitespace: at the start of the next line's `$x`. assert.equal(semi.from, "var $x as number set 1 description='x'\n".length); +// Shared Java LSP/wasm oracle: classify only a double operator touching this failure. +const operatorCases = JSON.parse(await readFile(join(root, 'catalog', 'fixtures', 'operator-diagnostics.json'), 'utf8')); +for (const row of operatorCases) { + const actual = codeOf(row.input, ['a', 'b']); + assert.equal(actual.includes('TE023'), row.operator != null, JSON.stringify({ row, actual })); + if (row.operator != null) { + const failure = te.check(row.input).result; + assert.equal(failure.stage, 'parse', row.input); + assert.equal(failure.diagnostic.offset, row.failureCp, row.input); + const original = JSON.stringify(failure.diagnostic); + const located = parseDiagnostic(catalog, row.input, failure.diagnostic); + assert.equal(located.from, [...row.input].slice(0, failure.diagnostic.offset).join('').length, row.input); + assert.equal(JSON.stringify(failure.diagnostic), original, 'catalog lookup does not rewrite parser diagnostics'); + const first = row.input.indexOf(row.operator); + for (const position of [first, first + 1]) { + const offset = [...row.input.slice(0, position)].length; + const synthetic = parseDiagnostic(catalog, row.input, { offset, expected: [] }); + assert.equal(synthetic.code, 'TE023', JSON.stringify({ row, position })); + assert.equal(synthetic.from, position, 'display position still comes from the parser'); + } + } +} +console.log(`operator diagnostic oracle: ${operatorCases.length} shared inputs, real wasm plus both boundary positions`); + // 4. runtime error texts const zero = te.evalContext({ formula: '1 / 0', resultType: 'int', numberType: 'int' }).result; assert.equal(describeFailure(catalog, '1 / 0', zero).code, 'ArithmeticException'); diff --git a/playground/src/diagnostics.js b/playground/src/diagnostics.js index 951a2044..fee477d0 100644 --- a/playground/src/diagnostics.js +++ b/playground/src/diagnostics.js @@ -1,6 +1,6 @@ // Diagnostics from `te_check` with TE codes and texts from the language catalog (issue #201). // Pure (no DOM): the editor's linter and scripts/check.mjs both call it. -import { resolveErrorCode, lookupVariable, ja } from '../../catalog/scripts/catalog-lib.mjs'; +import { resolveErrorCode, lookupVariable, ja, operatorAtFailure } from '../../catalog/scripts/catalog-lib.mjs'; import { codePointToIndex, declaredVariables } from './context.js'; import { blankCodeBlocks } from './code-block.js'; @@ -25,7 +25,9 @@ export function fullMessage(entry) { /** A parse diagnostic (Rust JSON) as a located, coded diagnostic. */ export function parseDiagnostic(catalog, formula, diagnostic) { const from = Math.min(codePointToIndex(formula, diagnostic.offset), formula.length); - const snippet = formula.slice(from, from + 20).trim(); + // The parser may consume the valid first '&'/'|' before failing at the second. + // Normalize only the catalog lookup; keep the published parser position and expectations. + const snippet = operatorAtFailure(formula, from) ?? formula.slice(from, from + 20).trim(); const leading = formula.slice(0, from); const code = resolveErrorCode(catalog, { expected: diagnostic.expected ?? [], snippet, leading }); const entry = errorEntry(catalog, code); diff --git a/tools/tinyexpression-p4-lsp-vscode/src/main/java/org/unlaxer/tinyexpression/lsp/p4/CatalogProvider.java b/tools/tinyexpression-p4-lsp-vscode/src/main/java/org/unlaxer/tinyexpression/lsp/p4/CatalogProvider.java index 29e03adb..0581819f 100644 --- a/tools/tinyexpression-p4-lsp-vscode/src/main/java/org/unlaxer/tinyexpression/lsp/p4/CatalogProvider.java +++ b/tools/tinyexpression-p4-lsp-vscode/src/main/java/org/unlaxer/tinyexpression/lsp/p4/CatalogProvider.java @@ -289,6 +289,15 @@ public String resolveCode(String hint, String snippet, String leading) { return defaultErrorCode; } + /** Double operator touching a failure UTF-16 offset; never searches unrelated source text. */ + static String operatorAtFailure(String text, int offset) { + if (offset < 0 || offset >= text.length()) return null; + char c = text.charAt(offset); + if (c != '&' && c != '|') return null; + return offset + 1 < text.length() && text.charAt(offset + 1) == c + || offset > 0 && text.charAt(offset - 1) == c ? "" + c + c : null; + } + /** The catalog's variables as the generated server's {@link CatalogResolver}. */ public CatalogResolver variableResolver() { List entries = new ArrayList<>(variables.size()); diff --git a/tools/tinyexpression-p4-lsp-vscode/src/main/java/org/unlaxer/tinyexpression/lsp/p4/TinyExpressionP4LanguageServerExt.java b/tools/tinyexpression-p4-lsp-vscode/src/main/java/org/unlaxer/tinyexpression/lsp/p4/TinyExpressionP4LanguageServerExt.java index 98d89645..b23025a6 100644 --- a/tools/tinyexpression-p4-lsp-vscode/src/main/java/org/unlaxer/tinyexpression/lsp/p4/TinyExpressionP4LanguageServerExt.java +++ b/tools/tinyexpression-p4-lsp-vscode/src/main/java/org/unlaxer/tinyexpression/lsp/p4/TinyExpressionP4LanguageServerExt.java @@ -824,6 +824,10 @@ private void publishEnrichedDiagnostics(String uri, String content, d.setSource("tinyexpression-p4"); String hint = failures.expectedHints().isEmpty() ? "" : failures.expectedHints().get(0); + // Recognition may fail at either character of &&/||. Only catalog classification + // uses this local hint; the parser offset and expectedHints metadata stay untouched. + String operator = CatalogProvider.operatorAtFailure(content, offset); + if (operator != null) hint = "Unexpected " + operator; String leading = content.substring(0, offset); String code = resolveCode(hint, snippet, leading); d.setCode(Either.forLeft(code)); diff --git a/tools/tinyexpression-p4-lsp-vscode/src/test/java/org/unlaxer/tinyexpression/lsp/p4/TinyExpressionP4OperatorDiagnosticTest.java b/tools/tinyexpression-p4-lsp-vscode/src/test/java/org/unlaxer/tinyexpression/lsp/p4/TinyExpressionP4OperatorDiagnosticTest.java new file mode 100644 index 00000000..abee83c4 --- /dev/null +++ b/tools/tinyexpression-p4-lsp-vscode/src/test/java/org/unlaxer/tinyexpression/lsp/p4/TinyExpressionP4OperatorDiagnosticTest.java @@ -0,0 +1,74 @@ +package org.unlaxer.tinyexpression.lsp.p4; + +import static org.junit.Assert.*; +import com.google.gson.JsonParser; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.concurrent.CompletableFuture; +import org.eclipse.lsp4j.*; +import org.junit.Test; + +/** The same invalid-operator corpus is consumed by the real wasm playground. */ +public class TinyExpressionP4OperatorDiagnosticTest { + private record NativeFailure(int cp, List hints) {} + private static final class ProbeServer extends TinyExpressionP4LanguageServerExt { + NativeFailure nativeFailure(String text) { + try (var context = createParseContext(createRootSource(text))) { + org.unlaxer.dsl.runtime.ScopeStore.registerDispatcher(context); + org.unlaxer.tinyexpression.generated.p4.TinyExpressionP4Parsers.getRootParser().parse(context); + var failure = context.getParseFailureDiagnostics(); + var hints = failure.getExpectedHintCandidates().stream() + .map(org.unlaxer.context.ParseFailureDiagnostics.ExpectedHintCandidate::getDisplayHint) + .filter(h -> h != null && !h.isBlank()).distinct().toList(); + if (hints.isEmpty() && !failure.getExpectedParsers().isEmpty()) + hints = List.of("Expected: " + failure.getExpectedParsers().get(0)); + return new NativeFailure(failure.getFarthestOffset(), hints); + } + } + } + @Test public void realDiagnosticsClassifyOnlyTheOperatorAtTheFailure() throws Exception { + var server = new ProbeServer(); + var published = new ArrayList(); + server.connect(new org.eclipse.lsp4j.services.LanguageClient() { + public void telemetryEvent(Object ignored) {} + public void publishDiagnostics(PublishDiagnosticsParams params) { published.add(params); } + public void showMessage(MessageParams ignored) {} + public CompletableFuture showMessageRequest(ShowMessageRequestParams ignored) { return CompletableFuture.completedFuture(null); } + public void logMessage(MessageParams ignored) {} + }); + var rows = JsonParser.parseString(Files.readString(Path.of("../../catalog/fixtures/operator-diagnostics.json"))).getAsJsonArray(); + var errors = new ArrayList(); + for (var raw : rows) { + var row = raw.getAsJsonObject(); + String source = row.get("input").getAsString(); + server.parseDocument("file:///operator-diagnostic.tinyexp", source); + var diagnostics = published.get(published.size() - 1).getDiagnostics(); + boolean expected = !row.get("operator").isJsonNull(); + boolean actual = diagnostics.stream().anyMatch(d -> d.getCode() != null && d.getCode().isLeft() && "TE023".equals(d.getCode().getLeft())); + if (expected) { + int cp = row.get("failureCp").getAsInt(); + int offset = source.offsetByCodePoints(0, cp); + String before = source.substring(0, offset); + int line = (int) before.chars().filter(c -> c == '\n').count(); + int column = offset - before.lastIndexOf('\n') - 1; + var syntax = diagnostics.stream().filter(d -> "tinyexpression-p4".equals(d.getSource())).findFirst().orElseThrow(); + assertEquals(source, new Position(line, column), syntax.getRange().getStart()); + var nativeFailure = server.nativeFailure(source); + assertEquals(source, cp, nativeFailure.cp()); + var data = (Map) syntax.getData(); + assertEquals(source, offset, data.get("offset")); + assertEquals(source, nativeFailure.hints(), data.get("expectedHints")); + String op = row.get("operator").getAsString(); + int first = source.indexOf(op); + assertEquals(op, CatalogProvider.operatorAtFailure(source, first)); + assertEquals(op, CatalogProvider.operatorAtFailure(source, first + 1)); + } + System.out.println("operator oracle: " + row + " => TE023=" + actual); + if (expected != actual) errors.add(row + " => " + diagnostics); + } + assertEquals(String.join("\n", errors), List.of(), errors); + } +}