From 2b876da56fd8471ee4d6b8dd4bc5041ea1974d64 Mon Sep 17 00:00:00 2001 From: Yehuda Katz Date: Mon, 10 Jun 2019 12:13:29 -0700 Subject: [PATCH] Some function stuff It's not done, but honestly it's getting too tedious. I will need to rethink how I'm doing it. --- Cargo.lock | 130 +- Cargo.toml | 1 + src/parser.rs | 65 +- src/parser/ast.rs | 910 +- src/parser/ast/expression.rs | 541 + src/parser/ast/expression_builder.rs | 401 + src/parser/ast/module.rs | 119 + src/parser/ast/module_builder.rs | 77 + src/parser/ast/parser_utils.rs | 5 + src/parser/lexer.rs | 559 +- src/parser/parser.lalrpop | 149 +- src/parser/parser.rs | 15435 +++++++++++++++++++++---- tests/json_roundtrip.out | 2 +- 13 files changed, 14927 insertions(+), 3467 deletions(-) create mode 100644 src/parser/ast/expression.rs create mode 100644 src/parser/ast/expression_builder.rs create mode 100644 src/parser/ast/module.rs create mode 100644 src/parser/ast/module_builder.rs create mode 100644 src/parser/ast/parser_utils.rs diff --git a/Cargo.lock b/Cargo.lock index 368af3e0ef..a5e3032ab2 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -84,7 +84,7 @@ name = "atty" version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.55 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", "termion 1.5.2 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -102,7 +102,7 @@ dependencies = [ "autocfg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "backtrace-sys 0.1.28 (registry+https://github.com/rust-lang/crates.io-index)", "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.55 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", "rustc-demangle 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -112,7 +112,7 @@ version = "0.1.28" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cc 1.0.37 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.55 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -240,7 +240,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.55 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -304,7 +304,7 @@ dependencies = [ "clicolors-control 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "encode_unicode 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.55 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", "regex 1.1.6 (registry+https://github.com/rust-lang/crates.io-index)", "termios 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -357,7 +357,7 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "core-foundation-sys 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.55 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -498,7 +498,7 @@ name = "ctrlc" version = "3.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "nix 0.14.0 (registry+https://github.com/rust-lang/crates.io-index)", + "nix 0.14.1 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -508,7 +508,7 @@ version = "0.4.18" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cc 1.0.37 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.55 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", "libz-sys 1.0.25 (registry+https://github.com/rust-lang/crates.io-index)", "openssl-sys 0.9.47 (registry+https://github.com/rust-lang/crates.io-index)", "pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)", @@ -528,7 +528,7 @@ dependencies = [ "enumset 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "hashbrown 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.55 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "maplit 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", "num 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -648,7 +648,7 @@ name = "directories" version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.55 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -657,7 +657,7 @@ name = "dirs" version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.55 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", "redox_users 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -677,7 +677,7 @@ version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.55 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", "redox_users 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -871,7 +871,7 @@ version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "crc32fast 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.55 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", "miniz-sys 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", "miniz_oxide_c_api 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1023,7 +1023,7 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.55 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", "libgit2-sys 0.7.11 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "openssl-probe 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1156,7 +1156,7 @@ name = "iovec" version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.55 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1171,7 +1171,7 @@ version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.55 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", "redox_syscall 0.1.54 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1251,7 +1251,7 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.55" +version = "0.2.58" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -1261,7 +1261,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cc 1.0.37 (registry+https://github.com/rust-lang/crates.io-index)", "curl-sys 0.4.18 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.55 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", "libssh2-sys 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", "libz-sys 1.0.25 (registry+https://github.com/rust-lang/crates.io-index)", "openssl-sys 0.9.47 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1274,7 +1274,7 @@ version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cc 1.0.37 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.55 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", "libz-sys 1.0.25 (registry+https://github.com/rust-lang/crates.io-index)", "openssl-sys 0.9.47 (registry+https://github.com/rust-lang/crates.io-index)", "pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1287,7 +1287,7 @@ version = "1.0.25" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cc 1.0.37 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.55 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", "pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)", "vcpkg 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1365,7 +1365,7 @@ name = "malloc_buf" version = "0.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.55 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1383,7 +1383,7 @@ name = "memchr" version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.55 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1416,7 +1416,7 @@ version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cc 1.0.37 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.55 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1434,7 +1434,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cc 1.0.37 (registry+https://github.com/rust-lang/crates.io-index)", "crc 1.8.1 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.55 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", "miniz_oxide 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1447,7 +1447,7 @@ dependencies = [ "fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", "iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.55 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "miow 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", "net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1472,7 +1472,7 @@ version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.55 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "openssl 0.10.23 (registry+https://github.com/rust-lang/crates.io-index)", "openssl-probe 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1489,7 +1489,7 @@ version = "5.99.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cc 1.0.37 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.55 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", "pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1499,19 +1499,19 @@ version = "0.2.33" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.55 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "nix" -version = "0.14.0" +version = "0.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", "cc 1.0.37 (registry+https://github.com/rust-lang/crates.io-index)", "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.55 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", "void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1576,6 +1576,7 @@ dependencies = [ "nom 5.0.0-beta1 (registry+https://github.com/rust-lang/crates.io-index)", "ordered-float 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", "pancurses 0.16.1 (registry+https://github.com/rust-lang/crates.io-index)", + "pretty 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)", "pretty_assertions 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", "pretty_env_logger 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "prettyprint 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1666,7 +1667,7 @@ name = "num_cpus" version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.55 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1716,7 +1717,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.55 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", "onig_sys 69.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1738,7 +1739,7 @@ dependencies = [ "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", "foreign-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.55 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", "openssl-sys 0.9.47 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1754,7 +1755,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "autocfg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "cc 1.0.37 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.55 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", "pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)", "vcpkg 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1793,7 +1794,7 @@ name = "pancurses" version = "0.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.55 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "ncurses 5.99.0 (registry+https://github.com/rust-lang/crates.io-index)", "pdcurses-sys 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1824,7 +1825,7 @@ name = "parking_lot_core" version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.55 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", "smallvec 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1838,7 +1839,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", "cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.55 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", "redox_syscall 0.1.54 (registry+https://github.com/rust-lang/crates.io-index)", "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1860,7 +1861,7 @@ version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cc 1.0.37 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.55 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1935,6 +1936,14 @@ dependencies = [ "xml-rs 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "pretty" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "typed-arena 1.4.1 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "pretty_assertions" version = "0.6.1" @@ -2044,7 +2053,7 @@ version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "autocfg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.55 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", "rand_chacha 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "rand_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "rand_hc 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2099,7 +2108,7 @@ name = "rand_jitter" version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.55 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", "rand_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -2111,7 +2120,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)", "fuchsia-cprng 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.55 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", "rand_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "rdrand 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2151,7 +2160,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "crossbeam-deque 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.55 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", "num_cpus 1.10.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -2289,10 +2298,10 @@ version = "4.1.0" source = "git+https://github.com/kkawakam/rustyline.git#cad8b2fc0b253831aaff143bdce5d2abec66a9c9" dependencies = [ "dirs 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.55 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "memchr 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "nix 0.14.0 (registry+https://github.com/rust-lang/crates.io-index)", + "nix 0.14.1 (registry+https://github.com/rust-lang/crates.io-index)", "unicode-segmentation 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "unicode-width 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "utf8parse 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2348,7 +2357,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "core-foundation 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", "core-foundation-sys 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.55 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", "security-framework-sys 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -2488,7 +2497,7 @@ name = "signal-hook" version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.55 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", "signal-hook-registry 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -2498,7 +2507,7 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "arc-swap 0.3.11 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.55 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -2558,7 +2567,7 @@ version = "0.1.19" source = "git+https://github.com/jonathandturner/rust-subprocess.git?branch=is_already_escaped#6d184a680d825da4f365c063db1c4f9db3d64ba6" dependencies = [ "crossbeam-utils 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.55 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -2620,7 +2629,7 @@ version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.55 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", "rayon 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -2631,7 +2640,7 @@ version = "3.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.55 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", "redox_syscall 0.1.54 (registry+https://github.com/rust-lang/crates.io-index)", "remove_dir_all 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2654,7 +2663,7 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.55 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -2671,7 +2680,7 @@ name = "termion" version = "1.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.55 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", "numtoa 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "redox_syscall 0.1.54 (registry+https://github.com/rust-lang/crates.io-index)", "redox_termios 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2682,7 +2691,7 @@ name = "termios" version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.55 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -2706,7 +2715,7 @@ name = "time" version = "0.1.42" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.55 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", "redox_syscall 0.1.54 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -2914,6 +2923,11 @@ dependencies = [ "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "typed-arena" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "ucd-util" version = "0.1.3" @@ -3118,7 +3132,7 @@ name = "xcb" version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.55 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -3285,7 +3299,7 @@ dependencies = [ "checksum lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bc5729f27f159ddd61f4df6228e827e86643d4d3e7c32183cb30a1c08f604a14" "checksum lazycell 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b294d6fa9ee409a054354afc4352b0b9ef7ca222c69b8812cbea9e7d2bf3783f" "checksum lexical-core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3e82e023e062f1d25f807ad182008fba1b46538e999f908a08cc0c29e084462e" -"checksum libc 0.2.55 (registry+https://github.com/rust-lang/crates.io-index)" = "42914d39aad277d9e176efbdad68acb1d5443ab65afe0e0e4f0d49352a950880" +"checksum libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)" = "6281b86796ba5e4366000be6e9e18bf35580adf9e63fbe2294aadb587613a319" "checksum libgit2-sys 0.7.11 (registry+https://github.com/rust-lang/crates.io-index)" = "48441cb35dc255da8ae72825689a95368bf510659ae1ad55dc4aa88cb1789bf1" "checksum libssh2-sys 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "126a1f4078368b163bfdee65fbab072af08a1b374a5551b21e87ade27b1fbf9d" "checksum libz-sys 1.0.25 (registry+https://github.com/rust-lang/crates.io-index)" = "2eb5e43362e38e2bca2fd5f5134c4d4564a23a5c28e9b95411652021a8675ebe" @@ -3312,7 +3326,7 @@ dependencies = [ "checksum native-tls 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "4b2df1a4c22fd44a62147fd8f13dd0f95c9d8ca7b2610299b2a2f9cf8964274e" "checksum ncurses 5.99.0 (registry+https://github.com/rust-lang/crates.io-index)" = "15699bee2f37e9f8828c7b35b2bc70d13846db453f2d507713b758fabe536b82" "checksum net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)" = "42550d9fb7b6684a6d404d9fa7250c2eb2646df731d1c06afc06dcee9e1bcf88" -"checksum nix 0.14.0 (registry+https://github.com/rust-lang/crates.io-index)" = "0d10caafde29a846a82ae0af70414e4643e072993441033b2c93217957e2f867" +"checksum nix 0.14.1 (registry+https://github.com/rust-lang/crates.io-index)" = "6c722bee1037d430d0f8e687bbdbf222f27cc6e4e68d5caf630857bb2b6dbdce" "checksum nodrop 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)" = "2f9667ddcc6cc8a43afc9b7917599d7216aa09c463919ea32c59ed6cac8bc945" "checksum nom 4.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "2ad2a91a8e869eeb30b9cb3119ae87773a8f4ae617f41b1eb9c154b2905f7bd6" "checksum nom 5.0.0-beta1 (registry+https://github.com/rust-lang/crates.io-index)" = "6527f311b2baba609e980e008460ab5ebff6d6da15213bb8eb193b7746eefa24" @@ -3354,6 +3368,7 @@ dependencies = [ "checksum pin-utils 0.1.0-alpha.4 (registry+https://github.com/rust-lang/crates.io-index)" = "5894c618ce612a3fa23881b152b608bafb8c56cfc22f434a3ba3120b40f7b587" "checksum pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)" = "676e8eb2b1b4c9043511a9b7bea0915320d7e502b0a079fb03f9635a5252b18c" "checksum plist 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "f4739851c08dd9a62a78beff2edf1a438517268b2c563c42fc6d9d3139e42d2a" +"checksum pretty 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f60c0d9f6fc88ecdd245d90c1920ff76a430ab34303fc778d33b1d0a4c3bf6d3" "checksum pretty_assertions 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)" = "3f81e1644e1b54f5a68959a29aa86cde704219254669da328ecfdf6a1f09d427" "checksum pretty_env_logger 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "df8b3f4e0475def7d9c2e5de8e5a1306949849761e107b360d03e98eafaffd61" "checksum prettyprint 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "2705417f8aa07cb6308db42e55623479c1c9667942a4d5e4174c684e5da5590d" @@ -3457,6 +3472,7 @@ dependencies = [ "checksum toml-query_derive 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3c99ca245ec273c7e75c8ee58f47b882d0146f3c2c8495158082c6671e8b5335" "checksum try-lock 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e604eb7b43c06650e854be16a2a03155743d3752dd1c943f6829e26b7a36e382" "checksum try_from 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "283d3b89e1368717881a9d51dad843cc435380d8109c9e47d38780a324698d8b" +"checksum typed-arena 1.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "c6c06a92aef38bb4dc5b0df00d68496fc31307c5344c867bb61678c6e1671ec5" "checksum ucd-util 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "535c204ee4d8434478593480b8f86ab45ec9aae0e83c568ca81abf0fd0e88f86" "checksum unicase 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7f4765f83163b74f957c797ad9253caf97f103fb064d3999aea9568d09fc8a33" "checksum unicase 2.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a84e5511b2a947f3ae965dcb29b13b7b1691b6e7332cf5dbc1744138d5acb7f6" diff --git a/Cargo.toml b/Cargo.toml index b4073679fd..f3849706d0 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -59,6 +59,7 @@ ctrlc = "3.1.3" ptree = "0.2" clipboard = "0.5" reqwest = "0.9" +pretty = "0.5.2" [dependencies.pancurses] version = "0.16" diff --git a/src/parser.rs b/src/parser.rs index da1d7ce88a..6e54183eb4 100644 --- a/src/parser.rs +++ b/src/parser.rs @@ -9,14 +9,33 @@ crate use ast::Pipeline; crate use registry::{Args, CommandConfig}; use crate::errors::ShellError; +use ast::Module; use lexer::Lexer; use log::trace; -use parser::PipelineParser; +use parser::{ModuleParser, ReplLineParser}; pub fn parse(input: &str) -> Result { let _ = pretty_env_logger::try_init(); - let parser = PipelineParser::new(); + let parser = ReplLineParser::new(); + let tokens = Lexer::new(input, false); + + trace!( + "Tokens: {:?}", + tokens.clone().collect::, _>>() + ); + + match parser.parse(tokens) { + Ok(val) => Ok(val), + Err(err) => Err(ShellError::parse_error(err)), + } +} + +#[allow(unused)] +pub fn parse_module(input: &str) -> Result { + let _ = pretty_env_logger::try_init(); + + let parser = ModuleParser::new(); let tokens = Lexer::new(input, false); trace!( @@ -62,6 +81,44 @@ mod tests { assert_eq!(parsed, expected); assert_eq!(printed, source); + + let span = expected.span; + + let expected_module = ModuleBuilder::spanned_items( + vec![Spanned::from_item(RawItem::Expression(expected), span)], + span.start, + span.end, + ); + + assert_parse_module(source, expected_module); + } + + fn assert_parse_module(source: &str, expected: Module) { + let parsed = match parse_module(source) { + Ok(p) => p, + Err(ShellError::Diagnostic(diag)) => { + use language_reporting::termcolor; + + let writer = termcolor::StandardStream::stdout(termcolor::ColorChoice::Auto); + let files = crate::parser::span::Files::new(source.to_string()); + + language_reporting::emit( + &mut writer.lock(), + &files, + &diag.diagnostic, + &language_reporting::DefaultConfig, + ) + .unwrap(); + + panic!("Test failed") + } + Err(err) => panic!("Something went wrong during parse: {:#?}", err), + }; + + let printed = parsed.print(); + + assert_eq!(parsed, expected); + assert_eq!(printed, source); } macro_rules! commands { @@ -214,4 +271,8 @@ mod tests { ], ) } + + use crate::parser::ast::{ModuleBuilder, RawItem}; + use crate::parser::lexer::Spanned; + } diff --git a/src/parser/ast.rs b/src/parser/ast.rs index b827cd5e78..4cf030bfeb 100644 --- a/src/parser/ast.rs +++ b/src/parser/ast.rs @@ -1,894 +1,16 @@ -use crate::parser::lexer::{Span, Spanned}; -use crate::prelude::*; -use adhoc_derive::FromStr; -use derive_new::new; -use getset::Getters; -use serde_derive::{Deserialize, Serialize}; -use std::io::Write; -use std::str::FromStr; - -#[derive(new)] -pub struct ExpressionBuilder { - #[new(default)] - pos: usize, -} - -#[allow(unused)] -impl ExpressionBuilder { - pub fn op(&mut self, input: impl Into) -> Spanned { - let input = input.into(); - - let (start, end) = self.consume(input.as_str()); - - self.pos = end; - - ExpressionBuilder::spanned_op(input, start, end) - } - - pub fn spanned_op(input: impl Into, start: usize, end: usize) -> Spanned { - Spanned { - span: Span::from((start, end)), - item: input.into(), - } - } - - pub fn string(&mut self, input: impl Into) -> Expression { - let input = input.into(); - - let (start, _) = self.consume("\""); - self.consume(&input); - let (_, end) = self.consume("\""); - self.pos = end; - - ExpressionBuilder::spanned_string(input, start, end) - } - - pub fn spanned_string(input: impl Into, start: usize, end: usize) -> Expression { - let input = input.into(); - - Expression { - span: Span::from((start, end)), - expr: RawExpression::Leaf(Leaf::String(input)), - } - } - - pub fn bare(&mut self, input: impl Into) -> Expression { - let input = input.into(); - - let (start, end) = self.consume(&input.body); - self.pos = end; - - ExpressionBuilder::spanned_bare(input, start, end) - } - - pub fn spanned_bare(input: impl Into, start: usize, end: usize) -> Expression { - let input = input.into(); - - Expression { - span: Span::from((start, end)), - expr: RawExpression::Leaf(Leaf::Bare(input)), - } - } - - pub fn boolean(&mut self, input: impl Into) -> Expression { - let boolean = input.into(); - - let (start, end) = match boolean { - true => self.consume("$yes"), - false => self.consume("$no"), - }; - - self.pos = end; - - ExpressionBuilder::spanned_boolean(boolean, start, end) - } - - pub fn spanned_boolean(input: impl Into, start: usize, end: usize) -> Expression { - let input = input.into(); - - Expression { - span: Span::from((start, end)), - expr: RawExpression::Leaf(Leaf::Boolean(input)), - } - } - - pub fn int(&mut self, input: impl Into) -> Expression { - let int = input.into(); - - let (start, end) = self.consume(&int.to_string()); - self.pos = end; - - ExpressionBuilder::spanned_int(int, start, end) - } - - pub fn spanned_int(input: impl Into, start: usize, end: usize) -> Expression { - let input = input.into(); - - Expression { - span: Span::from((start, end)), - expr: RawExpression::Leaf(Leaf::Int(input)), - } - } - - pub fn unit(&mut self, input: (impl Into, impl Into)) -> Expression { - let (int, unit) = (input.0.into(), input.1.into()); - - let (start, _) = self.consume(&int.to_string()); - let (_, end) = self.consume(&unit.to_string()); - self.pos = end; - - ExpressionBuilder::spanned_unit((int, unit), start, end) - } - - pub fn spanned_unit( - input: (impl Into, impl Into), - start: usize, - end: usize, - ) -> Expression { - let (int, unit) = (input.0.into(), input.1.into()); - - Expression { - span: Span::from((start, end)), - expr: RawExpression::Leaf(Leaf::Unit(int, unit)), - } - } - - pub fn flag(&mut self, input: impl Into) -> Expression { - let input = input.into(); - - let (start, _) = self.consume("--"); - let (_, end) = self.consume(&input); - self.pos = end; - - ExpressionBuilder::spanned_flag(input, start, end) - } - - pub fn spanned_flag(input: impl Into, start: usize, end: usize) -> Expression { - let input = input.into(); - - Expression { - span: Span::from((start, end)), - expr: RawExpression::Flag(Flag::Longhand(input)), - } - } - - pub fn shorthand(&mut self, input: impl Into) -> Expression { - let int = input.into(); - - let size = int.to_string().len(); - - let start = self.pos; - let end = self.pos + size + 1; - self.pos = end; - - ExpressionBuilder::spanned_shorthand(int, start, end) - } - - pub fn spanned_shorthand(input: impl Into, start: usize, end: usize) -> Expression { - let input = input.into(); - - Expression { - span: Span::from((start, end)), - expr: RawExpression::Flag(Flag::Shorthand(input)), - } - } - - pub fn parens( - &mut self, - input: impl FnOnce(&mut ExpressionBuilder) -> Expression, - ) -> Expression { - let (start, _) = self.consume("("); - let input = input(self); - let (_, end) = self.consume(")"); - self.pos = end; - - ExpressionBuilder::spanned_parens(input, start, end) - } - - pub fn spanned_parens(input: Expression, start: usize, end: usize) -> Expression { - Expression { - span: Span::from((start, end)), - expr: RawExpression::Parenthesized(Box::new(Parenthesized::new(input))), - } - } - - pub fn block(&mut self, input: &dyn Fn(&mut ExpressionBuilder) -> Expression) -> Expression { - let (start, _) = self.consume("{ "); - let input = input(self); - let (_, end) = self.consume(" }"); - self.pos = end; - - ExpressionBuilder::spanned_block(input, start, end) - } - - pub fn spanned_block(input: Expression, start: usize, end: usize) -> Expression { - Expression { - span: Span::from((start, end)), - expr: RawExpression::Block(Box::new(Block::new(input))), - } - } - - pub fn binary( - &mut self, - input: ( - &dyn Fn(&mut ExpressionBuilder) -> Expression, - &dyn Fn(&mut ExpressionBuilder) -> Spanned, - &dyn Fn(&mut ExpressionBuilder) -> Expression, - ), - ) -> Expression { - let start = self.pos; - - let left = (input.0)(self); - self.consume(" "); - let operator = (input.1)(self); - self.consume(" "); - let right = (input.2)(self); - - let end = self.pos; - - ExpressionBuilder::spanned_binary((left, operator, right), start, end) - } - - pub fn spanned_binary( - input: ( - impl Into, - impl Into>, - impl Into, - ), - start: usize, - end: usize, - ) -> Expression { - let binary = Binary::new(input.0, input.1.into(), input.2); - - Expression { - span: Span::from((start, end)), - expr: RawExpression::Binary(Box::new(binary)), - } - } - - pub fn path( - &mut self, - input: ( - &dyn Fn(&mut ExpressionBuilder) -> Expression, - Vec>, - ), - ) -> Expression { - let start = self.pos; - - let head = (input.0)(self); - - let mut tail = vec![]; - - for item in input.1 { - self.consume("."); - let item = item.into(); - let (start, end) = self.consume(&item); - tail.push(Spanned::new(Span::from((start, end)), item)); - } - - let end = self.pos; - - ExpressionBuilder::spanned_path((head, tail), start, end) - } - - pub fn spanned_path( - input: (impl Into, Vec>), - start: usize, - end: usize, - ) -> Expression { - let path = Path::new(input.0.into(), input.1); - - Expression { - span: Span::from((start, end)), - expr: RawExpression::Path(Box::new(path)), - } - } - - pub fn call( - &mut self, - input: ( - &(dyn Fn(&mut ExpressionBuilder) -> Expression), - Vec<&dyn Fn(&mut ExpressionBuilder) -> Expression>, - ), - ) -> Expression { - let start = self.pos; - - let name = (&input.0)(self); - - let mut args = vec![]; - - for item in input.1 { - self.consume(" "); - args.push(item(self)); - } - - let end = self.pos; - - ExpressionBuilder::spanned_call((name, args), start, end) - } - - pub fn spanned_call(input: impl Into, start: usize, end: usize) -> Expression { - let call = input.into(); - - Expression { - span: Span::from((start, end)), - expr: RawExpression::Call(Box::new(call)), - } - } - - pub fn var(&mut self, input: impl Into) -> Expression { - let input = input.into(); - let (start, _) = self.consume("$"); - let (_, end) = self.consume(&input); - - ExpressionBuilder::spanned_var(input, start, end) - } - - pub fn spanned_var(input: impl Into, start: usize, end: usize) -> Expression { - let input = input.into(); - - let expr = match &input[..] { - "it" => RawExpression::VariableReference(Variable::It), - _ => RawExpression::VariableReference(Variable::Other(input)), - }; - - Expression { - span: Span::from((start, end)), - expr, - } - } - - pub fn pipeline( - &mut self, - input: Vec<&dyn Fn(&mut ExpressionBuilder) -> Expression>, - ) -> Pipeline { - let start = self.pos; - - let mut exprs = vec![]; - let mut input = input.into_iter(); - - let next = input.next().unwrap(); - exprs.push(next(self)); - - for item in input { - self.consume(" | "); - exprs.push(item(self)); - } - - let end = self.pos; - - ExpressionBuilder::spanned_pipeline(exprs, start, end) - } - - pub fn spanned_pipeline(input: Vec, start: usize, end: usize) -> Pipeline { - Pipeline { - span: Span::from((start, end)), - commands: input, - } - } - - pub fn sp(&mut self) { - self.consume(" "); - } - - pub fn ws(&mut self, input: &str) { - self.consume(input); - } - - fn consume(&mut self, input: &str) -> (usize, usize) { - let start = self.pos; - self.pos += input.len(); - (start, self.pos) - } -} - -#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Deserialize, Serialize)] -pub enum Operator { - Equal, - NotEqual, - LessThan, - GreaterThan, - LessThanOrEqual, - GreaterThanOrEqual, -} - -impl Operator { - pub fn print(&self) -> String { - self.as_str().to_string() - } - - pub fn as_str(&self) -> &str { - match *self { - Operator::Equal => "==", - Operator::NotEqual => "!=", - Operator::LessThan => "<", - Operator::GreaterThan => ">", - Operator::LessThanOrEqual => "<=", - Operator::GreaterThanOrEqual => ">=", - } - } -} - -impl From<&str> for Operator { - fn from(input: &str) -> Operator { - Operator::from_str(input).unwrap() - } -} - -impl FromStr for Operator { - type Err = (); - fn from_str(input: &str) -> Result::Err> { - match input { - "==" => Ok(Operator::Equal), - "!=" => Ok(Operator::NotEqual), - "<" => Ok(Operator::LessThan), - ">" => Ok(Operator::GreaterThan), - "<=" => Ok(Operator::LessThanOrEqual), - ">=" => Ok(Operator::GreaterThanOrEqual), - _ => Err(()), - } - } -} - -#[derive(Debug, Clone, Ord, PartialOrd, Eq, PartialEq)] -pub struct Expression { - crate expr: RawExpression, - crate span: Span, -} - -impl std::ops::Deref for Expression { - type Target = RawExpression; - - fn deref(&self) -> &RawExpression { - &self.expr - } -} - -impl Expression { - crate fn print(&self) -> String { - self.expr.print() - } - - crate fn as_external_arg(&self) -> String { - self.expr.as_external_arg() - } -} - -#[derive(Debug, Clone, Ord, PartialOrd, Eq, PartialEq)] -pub enum RawExpression { - Leaf(Leaf), - Flag(Flag), - Parenthesized(Box), - Block(Box), - Binary(Box), - Path(Box), - Call(Box), - VariableReference(Variable), -} - -impl RawExpression { - // crate fn leaf(leaf: impl Into) -> Expression { - // Expression::Leaf(leaf.into()) - // } - - // crate fn flag(flag: impl Into) -> Expression { - // Expression::Flag(flag.into()) - // } - - // crate fn call(head: Expression, tail: Vec) -> Expression { - // if tail.len() == 0 { - // Expression::Call(Box::new(ParsedCommand::new(head.into(), None))) - // } else { - // Expression::Call(Box::new(ParsedCommand::new(head.into(), Some(tail)))) - // } - // } - - // crate fn binary( - // left: impl Into, - // operator: impl Into, - // right: impl Into, - // ) -> Expression { - // Expression::Binary(Box::new(Binary { - // left: left.into(), - // operator: operator.into(), - // right: right.into(), - // })) - // } - - // crate fn block(expr: impl Into) -> Expression { - // Expression::Block(Box::new(Block::new(expr.into()))) - // } - - crate fn print(&self) -> String { - match self { - RawExpression::Call(c) => c.print(), - RawExpression::Leaf(l) => l.print(), - RawExpression::Flag(f) => f.print(), - RawExpression::Parenthesized(p) => p.print(), - RawExpression::Block(b) => b.print(), - RawExpression::VariableReference(r) => r.print(), - RawExpression::Path(p) => p.print(), - RawExpression::Binary(b) => b.print(), - } - } - - crate fn as_external_arg(&self) -> String { - match self { - RawExpression::Call(c) => c.as_external_arg(), - RawExpression::Leaf(l) => l.as_external_arg(), - RawExpression::Flag(f) => f.as_external_arg(), - RawExpression::Parenthesized(p) => p.as_external_arg(), - RawExpression::Block(b) => b.as_external_arg(), - RawExpression::VariableReference(r) => r.as_external_arg(), - RawExpression::Path(p) => p.as_external_arg(), - RawExpression::Binary(b) => b.as_external_arg(), - } - } - - crate fn as_string(&self) -> Option { - match self { - RawExpression::Leaf(Leaf::String(s)) => Some(s.clone()), - RawExpression::Leaf(Leaf::Bare(path)) => Some(path.to_string()), - _ => None, - } - } - - #[allow(unused)] - crate fn as_bare(&self) -> Option { - match self { - RawExpression::Leaf(Leaf::Bare(p)) => Some(p.to_string()), - _ => None, - } - } - - #[allow(unused)] - crate fn as_block(&self) -> Option { - match self { - RawExpression::Block(block) => Some(*block.clone()), - _ => None, - } - } - - crate fn is_flag(&self, value: &str) -> bool { - match self { - RawExpression::Flag(Flag::Longhand(f)) if value == f => true, - _ => false, - } - } -} - -#[derive(Debug, Clone, Ord, PartialOrd, Eq, PartialEq, new)] -pub struct Block { - crate expr: Expression, -} - -impl Block { - fn print(&self) -> String { - format!("{{ {} }}", self.expr.print()) - } - - fn as_external_arg(&self) -> String { - format!("{{ {} }}", self.expr.as_external_arg()) - } -} - -#[derive(Debug, Clone, Ord, PartialOrd, Eq, PartialEq, new)] -pub struct Parenthesized { - crate expr: Expression, -} - -impl Parenthesized { - fn print(&self) -> String { - format!("({})", self.expr.print()) - } - - fn as_external_arg(&self) -> String { - format!("({})", self.expr.as_external_arg()) - } -} - -#[derive(Debug, Clone, Ord, PartialOrd, Eq, PartialEq, Getters, new)] -pub struct Path { - #[get = "crate"] - head: Expression, - - #[get = "crate"] - tail: Vec>, -} - -impl Path { - crate fn print(&self) -> String { - let mut out = self.head.print(); - - for item in self.tail.iter() { - out.push_str(&format!(".{}", item.item)); - } - - out - } - - crate fn as_external_arg(&self) -> String { - let mut out = self.head.as_external_arg(); - - for item in self.tail.iter() { - out.push_str(&format!(".{}", item.item)); - } - - out - } -} - -#[derive(Debug, Clone, Ord, PartialOrd, Eq, PartialEq)] -pub enum Variable { - It, - Other(String), -} - -impl Variable { - fn print(&self) -> String { - match self { - Variable::It => format!("$it"), - Variable::Other(s) => format!("${}", s), - } - } - - fn as_external_arg(&self) -> String { - self.print() - } -} - -#[derive(Debug, Clone, Ord, PartialOrd, Eq, PartialEq, new)] -pub struct Bare { - body: String, -} - -impl From for Bare { - fn from(input: String) -> Bare { - Bare { body: input } - } -} - -impl From<&str> for Bare { - fn from(input: &str) -> Bare { - Bare { - body: input.to_string(), - } - } -} - -impl Bare { - crate fn from_string(string: impl Into) -> Bare { - Bare { - body: string.into(), - } - } - - crate fn to_string(&self) -> String { - self.body.to_string() - } -} - -#[derive(Debug, Clone, Ord, PartialOrd, Eq, PartialEq, FromStr)] -pub enum Unit { - #[adhoc(regex = "^B$")] - B, - #[adhoc(regex = "^KB$")] - KB, - #[adhoc(regex = "^MB$")] - MB, - #[adhoc(regex = "^GB$")] - GB, - #[adhoc(regex = "^TB$")] - TB, - #[adhoc(regex = "^PB$")] - PB, -} - -impl From<&str> for Unit { - fn from(input: &str) -> Unit { - Unit::from_str(input).unwrap() - } -} - -impl Unit { - crate fn compute(&self, size: i64) -> Value { - Value::int(match self { - Unit::B => size, - Unit::KB => size * 1024, - Unit::MB => size * 1024 * 1024, - Unit::GB => size * 1024 * 1024 * 1024, - Unit::TB => size * 1024 * 1024 * 1024 * 1024, - Unit::PB => size * 1024 * 1024 * 1024 * 1024 * 1024, - }) - } - - crate fn to_string(&self) -> &str { - match self { - Unit::B => "B", - Unit::KB => "KB", - Unit::MB => "MB", - Unit::GB => "GB", - Unit::TB => "TB", - Unit::PB => "PB", - } - } -} - -#[derive(Debug, Clone, Ord, PartialOrd, Eq, PartialEq)] -pub enum Leaf { - String(String), - Bare(Bare), - Boolean(bool), - Int(i64), - Unit(i64, Unit), -} - -impl Leaf { - fn print(&self) -> String { - match self { - Leaf::String(s) => format!("{:?}", s), - Leaf::Bare(path) => format!("{}", path.to_string()), - Leaf::Boolean(b) => format!("{}", b), - Leaf::Int(i) => format!("{}", i), - Leaf::Unit(i, unit) => format!("{}{:?}", i, unit), - } - } - - fn as_external_arg(&self) -> String { - match self { - Leaf::String(s) => format!("\"{}\"", s), - Leaf::Bare(path) => path.to_string(), - Leaf::Boolean(b) => b.to_string(), - Leaf::Int(i) => i.to_string(), - Leaf::Unit(i, unit) => format!("{}{:?}", i, unit), - } - } -} - -#[derive(Debug, Clone, Ord, PartialOrd, Eq, PartialEq)] -pub struct Binary { - crate left: Expression, - crate operator: Spanned, - crate right: Expression, -} - -impl Binary { - crate fn new( - left: impl Into, - operator: Spanned, - right: impl Into, - ) -> Binary { - Binary { - left: left.into(), - operator, - right: right.into(), - } - } -} - -impl Binary { - fn print(&self) -> String { - format!( - "{} {} {}", - self.left.print(), - self.operator.print(), - self.right.print() - ) - } - - fn as_external_arg(&self) -> String { - format!( - "{} {} {}", - self.left.as_external_arg(), - self.operator.print(), - self.right.as_external_arg() - ) - } -} - -#[derive(Debug, Clone, Ord, PartialOrd, Eq, PartialEq)] -pub enum Flag { - Shorthand(String), - Longhand(String), -} - -impl Flag { - #[allow(unused)] - crate fn print(&self) -> String { - match self { - Flag::Shorthand(s) => format!("-{}", s), - Flag::Longhand(s) => format!("--{}", s), - } - } - - #[allow(unused)] - crate fn as_external_arg(&self) -> String { - self.print() - } -} - -#[derive(Debug, Clone, Ord, PartialOrd, Eq, PartialEq, new)] -pub struct Call { - crate name: Expression, - crate args: Option>, -} - -impl From<(Expression, Vec)> for Call { - fn from(input: (Expression, Vec)) -> Call { - Call { - name: input.0, - args: if input.1.len() == 0 { - None - } else { - Some(input.1) - }, - } - } -} - -impl From for Call { - fn from(input: Expression) -> Call { - Call { - name: input, - args: None, - } - } -} - -impl Call { - fn as_external_arg(&self) -> String { - let mut out = vec![]; - - write!(out, "{}", self.name.as_external_arg()).unwrap(); - - if let Some(args) = &self.args { - for arg in args.iter() { - write!(out, " {}", arg.as_external_arg()).unwrap(); - } - } - - String::from_utf8_lossy(&out).into_owned() - } - - fn print(&self) -> String { - let mut out = vec![]; - - write!(out, "{}", self.name.print()).unwrap(); - - if let Some(args) = &self.args { - for arg in args.iter() { - write!(out, " {}", arg.print()).unwrap(); - } - } - - String::from_utf8_lossy(&out).into_owned() - } -} - -#[derive(new, Debug, Eq, PartialEq)] -pub struct Pipeline { - crate commands: Vec, - crate span: Span, -} - -impl Pipeline { - crate fn from_parts( - command: Expression, - rest: Vec, - start: usize, - end: usize, - ) -> Pipeline { - let mut commands = vec![command]; - commands.extend(rest); - - Pipeline { - commands, - span: Span::from((start, end)), - } - } - - #[allow(unused)] - crate fn print(&self) -> String { - itertools::join(self.commands.iter().map(|i| i.print()), " | ") - } -} +crate mod expression; +crate mod expression_builder; +crate mod module; +crate mod module_builder; +crate mod parser_utils; + +crate use expression::{ + Bare, Binary, Block, Call, Expression, Flag, Leaf, Operator, ParameterIdentifier, + Parenthesized, Path, Pipeline, RawExpression, Unit, Variable, +}; +crate use expression_builder::ExpressionBuilder; +crate use module::{Module}; +crate use module_builder::ModuleBuilder; + +#[cfg(test)] +crate use module::RawItem; diff --git a/src/parser/ast/expression.rs b/src/parser/ast/expression.rs new file mode 100644 index 0000000000..d3c72c0681 --- /dev/null +++ b/src/parser/ast/expression.rs @@ -0,0 +1,541 @@ +use crate::parser::lexer::{Span, Spanned}; +use crate::prelude::*; +use adhoc_derive::FromStr; +use derive_new::new; +use getset::Getters; +use serde_derive::{Deserialize, Serialize}; +use std::io::Write; +use std::str::FromStr; + +#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Deserialize, Serialize)] +pub enum Operator { + Equal, + NotEqual, + LessThan, + GreaterThan, + LessThanOrEqual, + GreaterThanOrEqual, +} + +impl Operator { + pub fn print(&self) -> String { + self.as_str().to_string() + } + + pub fn as_str(&self) -> &str { + match *self { + Operator::Equal => "==", + Operator::NotEqual => "!=", + Operator::LessThan => "<", + Operator::GreaterThan => ">", + Operator::LessThanOrEqual => "<=", + Operator::GreaterThanOrEqual => ">=", + } + } +} + +impl From<&str> for Operator { + fn from(input: &str) -> Operator { + Operator::from_str(input).unwrap() + } +} + +impl FromStr for Operator { + type Err = (); + fn from_str(input: &str) -> Result::Err> { + match input { + "==" => Ok(Operator::Equal), + "!=" => Ok(Operator::NotEqual), + "<" => Ok(Operator::LessThan), + ">" => Ok(Operator::GreaterThan), + "<=" => Ok(Operator::LessThanOrEqual), + ">=" => Ok(Operator::GreaterThanOrEqual), + _ => Err(()), + } + } +} + +#[derive(Debug, Clone, Ord, PartialOrd, Eq, PartialEq)] +pub struct Expression { + crate expr: RawExpression, + crate span: Span, +} + +impl std::ops::Deref for Expression { + type Target = RawExpression; + + fn deref(&self) -> &RawExpression { + &self.expr + } +} + +impl Expression { + crate fn print(&self) -> String { + self.expr.print() + } + + crate fn as_external_arg(&self) -> String { + self.expr.as_external_arg() + } +} + +#[derive(Debug, Clone, Ord, PartialOrd, Eq, PartialEq)] +pub enum RawExpression { + Leaf(Leaf), + Flag(Flag), + Parenthesized(Box), + Block(Box), + Binary(Box), + Path(Box), + Call(Box), + VariableReference(Variable), +} + +impl RawExpression { + crate fn print(&self) -> String { + match self { + RawExpression::Call(c) => c.print(), + RawExpression::Leaf(l) => l.print(), + RawExpression::Flag(f) => f.print(), + RawExpression::Parenthesized(p) => p.print(), + RawExpression::Block(b) => b.print(), + RawExpression::VariableReference(r) => r.print(), + RawExpression::Path(p) => p.print(), + RawExpression::Binary(b) => b.print(), + } + } + + crate fn as_external_arg(&self) -> String { + match self { + RawExpression::Call(c) => c.as_external_arg(), + RawExpression::Leaf(l) => l.as_external_arg(), + RawExpression::Flag(f) => f.as_external_arg(), + RawExpression::Parenthesized(p) => p.as_external_arg(), + RawExpression::Block(b) => b.as_external_arg(), + RawExpression::VariableReference(r) => r.as_external_arg(), + RawExpression::Path(p) => p.as_external_arg(), + RawExpression::Binary(b) => b.as_external_arg(), + } + } + + crate fn as_string(&self) -> Option { + match self { + RawExpression::Leaf(Leaf::String(s)) => Some(s.to_string()), + RawExpression::Leaf(Leaf::Bare(path)) => Some(path.to_string()), + _ => None, + } + } + + #[allow(unused)] + crate fn as_bare(&self) -> Option { + match self { + RawExpression::Leaf(Leaf::Bare(p)) => Some(p.to_string()), + _ => None, + } + } + + #[allow(unused)] + crate fn as_block(&self) -> Option { + match self { + RawExpression::Block(block) => Some(*block.clone()), + _ => None, + } + } + + crate fn is_flag(&self, value: &str) -> bool { + match self { + RawExpression::Flag(Flag::Longhand(f)) if value == f => true, + _ => false, + } + } +} + +#[derive(Debug, Clone, Ord, PartialOrd, Eq, PartialEq, new)] +pub struct Block { + crate expr: Expression, +} + +impl Block { + crate fn print(&self) -> String { + format!("{{ {} }}", self.expr.print()) + } + + fn as_external_arg(&self) -> String { + format!("{{ {} }}", self.expr.as_external_arg()) + } +} + +#[derive(Debug, Clone, Ord, PartialOrd, Eq, PartialEq, new)] +pub struct Parenthesized { + crate expr: Expression, +} + +impl Parenthesized { + fn print(&self) -> String { + format!("({})", self.expr.print()) + } + + fn as_external_arg(&self) -> String { + format!("({})", self.expr.as_external_arg()) + } +} + +#[derive(Debug, Clone, Ord, PartialOrd, Eq, PartialEq, Getters, new)] +pub struct Path { + #[get = "crate"] + head: Expression, + + #[get = "crate"] + tail: Vec>, +} + +impl Path { + crate fn print(&self) -> String { + let mut out = self.head.print(); + + for item in self.tail.iter() { + out.push_str(&format!(".{}", item.item)); + } + + out + } + + crate fn as_external_arg(&self) -> String { + let mut out = self.head.as_external_arg(); + + for item in self.tail.iter() { + out.push_str(&format!(".{}", item.item)); + } + + out + } +} + +#[derive(Debug, Clone, Ord, PartialOrd, Eq, PartialEq)] +pub enum Variable { + It, + Other(String), +} + +impl Variable { + crate fn from_string(s: &str) -> Variable { + match s { + "it" => ast::Variable::It, + _ => ast::Variable::Other(s.to_string()), + } + } + + fn print(&self) -> String { + match self { + Variable::It => format!("$it"), + Variable::Other(s) => format!("${}", s), + } + } + + fn as_external_arg(&self) -> String { + self.print() + } +} + +#[derive(Debug, Clone, Ord, PartialOrd, Eq, PartialEq, new, Getters)] +pub struct Bare { + #[get = "crate"] + body: String, +} + +impl From for Bare { + fn from(input: String) -> Bare { + Bare { body: input } + } +} + +impl From<&str> for Bare { + fn from(input: &str) -> Bare { + Bare { + body: input.to_string(), + } + } +} + +impl Bare { + crate fn from_string(string: impl Into) -> Bare { + Bare { + body: string.into(), + } + } + + crate fn to_string(&self) -> String { + self.body.to_string() + } +} + +#[derive(Debug, Clone, Ord, PartialOrd, Eq, PartialEq, FromStr)] +pub enum Unit { + #[adhoc(regex = "^B$")] + B, + #[adhoc(regex = "^KB$")] + KB, + #[adhoc(regex = "^MB$")] + MB, + #[adhoc(regex = "^GB$")] + GB, + #[adhoc(regex = "^TB$")] + TB, + #[adhoc(regex = "^PB$")] + PB, +} + +impl From<&str> for Unit { + fn from(input: &str) -> Unit { + Unit::from_str(input).unwrap() + } +} + +impl Unit { + crate fn compute(&self, size: i64) -> Value { + Value::int(match self { + Unit::B => size, + Unit::KB => size * 1024, + Unit::MB => size * 1024 * 1024, + Unit::GB => size * 1024 * 1024 * 1024, + Unit::TB => size * 1024 * 1024 * 1024 * 1024, + Unit::PB => size * 1024 * 1024 * 1024 * 1024 * 1024, + }) + } + + crate fn to_string(&self) -> &str { + match self { + Unit::B => "B", + Unit::KB => "KB", + Unit::MB => "MB", + Unit::GB => "GB", + Unit::TB => "TB", + Unit::PB => "PB", + } + } +} + +#[derive(Debug, Clone, Ord, PartialOrd, Eq, PartialEq)] +pub enum RawParameterIdentifier { + #[allow(unused)] + Bare(Spanned), + Var(Spanned), + ShorthandFlag(Spanned), + LonghandFlag(Spanned), +} + +impl RawParameterIdentifier { + #[allow(unused)] + pub fn print(&self) -> String { + match self { + RawParameterIdentifier::Bare(b) => b.to_string(), + RawParameterIdentifier::Var(v) => v.print(), + RawParameterIdentifier::ShorthandFlag(f) => f.to_string(), + RawParameterIdentifier::LonghandFlag(f) => f.to_string(), + } + } +} + +pub type ParameterIdentifier = Spanned; + +impl ParameterIdentifier { + #[allow(unused)] + pub fn bare(bare: Spanned, span: impl Into) -> ParameterIdentifier { + let id = RawParameterIdentifier::Bare(bare); + Spanned::from_item(id, span) + } + + pub fn var(var: Spanned, span: impl Into) -> ParameterIdentifier { + let id = RawParameterIdentifier::Var(var); + Spanned::from_item(id, span) + } + + pub fn flag(flag: Spanned, span: impl Into) -> ParameterIdentifier { + let id = RawParameterIdentifier::LonghandFlag(flag); + Spanned::from_item(id, span) + } + + pub fn shorthand(flag: Spanned, span: impl Into) -> ParameterIdentifier { + let id = RawParameterIdentifier::ShorthandFlag(flag); + Spanned::from_item(id, span) + } +} + +#[derive(Debug, Clone, Ord, PartialOrd, Eq, PartialEq)] +pub enum Leaf { + String(String), + Bare(Bare), + Boolean(bool), + Int(i64), + Unit(i64, Unit), +} + +impl Leaf { + fn print(&self) -> String { + match self { + Leaf::String(s) => format!("{:?}", s), + Leaf::Bare(path) => format!("{}", path.to_string()), + Leaf::Boolean(b) => format!("{}", b), + Leaf::Int(i) => format!("{}", i), + Leaf::Unit(i, unit) => format!("{}{:?}", i, unit), + } + } + + fn as_external_arg(&self) -> String { + match self { + Leaf::String(s) => format!("\"{}\"", s), + Leaf::Bare(path) => format!("{}", path.to_string()), + Leaf::Boolean(b) => format!("{}", b), + Leaf::Int(i) => format!("{}", i), + Leaf::Unit(i, unit) => format!("{}{:?}", i, unit), + } + } +} + +#[derive(Debug, Clone, Ord, PartialOrd, Eq, PartialEq)] +pub struct Binary { + crate left: Expression, + crate operator: Spanned, + crate right: Expression, +} + +impl Binary { + crate fn new( + left: impl Into, + operator: Spanned, + right: impl Into, + ) -> Binary { + Binary { + left: left.into(), + operator, + right: right.into(), + } + } +} + +impl Binary { + fn print(&self) -> String { + format!( + "{} {} {}", + self.left.print(), + self.operator.print(), + self.right.print() + ) + } + + fn as_external_arg(&self) -> String { + format!( + "{} {} {}", + self.left.as_external_arg(), + self.operator.print(), + self.right.as_external_arg() + ) + } +} + +#[derive(Debug, Clone, Ord, PartialOrd, Eq, PartialEq)] +pub enum Flag { + Shorthand(String), + Longhand(String), +} + +impl Flag { + #[allow(unused)] + crate fn print(&self) -> String { + match self { + Flag::Shorthand(s) => format!("-{}", s), + Flag::Longhand(s) => format!("--{}", s), + } + } + + #[allow(unused)] + crate fn as_external_arg(&self) -> String { + self.print() + } +} + +#[derive(Debug, Clone, Ord, PartialOrd, Eq, PartialEq, new)] +pub struct Call { + crate name: Expression, + crate args: Option>, +} + +impl From<(Expression, Vec)> for Call { + fn from(input: (Expression, Vec)) -> Call { + Call { + name: input.0, + args: if input.1.len() == 0 { + None + } else { + Some(input.1) + }, + } + } +} + +impl From for Call { + fn from(input: Expression) -> Call { + Call { + name: input, + args: None, + } + } +} + +impl Call { + fn as_external_arg(&self) -> String { + let mut out = vec![]; + + write!(out, "{}", self.name.as_external_arg()).unwrap(); + + if let Some(args) = &self.args { + for arg in args.iter() { + write!(out, " {}", arg.as_external_arg()).unwrap(); + } + } + + String::from_utf8_lossy(&out).into_owned() + } + + fn print(&self) -> String { + let mut out = vec![]; + + write!(out, "{}", self.name.print()).unwrap(); + + if let Some(args) = &self.args { + for arg in args.iter() { + write!(out, " {}", arg.print()).unwrap(); + } + } + + String::from_utf8_lossy(&out).into_owned() + } +} + +#[derive(new, Debug, Eq, PartialEq, Clone)] +pub struct Pipeline { + crate commands: Vec, + crate span: Span, +} + +impl Pipeline { + crate fn from_parts( + command: Expression, + rest: Vec, + start: usize, + end: usize, + ) -> Pipeline { + let mut commands = vec![command]; + commands.extend(rest); + + Pipeline { + commands, + span: Span::from((start, end)), + } + } + + #[allow(unused)] + crate fn print(&self) -> String { + itertools::join(self.commands.iter().map(|i| i.print()), " | ") + } +} diff --git a/src/parser/ast/expression_builder.rs b/src/parser/ast/expression_builder.rs new file mode 100644 index 0000000000..c9145cff7a --- /dev/null +++ b/src/parser/ast/expression_builder.rs @@ -0,0 +1,401 @@ +use crate::parser::lexer::{Span, Spanned}; +use derive_new::new; + +use crate::parser::ast::{self, Expression, RawExpression}; + +#[derive(new)] +pub struct ExpressionBuilder { + #[new(default)] + pos: usize, +} + +#[allow(unused)] +impl ExpressionBuilder { + pub fn op(&mut self, input: impl Into) -> Spanned { + let input = input.into(); + + let (start, end) = self.consume(input.as_str()); + + self.pos = end; + + ExpressionBuilder::spanned_op(input, start, end) + } + + pub fn spanned_op( + input: impl Into, + start: usize, + end: usize, + ) -> Spanned { + Spanned { + span: Span::from((start, end)), + item: input.into(), + } + } + + pub fn string(&mut self, input: impl Into) -> Expression { + let input = input.into(); + + let (start, _) = self.consume("\""); + self.consume(&input); + let (_, end) = self.consume("\""); + self.pos = end; + + ExpressionBuilder::spanned_string(input, start, end) + } + + pub fn spanned_string(input: impl Into, start: usize, end: usize) -> Expression { + let input = input.into(); + + Expression { + span: Span::from((start, end)), + expr: RawExpression::Leaf(ast::Leaf::String(input)), + } + } + + pub fn bare(&mut self, input: impl Into) -> Expression { + let input = input.into(); + + let (start, end) = self.consume(input.body()); + self.pos = end; + + ExpressionBuilder::spanned_bare(input, start, end) + } + + pub fn spanned_bare(input: impl Into, start: usize, end: usize) -> Expression { + let input = input.into(); + + Expression { + span: Span::from((start, end)), + expr: RawExpression::Leaf(ast::Leaf::Bare(input)), + } + } + + pub fn boolean(&mut self, input: impl Into) -> Expression { + let boolean = input.into(); + + let (start, end) = match boolean { + true => self.consume("$yes"), + false => self.consume("$no"), + }; + + self.pos = end; + + ExpressionBuilder::spanned_boolean(boolean, start, end) + } + + pub fn spanned_boolean(input: impl Into, start: usize, end: usize) -> Expression { + let input = input.into(); + + Expression { + span: Span::from((start, end)), + expr: RawExpression::Leaf(ast::Leaf::Boolean(input)), + } + } + + pub fn int(&mut self, input: impl Into) -> Expression { + let int = input.into(); + + let (start, end) = self.consume(&int.to_string()); + self.pos = end; + + ExpressionBuilder::spanned_int(int, start, end) + } + + pub fn spanned_int(input: impl Into, start: usize, end: usize) -> Expression { + let input = input.into(); + + Expression { + span: Span::from((start, end)), + expr: RawExpression::Leaf(ast::Leaf::Int(input)), + } + } + + pub fn unit(&mut self, input: (impl Into, impl Into)) -> Expression { + let (int, unit) = (input.0.into(), input.1.into()); + + let (start, _) = self.consume(&int.to_string()); + let (_, end) = self.consume(&unit.to_string()); + self.pos = end; + + ExpressionBuilder::spanned_unit((int, unit), start, end) + } + + pub fn spanned_unit( + input: (impl Into, impl Into), + start: usize, + end: usize, + ) -> Expression { + let (int, unit) = (input.0.into(), input.1.into()); + + Expression { + span: Span::from((start, end)), + expr: RawExpression::Leaf(ast::Leaf::Unit(int, unit)), + } + } + + pub fn flag(&mut self, input: impl Into) -> Expression { + let input = input.into(); + + let (start, _) = self.consume("--"); + let (_, end) = self.consume(&input); + self.pos = end; + + ExpressionBuilder::spanned_flag(input, start, end) + } + + pub fn spanned_flag(input: impl Into, start: usize, end: usize) -> Expression { + let input = input.into(); + + Expression { + span: Span::from((start, end)), + expr: RawExpression::Flag(ast::Flag::Longhand(input)), + } + } + + pub fn shorthand(&mut self, input: impl Into) -> Expression { + let int = input.into(); + + let size = int.to_string().len(); + + let start = self.pos; + let end = self.pos + size + 1; + self.pos = end; + + ExpressionBuilder::spanned_shorthand(int, start, end) + } + + pub fn spanned_shorthand(input: impl Into, start: usize, end: usize) -> Expression { + let input = input.into(); + + Expression { + span: Span::from((start, end)), + expr: RawExpression::Flag(ast::Flag::Shorthand(input)), + } + } + + pub fn parens( + &mut self, + input: impl FnOnce(&mut ExpressionBuilder) -> Expression, + ) -> Expression { + let (start, _) = self.consume("("); + let input = input(self); + let (_, end) = self.consume(")"); + self.pos = end; + + ExpressionBuilder::spanned_parens(input, start, end) + } + + pub fn spanned_parens(input: Expression, start: usize, end: usize) -> Expression { + Expression { + span: Span::from((start, end)), + expr: RawExpression::Parenthesized(Box::new(ast::Parenthesized::new(input))), + } + } + + pub fn raw_block( + &mut self, + input: &dyn Fn(&mut ExpressionBuilder) -> Expression, + ) -> Spanned { + let (start, _) = self.consume("{ "); + let input = input(self); + let (_, end) = self.consume(" }"); + self.pos = end; + + ExpressionBuilder::spanned_raw_block(input, start, end) + } + + pub fn spanned_raw_block(input: Expression, start: usize, end: usize) -> Spanned { + Spanned::from_item(ast::Block::new(input), (start, end)) + } + + pub fn block(&mut self, input: &dyn Fn(&mut ExpressionBuilder) -> Expression) -> Expression { + let (start, _) = self.consume("{ "); + let input = input(self); + let (_, end) = self.consume(" }"); + self.pos = end; + + ExpressionBuilder::spanned_block(input, start, end) + } + + pub fn spanned_block(input: Expression, start: usize, end: usize) -> Expression { + let block = ast::Block::new(input); + + Expression { + span: Span::from((start, end)), + expr: RawExpression::Block(Box::new(block)), + } + } + + pub fn binary( + &mut self, + input: ( + &dyn Fn(&mut ExpressionBuilder) -> Expression, + &dyn Fn(&mut ExpressionBuilder) -> Spanned, + &dyn Fn(&mut ExpressionBuilder) -> Expression, + ), + ) -> Expression { + let start = self.pos; + + let left = (input.0)(self); + self.consume(" "); + let operator = (input.1)(self); + self.consume(" "); + let right = (input.2)(self); + + let end = self.pos; + + ExpressionBuilder::spanned_binary((left, operator, right), start, end) + } + + pub fn spanned_binary( + input: ( + impl Into, + impl Into>, + impl Into, + ), + start: usize, + end: usize, + ) -> Expression { + let binary = ast::Binary::new(input.0, input.1.into(), input.2); + + Expression { + span: Span::from((start, end)), + expr: RawExpression::Binary(Box::new(binary)), + } + } + + pub fn path( + &mut self, + input: ( + &dyn Fn(&mut ExpressionBuilder) -> Expression, + Vec>, + ), + ) -> Expression { + let start = self.pos; + + let head = (input.0)(self); + + let mut tail = vec![]; + + for item in input.1 { + self.consume("."); + let item = item.into(); + let (start, end) = self.consume(&item); + tail.push(Spanned::new(Span::from((start, end)), item)); + } + + let end = self.pos; + + ExpressionBuilder::spanned_path((head, tail), start, end) + } + + pub fn spanned_path( + input: (impl Into, Vec>), + start: usize, + end: usize, + ) -> Expression { + let path = ast::Path::new(input.0.into(), input.1); + + Expression { + span: Span::from((start, end)), + expr: RawExpression::Path(Box::new(path)), + } + } + + pub fn call( + &mut self, + input: ( + &(dyn Fn(&mut ExpressionBuilder) -> Expression), + Vec<&dyn Fn(&mut ExpressionBuilder) -> Expression>, + ), + ) -> Expression { + let start = self.pos; + + let name = (&input.0)(self); + + let mut args = vec![]; + + for item in input.1 { + self.consume(" "); + args.push(item(self)); + } + + let end = self.pos; + + ExpressionBuilder::spanned_call((name, args), start, end) + } + + pub fn spanned_call(input: impl Into, start: usize, end: usize) -> Expression { + let call = input.into(); + + Expression { + span: Span::from((start, end)), + expr: RawExpression::Call(Box::new(call)), + } + } + + pub fn var(&mut self, input: impl Into) -> Expression { + let input = input.into(); + let (start, _) = self.consume("$"); + let (_, end) = self.consume(&input); + + ExpressionBuilder::spanned_var(input, start, end) + } + + pub fn spanned_var(input: impl Into, start: usize, end: usize) -> Expression { + let input = input.into(); + + let expr = match &input[..] { + "it" => RawExpression::VariableReference(ast::Variable::It), + _ => RawExpression::VariableReference(ast::Variable::Other(input)), + }; + + Expression { + span: Span::from((start, end)), + expr, + } + } + + pub fn pipeline( + &mut self, + input: Vec<&dyn Fn(&mut ExpressionBuilder) -> Expression>, + ) -> ast::Pipeline { + let start = self.pos; + + let mut exprs = vec![]; + let mut input = input.into_iter(); + + let next = input.next().unwrap(); + exprs.push(next(self)); + + for item in input { + self.consume(" | "); + exprs.push(item(self)); + } + + let end = self.pos; + + ExpressionBuilder::spanned_pipeline(exprs, start, end) + } + + pub fn spanned_pipeline(input: Vec, start: usize, end: usize) -> ast::Pipeline { + ast::Pipeline { + span: Span::from((start, end)), + commands: input, + } + } + + pub fn sp(&mut self) { + self.consume(" "); + } + + pub fn ws(&mut self, input: &str) { + self.consume(input); + } + + fn consume(&mut self, input: &str) -> (usize, usize) { + let start = self.pos; + self.pos += input.len(); + (start, self.pos) + } +} diff --git a/src/parser/ast/module.rs b/src/parser/ast/module.rs new file mode 100644 index 0000000000..fb88f2dc51 --- /dev/null +++ b/src/parser/ast/module.rs @@ -0,0 +1,119 @@ +use crate::parser::ast; +use crate::parser::lexer::{Span, Spanned}; +use derive_new::new; + +#[derive(new, Eq, PartialEq, Clone, Debug)] +pub struct Module { + span: Span, + items: Vec, +} + +impl Module { + #[allow(unused)] + crate fn print(&self) -> String { + let mut iter = self.items.iter(); + + let first = iter.next().unwrap(); + let mut out = first.print(); + + for item in iter { + out.push_str(&format!("\n{}", item.print())); + } + + out + } +} + +#[derive(Eq, PartialEq, Clone, Debug)] +pub enum RawItem { + Expression(ast::Pipeline), + + #[allow(unused)] + Function(Function), +} + +impl RawItem { + fn print(&self) -> String { + match self { + RawItem::Expression(p) => p.print(), + RawItem::Function(f) => f.print(), + } + } +} + +pub type Item = Spanned; + +#[derive(Eq, PartialEq, Clone, Debug)] +pub enum Type { + Any, + Int, + Decimal, + Bytes, + Text, + Boolean, + Date, + Object, + List, + Block, + // Object(IndexMap, Spanned>), + // List(Box>), + // Block { + // arguments: Spanned>>, + // return_type: Box>, + // }, +} + +impl Type { + #[allow(unused)] + crate fn print(&self) -> String { + use Type::*; + + match self { + Any => "any", + Int => "int", + Decimal => "decimal", + Bytes => "bytes", + Text => "text", + Boolean => "boolean", + Date => "date", + Object => "object", + List => "list", + Block => "block", + } + .to_string() + } +} + +#[derive(Eq, PartialEq, Clone, Debug, new)] +pub struct FormalParameter { + name: ast::ParameterIdentifier, + ty: Spanned, + span: Span, +} + +#[derive(Eq, PartialEq, Clone, Debug, new)] +pub struct Function { + name: Spanned, + params: Vec, + return_type: Option>>, + body: Spanned, +} + +impl Function { + crate fn print(&self) -> String { + use pretty::{BoxDoc, Doc}; + + let doc: Doc> = Doc::text("function") + .append(Doc::space()) + .append(Doc::text(self.name.item.to_string())) + // todo: signature + .append(Doc::space()) + .append(Doc::text("{")) + .append(Doc::newline()) + .append(Doc::text(self.body.print()).nest(1)) + .append(Doc::newline()) + .append(Doc::text("}")); + + format!("{}", doc.pretty(80)) + } +} diff --git a/src/parser/ast/module_builder.rs b/src/parser/ast/module_builder.rs new file mode 100644 index 0000000000..52c025fc11 --- /dev/null +++ b/src/parser/ast/module_builder.rs @@ -0,0 +1,77 @@ +use crate::parser::ast::module::{Item, Module}; +use crate::parser::ast::{self, module}; +use crate::parser::lexer::{Span, Spanned}; +use derive_new::new; + +#[derive(new)] +pub struct ModuleBuilder { + #[new(default)] + pos: usize, +} + +#[allow(unused)] +impl ModuleBuilder { + // crate fn function(&mut self, input: ) -> Function {} + + crate fn spanned_function( + input: ( + Spanned, + Vec, + Option>, + Spanned, + ), + start: usize, + end: usize, + ) -> module::Function { + module::Function::new(input.0, input.1, input.2.map(Box::new), input.3) + } + + crate fn spanned_formal_parameter( + input: (ast::ParameterIdentifier, Spanned), + start: usize, + end: usize, + ) -> module::FormalParameter { + module::FormalParameter::new(input.0, input.1, Span::from((start, end))) + } + + crate fn items(&mut self, input: Vec<&dyn Fn(&mut ModuleBuilder) -> Item>) -> Module { + let start = self.pos; + + let mut items = vec![]; + let mut input = input.into_iter(); + + let next = input.next().unwrap(); + items.push(next(self)); + + for item in input { + self.consume(" | "); + items.push(item(self)); + } + + let end = self.pos; + + ModuleBuilder::spanned_items(items, start, end) + } + + pub fn spanned_items(input: Vec, start: usize, end: usize) -> ast::Module { + ast::Module::new(Span::from((start, end)), input) + } + + pub fn sp(&mut self) { + self.consume(" "); + } + + pub fn ws(&mut self, input: &str) { + self.consume(input); + } + + pub fn newline(&mut self) { + self.consume("\n"); + } + + fn consume(&mut self, input: &str) -> (usize, usize) { + let start = self.pos; + self.pos += input.len(); + (start, self.pos) + } +} diff --git a/src/parser/ast/parser_utils.rs b/src/parser/ast/parser_utils.rs new file mode 100644 index 0000000000..d154f3611e --- /dev/null +++ b/src/parser/ast/parser_utils.rs @@ -0,0 +1,5 @@ +crate fn concat(item: T, rest: Vec) -> Vec { + let mut out = vec![item]; + out.extend(rest); + out +} diff --git a/src/parser/lexer.rs b/src/parser/lexer.rs index 672eaef468..76fb7ae0ca 100644 --- a/src/parser/lexer.rs +++ b/src/parser/lexer.rs @@ -2,6 +2,7 @@ use crate::errors::ShellError; use derive_new::new; use log::trace; use logos_derive::Logos; +use std::collections::VecDeque; use std::ops::Range; #[derive(Debug, Clone, Copy, Eq, PartialEq, Logos)] @@ -13,6 +14,10 @@ crate enum TopToken { #[end] END, + #[token = "function"] + #[callback = "after_function"] + Function, + #[regex = "-?[0-9]+"] #[callback = "after_num"] Num, @@ -27,7 +32,7 @@ crate enum TopToken { #[callback = "start_variable"] Dollar, - #[regex = r#"[^\s0-9"'$\-][^\s"']*"#] + #[regex = r#"[^\s0-9"'$\-(){}][^\s"'(){}]*"#] #[callback = "end_bare_variable"] Bare, @@ -73,16 +78,21 @@ crate enum TopToken { #[token = "-"] Dash, - #[regex = r"\s+"] + #[regex = r"[^\S\r\n]"] Whitespace, + + #[regex = r"(\r\n|\n)"] + Newline, } impl TopToken { - fn to_token(&self) -> Option { + fn to_token(&self, _text: &str) -> Option { use TopToken::*; let result = match self { END => return None, + Function => Token::KeywordFunction, + Newline => Token::Newline, Num => Token::Num, SQString => Token::SQString, DQString => Token::DQString, @@ -112,17 +122,187 @@ impl TopToken { fn after_num(lex: &mut logos::Lexer) { trace!("after_num EXTRAS={:?}", lex.extras); - lex.extras.current = LexerStateName::AfterNum; + lex.extras.push(LexerStateName::AfterNum); +} + +fn after_function(lex: &mut logos::Lexer) { + trace!("after_function EXTRAS={:?}", lex.extras); + lex.extras.push(LexerStateName::AfterFunction); } fn start_variable(lex: &mut logos::Lexer) { trace!("start_variable EXTRAS={:?}", lex.extras); - lex.extras.current = LexerStateName::Var; + lex.extras.push(LexerStateName::VariableToken); } fn end_bare_variable(lex: &mut logos::Lexer) { - trace!("end_variable EXTRAS={:?}", lex.extras); - lex.extras.current = LexerStateName::AfterVariableToken; + trace!("end_bare_variable EXTRAS={:?}", lex.extras); + lex.extras.push(LexerStateName::AfterVariableToken); +} + +#[derive(Logos, Debug, Clone, Copy, Eq, PartialEq)] +#[extras = "LexerState"] +crate enum AfterFunction { + #[error] + Error, + + #[end] + END, + + #[regex = r"[A-Za-z][A-Za-z0-9_\-]*"] + #[callback = "after_function_name"] + CommandName, + + #[token = "{"] + #[callback = "start_function_block"] + OpenBrace, + + #[regex = r"[^\S\r\n]"] + Whitespace, +} + +impl AfterFunction { + fn to_token(&self) -> Option { + use AfterFunction::*; + + let result = match self { + END => return None, + CommandName => Token::CommandName, + Whitespace => Token::Whitespace, + OpenBrace => Token::OpenBrace, + Error => unreachable!("Don't call to_token with the error variant"), + }; + + Some(result) + } +} + +fn after_function_name(lex: &mut logos::Lexer) { + trace!("after_function_name EXTRAS={:?}", lex.extras); + lex.extras.push(LexerStateName::AfterFunctionName); +} + +fn start_function_block(lex: &mut logos::Lexer) { + trace!("start_function_block EXTRAS={:?}", lex.extras); + lex.extras.pop(); +} + +#[derive(Logos, Debug, Clone, Copy, Eq, PartialEq)] +#[extras = "LexerState"] +crate enum AfterFunctionName { + #[error] + Error, + + #[end] + END, + + #[token = "("] + #[callback = "start_param_list"] + StartParamList, + + #[regex = r"[^\S\r\n]"] + Whitespace, +} + +impl AfterFunctionName { + fn to_token(&self) -> Option { + use AfterFunctionName::*; + + let result = match self { + END => return None, + StartParamList => Token::StartParamList, + Whitespace => Token::Whitespace, + Error => unreachable!("Don't call to_token with the error variant"), + }; + + Some(result) + } +} + +fn start_param_list(lex: &mut logos::Lexer) { + trace!("start_param_list EXTRAS={:?}", lex.extras); + lex.extras.push(LexerStateName::InParamList); +} + +#[derive(Logos, Debug, Clone, Copy, Eq, PartialEq)] +#[extras = "LexerState"] +crate enum InParamList { + #[error] + Error, + + #[end] + END, + + #[token = "$"] + #[callback = "start_param_name"] + Dollar, + + #[regex = r"[^\S\r\n]"] + Whitespace, +} + +impl InParamList { + fn to_token(&self) -> Option { + use InParamList::*; + + let result = match self { + END => return None, + Dollar => Token::Dollar, + Whitespace => Token::Whitespace, + Error => unreachable!("Don't call to_token with the error variant"), + }; + + Some(result) + } +} + +fn start_param_name(lex: &mut logos::Lexer) { + trace!("start_param_name EXTRAS={:?}", lex.extras); + lex.extras.push(LexerStateName::VariableToken); +} + +#[derive(Logos, Debug, Clone, Copy, Eq, PartialEq)] +#[extras = "LexerState"] +crate enum TypeTokens { + #[error] + Error, + + #[end] + END, + + #[regex = "(any|int|decimal|bytes|text|boolean|date|object|list|block)"] + #[callback = "end_type_token"] + TypeName, +} + +fn end_type_token(lex: &mut logos::Lexer) { + trace!("end_type_token EXTRAS={:?}", lex.extras); + lex.extras.pop(); +} + +impl TypeTokens { + fn to_token(&self, text: &str) -> Option { + use TypeTokens::*; + + let result = match self { + END => return None, + TypeName => match text { + "any" => Token::TyAny, + "int" => Token::TyInt, + "decimal" => Token::TyDecimal, + "bytes" => Token::TyBytes, + "text" => Token::TyText, + "boolean" => Token::TyBoolean, + "date" => Token::TyDate, + "object" => Token::TyObject, + "list" => Token::TyList, + other => unreachable!("Type name {:?} shouldn't be possible", other), + }, + Error => unreachable!("Don't call to_token with the error variant"), + }; + + Some(result) + } } #[derive(Logos, Debug, Clone, Copy, Eq, PartialEq)] @@ -138,9 +318,12 @@ crate enum AfterNum { #[callback = "end_unit"] Unit, - #[regex = r"\s"] + #[regex = r"[^\S\r\n]"] #[callback = "end_number"] Whitespace, + + #[regex = r"(\r\n|\n)"] + Newline, } impl AfterNum { @@ -151,6 +334,7 @@ impl AfterNum { END => return None, Unit => Token::Unit, Whitespace => Token::Whitespace, + Newline => Token::Newline, Error => unreachable!("Don't call to_token with the error variant"), }; @@ -160,12 +344,12 @@ impl AfterNum { fn end_unit(lex: &mut logos::Lexer) { trace!("end_unit EXTRAS={:?}", lex.extras); - lex.extras.current = LexerStateName::Top; + lex.extras.pop(); } fn end_number(lex: &mut logos::Lexer) { - trace!("end_unit EXTRAS={:?}", lex.extras); - lex.extras.current = LexerStateName::Top; + trace!("end_number EXTRAS={:?}", lex.extras); + lex.extras.pop(); } #[derive(Logos, Debug, Clone, Copy, Eq, PartialEq)] @@ -183,7 +367,7 @@ crate enum VariableToken { } impl VariableToken { - fn to_token(&self) -> Option { + fn to_token(&self, _text: &str) -> Option { use VariableToken::*; let result = match self { @@ -198,7 +382,7 @@ impl VariableToken { fn end_variable(lex: &mut logos::Lexer) { trace!("end_variable EXTRAS={:?}", lex.extras); - lex.extras.current = LexerStateName::AfterVariableToken; + lex.extras.replace(LexerStateName::AfterVariableToken); } #[derive(Logos, Debug, Clone, Copy, Eq, PartialEq)] @@ -214,9 +398,20 @@ crate enum AfterVariableToken { #[callback = "start_member"] Dot, - #[regex = r"\s"] + #[token = ":"] + #[callback = "start_type"] + Colon, + + #[regex = r"[^\S\r\n]"] #[callback = "terminate_variable"] Whitespace, + + #[token = ")"] + #[callback = "end_param_list"] + EndParamList, + + #[regex = r"(\r\n|\n)"] + Newline, } impl AfterVariableToken { @@ -226,7 +421,10 @@ impl AfterVariableToken { let result = match self { END => return None, Dot => Token::PathDot, + Colon => Token::Colon, Whitespace => Token::Whitespace, + Newline => Token::Newline, + EndParamList => Token::EndParamList, Error => unreachable!("Don't call to_token with the error variant"), }; @@ -235,13 +433,26 @@ impl AfterVariableToken { } fn start_member(lex: &mut logos::Lexer) { - trace!("start_variable EXTRAS={:?}", lex.extras); - lex.extras.current = LexerStateName::AfterMemberDot; + trace!("start_member EXTRAS={:?}", lex.extras); + lex.extras.push(LexerStateName::AfterMemberDot); +} + +fn end_param_list(lex: &mut logos::Lexer) { + trace!("end_param_list EXTRAS={:?}", lex.extras); + lex.extras.pop(); + lex.extras.pop(); + lex.extras.pop(); + lex.extras.push(LexerStateName::AfterParamList); +} + +fn start_type(lex: &mut logos::Lexer) { + trace!("start_type EXTRAS={:?}", lex.extras); + lex.extras.push(LexerStateName::TypeTokens); } fn terminate_variable(lex: &mut logos::Lexer) { trace!("terminate_variable EXTRAS={:?}", lex.extras); - lex.extras.current = LexerStateName::Top; + lex.extras.pop(); } #[derive(Logos, Debug, Clone, Copy, Eq, PartialEq)] @@ -263,8 +474,11 @@ crate enum AfterMemberDot { #[regex = r#""([^"]|\\")*""#] DQString, - #[regex = r"\s"] + #[regex = r"[^\S\r\n]"] Whitespace, + + #[regex = r"(\r\n|\n)"] + Newline, } impl AfterMemberDot { @@ -278,6 +492,7 @@ impl AfterMemberDot { DQString => Token::DQMember, Whitespace => Token::Whitespace, + Newline => Token::Newline, Error => unreachable!("Don't call to_token with the error variant"), }; @@ -287,13 +502,51 @@ impl AfterMemberDot { fn finish_member(lex: &mut logos::Lexer) { trace!("finish_member EXTRAS={:?}", lex.extras); - lex.extras.current = LexerStateName::AfterVariableToken; + lex.extras.pop(); +} + +#[derive(Logos, Debug, Clone, Copy, Eq, PartialEq)] +#[extras = "LexerState"] +crate enum AfterParamList { + #[error] + Error, + + #[token = "->"] + #[callback = "finish_arrow"] + Arrow, + + #[end] + END, +} + +impl AfterParamList { + fn to_token(&self, _text: &str) -> Option { + use AfterParamList::*; + + let result = match self { + END => return None, + Arrow => Token::ReturnArrow, + Error => unreachable!("Don't call to_token with the error variant"), + }; + + Some(result) + } +} + +fn finish_arrow(lex: &mut logos::Lexer) { + trace!("finish_arrow EXTRAS={:?}", lex.extras); + lex.extras.replace(LexerStateName::TypeTokens); } #[derive(Debug, Clone, Copy)] crate enum LexerStateName { Top, - Var, + VariableToken, + AfterFunction, + AfterFunctionName, + TypeTokens, + InParamList, + AfterParamList, AfterMemberDot, AfterNum, AfterVariableToken, @@ -305,9 +558,48 @@ impl Default for LexerStateName { } } -#[derive(Debug, Clone, Default)] +#[derive(Debug, Clone)] crate struct LexerState { - current: LexerStateName, + stack: VecDeque, +} + +impl Default for LexerState { + fn default() -> LexerState { + let mut stack = VecDeque::new(); + stack.push_back(LexerStateName::Top); + LexerState { stack } + } +} + +impl LexerState { + crate fn debug_states(&self) -> String { + let items: Vec = self.stack.iter().map(|s| format!("{:?}", s)).collect(); + let debug = itertools::join(items, " -> "); + format!("{}", debug) + } + + crate fn push(&mut self, name: LexerStateName) { + self.stack.push_back(name); + trace!("push {:?} (to {})", name, self.debug_states()); + } + + crate fn replace(&mut self, name: LexerStateName) { + self.stack.pop_back(); + self.stack.push_back(name); + trace!("replace with {:?} (to {})", name, self.debug_states()); + } + + crate fn pop(&mut self) { + self.stack.pop_back(); + trace!("pop (to {})", self.debug_states()); + } + + crate fn current(&self) -> LexerStateName { + *self + .stack + .back() + .expect("There must always be at least one state in the lexer stack") + } } impl logos::Extras for LexerState { @@ -315,7 +607,7 @@ impl logos::Extras for LexerState { fn on_whitespace(&mut self, _byte: u8) {} } -#[derive(Debug, Clone, Copy, PartialEq, Eq, Ord, PartialOrd)] +#[derive(Debug, Clone, Copy, PartialEq, Eq, Ord, PartialOrd, Hash)] pub struct Span { crate start: usize, crate end: usize, @@ -374,7 +666,7 @@ impl language_reporting::ReportingSpan for Span { } } -#[derive(new, Debug, Clone, Eq, PartialEq, Ord, PartialOrd)] +#[derive(new, Debug, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)] pub struct Spanned { crate span: Span, crate item: T, @@ -389,8 +681,18 @@ impl std::ops::Deref for Spanned { } impl Spanned { - crate fn from_item(item: T, span: Span) -> Spanned { - Spanned { span, item } + crate fn from_item(item: T, span: impl Into) -> Spanned { + Spanned { + span: span.into(), + item, + } + } + + crate fn map(self, input: impl FnOnce(T) -> U) -> Spanned { + let Spanned { span, item } = self; + + let mapped = input(item); + Spanned { span, item: mapped } } } @@ -406,10 +708,6 @@ impl SpannedToken<'source> { Spanned::from_item(self.slice.to_string(), self.span) } - crate fn to_string(&self) -> String { - self.slice.to_string() - } - crate fn as_slice(&self) -> &str { self.slice } @@ -417,8 +715,14 @@ impl SpannedToken<'source> { #[derive(Debug, Clone, Eq, PartialEq)] pub enum Token { + KeywordFunction, + CommandName, + #[allow(unused)] + Comma, + Colon, Variable, PathDot, + ReturnArrow, Member, SQMember, DQMember, @@ -433,6 +737,8 @@ pub enum Token { CloseBrace, OpenParen, CloseParen, + StartParamList, + EndParamList, OpGt, OpLt, OpGte, @@ -441,23 +747,26 @@ pub enum Token { OpNeq, Dash, DashDash, + TyAny, + #[allow(unused)] + TyBlock, + TyBoolean, + TyBytes, + TyDate, + TyDecimal, + TyInt, + TyList, + TyObject, + TyText, Whitespace, + Newline, } -// #[derive(Debug, Clone, Eq, PartialEq)] -// crate enum Token<'source> { -// Top(SpannedToken<'source, TopToken>), -// Var(SpannedToken<'source, VariableToken>), -// Dot(SpannedToken<'source, &'source str>), -// Member(SpannedToken<'source, &'source str>), -// Whitespace(SpannedToken<'source, &'source str>), -// } - #[derive(Clone)] crate struct Lexer<'source> { lexer: logos::Lexer, first: bool, - whitespace: bool, // state: LexerState + whitespace: bool, } impl Lexer<'source> { @@ -465,41 +774,71 @@ impl Lexer<'source> { Lexer { first: true, lexer: logos::Logos::lexer(source), - whitespace - // state: LexerState::default(), + whitespace, } } + + fn lex_error(&self, range: &Range) -> ShellError { + use language_reporting::*; + + let states = self.lexer.extras.debug_states(); + + ShellError::diagnostic( + Diagnostic::new(Severity::Error, "Lex error") + .with_label(Label::new_primary(Span::new(range)).with_message(states)), + ) + } } impl Iterator for Lexer<'source> { type Item = Result<(usize, SpannedToken<'source>, usize), ShellError>; - // type Item = Result, ShellError>; fn next(&mut self) -> Option { - if self.first { + let result = if self.first { self.first = false; match self.lexer.token { - TopToken::Error => { - return Some(Err(lex_error(&self.lexer.range(), self.lexer.source))) - } - TopToken::Whitespace if !self.whitespace => return self.next(), - other => { - return spanned(other.to_token()?, self.lexer.slice(), &self.lexer.range()) - } + TopToken::Error => Some(Err(self.lex_error(&self.lexer.range()))), + TopToken::Whitespace if !self.whitespace => self.next(), + other => spanned( + other.to_token(self.lexer.slice())?, + self.lexer.slice(), + &self.lexer.range(), + ), } } else { trace!("STATE={:?}", self.lexer.extras); - match self.lexer.extras.current { + match self.lexer.extras.current() { LexerStateName::Top => { let (lexer, range, slice, token) = advance::(self.lexer.clone()); self.lexer = lexer; match token { - TopToken::Error => return Some(Err(lex_error(&range, self.lexer.source))), - TopToken::Whitespace if !self.whitespace => return self.next(), - other => return spanned(other.to_token()?, slice, &range), + TopToken::Error => Some(Err(self.lex_error(&range))), + TopToken::Whitespace if !self.whitespace => self.next(), + other => spanned(other.to_token(slice)?, slice, &range), + } + } + + LexerStateName::AfterParamList => { + let (lexer, range, slice, token) = + advance::(self.lexer.clone()); + self.lexer = lexer; + + match token { + AfterParamList::Error => Some(Err(self.lex_error(&range))), + other => spanned(other.to_token(slice)?, slice, &range), + } + } + + LexerStateName::TypeTokens => { + let (lexer, range, slice, token) = advance::(self.lexer.clone()); + self.lexer = lexer; + + match token { + TypeTokens::Error => Some(Err(self.lex_error(&range))), + other => spanned(other.to_token(slice)?, slice, &range), } } @@ -508,8 +847,42 @@ impl Iterator for Lexer<'source> { self.lexer = lexer; match token { - AfterNum::Error => return Some(Err(lex_error(&range, self.lexer.source))), + AfterNum::Error => Some(Err(self.lex_error(&range))), AfterNum::Whitespace if !self.whitespace => self.next(), + other => spanned(other.to_token()?, slice, &range), + } + } + + LexerStateName::AfterFunction => { + let (lexer, range, slice, token) = advance::(self.lexer.clone()); + self.lexer = lexer; + + match token { + AfterFunction::Error => Some(Err(self.lex_error(&range))), + AfterFunction::Whitespace if !self.whitespace => self.next(), + other => spanned(other.to_token()?, slice, &range), + } + } + + LexerStateName::AfterFunctionName => { + let (lexer, range, slice, token) = + advance::(self.lexer.clone()); + self.lexer = lexer; + + match token { + AfterFunctionName::Error => Some(Err(self.lex_error(&range))), + AfterFunctionName::Whitespace if !self.whitespace => self.next(), + other => spanned(other.to_token()?, slice, &range), + } + } + + LexerStateName::InParamList => { + let (lexer, range, slice, token) = advance::(self.lexer.clone()); + self.lexer = lexer; + + match token { + InParamList::Error => Some(Err(self.lex_error(&range))), + InParamList::Whitespace if !self.whitespace => self.next(), other => return spanned(other.to_token()?, slice, &range), } } @@ -520,11 +893,9 @@ impl Iterator for Lexer<'source> { self.lexer = lexer; match token { - AfterMemberDot::Error => { - return Some(Err(lex_error(&range, self.lexer.source))) - } + AfterMemberDot::Error => return Some(Err(self.lex_error(&range))), AfterMemberDot::Whitespace if !self.whitespace => self.next(), - other => return spanned(other.to_token()?, slice, &range), + other => spanned(other.to_token()?, slice, &range), } } @@ -534,39 +905,30 @@ impl Iterator for Lexer<'source> { self.lexer = lexer; match token { - AfterVariableToken::Error => { - return Some(Err(lex_error(&range, self.lexer.source))) - } + AfterVariableToken::Error => Some(Err(self.lex_error(&range))), AfterVariableToken::Whitespace if !self.whitespace => self.next(), - other => return spanned(other.to_token()?, slice, &range), + other => spanned(other.to_token()?, slice, &range), } } - LexerStateName::Var => { + LexerStateName::VariableToken => { let (lexer, range, slice, token) = advance::(self.lexer.clone()); self.lexer = lexer; match token { - VariableToken::Error => { - return Some(Err(lex_error(&range, self.lexer.source))) - } - other => return spanned(other.to_token()?, slice, &range), + VariableToken::Error => Some(Err(self.lex_error(&range))), + other => spanned(other.to_token(slice)?, slice, &range), } } } - } + }; + + trace!("emitting {:?}", result); + + result } } -fn lex_error(range: &Range, _source: &str) -> ShellError { - use language_reporting::*; - - ShellError::diagnostic( - Diagnostic::new(Severity::Error, "Lex error") - .with_label(Label::new_primary(Span::new(range))), - ) -} - fn spanned<'source>( token: Token, slice: &'source str, @@ -600,6 +962,8 @@ mod tests { use pretty_assertions::assert_eq; fn assert_lex(source: &str, tokens: &[TestToken<'_>]) { + let _ = pretty_env_logger::try_init(); + let lex = Lexer::new(source, false); let mut current = 0; @@ -629,7 +993,26 @@ mod tests { let actual_tokens: Result, _> = lex.map(|result| result.map(|(_, i, _)| i)).collect(); - let actual_tokens = actual_tokens.unwrap(); + let actual_tokens = match actual_tokens { + Ok(v) => v, + Err(ShellError::Diagnostic(diag)) => { + use language_reporting::termcolor; + + let writer = termcolor::StandardStream::stdout(termcolor::ColorChoice::Auto); + let files = crate::parser::span::Files::new(source.to_string()); + + language_reporting::emit( + &mut writer.lock(), + &files, + &diag.diagnostic, + &language_reporting::DefaultConfig, + ) + .unwrap(); + + panic!("Test failed") + } + Err(err) => panic!("Something went wrong during lex: {:#?}", err), + }; assert_eq!(actual_tokens, expected_tokens); } @@ -652,12 +1035,16 @@ mod tests { impl TestToken<'source> { fn to_token(&self, range: &std::ops::Range) -> SpannedToken<'source> { match self.desc { - TokenDesc::Top(tok) => { - SpannedToken::new(Span::new(range), self.source, tok.to_token().unwrap()) - } - TokenDesc::Var(tok) => { - SpannedToken::new(Span::new(range), self.source, tok.to_token().unwrap()) - } + TokenDesc::Top(tok) => SpannedToken::new( + Span::new(range), + self.source, + tok.to_token(&self.source).unwrap(), + ), + TokenDesc::Var(tok) => SpannedToken::new( + Span::new(range), + self.source, + tok.to_token(&self.source).unwrap(), + ), TokenDesc::Member => { SpannedToken::new(Span::new(range), self.source, Token::Member) } diff --git a/src/parser/parser.lalrpop b/src/parser/parser.lalrpop index b2a6ff452a..19020e6340 100644 --- a/src/parser/parser.lalrpop +++ b/src/parser/parser.lalrpop @@ -1,7 +1,11 @@ #![allow(unused)] use std::str::FromStr; -use crate::parser::ast::*; +use crate::parser::ast::expression::*; +use crate::parser::ast::module::*; +use crate::parser::ast::parser_utils::*; +use crate::parser::ast::{ExpressionBuilder, ModuleBuilder}; + use crate::prelude::*; use crate::parser::lexer::{SpannedToken, Spanned, Span, Token}; use byte_unit::Byte; @@ -26,7 +30,73 @@ use byte_unit::Byte; grammar<'input>; -pub Pipeline: Pipeline = { +// === MODULES === // + +pub Module: Module = { + )*> => ModuleBuilder::spanned_items(concat(first, items), l, r), +} + +Item: Item = { + => Spanned::from_item(RawItem::Expression(pipeline), Span::from((l, r))), + => Spanned::from_item(RawItem::Function(function), Span::from((l, r))), +} + +// === FUNCTIONS === // + +Function: Function = { + "function" "start-params" + + "end-params" " )?> => { + ModuleBuilder::spanned_function((bare, params, ret, block), l, r) + } +} + +ParameterList: Vec = { + > => params +} + +FormalParameter: FormalParameter = { + ":" => ModuleBuilder::spanned_formal_parameter((name, ty), l, r), +} + +ParameterName: ParameterIdentifier = { + "-" => ParameterIdentifier::shorthand(b.map(|b| b.to_string()), (l, r)), + "--" => ParameterIdentifier::flag(b.map(|b| b.to_string()), (l, r)), + => ParameterIdentifier::var(var, (l, r)), +} + +ParameterVariable: Spanned = { + "$" => Spanned::from_item(ast::Variable::from_string(v.as_slice()), (l, r)), +} + +// === TYPES === // + +Type: Spanned = { + => Spanned::from_item(ty, (l, r)), +} + +RawType: Type = { + "any" => Type::Any, + "int" => Type::Int, + "decimal" => Type::Decimal, + "bytes" => Type::Bytes, + "text" => Type::Text, + "boolean" => Type::Boolean, + "date" => Type::Date, + + // TODO: generics + "object" => Type::Object, + "list" => Type::List, + "block" => Type::Block, +} + +// === EXPRESSIONS === // + +pub ReplLine: Pipeline = { + ("newline")* +} + +Pipeline: Pipeline = { )*> => Pipeline::from_parts(first, rest, l, r), } @@ -57,7 +127,18 @@ Binary: Expression = { // In a block, a single bare word is interpreted as a call: // // foreach { ls } -Block: Expression = { +Block: Spanned = { + "{" "}" => ExpressionBuilder::spanned_raw_block(expr, l, r), + "{" "}" => { + let call = ExpressionBuilder::spanned_call(bare.clone(), bare.span.start, bare.span.end); + ExpressionBuilder::spanned_raw_block(call, l, r) + } +} + +// In a block, a single bare word is interpreted as a call: +// +// foreach { ls } +BlockExpression: Expression = { "{" "}" => ExpressionBuilder::spanned_block(expr, l, r), "{" "}" => { let call = ExpressionBuilder::spanned_call(bare.clone(), bare.span.start, bare.span.end); @@ -69,7 +150,7 @@ Block: Expression = { // even as the first part of a call. MemberHeadExpression: Expression = { => <>, - => <>, + => <>, "(" ")" => ExpressionBuilder::spanned_call(expr, l, r), "(" ")" => ExpressionBuilder::spanned_call((expr, vec![]), l, r), "(" ")" => ExpressionBuilder::spanned_parens(expr, l, r), @@ -77,7 +158,7 @@ MemberHeadExpression: Expression = { Expression: Expression = { => <>, - )+> => ExpressionBuilder::spanned_path((expr, rest.iter().map(|i| i.to_spanned_string()).collect()), l, r), + )+> => ExpressionBuilder::spanned_path((expr, rest), l, r), } // An `ArgumentExpression` is an expression that appears in an argument list. It includes all of `Expression`, and @@ -117,6 +198,14 @@ SpannedOperator: Spanned = { => Spanned::from_item(op, Span::from((l, r))) } +Newlines: () = { + ("newline")+ +} + +OptionalNewlines: () = { + ("newline")* +} + // === LOGICAL TOKENS === // // A logical token may be composed of more than one raw token, but the tokens must be emitted @@ -129,12 +218,18 @@ Bare: Bare = { // A member is a special token that represents bare words or string literals immediate // following a dot. -Member: String = { - <"member"> => <>.to_string(), - <"dqmember"> => <>.to_string(), - <"sqmember"> => <>.to_string(), +Member: Spanned = { + <"member"> => <>.to_spanned_string(), + <"dqmember"> => <>.to_spanned_string(), + <"sqmember"> => <>.to_spanned_string(), + <"function"> => <>.to_spanned_string(), } +CommandName: Spanned = { + => Spanned::from_item(Bare::from_string(name.as_slice()), (l, r)), +} + + Operator: Operator = { "==" => Operator::Equal, "!=" => Operator::NotEqual, @@ -166,11 +261,42 @@ Var: Expression = { "$" => ExpressionBuilder::spanned_var(v.as_slice(), l, r), } +SpannedBare: Spanned = { + => Spanned::from_item(bare, (l, r)), +} + +// === MACROS === // + +Comma: Vec = { // (1) + OptionalNewlines "," OptionalNewlines)*> => match e { // (2) + None => v, + Some(e) => { + let mut v = v; + v.push(e); + v + } + } +}; + extern { type Location = usize; type Error = ShellError; enum SpannedToken<'input> { + "any" => SpannedToken { token: Token::TyAny, .. }, + "int" => SpannedToken { token: Token::TyInt, .. }, + "decimal" => SpannedToken { token: Token::TyDecimal, .. }, + "bytes" => SpannedToken { token: Token::TyBytes, .. }, + "text" => SpannedToken { token: Token::TyText, .. }, + "boolean" => SpannedToken { token: Token::TyBoolean, .. }, + "date" => SpannedToken { token: Token::TyDate, .. }, + "object" => SpannedToken { token: Token::TyObject, .. }, + "list" => SpannedToken { token: Token::TyList, .. }, + "block" => SpannedToken { token: Token::TyBlock, .. }, + + "->" => SpannedToken { token: Token::ReturnArrow, .. }, + "," => SpannedToken { token: Token::Comma, .. }, + ":" => SpannedToken { token: Token::Colon, .. }, "|" => SpannedToken { token: Token::Pipe, .. }, "(" => SpannedToken { token: Token::OpenParen, .. }, ")" => SpannedToken { token: Token::CloseParen, .. }, @@ -186,6 +312,9 @@ extern { "--" => SpannedToken { token: Token::DashDash, .. }, "$" => SpannedToken { token: Token::Dollar, .. }, "???." => SpannedToken { token: Token::PathDot, .. }, + "command-name" => SpannedToken { token: Token::CommandName, .. }, + "start-params" => SpannedToken { token: Token::StartParamList, .. }, + "end-params" => SpannedToken { token: Token::EndParamList, .. }, "num" => SpannedToken { token: Token::Num, .. }, "member" => SpannedToken { token: Token::Member, .. }, "sqmember" => SpannedToken { token: Token::SQMember, .. }, @@ -195,5 +324,7 @@ extern { "dqstring" => SpannedToken { token: Token::DQString, .. }, "sqstring" => SpannedToken { token: Token::SQString, .. }, "unit" => SpannedToken { token: Token::Unit, .. }, + "newline" => SpannedToken { token: Token::Newline, .. }, + "function" => SpannedToken { token: Token::KeywordFunction, .. }, } } \ No newline at end of file diff --git a/src/parser/parser.rs b/src/parser/parser.rs index e6f1208a00..4a00946779 100644 --- a/src/parser/parser.rs +++ b/src/parser/parser.rs @@ -1,8 +1,11 @@ // auto-generated: "lalrpop 0.17.0" -// sha256: fcc54cbfc288e82dcd759b41803d54d69337bfffac5c19d297a91f1f97db993 +// sha256: 5010b1b374cbeace446cb1044fed03ecd663121c3bbed7e368a71539deeff50 #![allow(unused)] use std::str::FromStr; -use crate::parser::ast::*; +use crate::parser::ast::expression::*; +use crate::parser::ast::module::*; +use crate::parser::ast::parser_utils::*; +use crate::parser::ast::{ExpressionBuilder, ModuleBuilder}; use crate::prelude::*; use crate::parser::lexer::{SpannedToken, Spanned, Span, Token}; use byte_unit::Byte; @@ -16,7 +19,10 @@ mod __parse__Call { #![allow(non_snake_case, non_camel_case_types, unused_mut, unused_variables, unused_imports, unused_parens)] use std::str::FromStr; - use crate::parser::ast::*; + use crate::parser::ast::expression::*; + use crate::parser::ast::module::*; + use crate::parser::ast::parser_utils::*; + use crate::parser::ast::{ExpressionBuilder, ModuleBuilder}; use crate::prelude::*; use crate::parser::lexer::{SpannedToken, Spanned, Span, Token}; use byte_unit::Byte; @@ -29,224 +35,249 @@ mod __parse__Call { pub enum __Symbol<'input> { Variant0(SpannedToken<'input>), - Variant1(::std::vec::Vec>), - Variant2(Expression), - Variant3(::std::vec::Vec), - Variant4(usize), - Variant5(Bare), - Variant6(i64), - Variant7(String), - Variant8(Operator), - Variant9(Pipeline), - Variant10(Spanned), + Variant1(Spanned), + Variant2(::std::option::Option>), + Variant3(Spanned), + Variant4(::std::vec::Vec>), + Variant5(::std::vec::Vec>), + Variant6(Expression), + Variant7(::std::vec::Vec), + Variant8(Item), + Variant9(::std::vec::Vec), + Variant10(FormalParameter), + Variant11(::std::vec::Vec), + Variant12(usize), + Variant13(Bare), + Variant14(Spanned), + Variant15(Vec), + Variant16(Spanned), + Variant17(::std::option::Option), + Variant18(Function), + Variant19(i64), + Variant20(Module), + Variant21(()), + Variant22(Operator), + Variant23(ParameterIdentifier), + Variant24(Spanned), + Variant25(Pipeline), + Variant26(Type), + Variant27(Spanned), } const __ACTION: &'static [i8] = &[ // State 0 - 0, 13, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 16, 0, 17, 0, 18, 0, 0, 19, 0, 0, + 0, 13, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 17, 0, 0, 18, 0, 0, 0, 0, 19, 0, 0, // State 1 - -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, 0, -17, 0, -17, 0, -17, 0, -17, 0, 0, -17, 0, -17, + -35, -35, -35, -35, 0, -35, -35, 0, 0, -35, -35, -35, -35, -35, 0, 0, -35, 0, 0, 0, 0, 0, 0, 0, -35, 0, 0, 0, 0, 0, 0, -35, 0, 0, -35, 0, 0, 0, 0, -35, 0, -35, // State 2 - 0, 13, 14, 0, 27, 28, 0, 0, 0, 0, 0, 0, 15, 0, 16, 0, 17, 0, 18, 0, 0, 19, 0, 0, + 0, 13, 14, 0, 0, 27, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 17, 0, 0, 18, 0, 0, 0, 0, 19, 0, 0, // State 3 - -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, 0, -40, 0, -40, 0, -40, 0, 0, -40, 0, -40, + -73, -73, -73, -73, 0, -73, -73, 0, 0, -73, -73, -73, -73, -73, -73, 0, -73, 0, 0, 0, 0, 0, 0, 0, -73, 0, 0, 0, 0, 0, 0, -73, 0, 0, -73, 0, 0, 0, 0, -73, 0, -73, // State 4 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // State 5 - 0, 13, 14, 0, 27, 28, 0, 0, 0, 0, 0, 0, 15, 0, 16, 0, 17, 0, 18, 0, 0, 19, 0, 0, + 0, 13, 14, 0, 0, 27, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 17, 0, 0, 18, 0, 0, 0, 0, 19, 0, 0, // State 6 - -33, -33, -33, -33, -33, -33, -33, -33, -33, -33, -33, -33, -33, 0, -33, 0, -33, 0, -33, 31, 0, -33, 0, -33, + -65, -65, -65, -65, 0, -65, -65, 0, 0, -65, -65, -65, -65, -65, -65, 0, -65, 0, 0, 0, 0, 0, 0, 0, -65, 0, 0, 0, 0, 0, 0, -65, 0, 0, -65, 0, 0, 31, 0, -65, 0, -65, // State 7 - -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, 0, -39, 0, -39, 0, -39, 0, 0, -39, 0, -39, + -72, -72, -72, -72, 0, -72, -72, 0, 0, -72, -72, -72, -72, -72, -72, 0, -72, 0, 0, 0, 0, 0, 0, 0, -72, 0, 0, 0, 0, 0, 0, -72, 0, 0, -72, 0, 0, 0, 0, -72, 0, -72, // State 8 - -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, 33, -27, 0, -27, 0, -27, 0, -27, 0, 0, -27, 0, -27, + -52, -52, -52, -52, 0, -52, -52, 0, 0, -52, -52, -52, -52, -52, 33, 0, -52, 0, 0, 0, 0, 0, 0, 0, -52, 0, 0, 0, 0, 0, 0, -52, 0, 0, -52, 0, 0, 0, 0, -52, 0, -52, // State 9 - -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, 0, -32, 0, -32, 0, -32, 0, 0, -32, 0, -32, + -64, -64, -64, -64, 0, -64, -64, 0, 0, -64, -64, -64, -64, -64, -64, 0, -64, 0, 0, 0, 0, 0, 0, 0, -64, 0, 0, 0, 0, 0, 0, -64, 0, 0, -64, 0, 0, 0, 0, -64, 0, -64, // State 10 - -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, 0, -34, 0, -34, 0, -34, 0, 0, -34, 0, -34, + -66, -66, -66, -66, 0, -66, -66, 0, 0, -66, -66, -66, -66, -66, -66, 0, -66, 0, 0, 0, 0, 0, 0, 0, -66, 0, 0, 0, 0, 0, 0, -66, 0, 0, -66, 0, 0, 0, 0, -66, 0, -66, // State 11 - -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, 0, -35, 0, -35, 0, -35, 0, 0, -35, 0, -35, + -67, -67, -67, -67, 0, -67, -67, 0, 0, -67, -67, -67, -67, -67, -67, 0, -67, 0, 0, 0, 0, 0, 0, 0, -67, 0, 0, 0, 0, 0, 0, -67, 0, 0, -67, 0, 0, 0, 0, -67, 0, -67, // State 12 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 0, 0, 0, // State 13 - 0, 13, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 16, 0, 17, 0, 18, 0, 0, 19, 0, 0, + 0, 13, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 17, 0, 0, 18, 0, 0, 0, 0, 19, 0, 0, // State 14 - -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, 0, -16, 0, -16, 0, -16, 0, -16, 0, 0, -16, 0, -16, + -34, -34, -34, -34, 0, -34, -34, 0, 0, -34, -34, -34, -34, -34, 0, 0, -34, 0, 0, 0, 0, 0, 0, 0, -34, 0, 0, 0, 0, 0, 0, -34, 0, 0, -34, 0, 0, 0, 0, -34, 0, -34, // State 15 - -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, 0, -61, 0, -61, 0, -61, 0, 0, -61, 0, -61, + -117, -117, -117, -117, 0, -117, -117, 0, 0, -117, -117, -117, -117, -117, -117, 0, -117, 0, 0, 0, 0, 0, 0, 0, -117, 0, 0, 0, 0, 0, 0, -117, 0, 0, -117, 0, 0, 0, 0, -117, 0, -117, // State 16 - -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, 0, -31, 0, -31, 0, -31, -31, 0, -31, 0, -31, + -61, -61, -61, -61, 0, -61, -61, 0, 0, -61, -61, -61, -61, -61, -61, 0, -61, 0, 0, 0, 0, 0, 0, 0, -61, 0, 0, 0, 0, 0, 0, -61, 0, 0, -61, 0, 0, -61, 0, -61, 0, -61, // State 17 - -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, 0, -60, 0, -60, 0, -60, 0, 0, -60, 0, -60, + -116, -116, -116, -116, 0, -116, -116, 0, 0, -116, -116, -116, -116, -116, -116, 0, -116, 0, 0, 0, 0, 0, 0, 0, -116, 0, 0, 0, 0, 0, 0, -116, 0, 0, -116, 0, 0, 0, 0, -116, 0, -116, // State 18 - 0, 13, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 16, 0, 17, 0, 18, 0, 0, 19, 0, 0, + 0, 13, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 17, 0, 0, 18, 0, 0, 0, 0, 19, 0, 0, // State 19 - 47, -25, -25, -25, -25, -25, 48, 49, 50, 51, 52, 0, -25, 0, -25, 0, -25, 0, -25, 0, 0, -25, 0, -25, + 47, -45, -45, -45, 0, -45, -45, 0, 0, 48, 49, 50, 51, 52, 0, 0, -45, 0, 0, 0, 0, 0, 0, 0, -45, 0, 0, 0, 0, 0, 0, -45, 0, 0, -45, 0, 0, 0, 0, -45, 0, -45, // State 20 - -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, 0, -15, 0, -15, 0, -15, 0, -15, 0, 0, -15, 0, -15, + -33, -33, -33, -33, 0, -33, -33, 0, 0, -33, -33, -33, -33, -33, 0, 0, -33, 0, 0, 0, 0, 0, 0, 0, -33, 0, 0, 0, 0, 0, 0, -33, 0, 0, -33, 0, 0, 0, 0, -33, 0, -33, // State 21 - 0, 0, 0, -55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -55, + 0, 0, 0, -110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -110, // State 22 - 0, 13, 14, -54, 27, 28, 0, 0, 0, 0, 0, 0, 15, 0, 16, 0, 17, 0, 18, 0, 0, 19, 0, -54, + 0, 13, 14, -109, 0, 27, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 17, 0, 0, 18, 0, 0, 0, 0, 19, 0, -109, // State 23 - -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, 0, -14, 0, -14, 0, -14, 0, -14, 0, 0, -14, 0, -14, + -32, -32, -32, -32, 0, -32, -32, 0, 0, -32, -32, -32, -32, -32, 0, 0, -32, 0, 0, 0, 0, 0, 0, 0, -32, 0, 0, 0, 0, 0, 0, -32, 0, 0, -32, 0, 0, 0, 0, -32, 0, -32, // State 24 - 0, -26, -26, -26, -26, -26, 0, 0, 0, 0, 0, 0, -26, 0, -26, 0, -26, 0, -26, 0, 0, -26, 0, -26, + 0, -46, -46, -46, 0, -46, -46, 0, 0, 0, 0, 0, 0, 0, 0, 0, -46, 0, 0, 0, 0, 0, 0, 0, -46, 0, 0, 0, 0, 0, 0, -46, 0, 0, -46, 0, 0, 0, 0, -46, 0, -46, // State 25 - 0, 0, 0, -23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -23, + 0, 0, 0, -43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -43, // State 26 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // State 27 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // State 28 - 0, 13, 14, -54, 27, 28, 0, 0, 0, 0, 0, 0, 15, 0, 16, 0, 17, 0, 18, 0, 0, 19, 0, -54, + 0, 13, 14, -109, 0, 27, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 17, 0, 0, 18, 0, 0, 0, 0, 19, 0, -109, // State 29 - 0, 0, 0, -21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -21, + 0, 0, 0, -41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -41, // State 30 - -62, -62, -62, -62, -62, -62, -62, -62, -62, -62, -62, -62, -62, 0, -62, 0, -62, 0, -62, 0, 0, -62, 0, -62, + -119, -119, -119, -119, 0, -119, -119, 0, 0, -119, -119, -119, -119, -119, -119, 0, -119, 0, 0, 0, 0, 0, 0, 0, -119, 0, 0, 0, 0, 0, 0, -119, 0, 0, -119, 0, 0, 0, 0, -119, 0, -119, // State 31 - -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, 59, -28, 0, -28, 0, -28, 0, -28, 0, 0, -28, 0, -28, + -53, -53, -53, -53, 0, -53, -53, 0, 0, -53, -53, -53, -53, -53, 59, 0, -53, 0, 0, 0, 0, 0, 0, 0, -53, 0, 0, 0, 0, 0, 0, -53, 0, 0, -53, 0, 0, 0, 0, -53, 0, -53, // State 32 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61, 0, 0, 62, 0, 0, 63, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, // State 33 - -63, -63, -63, -63, -63, -63, -63, -63, -63, -63, -63, -63, -63, 0, -63, 0, -63, 0, -63, 0, 0, -63, 0, -63, + -120, -120, -120, -120, 0, -120, -120, 0, 0, -120, -120, -120, -120, -120, -120, 0, -120, 0, 0, 0, 0, 0, 0, 0, -120, 0, 0, 0, 0, 0, 0, -120, 0, 0, -120, 0, 0, 0, 0, -120, 0, -120, // State 34 - 47, 0, 0, 0, 0, 0, 48, 49, 50, 51, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 47, 0, 0, 0, 0, 0, 0, 0, 0, 48, 49, 50, 51, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // State 35 - -15, 13, 14, 61, 27, 28, -15, -15, -15, -15, -15, 0, 15, 0, 16, 0, 17, 0, 18, 0, 0, 19, 0, 0, + -33, 13, 14, 65, 0, 27, 28, 0, 0, -33, -33, -33, -33, -33, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 17, 0, 0, 18, 0, 0, 0, 0, 19, 0, 0, // State 36 - 0, 0, 0, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // State 37 - 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // State 38 - -14, 13, 14, 0, 27, 28, -14, -14, -14, -14, -14, 0, 15, 0, 16, 0, 17, 0, 18, 0, 0, 19, 0, 0, + -32, 13, 14, 0, 0, 27, 28, 0, 0, -32, -32, -32, -32, -32, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 17, 0, 0, 18, 0, 0, 0, 0, 19, 0, 0, // State 39 - -15, 13, 14, 0, 27, 28, -15, -15, -15, -15, -15, 0, 15, 0, 16, 0, 17, 0, 18, 0, 0, 19, 0, 64, + -33, 13, 14, 0, 0, 27, 28, 0, 0, -33, -33, -33, -33, -33, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 17, 0, 0, 18, 0, 0, 0, 0, 19, 0, 68, // State 40 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -58, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -113, // State 41 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -57, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -112, // State 42 - -14, 13, 14, 0, 27, 28, -14, -14, -14, -14, -14, 0, 15, 0, 16, 0, 17, 0, 18, 0, 0, 19, 0, -56, + -32, 13, 14, 0, 0, 27, 28, 0, 0, -32, -32, -32, -32, -32, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 17, 0, 0, 18, 0, 0, 0, 0, 19, 0, -111, // State 43 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, // State 44 - 0, -59, -59, 0, 0, 0, 0, 0, 0, 0, 0, 0, -59, 0, -59, 0, -59, 0, -59, 0, 0, -59, 0, 0, + 0, -115, -115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -115, 0, 0, 0, 0, 0, 0, 0, -115, 0, 0, 0, 0, 0, 0, -115, 0, 0, -115, 0, 0, 0, 0, -115, 0, 0, // State 45 - 0, 13, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 16, 0, 17, 0, 18, 0, 0, 19, 0, 0, + 0, 13, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 17, 0, 0, 18, 0, 0, 0, 0, 19, 0, 0, // State 46 - 0, -45, -45, 0, 0, 0, 0, 0, 0, 0, 0, 0, -45, 0, -45, 0, -45, 0, -45, 0, 0, -45, 0, 0, + 0, -81, -81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -81, 0, 0, 0, 0, 0, 0, 0, -81, 0, 0, 0, 0, 0, 0, -81, 0, 0, -81, 0, 0, 0, 0, -81, 0, 0, // State 47 - 0, -46, -46, 0, 0, 0, 0, 0, 0, 0, 0, 0, -46, 0, -46, 0, -46, 0, -46, 0, 0, -46, 0, 0, + 0, -82, -82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -82, 0, 0, 0, 0, 0, 0, 0, -82, 0, 0, 0, 0, 0, 0, -82, 0, 0, -82, 0, 0, 0, 0, -82, 0, 0, // State 48 - 0, -48, -48, 0, 0, 0, 0, 0, 0, 0, 0, 0, -48, 0, -48, 0, -48, 0, -48, 0, 0, -48, 0, 0, + 0, -84, -84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -84, 0, 0, 0, 0, 0, 0, 0, -84, 0, 0, 0, 0, 0, 0, -84, 0, 0, -84, 0, 0, 0, 0, -84, 0, 0, // State 49 - 0, -44, -44, 0, 0, 0, 0, 0, 0, 0, 0, 0, -44, 0, -44, 0, -44, 0, -44, 0, 0, -44, 0, 0, + 0, -80, -80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -80, 0, 0, 0, 0, 0, 0, 0, -80, 0, 0, 0, 0, 0, 0, -80, 0, 0, -80, 0, 0, 0, 0, -80, 0, 0, // State 50 - 0, -47, -47, 0, 0, 0, 0, 0, 0, 0, 0, 0, -47, 0, -47, 0, -47, 0, -47, 0, 0, -47, 0, 0, + 0, -83, -83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -83, 0, 0, 0, 0, 0, 0, 0, -83, 0, 0, 0, 0, 0, 0, -83, 0, 0, -83, 0, 0, 0, 0, -83, 0, 0, // State 51 - 0, -49, -49, 0, 0, 0, 0, 0, 0, 0, 0, 0, -49, 0, -49, 0, -49, 0, -49, 0, 0, -49, 0, 0, + 0, -85, -85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -85, 0, 0, 0, 0, 0, 0, 0, -85, 0, 0, 0, 0, 0, 0, -85, 0, 0, -85, 0, 0, 0, 0, -85, 0, 0, // State 52 - 0, 13, 14, -24, 27, 28, 0, 0, 0, 0, 0, 0, 15, 0, 16, 0, 17, 0, 18, 0, 0, 19, 0, -24, + 0, 13, 14, -44, 0, 27, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 17, 0, 0, 18, 0, 0, 0, 0, 19, 0, -44, // State 53 - 0, -25, -25, -25, -25, -25, 0, 0, 0, 0, 0, 0, -25, 0, -25, 0, -25, 0, -25, 0, 0, -25, 0, -25, + 0, -45, -45, -45, 0, -45, -45, 0, 0, 0, 0, 0, 0, 0, 0, 0, -45, 0, 0, 0, 0, 0, 0, 0, -45, 0, 0, 0, 0, 0, 0, -45, 0, 0, -45, 0, 0, 0, 0, -45, 0, -45, // State 54 - 0, -10, -10, -10, -10, -10, 0, 0, 0, 0, 0, 0, -10, 0, -10, 0, -10, 0, -10, 0, 0, -10, 0, -10, + 0, -23, -23, -23, 0, -23, -23, 0, 0, 0, 0, 0, 0, 0, 0, 0, -23, 0, 0, 0, 0, 0, 0, 0, -23, 0, 0, 0, 0, 0, 0, -23, 0, 0, -23, 0, 0, 0, 0, -23, 0, -23, // State 55 - 0, -29, -29, -29, -29, -29, 0, 0, 0, 0, 0, 0, -29, 0, -29, 0, -29, 0, -29, 0, 0, -29, 0, -29, + 0, -54, -54, -54, 0, -54, -54, 0, 0, 0, 0, 0, 0, 0, 0, 0, -54, 0, 0, 0, 0, 0, 0, 0, -54, 0, 0, 0, 0, 0, 0, -54, 0, 0, -54, 0, 0, 0, 0, -54, 0, -54, // State 56 - 0, -30, -30, -30, -30, -30, 0, 0, 0, 0, 0, 0, -30, 0, -30, 0, -30, 0, -30, 0, 0, -30, 0, -30, + 0, -55, -55, -55, 0, -55, -55, 0, 0, 0, 0, 0, 0, 0, 0, 0, -55, 0, 0, 0, 0, 0, 0, 0, -55, 0, 0, 0, 0, 0, 0, -55, 0, 0, -55, 0, 0, 0, 0, -55, 0, -55, // State 57 - 0, 13, 14, -22, 27, 28, 0, 0, 0, 0, 0, 0, 15, 0, 16, 0, 17, 0, 18, 0, 0, 19, 0, -22, + 0, 13, 14, -42, 0, 27, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 17, 0, 0, 18, 0, 0, 0, 0, 19, 0, -42, // State 58 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61, 0, 0, 62, 0, 0, 63, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, // State 59 - -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, 0, -2, 0, -2, 0, -2, 0, 0, -2, 0, -2, + -5, -5, -5, -5, 0, -5, -5, 0, 0, -5, -5, -5, -5, -5, -5, 0, -5, 0, 0, 0, 0, 0, 0, 0, -5, 0, 0, 0, 0, 0, 0, -5, 0, 0, -5, 0, 0, 0, 0, -5, 0, -5, // State 60 - -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, 0, -42, 0, -42, 0, -42, 0, 0, -42, 0, -42, + -69, -69, -69, -69, 0, -69, -69, 0, 0, -69, -69, -69, -69, -69, -69, 0, -69, 0, 0, 0, 0, 0, 0, 0, -69, 0, 0, 0, 0, 0, 0, -69, 0, 0, -69, 0, 0, 0, 0, -69, 0, -69, // State 61 - -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, 0, -43, 0, -43, 0, -43, 0, 0, -43, 0, -43, + -71, -71, -71, -71, 0, -71, -71, 0, 0, -71, -71, -71, -71, -71, -71, 0, -71, 0, 0, 0, 0, 0, 0, 0, -71, 0, 0, 0, 0, 0, 0, -71, 0, 0, -71, 0, 0, 0, 0, -71, 0, -71, // State 62 - -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, 0, -41, 0, -41, 0, -41, 0, 0, -41, 0, -41, + -68, -68, -68, -68, 0, -68, -68, 0, 0, -68, -68, -68, -68, -68, -68, 0, -68, 0, 0, 0, 0, 0, 0, 0, -68, 0, 0, 0, 0, 0, 0, -68, 0, 0, -68, 0, 0, 0, 0, -68, 0, -68, // State 63 - -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, 0, -20, 0, -20, 0, -20, 0, 0, -20, 0, -20, + -70, -70, -70, -70, 0, -70, -70, 0, 0, -70, -70, -70, -70, -70, -70, 0, -70, 0, 0, 0, 0, 0, 0, 0, -70, 0, 0, 0, 0, 0, 0, -70, 0, 0, -70, 0, 0, 0, 0, -70, 0, -70, // State 64 - -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, 0, -19, 0, -19, 0, -19, 0, 0, -19, 0, -19, + -75, -75, -75, -75, 0, -75, -75, 0, 0, -75, -75, -75, -75, -75, -75, 0, -75, 0, 0, 0, 0, 0, 0, 0, -75, 0, 0, 0, 0, 0, 0, -75, 0, 0, -75, 0, 0, 0, 0, -75, 0, -75, // State 65 - 0, 0, 0, -18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -18, + -76, -76, -76, -76, 0, -76, -76, 0, 0, -76, -76, -76, -76, -76, -76, 0, -76, 0, 0, 0, 0, 0, 0, 0, -76, 0, 0, 0, 0, 0, 0, -76, 0, 0, -76, 0, 0, 0, 0, -76, 0, -76, // State 66 - 0, -11, -11, -11, -11, -11, 0, 0, 0, 0, 0, 0, -11, 0, -11, 0, -11, 0, -11, 0, 0, -11, 0, -11, + -74, -74, -74, -74, 0, -74, -74, 0, 0, -74, -74, -74, -74, -74, -74, 0, -74, 0, 0, 0, 0, 0, 0, 0, -74, 0, 0, 0, 0, 0, 0, -74, 0, 0, -74, 0, 0, 0, 0, -74, 0, -74, // State 67 - -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, 0, -3, 0, -3, 0, -3, 0, 0, -3, 0, -3, + -40, -40, -40, -40, 0, -40, -40, 0, 0, -40, -40, -40, -40, -40, -40, 0, -40, 0, 0, 0, 0, 0, 0, 0, -40, 0, 0, 0, 0, 0, 0, -40, 0, 0, -40, 0, 0, 0, 0, -40, 0, -40, + // State 68 + -39, -39, -39, -39, 0, -39, -39, 0, 0, -39, -39, -39, -39, -39, -39, 0, -39, 0, 0, 0, 0, 0, 0, 0, -39, 0, 0, 0, 0, 0, 0, -39, 0, 0, -39, 0, 0, 0, 0, -39, 0, -39, + // State 69 + 0, 0, 0, -36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -36, + // State 70 + 0, -24, -24, -24, 0, -24, -24, 0, 0, 0, 0, 0, 0, 0, 0, 0, -24, 0, 0, 0, 0, 0, 0, 0, -24, 0, 0, 0, 0, 0, 0, -24, 0, 0, -24, 0, 0, 0, 0, -24, 0, -24, + // State 71 + -6, -6, -6, -6, 0, -6, -6, 0, 0, -6, -6, -6, -6, -6, -6, 0, -6, 0, 0, 0, 0, 0, 0, 0, -6, 0, 0, 0, 0, 0, 0, -6, 0, 0, -6, 0, 0, 0, 0, -6, 0, -6, ]; const __EOF_ACTION: &'static [i8] = &[ // State 0 0, // State 1 - -17, + -35, // State 2 0, // State 3 - -40, + -73, // State 4 - -64, + -121, // State 5 0, // State 6 - -33, + -65, // State 7 - -39, + -72, // State 8 - -27, + -52, // State 9 - -32, + -64, // State 10 - -34, + -66, // State 11 - -35, + -67, // State 12 0, // State 13 0, // State 14 - -16, + -34, // State 15 - -61, + -117, // State 16 - -31, + -61, // State 17 - -60, + -116, // State 18 0, // State 19 - -25, + -45, // State 20 - -15, + -33, // State 21 - -55, + -110, // State 22 - -54, + -109, // State 23 - -14, + -32, // State 24 - -26, + -46, // State 25 - -23, + -43, // State 26 0, // State 27 0, // State 28 - -54, + -109, // State 29 - -21, + -41, // State 30 - -62, + -119, // State 31 - -28, + -53, // State 32 0, // State 33 - -63, + -120, // State 34 0, // State 35 @@ -284,175 +315,191 @@ mod __parse__Call { // State 51 0, // State 52 - -24, + -44, // State 53 - -25, + -45, // State 54 - -10, + -23, // State 55 - -29, + -54, // State 56 - -30, + -55, // State 57 - -22, + -42, // State 58 0, // State 59 - -2, + -5, // State 60 - -42, + -69, // State 61 - -43, + -71, // State 62 - -41, + -68, // State 63 - -20, + -70, // State 64 - -19, + -75, // State 65 - -18, + -76, // State 66 - -11, + -74, // State 67 - -3, + -40, + // State 68 + -39, + // State 69 + -36, + // State 70 + -24, + // State 71 + -6, ]; const __GOTO: &'static [i8] = &[ // State 0 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 0, 4, 5, 0, 6, 0, 7, 8, 0, 9, 0, 0, 0, 0, 0, 0, 10, 11, 12, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 0, 0, 4, 5, 0, 0, 0, 6, 0, 0, 0, 0, 7, 0, 8, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 12, 0, 0, 0, // State 1 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // State 2 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 2, 21, 22, 4, 0, 23, 24, 25, 7, 8, 0, 9, 0, 0, 0, 26, 0, 0, 10, 11, 12, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 2, 21, 22, 0, 4, 0, 23, 0, 0, 24, 25, 0, 0, 0, 7, 0, 8, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 10, 0, 11, 12, 0, 0, 0, // State 3 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // State 4 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // State 5 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 2, 21, 22, 4, 0, 29, 24, 25, 7, 8, 0, 9, 0, 0, 0, 30, 0, 0, 10, 11, 12, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 2, 21, 22, 0, 4, 0, 29, 0, 0, 24, 25, 0, 0, 0, 7, 0, 8, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 10, 0, 11, 12, 0, 0, 0, // State 6 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // State 7 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // State 8 - 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // State 9 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // State 10 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // State 11 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // State 12 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // State 13 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 2, 36, 37, 4, 38, 0, 39, 0, 7, 8, 0, 9, 0, 0, 0, 0, 0, 0, 10, 11, 12, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 2, 36, 37, 0, 4, 38, 0, 0, 0, 39, 0, 0, 0, 0, 7, 0, 8, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 12, 0, 0, 0, // State 14 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // State 15 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // State 16 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // State 17 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // State 18 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 2, 40, 41, 4, 42, 0, 43, 0, 7, 8, 0, 9, 0, 0, 0, 0, 44, 0, 10, 11, 12, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 2, 40, 41, 0, 4, 42, 0, 0, 0, 43, 0, 0, 0, 0, 7, 0, 8, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 0, 0, 10, 0, 11, 12, 0, 0, 0, // State 19 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 0, 0, 0, 0, 46, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 0, 0, 0, 0, 0, 0, 0, // State 20 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // State 21 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // State 22 - 0, 0, 0, 0, 0, 0, 53, 0, 0, 54, 2, 21, 0, 4, 0, 55, 24, 25, 7, 8, 0, 9, 0, 0, 0, 0, 0, 0, 10, 11, 12, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 0, 0, 0, 0, 0, 54, 2, 21, 0, 0, 4, 0, 55, 0, 0, 24, 25, 0, 0, 0, 7, 0, 8, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 12, 0, 0, 0, // State 23 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // State 24 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // State 25 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // State 26 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // State 27 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // State 28 - 0, 0, 0, 0, 0, 0, 58, 0, 0, 54, 2, 21, 0, 4, 0, 55, 24, 25, 7, 8, 0, 9, 0, 0, 0, 0, 0, 0, 10, 11, 12, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58, 0, 0, 0, 0, 0, 54, 2, 21, 0, 0, 4, 0, 55, 0, 0, 24, 25, 0, 0, 0, 7, 0, 8, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 12, 0, 0, 0, // State 29 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // State 30 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // State 31 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // State 32 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // State 33 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // State 34 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 0, 0, 0, 0, 46, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 0, 0, 0, 0, 0, 0, 0, // State 35 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 2, 21, 22, 4, 0, 23, 24, 25, 7, 8, 0, 9, 0, 0, 0, 26, 0, 0, 10, 11, 12, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 2, 21, 22, 0, 4, 0, 23, 0, 0, 24, 25, 0, 0, 0, 7, 0, 8, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 10, 0, 11, 12, 0, 0, 0, // State 36 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // State 37 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // State 38 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 2, 21, 22, 4, 0, 29, 24, 25, 7, 8, 0, 9, 0, 0, 0, 30, 0, 0, 10, 11, 12, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 2, 21, 22, 0, 4, 0, 29, 0, 0, 24, 25, 0, 0, 0, 7, 0, 8, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 10, 0, 11, 12, 0, 0, 0, // State 39 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 2, 21, 22, 4, 0, 23, 24, 25, 7, 8, 0, 9, 0, 0, 0, 26, 0, 0, 10, 11, 12, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 2, 21, 22, 0, 4, 0, 23, 0, 0, 24, 25, 0, 0, 0, 7, 0, 8, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 10, 0, 11, 12, 0, 0, 0, // State 40 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // State 41 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // State 42 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 2, 21, 22, 4, 0, 29, 24, 25, 7, 8, 0, 9, 0, 0, 0, 30, 0, 0, 10, 11, 12, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 2, 21, 22, 0, 4, 0, 29, 0, 0, 24, 25, 0, 0, 0, 7, 0, 8, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 10, 0, 11, 12, 0, 0, 0, // State 43 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // State 44 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // State 45 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 2, 21, 0, 4, 0, 0, 24, 0, 7, 8, 0, 9, 0, 0, 0, 0, 0, 0, 10, 11, 12, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 70, 2, 21, 0, 0, 4, 0, 0, 0, 0, 24, 0, 0, 0, 0, 7, 0, 8, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 12, 0, 0, 0, // State 46 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // State 47 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // State 48 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // State 49 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // State 50 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // State 51 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // State 52 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 54, 2, 21, 0, 4, 0, 67, 24, 25, 7, 8, 0, 9, 0, 0, 0, 0, 0, 0, 10, 11, 12, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54, 2, 21, 0, 0, 4, 0, 71, 0, 0, 24, 25, 0, 0, 0, 7, 0, 8, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 12, 0, 0, 0, // State 53 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // State 54 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // State 55 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // State 56 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // State 57 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 54, 2, 21, 0, 4, 0, 67, 24, 25, 7, 8, 0, 9, 0, 0, 0, 0, 0, 0, 10, 11, 12, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54, 2, 21, 0, 0, 4, 0, 71, 0, 0, 24, 25, 0, 0, 0, 7, 0, 8, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 12, 0, 0, 0, // State 58 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // State 59 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // State 60 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // State 61 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // State 62 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // State 63 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // State 64 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // State 65 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // State 66 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // State 67 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 68 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 69 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 70 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 71 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ]; fn __expected_tokens(__state: usize) -> Vec<::std::string::String> { const __TERMINAL: &'static [&'static str] = &[ @@ -460,28 +507,46 @@ mod __parse__Call { r###""$""###, r###""(""###, r###"")""###, + r###"",""###, r###""-""###, r###""--""###, + r###""->""###, + r###"":""###, r###""<""###, r###""<=""###, r###""==""###, r###"">""###, r###"">=""###, r###""???.""###, + r###""any""###, r###""bare""###, + r###""block""###, + r###""boolean""###, + r###""bytes""###, + r###""command-name""###, + r###""date""###, + r###""decimal""###, r###""dqmember""###, r###""dqstring""###, + r###""end-params""###, + r###""function""###, + r###""int""###, + r###""list""###, r###""member""###, + r###""newline""###, r###""num""###, + r###""object""###, r###""sqmember""###, r###""sqstring""###, + r###""start-params""###, + r###""text""###, r###""unit""###, r###""variable""###, r###""{""###, r###""|""###, r###""}""###, ]; - __ACTION[(__state * 24)..].iter().zip(__TERMINAL).filter_map(|(&state, terminal)| { + __ACTION[(__state * 42)..].iter().zip(__TERMINAL).filter_map(|(&state, terminal)| { if state == 0 { None } else { @@ -525,12 +590,12 @@ mod __parse__Call { #[inline] fn action(&self, state: i8, integer: usize) -> i8 { - __ACTION[(state as usize) * 24 + integer] + __ACTION[(state as usize) * 42 + integer] } #[inline] fn error_action(&self, state: i8) -> i8 { - __ACTION[(state as usize) * 24 + (24 - 1)] + __ACTION[(state as usize) * 42 + (42 - 1)] } #[inline] @@ -540,7 +605,7 @@ mod __parse__Call { #[inline] fn goto(&self, state: i8, nt: usize) -> i8 { - __GOTO[(state as usize) * 33 + nt] - 1 + __GOTO[(state as usize) * 62 + nt] - 1 } fn token_to_symbol(&self, token_index: usize, token: Self::Token) -> Self::Symbol { @@ -596,26 +661,44 @@ mod __parse__Call { SpannedToken { token: Token::Dollar, .. } if true => Some(1), SpannedToken { token: Token::OpenParen, .. } if true => Some(2), SpannedToken { token: Token::CloseParen, .. } if true => Some(3), - SpannedToken { token: Token::Dash, .. } if true => Some(4), - SpannedToken { token: Token::DashDash, .. } if true => Some(5), - SpannedToken { token: Token::OpLt, .. } if true => Some(6), - SpannedToken { token: Token::OpLte, .. } if true => Some(7), - SpannedToken { token: Token::OpEq, .. } if true => Some(8), - SpannedToken { token: Token::OpGt, .. } if true => Some(9), - SpannedToken { token: Token::OpGte, .. } if true => Some(10), - SpannedToken { token: Token::PathDot, .. } if true => Some(11), - SpannedToken { token: Token::Bare, .. } if true => Some(12), - SpannedToken { token: Token::SQMember, .. } if true => Some(13), - SpannedToken { token: Token::DQString, .. } if true => Some(14), - SpannedToken { token: Token::Member, .. } if true => Some(15), - SpannedToken { token: Token::Num, .. } if true => Some(16), - SpannedToken { token: Token::SQMember, .. } if true => Some(17), - SpannedToken { token: Token::SQString, .. } if true => Some(18), - SpannedToken { token: Token::Unit, .. } if true => Some(19), - SpannedToken { token: Token::Variable, .. } if true => Some(20), - SpannedToken { token: Token::OpenBrace, .. } if true => Some(21), - SpannedToken { token: Token::Pipe, .. } if true => Some(22), - SpannedToken { token: Token::CloseBrace, .. } if true => Some(23), + SpannedToken { token: Token::Comma, .. } if true => Some(4), + SpannedToken { token: Token::Dash, .. } if true => Some(5), + SpannedToken { token: Token::DashDash, .. } if true => Some(6), + SpannedToken { token: Token::ReturnArrow, .. } if true => Some(7), + SpannedToken { token: Token::Colon, .. } if true => Some(8), + SpannedToken { token: Token::OpLt, .. } if true => Some(9), + SpannedToken { token: Token::OpLte, .. } if true => Some(10), + SpannedToken { token: Token::OpEq, .. } if true => Some(11), + SpannedToken { token: Token::OpGt, .. } if true => Some(12), + SpannedToken { token: Token::OpGte, .. } if true => Some(13), + SpannedToken { token: Token::PathDot, .. } if true => Some(14), + SpannedToken { token: Token::TyAny, .. } if true => Some(15), + SpannedToken { token: Token::Bare, .. } if true => Some(16), + SpannedToken { token: Token::TyBlock, .. } if true => Some(17), + SpannedToken { token: Token::TyBoolean, .. } if true => Some(18), + SpannedToken { token: Token::TyBytes, .. } if true => Some(19), + SpannedToken { token: Token::CommandName, .. } if true => Some(20), + SpannedToken { token: Token::TyDate, .. } if true => Some(21), + SpannedToken { token: Token::TyDecimal, .. } if true => Some(22), + SpannedToken { token: Token::SQMember, .. } if true => Some(23), + SpannedToken { token: Token::DQString, .. } if true => Some(24), + SpannedToken { token: Token::EndParamList, .. } if true => Some(25), + SpannedToken { token: Token::KeywordFunction, .. } if true => Some(26), + SpannedToken { token: Token::TyInt, .. } if true => Some(27), + SpannedToken { token: Token::TyList, .. } if true => Some(28), + SpannedToken { token: Token::Member, .. } if true => Some(29), + SpannedToken { token: Token::Newline, .. } if true => Some(30), + SpannedToken { token: Token::Num, .. } if true => Some(31), + SpannedToken { token: Token::TyObject, .. } if true => Some(32), + SpannedToken { token: Token::SQMember, .. } if true => Some(33), + SpannedToken { token: Token::SQString, .. } if true => Some(34), + SpannedToken { token: Token::StartParamList, .. } if true => Some(35), + SpannedToken { token: Token::TyText, .. } if true => Some(36), + SpannedToken { token: Token::Unit, .. } if true => Some(37), + SpannedToken { token: Token::Variable, .. } if true => Some(38), + SpannedToken { token: Token::OpenBrace, .. } if true => Some(39), + SpannedToken { token: Token::Pipe, .. } if true => Some(40), + SpannedToken { token: Token::CloseBrace, .. } if true => Some(41), _ => None, } } @@ -645,82 +728,154 @@ mod __parse__Call { _ => unreachable!(), }, 4 => match __token { - __tok @ SpannedToken { token: Token::Dash, .. } => __Symbol::Variant0((__tok)), + __tok @ SpannedToken { token: Token::Comma, .. } => __Symbol::Variant0((__tok)), _ => unreachable!(), }, 5 => match __token { - __tok @ SpannedToken { token: Token::DashDash, .. } => __Symbol::Variant0((__tok)), + __tok @ SpannedToken { token: Token::Dash, .. } => __Symbol::Variant0((__tok)), _ => unreachable!(), }, 6 => match __token { - __tok @ SpannedToken { token: Token::OpLt, .. } => __Symbol::Variant0((__tok)), + __tok @ SpannedToken { token: Token::DashDash, .. } => __Symbol::Variant0((__tok)), _ => unreachable!(), }, 7 => match __token { - __tok @ SpannedToken { token: Token::OpLte, .. } => __Symbol::Variant0((__tok)), + __tok @ SpannedToken { token: Token::ReturnArrow, .. } => __Symbol::Variant0((__tok)), _ => unreachable!(), }, 8 => match __token { - __tok @ SpannedToken { token: Token::OpEq, .. } => __Symbol::Variant0((__tok)), + __tok @ SpannedToken { token: Token::Colon, .. } => __Symbol::Variant0((__tok)), _ => unreachable!(), }, 9 => match __token { - __tok @ SpannedToken { token: Token::OpGt, .. } => __Symbol::Variant0((__tok)), + __tok @ SpannedToken { token: Token::OpLt, .. } => __Symbol::Variant0((__tok)), _ => unreachable!(), }, 10 => match __token { - __tok @ SpannedToken { token: Token::OpGte, .. } => __Symbol::Variant0((__tok)), + __tok @ SpannedToken { token: Token::OpLte, .. } => __Symbol::Variant0((__tok)), _ => unreachable!(), }, 11 => match __token { - __tok @ SpannedToken { token: Token::PathDot, .. } => __Symbol::Variant0((__tok)), + __tok @ SpannedToken { token: Token::OpEq, .. } => __Symbol::Variant0((__tok)), _ => unreachable!(), }, 12 => match __token { - __tok @ SpannedToken { token: Token::Bare, .. } => __Symbol::Variant0((__tok)), + __tok @ SpannedToken { token: Token::OpGt, .. } => __Symbol::Variant0((__tok)), _ => unreachable!(), }, 13 => match __token { - __tok @ SpannedToken { token: Token::SQMember, .. } => __Symbol::Variant0((__tok)), + __tok @ SpannedToken { token: Token::OpGte, .. } => __Symbol::Variant0((__tok)), _ => unreachable!(), }, 14 => match __token { - __tok @ SpannedToken { token: Token::DQString, .. } => __Symbol::Variant0((__tok)), + __tok @ SpannedToken { token: Token::PathDot, .. } => __Symbol::Variant0((__tok)), _ => unreachable!(), }, 15 => match __token { - __tok @ SpannedToken { token: Token::Member, .. } => __Symbol::Variant0((__tok)), + __tok @ SpannedToken { token: Token::TyAny, .. } => __Symbol::Variant0((__tok)), _ => unreachable!(), }, 16 => match __token { - __tok @ SpannedToken { token: Token::Num, .. } => __Symbol::Variant0((__tok)), + __tok @ SpannedToken { token: Token::Bare, .. } => __Symbol::Variant0((__tok)), _ => unreachable!(), }, 17 => match __token { - __tok @ SpannedToken { token: Token::SQMember, .. } => __Symbol::Variant0((__tok)), + __tok @ SpannedToken { token: Token::TyBlock, .. } => __Symbol::Variant0((__tok)), _ => unreachable!(), }, 18 => match __token { - __tok @ SpannedToken { token: Token::SQString, .. } => __Symbol::Variant0((__tok)), + __tok @ SpannedToken { token: Token::TyBoolean, .. } => __Symbol::Variant0((__tok)), _ => unreachable!(), }, 19 => match __token { - __tok @ SpannedToken { token: Token::Unit, .. } => __Symbol::Variant0((__tok)), + __tok @ SpannedToken { token: Token::TyBytes, .. } => __Symbol::Variant0((__tok)), _ => unreachable!(), }, 20 => match __token { - __tok @ SpannedToken { token: Token::Variable, .. } => __Symbol::Variant0((__tok)), + __tok @ SpannedToken { token: Token::CommandName, .. } => __Symbol::Variant0((__tok)), _ => unreachable!(), }, 21 => match __token { - __tok @ SpannedToken { token: Token::OpenBrace, .. } => __Symbol::Variant0((__tok)), + __tok @ SpannedToken { token: Token::TyDate, .. } => __Symbol::Variant0((__tok)), _ => unreachable!(), }, 22 => match __token { - __tok @ SpannedToken { token: Token::Pipe, .. } => __Symbol::Variant0((__tok)), + __tok @ SpannedToken { token: Token::TyDecimal, .. } => __Symbol::Variant0((__tok)), _ => unreachable!(), }, 23 => match __token { + __tok @ SpannedToken { token: Token::SQMember, .. } => __Symbol::Variant0((__tok)), + _ => unreachable!(), + }, + 24 => match __token { + __tok @ SpannedToken { token: Token::DQString, .. } => __Symbol::Variant0((__tok)), + _ => unreachable!(), + }, + 25 => match __token { + __tok @ SpannedToken { token: Token::EndParamList, .. } => __Symbol::Variant0((__tok)), + _ => unreachable!(), + }, + 26 => match __token { + __tok @ SpannedToken { token: Token::KeywordFunction, .. } => __Symbol::Variant0((__tok)), + _ => unreachable!(), + }, + 27 => match __token { + __tok @ SpannedToken { token: Token::TyInt, .. } => __Symbol::Variant0((__tok)), + _ => unreachable!(), + }, + 28 => match __token { + __tok @ SpannedToken { token: Token::TyList, .. } => __Symbol::Variant0((__tok)), + _ => unreachable!(), + }, + 29 => match __token { + __tok @ SpannedToken { token: Token::Member, .. } => __Symbol::Variant0((__tok)), + _ => unreachable!(), + }, + 30 => match __token { + __tok @ SpannedToken { token: Token::Newline, .. } => __Symbol::Variant0((__tok)), + _ => unreachable!(), + }, + 31 => match __token { + __tok @ SpannedToken { token: Token::Num, .. } => __Symbol::Variant0((__tok)), + _ => unreachable!(), + }, + 32 => match __token { + __tok @ SpannedToken { token: Token::TyObject, .. } => __Symbol::Variant0((__tok)), + _ => unreachable!(), + }, + 33 => match __token { + __tok @ SpannedToken { token: Token::SQMember, .. } => __Symbol::Variant0((__tok)), + _ => unreachable!(), + }, + 34 => match __token { + __tok @ SpannedToken { token: Token::SQString, .. } => __Symbol::Variant0((__tok)), + _ => unreachable!(), + }, + 35 => match __token { + __tok @ SpannedToken { token: Token::StartParamList, .. } => __Symbol::Variant0((__tok)), + _ => unreachable!(), + }, + 36 => match __token { + __tok @ SpannedToken { token: Token::TyText, .. } => __Symbol::Variant0((__tok)), + _ => unreachable!(), + }, + 37 => match __token { + __tok @ SpannedToken { token: Token::Unit, .. } => __Symbol::Variant0((__tok)), + _ => unreachable!(), + }, + 38 => match __token { + __tok @ SpannedToken { token: Token::Variable, .. } => __Symbol::Variant0((__tok)), + _ => unreachable!(), + }, + 39 => match __token { + __tok @ SpannedToken { token: Token::OpenBrace, .. } => __Symbol::Variant0((__tok)), + _ => unreachable!(), + }, + 40 => match __token { + __tok @ SpannedToken { token: Token::Pipe, .. } => __Symbol::Variant0((__tok)), + _ => unreachable!(), + }, + 41 => match __token { __tok @ SpannedToken { token: Token::CloseBrace, .. } => __Symbol::Variant0((__tok)), _ => unreachable!(), }, @@ -749,7 +904,7 @@ mod __parse__Call { } 2 => { __state_machine::SimulatedReduce::Reduce { - states_to_pop: 3, + states_to_pop: 0, nonterminal_produced: 1, } } @@ -761,26 +916,26 @@ mod __parse__Call { } 4 => { __state_machine::SimulatedReduce::Reduce { - states_to_pop: 0, + states_to_pop: 2, nonterminal_produced: 3, } } 5 => { __state_machine::SimulatedReduce::Reduce { - states_to_pop: 1, + states_to_pop: 3, nonterminal_produced: 3, } } 6 => { __state_machine::SimulatedReduce::Reduce { - states_to_pop: 2, + states_to_pop: 1, nonterminal_produced: 4, } } 7 => { __state_machine::SimulatedReduce::Reduce { - states_to_pop: 3, - nonterminal_produced: 4, + states_to_pop: 0, + nonterminal_produced: 5, } } 8 => { @@ -803,7 +958,7 @@ mod __parse__Call { } 11 => { __state_machine::SimulatedReduce::Reduce { - states_to_pop: 0, + states_to_pop: 2, nonterminal_produced: 7, } } @@ -816,79 +971,79 @@ mod __parse__Call { 13 => { __state_machine::SimulatedReduce::Reduce { states_to_pop: 1, - nonterminal_produced: 9, + nonterminal_produced: 8, } } 14 => { __state_machine::SimulatedReduce::Reduce { - states_to_pop: 1, + states_to_pop: 2, nonterminal_produced: 9, } } 15 => { __state_machine::SimulatedReduce::Reduce { - states_to_pop: 1, - nonterminal_produced: 10, + states_to_pop: 3, + nonterminal_produced: 9, } } 16 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 2, + nonterminal_produced: 10, + } + } + 17 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 0, + nonterminal_produced: 11, + } + } + 18 => { __state_machine::SimulatedReduce::Reduce { states_to_pop: 1, nonterminal_produced: 11, } } - 17 => { + 19 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 2, + nonterminal_produced: 12, + } + } + 20 => { __state_machine::SimulatedReduce::Reduce { states_to_pop: 3, nonterminal_produced: 12, } } - 18 => { - __state_machine::SimulatedReduce::Reduce { - states_to_pop: 3, - nonterminal_produced: 13, - } - } - 19 => { - __state_machine::SimulatedReduce::Reduce { - states_to_pop: 3, - nonterminal_produced: 13, - } - } - 20 => { - __state_machine::SimulatedReduce::Reduce { - states_to_pop: 2, - nonterminal_produced: 14, - } - } 21 => { __state_machine::SimulatedReduce::Reduce { - states_to_pop: 3, - nonterminal_produced: 14, + states_to_pop: 1, + nonterminal_produced: 13, } } 22 => { __state_machine::SimulatedReduce::Reduce { - states_to_pop: 2, + states_to_pop: 1, nonterminal_produced: 14, } } 23 => { __state_machine::SimulatedReduce::Reduce { - states_to_pop: 3, + states_to_pop: 2, nonterminal_produced: 14, } } 24 => { __state_machine::SimulatedReduce::Reduce { - states_to_pop: 1, + states_to_pop: 4, nonterminal_produced: 15, } } 25 => { __state_machine::SimulatedReduce::Reduce { - states_to_pop: 1, - nonterminal_produced: 15, + states_to_pop: 0, + nonterminal_produced: 16, } } 26 => { @@ -899,225 +1054,573 @@ mod __parse__Call { } 27 => { __state_machine::SimulatedReduce::Reduce { - states_to_pop: 2, - nonterminal_produced: 16, + states_to_pop: 4, + nonterminal_produced: 17, } } 28 => { __state_machine::SimulatedReduce::Reduce { - states_to_pop: 2, + states_to_pop: 5, nonterminal_produced: 17, } } 29 => { __state_machine::SimulatedReduce::Reduce { - states_to_pop: 2, - nonterminal_produced: 17, + states_to_pop: 0, + nonterminal_produced: 18, } } 30 => { __state_machine::SimulatedReduce::Reduce { - states_to_pop: 1, - nonterminal_produced: 18, + states_to_pop: 0, + nonterminal_produced: 19, } } 31 => { __state_machine::SimulatedReduce::Reduce { states_to_pop: 1, - nonterminal_produced: 19, + nonterminal_produced: 20, } } 32 => { __state_machine::SimulatedReduce::Reduce { states_to_pop: 1, - nonterminal_produced: 19, + nonterminal_produced: 20, } } 33 => { __state_machine::SimulatedReduce::Reduce { states_to_pop: 1, - nonterminal_produced: 19, + nonterminal_produced: 21, } } 34 => { __state_machine::SimulatedReduce::Reduce { states_to_pop: 1, - nonterminal_produced: 19, + nonterminal_produced: 22, } } 35 => { __state_machine::SimulatedReduce::Reduce { - states_to_pop: 1, - nonterminal_produced: 20, + states_to_pop: 3, + nonterminal_produced: 23, } } 36 => { __state_machine::SimulatedReduce::Reduce { - states_to_pop: 1, - nonterminal_produced: 20, + states_to_pop: 3, + nonterminal_produced: 24, } } 37 => { __state_machine::SimulatedReduce::Reduce { - states_to_pop: 1, - nonterminal_produced: 20, + states_to_pop: 3, + nonterminal_produced: 24, } } 38 => { __state_machine::SimulatedReduce::Reduce { - states_to_pop: 1, - nonterminal_produced: 21, + states_to_pop: 3, + nonterminal_produced: 25, } } 39 => { __state_machine::SimulatedReduce::Reduce { - states_to_pop: 1, - nonterminal_produced: 21, + states_to_pop: 3, + nonterminal_produced: 25, } } 40 => { __state_machine::SimulatedReduce::Reduce { - states_to_pop: 3, - nonterminal_produced: 21, + states_to_pop: 2, + nonterminal_produced: 26, } } 41 => { __state_machine::SimulatedReduce::Reduce { states_to_pop: 3, - nonterminal_produced: 21, + nonterminal_produced: 26, } } 42 => { __state_machine::SimulatedReduce::Reduce { - states_to_pop: 3, - nonterminal_produced: 21, + states_to_pop: 2, + nonterminal_produced: 26, } } 43 => { __state_machine::SimulatedReduce::Reduce { - states_to_pop: 1, - nonterminal_produced: 22, + states_to_pop: 3, + nonterminal_produced: 26, } } 44 => { __state_machine::SimulatedReduce::Reduce { states_to_pop: 1, - nonterminal_produced: 22, + nonterminal_produced: 27, } } 45 => { __state_machine::SimulatedReduce::Reduce { states_to_pop: 1, - nonterminal_produced: 22, + nonterminal_produced: 27, } } 46 => { __state_machine::SimulatedReduce::Reduce { states_to_pop: 1, - nonterminal_produced: 22, + nonterminal_produced: 28, } } 47 => { __state_machine::SimulatedReduce::Reduce { - states_to_pop: 1, - nonterminal_produced: 22, + states_to_pop: 0, + nonterminal_produced: 28, } } 48 => { __state_machine::SimulatedReduce::Reduce { - states_to_pop: 1, - nonterminal_produced: 22, + states_to_pop: 2, + nonterminal_produced: 28, } } 49 => { __state_machine::SimulatedReduce::Reduce { states_to_pop: 1, - nonterminal_produced: 23, + nonterminal_produced: 28, } } 50 => { __state_machine::SimulatedReduce::Reduce { - states_to_pop: 2, - nonterminal_produced: 23, + states_to_pop: 1, + nonterminal_produced: 29, } } 51 => { __state_machine::SimulatedReduce::Reduce { states_to_pop: 1, - nonterminal_produced: 24, + nonterminal_produced: 30, } } 52 => { - __state_machine::SimulatedReduce::Reduce { - states_to_pop: 1, - nonterminal_produced: 24, - } - } - 53 => { - __state_machine::SimulatedReduce::Reduce { - states_to_pop: 1, - nonterminal_produced: 25, - } - } - 54 => { - __state_machine::SimulatedReduce::Reduce { - states_to_pop: 1, - nonterminal_produced: 25, - } - } - 55 => { - __state_machine::SimulatedReduce::Reduce { - states_to_pop: 1, - nonterminal_produced: 26, - } - } - 56 => { - __state_machine::SimulatedReduce::Reduce { - states_to_pop: 1, - nonterminal_produced: 26, - } - } - 57 => { - __state_machine::SimulatedReduce::Reduce { - states_to_pop: 1, - nonterminal_produced: 26, - } - } - 58 => { - __state_machine::SimulatedReduce::Reduce { - states_to_pop: 1, - nonterminal_produced: 27, - } - } - 59 => { - __state_machine::SimulatedReduce::Reduce { - states_to_pop: 1, - nonterminal_produced: 28, - } - } - 60 => { - __state_machine::SimulatedReduce::Reduce { - states_to_pop: 1, - nonterminal_produced: 28, - } - } - 61 => { - __state_machine::SimulatedReduce::Reduce { - states_to_pop: 2, - nonterminal_produced: 29, - } - } - 62 => { __state_machine::SimulatedReduce::Reduce { states_to_pop: 2, nonterminal_produced: 30, } } - 63 => __state_machine::SimulatedReduce::Accept, + 53 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 2, + nonterminal_produced: 31, + } + } + 54 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 2, + nonterminal_produced: 31, + } + } + 55 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 3, + nonterminal_produced: 32, + } + } + 56 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 33, + } + } + 57 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 0, + nonterminal_produced: 33, + } + } + 58 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 8, + nonterminal_produced: 34, + } + } + 59 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 6, + nonterminal_produced: 34, + } + } + 60 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 35, + } + } + 61 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 36, + } + } + 62 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 36, + } + } + 63 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 37, + } + } 64 => { __state_machine::SimulatedReduce::Reduce { states_to_pop: 1, - nonterminal_produced: 32, + nonterminal_produced: 37, + } + } + 65 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 37, + } + } + 66 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 37, + } + } + 67 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 38, + } + } + 68 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 38, + } + } + 69 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 38, + } + } + 70 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 38, + } + } + 71 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 39, + } + } + 72 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 39, + } + } + 73 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 3, + nonterminal_produced: 39, + } + } + 74 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 3, + nonterminal_produced: 39, + } + } + 75 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 3, + nonterminal_produced: 39, + } + } + 76 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 40, + } + } + 77 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 2, + nonterminal_produced: 40, + } + } + 78 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 41, + } + } + 79 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 42, + } + } + 80 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 42, + } + } + 81 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 42, + } + } + 82 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 42, + } + } + 83 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 42, + } + } + 84 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 42, + } + } + 85 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 0, + nonterminal_produced: 43, + } + } + 86 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 43, + } + } + 87 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 44, + } + } + 88 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 2, + nonterminal_produced: 45, + } + } + 89 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 2, + nonterminal_produced: 45, + } + } + 90 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 45, + } + } + 91 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 2, + nonterminal_produced: 46, + } + } + 92 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 47, + } + } + 93 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 2, + nonterminal_produced: 47, + } + } + 94 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 48, + } + } + 95 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 48, + } + } + 96 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 49, + } + } + 97 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 49, + } + } + 98 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 49, + } + } + 99 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 49, + } + } + 100 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 49, + } + } + 101 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 49, + } + } + 102 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 49, + } + } + 103 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 49, + } + } + 104 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 49, + } + } + 105 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 49, + } + } + 106 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 50, + } + } + 107 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 2, + nonterminal_produced: 50, + } + } + 108 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 51, + } + } + 109 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 51, + } + } + 110 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 52, + } + } + 111 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 52, + } + } + 112 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 52, + } + } + 113 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 53, + } + } + 114 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 54, + } + } + 115 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 55, + } + } + 116 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 55, + } + } + 117 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 56, + } + } + 118 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 2, + nonterminal_produced: 57, + } + } + 119 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 2, + nonterminal_produced: 58, + } + } + 120 => __state_machine::SimulatedReduce::Accept, + 121 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 60, + } + } + 122 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 61, } } _ => panic!("invalid reduction index {}", __reduce_index) @@ -1356,66 +1859,229 @@ mod __parse__Call { __reduce62(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) } 63 => { - // __Call = Call => ActionFn(1); - let __sym0 = __pop_Variant2(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action1::<>(__sym0); - return Some(Ok(__nt)); + __reduce63(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) } 64 => { __reduce64(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) } + 65 => { + __reduce65(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 66 => { + __reduce66(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 67 => { + __reduce67(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 68 => { + __reduce68(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 69 => { + __reduce69(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 70 => { + __reduce70(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 71 => { + __reduce71(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 72 => { + __reduce72(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 73 => { + __reduce73(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 74 => { + __reduce74(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 75 => { + __reduce75(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 76 => { + __reduce76(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 77 => { + __reduce77(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 78 => { + __reduce78(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 79 => { + __reduce79(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 80 => { + __reduce80(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 81 => { + __reduce81(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 82 => { + __reduce82(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 83 => { + __reduce83(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 84 => { + __reduce84(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 85 => { + __reduce85(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 86 => { + __reduce86(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 87 => { + __reduce87(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 88 => { + __reduce88(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 89 => { + __reduce89(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 90 => { + __reduce90(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 91 => { + __reduce91(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 92 => { + __reduce92(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 93 => { + __reduce93(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 94 => { + __reduce94(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 95 => { + __reduce95(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 96 => { + __reduce96(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 97 => { + __reduce97(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 98 => { + __reduce98(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 99 => { + __reduce99(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 100 => { + __reduce100(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 101 => { + __reduce101(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 102 => { + __reduce102(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 103 => { + __reduce103(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 104 => { + __reduce104(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 105 => { + __reduce105(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 106 => { + __reduce106(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 107 => { + __reduce107(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 108 => { + __reduce108(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 109 => { + __reduce109(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 110 => { + __reduce110(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 111 => { + __reduce111(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 112 => { + __reduce112(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 113 => { + __reduce113(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 114 => { + __reduce114(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 115 => { + __reduce115(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 116 => { + __reduce116(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 117 => { + __reduce117(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 118 => { + __reduce118(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 119 => { + __reduce119(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 120 => { + // __Call = Call => ActionFn(2); + let __sym0 = __pop_Variant6(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action2::<>(__sym0); + return Some(Ok(__nt)); + } + 121 => { + __reduce121(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 122 => { + __reduce122(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } _ => panic!("invalid action code {}", __action) }; let __states_len = __states.len(); __states.truncate(__states_len - __pop_states); let __state = *__states.last().unwrap() as usize; - let __next_state = __GOTO[__state * 33 + __nonterminal] - 1; + let __next_state = __GOTO[__state * 62 + __nonterminal] - 1; __states.push(__next_state); None } - fn __pop_Variant5< + fn __pop_Variant21< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, (), usize) + { + match __symbols.pop().unwrap() { + (__l, __Symbol::Variant21(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Variant13< 'input, >( __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> ) -> (usize, Bare, usize) { match __symbols.pop().unwrap() { - (__l, __Symbol::Variant5(__v), __r) => (__l, __v, __r), + (__l, __Symbol::Variant13(__v), __r) => (__l, __v, __r), _ => panic!("symbol type mismatch") } } - fn __pop_Variant2< + fn __pop_Variant6< 'input, >( __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> ) -> (usize, Expression, usize) { match __symbols.pop().unwrap() { - (__l, __Symbol::Variant2(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Variant8< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, Operator, usize) - { - match __symbols.pop().unwrap() { - (__l, __Symbol::Variant8(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Variant9< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, Pipeline, usize) - { - match __symbols.pop().unwrap() { - (__l, __Symbol::Variant9(__v), __r) => (__l, __v, __r), + (__l, __Symbol::Variant6(__v), __r) => (__l, __v, __r), _ => panic!("symbol type mismatch") } } @@ -1423,13 +2089,145 @@ mod __parse__Call { 'input, >( __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, Spanned, usize) + ) -> (usize, FormalParameter, usize) { match __symbols.pop().unwrap() { (__l, __Symbol::Variant10(__v), __r) => (__l, __v, __r), _ => panic!("symbol type mismatch") } } + fn __pop_Variant18< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, Function, usize) + { + match __symbols.pop().unwrap() { + (__l, __Symbol::Variant18(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Variant8< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, Item, usize) + { + match __symbols.pop().unwrap() { + (__l, __Symbol::Variant8(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Variant20< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, Module, usize) + { + match __symbols.pop().unwrap() { + (__l, __Symbol::Variant20(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Variant22< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, Operator, usize) + { + match __symbols.pop().unwrap() { + (__l, __Symbol::Variant22(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Variant23< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, ParameterIdentifier, usize) + { + match __symbols.pop().unwrap() { + (__l, __Symbol::Variant23(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Variant25< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, Pipeline, usize) + { + match __symbols.pop().unwrap() { + (__l, __Symbol::Variant25(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Variant16< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, Spanned, usize) + { + match __symbols.pop().unwrap() { + (__l, __Symbol::Variant16(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Variant14< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, Spanned, usize) + { + match __symbols.pop().unwrap() { + (__l, __Symbol::Variant14(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Variant27< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, Spanned, usize) + { + match __symbols.pop().unwrap() { + (__l, __Symbol::Variant27(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Variant3< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, Spanned, usize) + { + match __symbols.pop().unwrap() { + (__l, __Symbol::Variant3(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Variant1< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, Spanned, usize) + { + match __symbols.pop().unwrap() { + (__l, __Symbol::Variant1(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Variant24< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, Spanned, usize) + { + match __symbols.pop().unwrap() { + (__l, __Symbol::Variant24(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } fn __pop_Variant0< 'input, >( @@ -1441,25 +2239,102 @@ mod __parse__Call { _ => panic!("symbol type mismatch") } } - fn __pop_Variant7< + fn __pop_Variant26< 'input, >( __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, String, usize) + ) -> (usize, Type, usize) { match __symbols.pop().unwrap() { - (__l, __Symbol::Variant7(__v), __r) => (__l, __v, __r), + (__l, __Symbol::Variant26(__v), __r) => (__l, __v, __r), _ => panic!("symbol type mismatch") } } - fn __pop_Variant6< + fn __pop_Variant15< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, Vec, usize) + { + match __symbols.pop().unwrap() { + (__l, __Symbol::Variant15(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Variant19< 'input, >( __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> ) -> (usize, i64, usize) { match __symbols.pop().unwrap() { - (__l, __Symbol::Variant6(__v), __r) => (__l, __v, __r), + (__l, __Symbol::Variant19(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Variant12< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, usize, usize) + { + match __symbols.pop().unwrap() { + (__l, __Symbol::Variant12(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Variant17< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, ::std::option::Option, usize) + { + match __symbols.pop().unwrap() { + (__l, __Symbol::Variant17(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Variant2< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, ::std::option::Option>, usize) + { + match __symbols.pop().unwrap() { + (__l, __Symbol::Variant2(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Variant7< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, ::std::vec::Vec, usize) + { + match __symbols.pop().unwrap() { + (__l, __Symbol::Variant7(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Variant11< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, ::std::vec::Vec, usize) + { + match __symbols.pop().unwrap() { + (__l, __Symbol::Variant11(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Variant9< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, ::std::vec::Vec, usize) + { + match __symbols.pop().unwrap() { + (__l, __Symbol::Variant9(__v), __r) => (__l, __v, __r), _ => panic!("symbol type mismatch") } } @@ -1467,32 +2342,21 @@ mod __parse__Call { 'input, >( __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, usize, usize) + ) -> (usize, ::std::vec::Vec>, usize) { match __symbols.pop().unwrap() { (__l, __Symbol::Variant4(__v), __r) => (__l, __v, __r), _ => panic!("symbol type mismatch") } } - fn __pop_Variant3< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, ::std::vec::Vec, usize) - { - match __symbols.pop().unwrap() { - (__l, __Symbol::Variant3(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Variant1< + fn __pop_Variant5< 'input, >( __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> ) -> (usize, ::std::vec::Vec>, usize) { match __symbols.pop().unwrap() { - (__l, __Symbol::Variant1(__v), __r) => (__l, __v, __r), + (__l, __Symbol::Variant5(__v), __r) => (__l, __v, __r), _ => panic!("symbol type mismatch") } } @@ -1506,13 +2370,13 @@ mod __parse__Call { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // ("???." <"member">) = "???.", "member" => ActionFn(53); - let __sym1 = __pop_Variant0(__symbols); + // ("->" ) = "->", Type => ActionFn(95); + let __sym1 = __pop_Variant1(__symbols); let __sym0 = __pop_Variant0(__symbols); let __start = __sym0.0.clone(); let __end = __sym1.2.clone(); - let __nt = super::__action53::<>(__sym0, __sym1); - __symbols.push((__start, __Symbol::Variant0(__nt), __end)); + let __nt = super::__action95::<>(__sym0, __sym1); + __symbols.push((__start, __Symbol::Variant1(__nt), __end)); (2, 0) } pub(crate) fn __reduce1< @@ -1525,13 +2389,13 @@ mod __parse__Call { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // ("???." <"member">)+ = "???.", "member" => ActionFn(64); - let __sym1 = __pop_Variant0(__symbols); + // ("->" )? = "->", Type => ActionFn(115); + let __sym1 = __pop_Variant1(__symbols); let __sym0 = __pop_Variant0(__symbols); let __start = __sym0.0.clone(); let __end = __sym1.2.clone(); - let __nt = super::__action64::<>(__sym0, __sym1); - __symbols.push((__start, __Symbol::Variant1(__nt), __end)); + let __nt = super::__action115::<>(__sym0, __sym1); + __symbols.push((__start, __Symbol::Variant2(__nt), __end)); (2, 1) } pub(crate) fn __reduce2< @@ -1544,15 +2408,12 @@ mod __parse__Call { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // ("???." <"member">)+ = ("???." <"member">)+, "???.", "member" => ActionFn(65); - let __sym2 = __pop_Variant0(__symbols); - let __sym1 = __pop_Variant0(__symbols); - let __sym0 = __pop_Variant1(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym2.2.clone(); - let __nt = super::__action65::<>(__sym0, __sym1, __sym2); - __symbols.push((__start, __Symbol::Variant1(__nt), __end)); - (3, 1) + // ("->" )? = => ActionFn(94); + let __start = __symbols.last().map(|s| s.2.clone()).unwrap_or_default(); + let __end = __lookahead_start.cloned().unwrap_or_else(|| __start.clone()); + let __nt = super::__action94::<>(&__start, &__end); + __symbols.push((__start, __Symbol::Variant2(__nt), __end)); + (0, 1) } pub(crate) fn __reduce3< 'input, @@ -1564,13 +2425,13 @@ mod __parse__Call { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // ("|" ) = "|", PipelineElement => ActionFn(60); - let __sym1 = __pop_Variant2(__symbols); + // ("???." ) = "???.", Member => ActionFn(83); + let __sym1 = __pop_Variant3(__symbols); let __sym0 = __pop_Variant0(__symbols); let __start = __sym0.0.clone(); let __end = __sym1.2.clone(); - let __nt = super::__action60::<>(__sym0, __sym1); - __symbols.push((__start, __Symbol::Variant2(__nt), __end)); + let __nt = super::__action83::<>(__sym0, __sym1); + __symbols.push((__start, __Symbol::Variant3(__nt), __end)); (2, 2) } pub(crate) fn __reduce4< @@ -1583,12 +2444,14 @@ mod __parse__Call { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // ("|" )* = => ActionFn(58); - let __start = __symbols.last().map(|s| s.2.clone()).unwrap_or_default(); - let __end = __lookahead_start.cloned().unwrap_or_else(|| __start.clone()); - let __nt = super::__action58::<>(&__start, &__end); - __symbols.push((__start, __Symbol::Variant3(__nt), __end)); - (0, 3) + // ("???." )+ = "???.", Member => ActionFn(118); + let __sym1 = __pop_Variant3(__symbols); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym1.2.clone(); + let __nt = super::__action118::<>(__sym0, __sym1); + __symbols.push((__start, __Symbol::Variant4(__nt), __end)); + (2, 3) } pub(crate) fn __reduce5< 'input, @@ -1600,13 +2463,15 @@ mod __parse__Call { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // ("|" )* = ("|" )+ => ActionFn(59); - let __sym0 = __pop_Variant3(__symbols); + // ("???." )+ = ("???." )+, "???.", Member => ActionFn(119); + let __sym2 = __pop_Variant3(__symbols); + let __sym1 = __pop_Variant0(__symbols); + let __sym0 = __pop_Variant4(__symbols); let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action59::<>(__sym0); - __symbols.push((__start, __Symbol::Variant3(__nt), __end)); - (1, 3) + let __end = __sym2.2.clone(); + let __nt = super::__action119::<>(__sym0, __sym1, __sym2); + __symbols.push((__start, __Symbol::Variant4(__nt), __end)); + (3, 3) } pub(crate) fn __reduce6< 'input, @@ -1618,14 +2483,13 @@ mod __parse__Call { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // ("|" )+ = "|", PipelineElement => ActionFn(66); - let __sym1 = __pop_Variant2(__symbols); + // ("newline") = "newline" => ActionFn(102); let __sym0 = __pop_Variant0(__symbols); let __start = __sym0.0.clone(); - let __end = __sym1.2.clone(); - let __nt = super::__action66::<>(__sym0, __sym1); - __symbols.push((__start, __Symbol::Variant3(__nt), __end)); - (2, 4) + let __end = __sym0.2.clone(); + let __nt = super::__action102::<>(__sym0); + __symbols.push((__start, __Symbol::Variant0(__nt), __end)); + (1, 4) } pub(crate) fn __reduce7< 'input, @@ -1637,15 +2501,12 @@ mod __parse__Call { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // ("|" )+ = ("|" )+, "|", PipelineElement => ActionFn(67); - let __sym2 = __pop_Variant2(__symbols); - let __sym1 = __pop_Variant0(__symbols); - let __sym0 = __pop_Variant3(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym2.2.clone(); - let __nt = super::__action67::<>(__sym0, __sym1, __sym2); - __symbols.push((__start, __Symbol::Variant3(__nt), __end)); - (3, 4) + // ("newline")* = => ActionFn(90); + let __start = __symbols.last().map(|s| s.2.clone()).unwrap_or_default(); + let __end = __lookahead_start.cloned().unwrap_or_else(|| __start.clone()); + let __nt = super::__action90::<>(&__start, &__end); + __symbols.push((__start, __Symbol::Variant5(__nt), __end)); + (0, 5) } pub(crate) fn __reduce8< 'input, @@ -1657,12 +2518,12 @@ mod __parse__Call { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // () = CallArgument => ActionFn(56); - let __sym0 = __pop_Variant2(__symbols); + // ("newline")* = ("newline")+ => ActionFn(91); + let __sym0 = __pop_Variant5(__symbols); let __start = __sym0.0.clone(); let __end = __sym0.2.clone(); - let __nt = super::__action56::<>(__sym0); - __symbols.push((__start, __Symbol::Variant2(__nt), __end)); + let __nt = super::__action91::<>(__sym0); + __symbols.push((__start, __Symbol::Variant5(__nt), __end)); (1, 5) } pub(crate) fn __reduce9< @@ -1675,12 +2536,12 @@ mod __parse__Call { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // ()+ = CallArgument => ActionFn(70); - let __sym0 = __pop_Variant2(__symbols); + // ("newline")+ = "newline" => ActionFn(120); + let __sym0 = __pop_Variant0(__symbols); let __start = __sym0.0.clone(); let __end = __sym0.2.clone(); - let __nt = super::__action70::<>(__sym0); - __symbols.push((__start, __Symbol::Variant3(__nt), __end)); + let __nt = super::__action120::<>(__sym0); + __symbols.push((__start, __Symbol::Variant5(__nt), __end)); (1, 6) } pub(crate) fn __reduce10< @@ -1693,13 +2554,13 @@ mod __parse__Call { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // ()+ = ()+, CallArgument => ActionFn(71); - let __sym1 = __pop_Variant2(__symbols); - let __sym0 = __pop_Variant3(__symbols); + // ("newline")+ = ("newline")+, "newline" => ActionFn(121); + let __sym1 = __pop_Variant0(__symbols); + let __sym0 = __pop_Variant5(__symbols); let __start = __sym0.0.clone(); let __end = __sym1.2.clone(); - let __nt = super::__action71::<>(__sym0, __sym1); - __symbols.push((__start, __Symbol::Variant3(__nt), __end)); + let __nt = super::__action121::<>(__sym0, __sym1); + __symbols.push((__start, __Symbol::Variant5(__nt), __end)); (2, 6) } pub(crate) fn __reduce11< @@ -1712,12 +2573,14 @@ mod __parse__Call { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // @L = => ActionFn(61); - let __start = __symbols.last().map(|s| s.2.clone()).unwrap_or_default(); - let __end = __lookahead_start.cloned().unwrap_or_else(|| __start.clone()); - let __nt = super::__action61::<>(&__start, &__end); - __symbols.push((__start, __Symbol::Variant4(__nt), __end)); - (0, 7) + // ("|" ) = "|", PipelineElement => ActionFn(89); + let __sym1 = __pop_Variant6(__symbols); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym1.2.clone(); + let __nt = super::__action89::<>(__sym0, __sym1); + __symbols.push((__start, __Symbol::Variant6(__nt), __end)); + (2, 7) } pub(crate) fn __reduce12< 'input, @@ -1729,11 +2592,11 @@ mod __parse__Call { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // @R = => ActionFn(57); + // ("|" )* = => ActionFn(87); let __start = __symbols.last().map(|s| s.2.clone()).unwrap_or_default(); let __end = __lookahead_start.cloned().unwrap_or_else(|| __start.clone()); - let __nt = super::__action57::<>(&__start, &__end); - __symbols.push((__start, __Symbol::Variant4(__nt), __end)); + let __nt = super::__action87::<>(&__start, &__end); + __symbols.push((__start, __Symbol::Variant7(__nt), __end)); (0, 8) } pub(crate) fn __reduce13< @@ -1746,13 +2609,13 @@ mod __parse__Call { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // ArgumentExpression = Expression => ActionFn(23); - let __sym0 = __pop_Variant2(__symbols); + // ("|" )* = ("|" )+ => ActionFn(88); + let __sym0 = __pop_Variant7(__symbols); let __start = __sym0.0.clone(); let __end = __sym0.2.clone(); - let __nt = super::__action23::<>(__sym0); - __symbols.push((__start, __Symbol::Variant2(__nt), __end)); - (1, 9) + let __nt = super::__action88::<>(__sym0); + __symbols.push((__start, __Symbol::Variant7(__nt), __end)); + (1, 8) } pub(crate) fn __reduce14< 'input, @@ -1764,13 +2627,14 @@ mod __parse__Call { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // ArgumentExpression = BareExpression => ActionFn(24); - let __sym0 = __pop_Variant2(__symbols); + // ("|" )+ = "|", PipelineElement => ActionFn(126); + let __sym1 = __pop_Variant6(__symbols); + let __sym0 = __pop_Variant0(__symbols); let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action24::<>(__sym0); - __symbols.push((__start, __Symbol::Variant2(__nt), __end)); - (1, 9) + let __end = __sym1.2.clone(); + let __nt = super::__action126::<>(__sym0, __sym1); + __symbols.push((__start, __Symbol::Variant7(__nt), __end)); + (2, 9) } pub(crate) fn __reduce15< 'input, @@ -1782,13 +2646,15 @@ mod __parse__Call { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // Bare = "bare" => ActionFn(34); - let __sym0 = __pop_Variant0(__symbols); + // ("|" )+ = ("|" )+, "|", PipelineElement => ActionFn(127); + let __sym2 = __pop_Variant6(__symbols); + let __sym1 = __pop_Variant0(__symbols); + let __sym0 = __pop_Variant7(__symbols); let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action34::<>(__sym0); - __symbols.push((__start, __Symbol::Variant5(__nt), __end)); - (1, 10) + let __end = __sym2.2.clone(); + let __nt = super::__action127::<>(__sym0, __sym1, __sym2); + __symbols.push((__start, __Symbol::Variant7(__nt), __end)); + (3, 9) } pub(crate) fn __reduce16< 'input, @@ -1800,13 +2666,14 @@ mod __parse__Call { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // BareExpression = Bare => ActionFn(95); + // (("newline")+ ) = ("newline")+, Item => ActionFn(99); + let __sym1 = __pop_Variant8(__symbols); let __sym0 = __pop_Variant5(__symbols); let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action95::<>(__sym0); - __symbols.push((__start, __Symbol::Variant2(__nt), __end)); - (1, 11) + let __end = __sym1.2.clone(); + let __nt = super::__action99::<>(__sym0, __sym1); + __symbols.push((__start, __Symbol::Variant8(__nt), __end)); + (2, 10) } pub(crate) fn __reduce17< 'input, @@ -1818,15 +2685,12 @@ mod __parse__Call { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // Binary = ArgumentExpression, SpannedOperator, ArgumentExpression => ActionFn(96); - let __sym2 = __pop_Variant2(__symbols); - let __sym1 = __pop_Variant10(__symbols); - let __sym0 = __pop_Variant2(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym2.2.clone(); - let __nt = super::__action96::<>(__sym0, __sym1, __sym2); - __symbols.push((__start, __Symbol::Variant2(__nt), __end)); - (3, 12) + // (("newline")+ )* = => ActionFn(97); + let __start = __symbols.last().map(|s| s.2.clone()).unwrap_or_default(); + let __end = __lookahead_start.cloned().unwrap_or_else(|| __start.clone()); + let __nt = super::__action97::<>(&__start, &__end); + __symbols.push((__start, __Symbol::Variant9(__nt), __end)); + (0, 11) } pub(crate) fn __reduce18< 'input, @@ -1838,15 +2702,13 @@ mod __parse__Call { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // Block = "{", SingleExpression, "}" => ActionFn(97); - let __sym2 = __pop_Variant0(__symbols); - let __sym1 = __pop_Variant2(__symbols); - let __sym0 = __pop_Variant0(__symbols); + // (("newline")+ )* = (("newline")+ )+ => ActionFn(98); + let __sym0 = __pop_Variant9(__symbols); let __start = __sym0.0.clone(); - let __end = __sym2.2.clone(); - let __nt = super::__action97::<>(__sym0, __sym1, __sym2); - __symbols.push((__start, __Symbol::Variant2(__nt), __end)); - (3, 13) + let __end = __sym0.2.clone(); + let __nt = super::__action98::<>(__sym0); + __symbols.push((__start, __Symbol::Variant9(__nt), __end)); + (1, 11) } pub(crate) fn __reduce19< 'input, @@ -1858,15 +2720,14 @@ mod __parse__Call { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // Block = "{", BareExpression, "}" => ActionFn(98); - let __sym2 = __pop_Variant0(__symbols); - let __sym1 = __pop_Variant2(__symbols); - let __sym0 = __pop_Variant0(__symbols); + // (("newline")+ )+ = ("newline")+, Item => ActionFn(130); + let __sym1 = __pop_Variant8(__symbols); + let __sym0 = __pop_Variant5(__symbols); let __start = __sym0.0.clone(); - let __end = __sym2.2.clone(); - let __nt = super::__action98::<>(__sym0, __sym1, __sym2); - __symbols.push((__start, __Symbol::Variant2(__nt), __end)); - (3, 13) + let __end = __sym1.2.clone(); + let __nt = super::__action130::<>(__sym0, __sym1); + __symbols.push((__start, __Symbol::Variant9(__nt), __end)); + (2, 12) } pub(crate) fn __reduce20< 'input, @@ -1878,14 +2739,15 @@ mod __parse__Call { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // Call = Expression, SingleCallArgument => ActionFn(99); - let __sym1 = __pop_Variant2(__symbols); - let __sym0 = __pop_Variant2(__symbols); + // (("newline")+ )+ = (("newline")+ )+, ("newline")+, Item => ActionFn(131); + let __sym2 = __pop_Variant8(__symbols); + let __sym1 = __pop_Variant5(__symbols); + let __sym0 = __pop_Variant9(__symbols); let __start = __sym0.0.clone(); - let __end = __sym1.2.clone(); - let __nt = super::__action99::<>(__sym0, __sym1); - __symbols.push((__start, __Symbol::Variant2(__nt), __end)); - (2, 14) + let __end = __sym2.2.clone(); + let __nt = super::__action131::<>(__sym0, __sym1, __sym2); + __symbols.push((__start, __Symbol::Variant9(__nt), __end)); + (3, 12) } pub(crate) fn __reduce21< 'input, @@ -1897,15 +2759,13 @@ mod __parse__Call { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // Call = Expression, CallArgument, ()+ => ActionFn(100); - let __sym2 = __pop_Variant3(__symbols); - let __sym1 = __pop_Variant2(__symbols); - let __sym0 = __pop_Variant2(__symbols); + // () = CallArgument => ActionFn(86); + let __sym0 = __pop_Variant6(__symbols); let __start = __sym0.0.clone(); - let __end = __sym2.2.clone(); - let __nt = super::__action100::<>(__sym0, __sym1, __sym2); - __symbols.push((__start, __Symbol::Variant2(__nt), __end)); - (3, 14) + let __end = __sym0.2.clone(); + let __nt = super::__action86::<>(__sym0); + __symbols.push((__start, __Symbol::Variant6(__nt), __end)); + (1, 13) } pub(crate) fn __reduce22< 'input, @@ -1917,14 +2777,13 @@ mod __parse__Call { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // Call = BareExpression, SingleCallArgument => ActionFn(101); - let __sym1 = __pop_Variant2(__symbols); - let __sym0 = __pop_Variant2(__symbols); + // ()+ = CallArgument => ActionFn(134); + let __sym0 = __pop_Variant6(__symbols); let __start = __sym0.0.clone(); - let __end = __sym1.2.clone(); - let __nt = super::__action101::<>(__sym0, __sym1); - __symbols.push((__start, __Symbol::Variant2(__nt), __end)); - (2, 14) + let __end = __sym0.2.clone(); + let __nt = super::__action134::<>(__sym0); + __symbols.push((__start, __Symbol::Variant7(__nt), __end)); + (1, 14) } pub(crate) fn __reduce23< 'input, @@ -1936,15 +2795,14 @@ mod __parse__Call { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // Call = BareExpression, CallArgument, ()+ => ActionFn(102); - let __sym2 = __pop_Variant3(__symbols); - let __sym1 = __pop_Variant2(__symbols); - let __sym0 = __pop_Variant2(__symbols); + // ()+ = ()+, CallArgument => ActionFn(135); + let __sym1 = __pop_Variant6(__symbols); + let __sym0 = __pop_Variant7(__symbols); let __start = __sym0.0.clone(); - let __end = __sym2.2.clone(); - let __nt = super::__action102::<>(__sym0, __sym1, __sym2); - __symbols.push((__start, __Symbol::Variant2(__nt), __end)); - (3, 14) + let __end = __sym1.2.clone(); + let __nt = super::__action135::<>(__sym0, __sym1); + __symbols.push((__start, __Symbol::Variant7(__nt), __end)); + (2, 14) } pub(crate) fn __reduce24< 'input, @@ -1956,13 +2814,16 @@ mod __parse__Call { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // CallArgument = ArgumentExpression => ActionFn(25); - let __sym0 = __pop_Variant2(__symbols); + // ( OptionalNewlines "," OptionalNewlines) = FormalParameter, OptionalNewlines, ",", OptionalNewlines => ActionFn(110); + let __sym3 = __pop_Variant21(__symbols); + let __sym2 = __pop_Variant0(__symbols); + let __sym1 = __pop_Variant21(__symbols); + let __sym0 = __pop_Variant10(__symbols); let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action25::<>(__sym0); - __symbols.push((__start, __Symbol::Variant2(__nt), __end)); - (1, 15) + let __end = __sym3.2.clone(); + let __nt = super::__action110::<>(__sym0, __sym1, __sym2, __sym3); + __symbols.push((__start, __Symbol::Variant10(__nt), __end)); + (4, 15) } pub(crate) fn __reduce25< 'input, @@ -1974,13 +2835,12 @@ mod __parse__Call { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // CallArgument = Flag => ActionFn(26); - let __sym0 = __pop_Variant2(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action26::<>(__sym0); - __symbols.push((__start, __Symbol::Variant2(__nt), __end)); - (1, 15) + // ( OptionalNewlines "," OptionalNewlines)* = => ActionFn(108); + let __start = __symbols.last().map(|s| s.2.clone()).unwrap_or_default(); + let __end = __lookahead_start.cloned().unwrap_or_else(|| __start.clone()); + let __nt = super::__action108::<>(&__start, &__end); + __symbols.push((__start, __Symbol::Variant11(__nt), __end)); + (0, 16) } pub(crate) fn __reduce26< 'input, @@ -1992,12 +2852,12 @@ mod __parse__Call { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // Expression = MemberHeadExpression => ActionFn(21); - let __sym0 = __pop_Variant2(__symbols); + // ( OptionalNewlines "," OptionalNewlines)* = ( OptionalNewlines "," OptionalNewlines)+ => ActionFn(109); + let __sym0 = __pop_Variant11(__symbols); let __start = __sym0.0.clone(); let __end = __sym0.2.clone(); - let __nt = super::__action21::<>(__sym0); - __symbols.push((__start, __Symbol::Variant2(__nt), __end)); + let __nt = super::__action109::<>(__sym0); + __symbols.push((__start, __Symbol::Variant11(__nt), __end)); (1, 16) } pub(crate) fn __reduce27< @@ -2010,14 +2870,16 @@ mod __parse__Call { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // Expression = MemberHeadExpression, ("???." <"member">)+ => ActionFn(103); - let __sym1 = __pop_Variant1(__symbols); - let __sym0 = __pop_Variant2(__symbols); + // ( OptionalNewlines "," OptionalNewlines)+ = FormalParameter, OptionalNewlines, ",", OptionalNewlines => ActionFn(136); + let __sym3 = __pop_Variant21(__symbols); + let __sym2 = __pop_Variant0(__symbols); + let __sym1 = __pop_Variant21(__symbols); + let __sym0 = __pop_Variant10(__symbols); let __start = __sym0.0.clone(); - let __end = __sym1.2.clone(); - let __nt = super::__action103::<>(__sym0, __sym1); - __symbols.push((__start, __Symbol::Variant2(__nt), __end)); - (2, 16) + let __end = __sym3.2.clone(); + let __nt = super::__action136::<>(__sym0, __sym1, __sym2, __sym3); + __symbols.push((__start, __Symbol::Variant11(__nt), __end)); + (4, 17) } pub(crate) fn __reduce28< 'input, @@ -2029,14 +2891,17 @@ mod __parse__Call { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // Flag = "-", Bare => ActionFn(104); - let __sym1 = __pop_Variant5(__symbols); - let __sym0 = __pop_Variant0(__symbols); + // ( OptionalNewlines "," OptionalNewlines)+ = ( OptionalNewlines "," OptionalNewlines)+, FormalParameter, OptionalNewlines, ",", OptionalNewlines => ActionFn(137); + let __sym4 = __pop_Variant21(__symbols); + let __sym3 = __pop_Variant0(__symbols); + let __sym2 = __pop_Variant21(__symbols); + let __sym1 = __pop_Variant10(__symbols); + let __sym0 = __pop_Variant11(__symbols); let __start = __sym0.0.clone(); - let __end = __sym1.2.clone(); - let __nt = super::__action104::<>(__sym0, __sym1); - __symbols.push((__start, __Symbol::Variant2(__nt), __end)); - (2, 17) + let __end = __sym4.2.clone(); + let __nt = super::__action137::<>(__sym0, __sym1, __sym2, __sym3, __sym4); + __symbols.push((__start, __Symbol::Variant11(__nt), __end)); + (5, 17) } pub(crate) fn __reduce29< 'input, @@ -2048,14 +2913,12 @@ mod __parse__Call { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // Flag = "--", Bare => ActionFn(105); - let __sym1 = __pop_Variant5(__symbols); - let __sym0 = __pop_Variant0(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym1.2.clone(); - let __nt = super::__action105::<>(__sym0, __sym1); - __symbols.push((__start, __Symbol::Variant2(__nt), __end)); - (2, 17) + // @L = => ActionFn(103); + let __start = __symbols.last().map(|s| s.2.clone()).unwrap_or_default(); + let __end = __lookahead_start.cloned().unwrap_or_else(|| __start.clone()); + let __nt = super::__action103::<>(&__start, &__end); + __symbols.push((__start, __Symbol::Variant12(__nt), __end)); + (0, 18) } pub(crate) fn __reduce30< 'input, @@ -2067,13 +2930,12 @@ mod __parse__Call { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // Int = "num" => ActionFn(44); - let __sym0 = __pop_Variant0(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action44::<>(__sym0); - __symbols.push((__start, __Symbol::Variant6(__nt), __end)); - (1, 18) + // @R = => ActionFn(96); + let __start = __symbols.last().map(|s| s.2.clone()).unwrap_or_default(); + let __end = __lookahead_start.cloned().unwrap_or_else(|| __start.clone()); + let __nt = super::__action96::<>(&__start, &__end); + __symbols.push((__start, __Symbol::Variant12(__nt), __end)); + (0, 19) } pub(crate) fn __reduce31< 'input, @@ -2085,13 +2947,13 @@ mod __parse__Call { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // LeafExpression = String => ActionFn(5); - let __sym0 = __pop_Variant2(__symbols); + // ArgumentExpression = Expression => ActionFn(48); + let __sym0 = __pop_Variant6(__symbols); let __start = __sym0.0.clone(); let __end = __sym0.2.clone(); - let __nt = super::__action5::<>(__sym0); - __symbols.push((__start, __Symbol::Variant2(__nt), __end)); - (1, 19) + let __nt = super::__action48::<>(__sym0); + __symbols.push((__start, __Symbol::Variant6(__nt), __end)); + (1, 20) } pub(crate) fn __reduce32< 'input, @@ -2103,13 +2965,13 @@ mod __parse__Call { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // LeafExpression = Int => ActionFn(106); + // ArgumentExpression = BareExpression => ActionFn(49); let __sym0 = __pop_Variant6(__symbols); let __start = __sym0.0.clone(); let __end = __sym0.2.clone(); - let __nt = super::__action106::<>(__sym0); - __symbols.push((__start, __Symbol::Variant2(__nt), __end)); - (1, 19) + let __nt = super::__action49::<>(__sym0); + __symbols.push((__start, __Symbol::Variant6(__nt), __end)); + (1, 20) } pub(crate) fn __reduce33< 'input, @@ -2121,13 +2983,13 @@ mod __parse__Call { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // LeafExpression = UnitsNum => ActionFn(7); - let __sym0 = __pop_Variant2(__symbols); + // Bare = "bare" => ActionFn(61); + let __sym0 = __pop_Variant0(__symbols); let __start = __sym0.0.clone(); let __end = __sym0.2.clone(); - let __nt = super::__action7::<>(__sym0); - __symbols.push((__start, __Symbol::Variant2(__nt), __end)); - (1, 19) + let __nt = super::__action61::<>(__sym0); + __symbols.push((__start, __Symbol::Variant13(__nt), __end)); + (1, 21) } pub(crate) fn __reduce34< 'input, @@ -2139,13 +3001,13 @@ mod __parse__Call { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // LeafExpression = Var => ActionFn(8); - let __sym0 = __pop_Variant2(__symbols); + // BareExpression = Bare => ActionFn(179); + let __sym0 = __pop_Variant13(__symbols); let __start = __sym0.0.clone(); let __end = __sym0.2.clone(); - let __nt = super::__action8::<>(__sym0); - __symbols.push((__start, __Symbol::Variant2(__nt), __end)); - (1, 19) + let __nt = super::__action179::<>(__sym0); + __symbols.push((__start, __Symbol::Variant6(__nt), __end)); + (1, 22) } pub(crate) fn __reduce35< 'input, @@ -2157,13 +3019,15 @@ mod __parse__Call { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // Member = "member" => ActionFn(35); - let __sym0 = __pop_Variant0(__symbols); + // Binary = ArgumentExpression, SpannedOperator, ArgumentExpression => ActionFn(180); + let __sym2 = __pop_Variant6(__symbols); + let __sym1 = __pop_Variant27(__symbols); + let __sym0 = __pop_Variant6(__symbols); let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action35::<>(__sym0); - __symbols.push((__start, __Symbol::Variant7(__nt), __end)); - (1, 20) + let __end = __sym2.2.clone(); + let __nt = super::__action180::<>(__sym0, __sym1, __sym2); + __symbols.push((__start, __Symbol::Variant6(__nt), __end)); + (3, 23) } pub(crate) fn __reduce36< 'input, @@ -2175,13 +3039,15 @@ mod __parse__Call { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // Member = "dqmember" => ActionFn(36); + // Block = "{", SingleExpression, "}" => ActionFn(181); + let __sym2 = __pop_Variant0(__symbols); + let __sym1 = __pop_Variant6(__symbols); let __sym0 = __pop_Variant0(__symbols); let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action36::<>(__sym0); - __symbols.push((__start, __Symbol::Variant7(__nt), __end)); - (1, 20) + let __end = __sym2.2.clone(); + let __nt = super::__action181::<>(__sym0, __sym1, __sym2); + __symbols.push((__start, __Symbol::Variant14(__nt), __end)); + (3, 24) } pub(crate) fn __reduce37< 'input, @@ -2193,13 +3059,15 @@ mod __parse__Call { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // Member = "sqmember" => ActionFn(37); + // Block = "{", BareExpression, "}" => ActionFn(182); + let __sym2 = __pop_Variant0(__symbols); + let __sym1 = __pop_Variant6(__symbols); let __sym0 = __pop_Variant0(__symbols); let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action37::<>(__sym0); - __symbols.push((__start, __Symbol::Variant7(__nt), __end)); - (1, 20) + let __end = __sym2.2.clone(); + let __nt = super::__action182::<>(__sym0, __sym1, __sym2); + __symbols.push((__start, __Symbol::Variant14(__nt), __end)); + (3, 24) } pub(crate) fn __reduce38< 'input, @@ -2211,13 +3079,15 @@ mod __parse__Call { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // MemberHeadExpression = LeafExpression => ActionFn(16); - let __sym0 = __pop_Variant2(__symbols); + // BlockExpression = "{", SingleExpression, "}" => ActionFn(183); + let __sym2 = __pop_Variant0(__symbols); + let __sym1 = __pop_Variant6(__symbols); + let __sym0 = __pop_Variant0(__symbols); let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action16::<>(__sym0); - __symbols.push((__start, __Symbol::Variant2(__nt), __end)); - (1, 21) + let __end = __sym2.2.clone(); + let __nt = super::__action183::<>(__sym0, __sym1, __sym2); + __symbols.push((__start, __Symbol::Variant6(__nt), __end)); + (3, 25) } pub(crate) fn __reduce39< 'input, @@ -2229,13 +3099,15 @@ mod __parse__Call { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // MemberHeadExpression = Block => ActionFn(17); - let __sym0 = __pop_Variant2(__symbols); + // BlockExpression = "{", BareExpression, "}" => ActionFn(184); + let __sym2 = __pop_Variant0(__symbols); + let __sym1 = __pop_Variant6(__symbols); + let __sym0 = __pop_Variant0(__symbols); let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action17::<>(__sym0); - __symbols.push((__start, __Symbol::Variant2(__nt), __end)); - (1, 21) + let __end = __sym2.2.clone(); + let __nt = super::__action184::<>(__sym0, __sym1, __sym2); + __symbols.push((__start, __Symbol::Variant6(__nt), __end)); + (3, 25) } pub(crate) fn __reduce40< 'input, @@ -2247,15 +3119,14 @@ mod __parse__Call { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // MemberHeadExpression = "(", Call, ")" => ActionFn(107); - let __sym2 = __pop_Variant0(__symbols); - let __sym1 = __pop_Variant2(__symbols); - let __sym0 = __pop_Variant0(__symbols); + // Call = Expression, SingleCallArgument => ActionFn(185); + let __sym1 = __pop_Variant6(__symbols); + let __sym0 = __pop_Variant6(__symbols); let __start = __sym0.0.clone(); - let __end = __sym2.2.clone(); - let __nt = super::__action107::<>(__sym0, __sym1, __sym2); - __symbols.push((__start, __Symbol::Variant2(__nt), __end)); - (3, 21) + let __end = __sym1.2.clone(); + let __nt = super::__action185::<>(__sym0, __sym1); + __symbols.push((__start, __Symbol::Variant6(__nt), __end)); + (2, 26) } pub(crate) fn __reduce41< 'input, @@ -2267,15 +3138,15 @@ mod __parse__Call { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // MemberHeadExpression = "(", BareExpression, ")" => ActionFn(108); - let __sym2 = __pop_Variant0(__symbols); - let __sym1 = __pop_Variant2(__symbols); - let __sym0 = __pop_Variant0(__symbols); + // Call = Expression, CallArgument, ()+ => ActionFn(186); + let __sym2 = __pop_Variant7(__symbols); + let __sym1 = __pop_Variant6(__symbols); + let __sym0 = __pop_Variant6(__symbols); let __start = __sym0.0.clone(); let __end = __sym2.2.clone(); - let __nt = super::__action108::<>(__sym0, __sym1, __sym2); - __symbols.push((__start, __Symbol::Variant2(__nt), __end)); - (3, 21) + let __nt = super::__action186::<>(__sym0, __sym1, __sym2); + __symbols.push((__start, __Symbol::Variant6(__nt), __end)); + (3, 26) } pub(crate) fn __reduce42< 'input, @@ -2287,15 +3158,14 @@ mod __parse__Call { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // MemberHeadExpression = "(", Binary, ")" => ActionFn(109); - let __sym2 = __pop_Variant0(__symbols); - let __sym1 = __pop_Variant2(__symbols); - let __sym0 = __pop_Variant0(__symbols); + // Call = BareExpression, SingleCallArgument => ActionFn(187); + let __sym1 = __pop_Variant6(__symbols); + let __sym0 = __pop_Variant6(__symbols); let __start = __sym0.0.clone(); - let __end = __sym2.2.clone(); - let __nt = super::__action109::<>(__sym0, __sym1, __sym2); - __symbols.push((__start, __Symbol::Variant2(__nt), __end)); - (3, 21) + let __end = __sym1.2.clone(); + let __nt = super::__action187::<>(__sym0, __sym1); + __symbols.push((__start, __Symbol::Variant6(__nt), __end)); + (2, 26) } pub(crate) fn __reduce43< 'input, @@ -2307,13 +3177,15 @@ mod __parse__Call { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // Operator = "==" => ActionFn(38); - let __sym0 = __pop_Variant0(__symbols); + // Call = BareExpression, CallArgument, ()+ => ActionFn(188); + let __sym2 = __pop_Variant7(__symbols); + let __sym1 = __pop_Variant6(__symbols); + let __sym0 = __pop_Variant6(__symbols); let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action38::<>(__sym0); - __symbols.push((__start, __Symbol::Variant8(__nt), __end)); - (1, 22) + let __end = __sym2.2.clone(); + let __nt = super::__action188::<>(__sym0, __sym1, __sym2); + __symbols.push((__start, __Symbol::Variant6(__nt), __end)); + (3, 26) } pub(crate) fn __reduce44< 'input, @@ -2325,13 +3197,13 @@ mod __parse__Call { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // Operator = "!=" => ActionFn(39); - let __sym0 = __pop_Variant0(__symbols); + // CallArgument = ArgumentExpression => ActionFn(50); + let __sym0 = __pop_Variant6(__symbols); let __start = __sym0.0.clone(); let __end = __sym0.2.clone(); - let __nt = super::__action39::<>(__sym0); - __symbols.push((__start, __Symbol::Variant8(__nt), __end)); - (1, 22) + let __nt = super::__action50::<>(__sym0); + __symbols.push((__start, __Symbol::Variant6(__nt), __end)); + (1, 27) } pub(crate) fn __reduce45< 'input, @@ -2343,13 +3215,13 @@ mod __parse__Call { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // Operator = "<" => ActionFn(40); - let __sym0 = __pop_Variant0(__symbols); + // CallArgument = Flag => ActionFn(51); + let __sym0 = __pop_Variant6(__symbols); let __start = __sym0.0.clone(); let __end = __sym0.2.clone(); - let __nt = super::__action40::<>(__sym0); - __symbols.push((__start, __Symbol::Variant8(__nt), __end)); - (1, 22) + let __nt = super::__action51::<>(__sym0); + __symbols.push((__start, __Symbol::Variant6(__nt), __end)); + (1, 27) } pub(crate) fn __reduce46< 'input, @@ -2361,13 +3233,13 @@ mod __parse__Call { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // Operator = ">" => ActionFn(41); - let __sym0 = __pop_Variant0(__symbols); + // Comma = FormalParameter => ActionFn(218); + let __sym0 = __pop_Variant10(__symbols); let __start = __sym0.0.clone(); let __end = __sym0.2.clone(); - let __nt = super::__action41::<>(__sym0); - __symbols.push((__start, __Symbol::Variant8(__nt), __end)); - (1, 22) + let __nt = super::__action218::<>(__sym0); + __symbols.push((__start, __Symbol::Variant15(__nt), __end)); + (1, 28) } pub(crate) fn __reduce47< 'input, @@ -2379,13 +3251,12 @@ mod __parse__Call { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // Operator = "<=" => ActionFn(42); - let __sym0 = __pop_Variant0(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action42::<>(__sym0); - __symbols.push((__start, __Symbol::Variant8(__nt), __end)); - (1, 22) + // Comma = => ActionFn(219); + let __start = __symbols.last().map(|s| s.2.clone()).unwrap_or_default(); + let __end = __lookahead_start.cloned().unwrap_or_else(|| __start.clone()); + let __nt = super::__action219::<>(&__start, &__end); + __symbols.push((__start, __Symbol::Variant15(__nt), __end)); + (0, 28) } pub(crate) fn __reduce48< 'input, @@ -2397,13 +3268,14 @@ mod __parse__Call { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // Operator = ">=" => ActionFn(43); - let __sym0 = __pop_Variant0(__symbols); + // Comma = ( OptionalNewlines "," OptionalNewlines)+, FormalParameter => ActionFn(220); + let __sym1 = __pop_Variant10(__symbols); + let __sym0 = __pop_Variant11(__symbols); let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action43::<>(__sym0); - __symbols.push((__start, __Symbol::Variant8(__nt), __end)); - (1, 22) + let __end = __sym1.2.clone(); + let __nt = super::__action220::<>(__sym0, __sym1); + __symbols.push((__start, __Symbol::Variant15(__nt), __end)); + (2, 28) } pub(crate) fn __reduce49< 'input, @@ -2415,13 +3287,13 @@ mod __parse__Call { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // Pipeline = PipelineElement => ActionFn(110); - let __sym0 = __pop_Variant2(__symbols); + // Comma = ( OptionalNewlines "," OptionalNewlines)+ => ActionFn(221); + let __sym0 = __pop_Variant11(__symbols); let __start = __sym0.0.clone(); let __end = __sym0.2.clone(); - let __nt = super::__action110::<>(__sym0); - __symbols.push((__start, __Symbol::Variant9(__nt), __end)); - (1, 23) + let __nt = super::__action221::<>(__sym0); + __symbols.push((__start, __Symbol::Variant15(__nt), __end)); + (1, 28) } pub(crate) fn __reduce50< 'input, @@ -2433,14 +3305,13 @@ mod __parse__Call { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // Pipeline = PipelineElement, ("|" )+ => ActionFn(111); - let __sym1 = __pop_Variant3(__symbols); - let __sym0 = __pop_Variant2(__symbols); + // CommandName = "command-name" => ActionFn(189); + let __sym0 = __pop_Variant0(__symbols); let __start = __sym0.0.clone(); - let __end = __sym1.2.clone(); - let __nt = super::__action111::<>(__sym0, __sym1); - __symbols.push((__start, __Symbol::Variant9(__nt), __end)); - (2, 23) + let __end = __sym0.2.clone(); + let __nt = super::__action189::<>(__sym0); + __symbols.push((__start, __Symbol::Variant16(__nt), __end)); + (1, 29) } pub(crate) fn __reduce51< 'input, @@ -2452,13 +3323,13 @@ mod __parse__Call { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // PipelineElement = BareExpression => ActionFn(112); - let __sym0 = __pop_Variant2(__symbols); + // Expression = MemberHeadExpression => ActionFn(46); + let __sym0 = __pop_Variant6(__symbols); let __start = __sym0.0.clone(); let __end = __sym0.2.clone(); - let __nt = super::__action112::<>(__sym0); - __symbols.push((__start, __Symbol::Variant2(__nt), __end)); - (1, 24) + let __nt = super::__action46::<>(__sym0); + __symbols.push((__start, __Symbol::Variant6(__nt), __end)); + (1, 30) } pub(crate) fn __reduce52< 'input, @@ -2470,13 +3341,14 @@ mod __parse__Call { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // PipelineElement = SingleExpression => ActionFn(4); - let __sym0 = __pop_Variant2(__symbols); + // Expression = MemberHeadExpression, ("???." )+ => ActionFn(190); + let __sym1 = __pop_Variant4(__symbols); + let __sym0 = __pop_Variant6(__symbols); let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action4::<>(__sym0); - __symbols.push((__start, __Symbol::Variant2(__nt), __end)); - (1, 24) + let __end = __sym1.2.clone(); + let __nt = super::__action190::<>(__sym0, __sym1); + __symbols.push((__start, __Symbol::Variant6(__nt), __end)); + (2, 30) } pub(crate) fn __reduce53< 'input, @@ -2488,13 +3360,14 @@ mod __parse__Call { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // SingleCallArgument = CallArgument => ActionFn(27); - let __sym0 = __pop_Variant2(__symbols); + // Flag = "-", Bare => ActionFn(191); + let __sym1 = __pop_Variant13(__symbols); + let __sym0 = __pop_Variant0(__symbols); let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action27::<>(__sym0); - __symbols.push((__start, __Symbol::Variant2(__nt), __end)); - (1, 25) + let __end = __sym1.2.clone(); + let __nt = super::__action191::<>(__sym0, __sym1); + __symbols.push((__start, __Symbol::Variant6(__nt), __end)); + (2, 31) } pub(crate) fn __reduce54< 'input, @@ -2506,13 +3379,14 @@ mod __parse__Call { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // SingleCallArgument = Binary => ActionFn(28); - let __sym0 = __pop_Variant2(__symbols); + // Flag = "--", Bare => ActionFn(192); + let __sym1 = __pop_Variant13(__symbols); + let __sym0 = __pop_Variant0(__symbols); let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action28::<>(__sym0); - __symbols.push((__start, __Symbol::Variant2(__nt), __end)); - (1, 25) + let __end = __sym1.2.clone(); + let __nt = super::__action192::<>(__sym0, __sym1); + __symbols.push((__start, __Symbol::Variant6(__nt), __end)); + (2, 31) } pub(crate) fn __reduce55< 'input, @@ -2524,13 +3398,15 @@ mod __parse__Call { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // SingleExpression = Expression => ActionFn(29); - let __sym0 = __pop_Variant2(__symbols); + // FormalParameter = ParameterName, ":", Type => ActionFn(193); + let __sym2 = __pop_Variant1(__symbols); + let __sym1 = __pop_Variant0(__symbols); + let __sym0 = __pop_Variant23(__symbols); let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action29::<>(__sym0); - __symbols.push((__start, __Symbol::Variant2(__nt), __end)); - (1, 26) + let __end = __sym2.2.clone(); + let __nt = super::__action193::<>(__sym0, __sym1, __sym2); + __symbols.push((__start, __Symbol::Variant10(__nt), __end)); + (3, 32) } pub(crate) fn __reduce56< 'input, @@ -2542,13 +3418,13 @@ mod __parse__Call { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // SingleExpression = Call => ActionFn(30); - let __sym0 = __pop_Variant2(__symbols); + // FormalParameter? = FormalParameter => ActionFn(106); + let __sym0 = __pop_Variant10(__symbols); let __start = __sym0.0.clone(); let __end = __sym0.2.clone(); - let __nt = super::__action30::<>(__sym0); - __symbols.push((__start, __Symbol::Variant2(__nt), __end)); - (1, 26) + let __nt = super::__action106::<>(__sym0); + __symbols.push((__start, __Symbol::Variant17(__nt), __end)); + (1, 33) } pub(crate) fn __reduce57< 'input, @@ -2560,13 +3436,12 @@ mod __parse__Call { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // SingleExpression = Binary => ActionFn(31); - let __sym0 = __pop_Variant2(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action31::<>(__sym0); - __symbols.push((__start, __Symbol::Variant2(__nt), __end)); - (1, 26) + // FormalParameter? = => ActionFn(107); + let __start = __symbols.last().map(|s| s.2.clone()).unwrap_or_default(); + let __end = __lookahead_start.cloned().unwrap_or_else(|| __start.clone()); + let __nt = super::__action107::<>(&__start, &__end); + __symbols.push((__start, __Symbol::Variant17(__nt), __end)); + (0, 33) } pub(crate) fn __reduce58< 'input, @@ -2578,13 +3453,20 @@ mod __parse__Call { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // SpannedOperator = Operator => ActionFn(113); - let __sym0 = __pop_Variant8(__symbols); + // Function = "function", CommandName, "start-params", ParameterList, "end-params", "->", Type, Block => ActionFn(194); + let __sym7 = __pop_Variant14(__symbols); + let __sym6 = __pop_Variant1(__symbols); + let __sym5 = __pop_Variant0(__symbols); + let __sym4 = __pop_Variant0(__symbols); + let __sym3 = __pop_Variant15(__symbols); + let __sym2 = __pop_Variant0(__symbols); + let __sym1 = __pop_Variant16(__symbols); + let __sym0 = __pop_Variant0(__symbols); let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action113::<>(__sym0); - __symbols.push((__start, __Symbol::Variant10(__nt), __end)); - (1, 27) + let __end = __sym7.2.clone(); + let __nt = super::__action194::<>(__sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7); + __symbols.push((__start, __Symbol::Variant18(__nt), __end)); + (8, 34) } pub(crate) fn __reduce59< 'input, @@ -2596,13 +3478,18 @@ mod __parse__Call { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // String = "sqstring" => ActionFn(114); + // Function = "function", CommandName, "start-params", ParameterList, "end-params", Block => ActionFn(195); + let __sym5 = __pop_Variant14(__symbols); + let __sym4 = __pop_Variant0(__symbols); + let __sym3 = __pop_Variant15(__symbols); + let __sym2 = __pop_Variant0(__symbols); + let __sym1 = __pop_Variant16(__symbols); let __sym0 = __pop_Variant0(__symbols); let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action114::<>(__sym0); - __symbols.push((__start, __Symbol::Variant2(__nt), __end)); - (1, 28) + let __end = __sym5.2.clone(); + let __nt = super::__action195::<>(__sym0, __sym1, __sym2, __sym3, __sym4, __sym5); + __symbols.push((__start, __Symbol::Variant18(__nt), __end)); + (6, 34) } pub(crate) fn __reduce60< 'input, @@ -2614,13 +3501,13 @@ mod __parse__Call { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // String = "dqstring" => ActionFn(115); + // Int = "num" => ActionFn(73); let __sym0 = __pop_Variant0(__symbols); let __start = __sym0.0.clone(); let __end = __sym0.2.clone(); - let __nt = super::__action115::<>(__sym0); - __symbols.push((__start, __Symbol::Variant2(__nt), __end)); - (1, 28) + let __nt = super::__action73::<>(__sym0); + __symbols.push((__start, __Symbol::Variant19(__nt), __end)); + (1, 35) } pub(crate) fn __reduce61< 'input, @@ -2632,14 +3519,13 @@ mod __parse__Call { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // UnitsNum = Int, "unit" => ActionFn(116); - let __sym1 = __pop_Variant0(__symbols); - let __sym0 = __pop_Variant6(__symbols); + // Item = Pipeline => ActionFn(196); + let __sym0 = __pop_Variant25(__symbols); let __start = __sym0.0.clone(); - let __end = __sym1.2.clone(); - let __nt = super::__action116::<>(__sym0, __sym1); - __symbols.push((__start, __Symbol::Variant2(__nt), __end)); - (2, 29) + let __end = __sym0.2.clone(); + let __nt = super::__action196::<>(__sym0); + __symbols.push((__start, __Symbol::Variant8(__nt), __end)); + (1, 36) } pub(crate) fn __reduce62< 'input, @@ -2651,14 +3537,31 @@ mod __parse__Call { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // Var = "$", "variable" => ActionFn(117); - let __sym1 = __pop_Variant0(__symbols); - let __sym0 = __pop_Variant0(__symbols); + // Item = Function => ActionFn(197); + let __sym0 = __pop_Variant18(__symbols); let __start = __sym0.0.clone(); - let __end = __sym1.2.clone(); - let __nt = super::__action117::<>(__sym0, __sym1); - __symbols.push((__start, __Symbol::Variant2(__nt), __end)); - (2, 30) + let __end = __sym0.2.clone(); + let __nt = super::__action197::<>(__sym0); + __symbols.push((__start, __Symbol::Variant8(__nt), __end)); + (1, 36) + } + pub(crate) fn __reduce63< + 'input, + >( + __action: i8, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // LeafExpression = String => ActionFn(28); + let __sym0 = __pop_Variant6(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action28::<>(__sym0); + __symbols.push((__start, __Symbol::Variant6(__nt), __end)); + (1, 37) } pub(crate) fn __reduce64< 'input, @@ -2670,23 +3573,1065 @@ mod __parse__Call { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // __Pipeline = Pipeline => ActionFn(0); - let __sym0 = __pop_Variant9(__symbols); + // LeafExpression = Int => ActionFn(198); + let __sym0 = __pop_Variant19(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action198::<>(__sym0); + __symbols.push((__start, __Symbol::Variant6(__nt), __end)); + (1, 37) + } + pub(crate) fn __reduce65< + 'input, + >( + __action: i8, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // LeafExpression = UnitsNum => ActionFn(30); + let __sym0 = __pop_Variant6(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action30::<>(__sym0); + __symbols.push((__start, __Symbol::Variant6(__nt), __end)); + (1, 37) + } + pub(crate) fn __reduce66< + 'input, + >( + __action: i8, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // LeafExpression = Var => ActionFn(31); + let __sym0 = __pop_Variant6(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action31::<>(__sym0); + __symbols.push((__start, __Symbol::Variant6(__nt), __end)); + (1, 37) + } + pub(crate) fn __reduce67< + 'input, + >( + __action: i8, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // Member = "member" => ActionFn(62); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action62::<>(__sym0); + __symbols.push((__start, __Symbol::Variant3(__nt), __end)); + (1, 38) + } + pub(crate) fn __reduce68< + 'input, + >( + __action: i8, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // Member = "dqmember" => ActionFn(63); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action63::<>(__sym0); + __symbols.push((__start, __Symbol::Variant3(__nt), __end)); + (1, 38) + } + pub(crate) fn __reduce69< + 'input, + >( + __action: i8, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // Member = "sqmember" => ActionFn(64); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action64::<>(__sym0); + __symbols.push((__start, __Symbol::Variant3(__nt), __end)); + (1, 38) + } + pub(crate) fn __reduce70< + 'input, + >( + __action: i8, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // Member = "function" => ActionFn(65); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action65::<>(__sym0); + __symbols.push((__start, __Symbol::Variant3(__nt), __end)); + (1, 38) + } + pub(crate) fn __reduce71< + 'input, + >( + __action: i8, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // MemberHeadExpression = LeafExpression => ActionFn(41); + let __sym0 = __pop_Variant6(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action41::<>(__sym0); + __symbols.push((__start, __Symbol::Variant6(__nt), __end)); + (1, 39) + } + pub(crate) fn __reduce72< + 'input, + >( + __action: i8, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // MemberHeadExpression = BlockExpression => ActionFn(42); + let __sym0 = __pop_Variant6(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action42::<>(__sym0); + __symbols.push((__start, __Symbol::Variant6(__nt), __end)); + (1, 39) + } + pub(crate) fn __reduce73< + 'input, + >( + __action: i8, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // MemberHeadExpression = "(", Call, ")" => ActionFn(199); + let __sym2 = __pop_Variant0(__symbols); + let __sym1 = __pop_Variant6(__symbols); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym2.2.clone(); + let __nt = super::__action199::<>(__sym0, __sym1, __sym2); + __symbols.push((__start, __Symbol::Variant6(__nt), __end)); + (3, 39) + } + pub(crate) fn __reduce74< + 'input, + >( + __action: i8, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // MemberHeadExpression = "(", BareExpression, ")" => ActionFn(200); + let __sym2 = __pop_Variant0(__symbols); + let __sym1 = __pop_Variant6(__symbols); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym2.2.clone(); + let __nt = super::__action200::<>(__sym0, __sym1, __sym2); + __symbols.push((__start, __Symbol::Variant6(__nt), __end)); + (3, 39) + } + pub(crate) fn __reduce75< + 'input, + >( + __action: i8, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // MemberHeadExpression = "(", Binary, ")" => ActionFn(201); + let __sym2 = __pop_Variant0(__symbols); + let __sym1 = __pop_Variant6(__symbols); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym2.2.clone(); + let __nt = super::__action201::<>(__sym0, __sym1, __sym2); + __symbols.push((__start, __Symbol::Variant6(__nt), __end)); + (3, 39) + } + pub(crate) fn __reduce76< + 'input, + >( + __action: i8, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // Module = Item => ActionFn(202); + let __sym0 = __pop_Variant8(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action202::<>(__sym0); + __symbols.push((__start, __Symbol::Variant20(__nt), __end)); + (1, 40) + } + pub(crate) fn __reduce77< + 'input, + >( + __action: i8, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // Module = Item, (("newline")+ )+ => ActionFn(203); + let __sym1 = __pop_Variant9(__symbols); + let __sym0 = __pop_Variant8(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym1.2.clone(); + let __nt = super::__action203::<>(__sym0, __sym1); + __symbols.push((__start, __Symbol::Variant20(__nt), __end)); + (2, 40) + } + pub(crate) fn __reduce78< + 'input, + >( + __action: i8, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // Newlines = ("newline")+ => ActionFn(59); + let __sym0 = __pop_Variant5(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action59::<>(__sym0); + __symbols.push((__start, __Symbol::Variant21(__nt), __end)); + (1, 41) + } + pub(crate) fn __reduce79< + 'input, + >( + __action: i8, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // Operator = "==" => ActionFn(67); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action67::<>(__sym0); + __symbols.push((__start, __Symbol::Variant22(__nt), __end)); + (1, 42) + } + pub(crate) fn __reduce80< + 'input, + >( + __action: i8, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // Operator = "!=" => ActionFn(68); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action68::<>(__sym0); + __symbols.push((__start, __Symbol::Variant22(__nt), __end)); + (1, 42) + } + pub(crate) fn __reduce81< + 'input, + >( + __action: i8, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // Operator = "<" => ActionFn(69); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action69::<>(__sym0); + __symbols.push((__start, __Symbol::Variant22(__nt), __end)); + (1, 42) + } + pub(crate) fn __reduce82< + 'input, + >( + __action: i8, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // Operator = ">" => ActionFn(70); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action70::<>(__sym0); + __symbols.push((__start, __Symbol::Variant22(__nt), __end)); + (1, 42) + } + pub(crate) fn __reduce83< + 'input, + >( + __action: i8, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // Operator = "<=" => ActionFn(71); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action71::<>(__sym0); + __symbols.push((__start, __Symbol::Variant22(__nt), __end)); + (1, 42) + } + pub(crate) fn __reduce84< + 'input, + >( + __action: i8, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // Operator = ">=" => ActionFn(72); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action72::<>(__sym0); + __symbols.push((__start, __Symbol::Variant22(__nt), __end)); + (1, 42) + } + pub(crate) fn __reduce85< + 'input, + >( + __action: i8, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // OptionalNewlines = => ActionFn(122); + let __start = __symbols.last().map(|s| s.2.clone()).unwrap_or_default(); + let __end = __lookahead_start.cloned().unwrap_or_else(|| __start.clone()); + let __nt = super::__action122::<>(&__start, &__end); + __symbols.push((__start, __Symbol::Variant21(__nt), __end)); + (0, 43) + } + pub(crate) fn __reduce86< + 'input, + >( + __action: i8, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // OptionalNewlines = ("newline")+ => ActionFn(123); + let __sym0 = __pop_Variant5(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action123::<>(__sym0); + __symbols.push((__start, __Symbol::Variant21(__nt), __end)); + (1, 43) + } + pub(crate) fn __reduce87< + 'input, + >( + __action: i8, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // ParameterList = Comma => ActionFn(7); + let __sym0 = __pop_Variant15(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action7::<>(__sym0); + __symbols.push((__start, __Symbol::Variant15(__nt), __end)); + (1, 44) + } + pub(crate) fn __reduce88< + 'input, + >( + __action: i8, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // ParameterName = "-", SpannedBare => ActionFn(204); + let __sym1 = __pop_Variant16(__symbols); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym1.2.clone(); + let __nt = super::__action204::<>(__sym0, __sym1); + __symbols.push((__start, __Symbol::Variant23(__nt), __end)); + (2, 45) + } + pub(crate) fn __reduce89< + 'input, + >( + __action: i8, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // ParameterName = "--", SpannedBare => ActionFn(205); + let __sym1 = __pop_Variant16(__symbols); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym1.2.clone(); + let __nt = super::__action205::<>(__sym0, __sym1); + __symbols.push((__start, __Symbol::Variant23(__nt), __end)); + (2, 45) + } + pub(crate) fn __reduce90< + 'input, + >( + __action: i8, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // ParameterName = ParameterVariable => ActionFn(206); + let __sym0 = __pop_Variant24(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action206::<>(__sym0); + __symbols.push((__start, __Symbol::Variant23(__nt), __end)); + (1, 45) + } + pub(crate) fn __reduce91< + 'input, + >( + __action: i8, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // ParameterVariable = "$", "variable" => ActionFn(207); + let __sym1 = __pop_Variant0(__symbols); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym1.2.clone(); + let __nt = super::__action207::<>(__sym0, __sym1); + __symbols.push((__start, __Symbol::Variant24(__nt), __end)); + (2, 46) + } + pub(crate) fn __reduce92< + 'input, + >( + __action: i8, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // Pipeline = PipelineElement => ActionFn(208); + let __sym0 = __pop_Variant6(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action208::<>(__sym0); + __symbols.push((__start, __Symbol::Variant25(__nt), __end)); + (1, 47) + } + pub(crate) fn __reduce93< + 'input, + >( + __action: i8, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // Pipeline = PipelineElement, ("|" )+ => ActionFn(209); + let __sym1 = __pop_Variant7(__symbols); + let __sym0 = __pop_Variant6(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym1.2.clone(); + let __nt = super::__action209::<>(__sym0, __sym1); + __symbols.push((__start, __Symbol::Variant25(__nt), __end)); + (2, 47) + } + pub(crate) fn __reduce94< + 'input, + >( + __action: i8, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // PipelineElement = BareExpression => ActionFn(210); + let __sym0 = __pop_Variant6(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action210::<>(__sym0); + __symbols.push((__start, __Symbol::Variant6(__nt), __end)); + (1, 48) + } + pub(crate) fn __reduce95< + 'input, + >( + __action: i8, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // PipelineElement = SingleExpression => ActionFn(27); + let __sym0 = __pop_Variant6(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action27::<>(__sym0); + __symbols.push((__start, __Symbol::Variant6(__nt), __end)); + (1, 48) + } + pub(crate) fn __reduce96< + 'input, + >( + __action: i8, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // RawType = "any" => ActionFn(14); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action14::<>(__sym0); + __symbols.push((__start, __Symbol::Variant26(__nt), __end)); + (1, 49) + } + pub(crate) fn __reduce97< + 'input, + >( + __action: i8, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // RawType = "int" => ActionFn(15); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action15::<>(__sym0); + __symbols.push((__start, __Symbol::Variant26(__nt), __end)); + (1, 49) + } + pub(crate) fn __reduce98< + 'input, + >( + __action: i8, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // RawType = "decimal" => ActionFn(16); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action16::<>(__sym0); + __symbols.push((__start, __Symbol::Variant26(__nt), __end)); + (1, 49) + } + pub(crate) fn __reduce99< + 'input, + >( + __action: i8, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // RawType = "bytes" => ActionFn(17); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action17::<>(__sym0); + __symbols.push((__start, __Symbol::Variant26(__nt), __end)); + (1, 49) + } + pub(crate) fn __reduce100< + 'input, + >( + __action: i8, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // RawType = "text" => ActionFn(18); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action18::<>(__sym0); + __symbols.push((__start, __Symbol::Variant26(__nt), __end)); + (1, 49) + } + pub(crate) fn __reduce101< + 'input, + >( + __action: i8, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // RawType = "boolean" => ActionFn(19); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action19::<>(__sym0); + __symbols.push((__start, __Symbol::Variant26(__nt), __end)); + (1, 49) + } + pub(crate) fn __reduce102< + 'input, + >( + __action: i8, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // RawType = "date" => ActionFn(20); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action20::<>(__sym0); + __symbols.push((__start, __Symbol::Variant26(__nt), __end)); + (1, 49) + } + pub(crate) fn __reduce103< + 'input, + >( + __action: i8, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // RawType = "object" => ActionFn(21); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action21::<>(__sym0); + __symbols.push((__start, __Symbol::Variant26(__nt), __end)); + (1, 49) + } + pub(crate) fn __reduce104< + 'input, + >( + __action: i8, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // RawType = "list" => ActionFn(22); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action22::<>(__sym0); + __symbols.push((__start, __Symbol::Variant26(__nt), __end)); + (1, 49) + } + pub(crate) fn __reduce105< + 'input, + >( + __action: i8, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // RawType = "block" => ActionFn(23); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action23::<>(__sym0); + __symbols.push((__start, __Symbol::Variant26(__nt), __end)); + (1, 49) + } + pub(crate) fn __reduce106< + 'input, + >( + __action: i8, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // ReplLine = Pipeline => ActionFn(124); + let __sym0 = __pop_Variant25(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action124::<>(__sym0); + __symbols.push((__start, __Symbol::Variant25(__nt), __end)); + (1, 50) + } + pub(crate) fn __reduce107< + 'input, + >( + __action: i8, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // ReplLine = Pipeline, ("newline")+ => ActionFn(125); + let __sym1 = __pop_Variant5(__symbols); + let __sym0 = __pop_Variant25(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym1.2.clone(); + let __nt = super::__action125::<>(__sym0, __sym1); + __symbols.push((__start, __Symbol::Variant25(__nt), __end)); + (2, 50) + } + pub(crate) fn __reduce108< + 'input, + >( + __action: i8, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // SingleCallArgument = CallArgument => ActionFn(52); + let __sym0 = __pop_Variant6(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action52::<>(__sym0); + __symbols.push((__start, __Symbol::Variant6(__nt), __end)); + (1, 51) + } + pub(crate) fn __reduce109< + 'input, + >( + __action: i8, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // SingleCallArgument = Binary => ActionFn(53); + let __sym0 = __pop_Variant6(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action53::<>(__sym0); + __symbols.push((__start, __Symbol::Variant6(__nt), __end)); + (1, 51) + } + pub(crate) fn __reduce110< + 'input, + >( + __action: i8, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // SingleExpression = Expression => ActionFn(54); + let __sym0 = __pop_Variant6(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action54::<>(__sym0); + __symbols.push((__start, __Symbol::Variant6(__nt), __end)); + (1, 52) + } + pub(crate) fn __reduce111< + 'input, + >( + __action: i8, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // SingleExpression = Call => ActionFn(55); + let __sym0 = __pop_Variant6(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action55::<>(__sym0); + __symbols.push((__start, __Symbol::Variant6(__nt), __end)); + (1, 52) + } + pub(crate) fn __reduce112< + 'input, + >( + __action: i8, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // SingleExpression = Binary => ActionFn(56); + let __sym0 = __pop_Variant6(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action56::<>(__sym0); + __symbols.push((__start, __Symbol::Variant6(__nt), __end)); + (1, 52) + } + pub(crate) fn __reduce113< + 'input, + >( + __action: i8, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // SpannedBare = Bare => ActionFn(211); + let __sym0 = __pop_Variant13(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action211::<>(__sym0); + __symbols.push((__start, __Symbol::Variant16(__nt), __end)); + (1, 53) + } + pub(crate) fn __reduce114< + 'input, + >( + __action: i8, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // SpannedOperator = Operator => ActionFn(212); + let __sym0 = __pop_Variant22(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action212::<>(__sym0); + __symbols.push((__start, __Symbol::Variant27(__nt), __end)); + (1, 54) + } + pub(crate) fn __reduce115< + 'input, + >( + __action: i8, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // String = "sqstring" => ActionFn(213); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action213::<>(__sym0); + __symbols.push((__start, __Symbol::Variant6(__nt), __end)); + (1, 55) + } + pub(crate) fn __reduce116< + 'input, + >( + __action: i8, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // String = "dqstring" => ActionFn(214); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action214::<>(__sym0); + __symbols.push((__start, __Symbol::Variant6(__nt), __end)); + (1, 55) + } + pub(crate) fn __reduce117< + 'input, + >( + __action: i8, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // Type = RawType => ActionFn(215); + let __sym0 = __pop_Variant26(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action215::<>(__sym0); + __symbols.push((__start, __Symbol::Variant1(__nt), __end)); + (1, 56) + } + pub(crate) fn __reduce118< + 'input, + >( + __action: i8, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // UnitsNum = Int, "unit" => ActionFn(216); + let __sym1 = __pop_Variant0(__symbols); + let __sym0 = __pop_Variant19(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym1.2.clone(); + let __nt = super::__action216::<>(__sym0, __sym1); + __symbols.push((__start, __Symbol::Variant6(__nt), __end)); + (2, 57) + } + pub(crate) fn __reduce119< + 'input, + >( + __action: i8, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // Var = "$", "variable" => ActionFn(217); + let __sym1 = __pop_Variant0(__symbols); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym1.2.clone(); + let __nt = super::__action217::<>(__sym0, __sym1); + __symbols.push((__start, __Symbol::Variant6(__nt), __end)); + (2, 58) + } + pub(crate) fn __reduce121< + 'input, + >( + __action: i8, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // __Module = Module => ActionFn(0); + let __sym0 = __pop_Variant20(__symbols); let __start = __sym0.0.clone(); let __end = __sym0.2.clone(); let __nt = super::__action0::<>(__sym0); - __symbols.push((__start, __Symbol::Variant9(__nt), __end)); - (1, 32) + __symbols.push((__start, __Symbol::Variant20(__nt), __end)); + (1, 60) + } + pub(crate) fn __reduce122< + 'input, + >( + __action: i8, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // __ReplLine = ReplLine => ActionFn(1); + let __sym0 = __pop_Variant25(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action1::<>(__sym0); + __symbols.push((__start, __Symbol::Variant25(__nt), __end)); + (1, 61) } } pub use self::__parse__Call::CallParser; #[cfg_attr(rustfmt, rustfmt_skip)] -mod __parse__Pipeline { +mod __parse__Module { #![allow(non_snake_case, non_camel_case_types, unused_mut, unused_variables, unused_imports, unused_parens)] use std::str::FromStr; - use crate::parser::ast::*; + use crate::parser::ast::expression::*; + use crate::parser::ast::module::*; + use crate::parser::ast::parser_utils::*; + use crate::parser::ast::{ExpressionBuilder, ModuleBuilder}; use crate::prelude::*; use crate::parser::lexer::{SpannedToken, Spanned, Span, Token}; use byte_unit::Byte; @@ -2699,466 +4644,855 @@ mod __parse__Pipeline { pub enum __Symbol<'input> { Variant0(SpannedToken<'input>), - Variant1(::std::vec::Vec>), - Variant2(Expression), - Variant3(::std::vec::Vec), - Variant4(usize), - Variant5(Bare), - Variant6(i64), - Variant7(String), - Variant8(Operator), - Variant9(Pipeline), - Variant10(Spanned), + Variant1(Spanned), + Variant2(::std::option::Option>), + Variant3(Spanned), + Variant4(::std::vec::Vec>), + Variant5(::std::vec::Vec>), + Variant6(Expression), + Variant7(::std::vec::Vec), + Variant8(Item), + Variant9(::std::vec::Vec), + Variant10(FormalParameter), + Variant11(::std::vec::Vec), + Variant12(usize), + Variant13(Bare), + Variant14(Spanned), + Variant15(Vec), + Variant16(Spanned), + Variant17(::std::option::Option), + Variant18(Function), + Variant19(i64), + Variant20(Module), + Variant21(()), + Variant22(Operator), + Variant23(ParameterIdentifier), + Variant24(Spanned), + Variant25(Pipeline), + Variant26(Type), + Variant27(Spanned), } - const __ACTION: &'static [i8] = &[ + const __ACTION: &'static [i16] = &[ // State 0 - 0, 18, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 21, 0, 22, 0, 23, 0, 0, 24, 0, 0, + 0, 21, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 24, 0, 25, 0, 0, 0, 0, 26, 0, 0, 27, 0, 0, 0, 0, 28, 0, 0, // State 1 - 27, 0, 0, 0, 0, 0, 28, 29, 30, 31, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 31, 0, 0, 0, 0, 0, 0, 0, 0, 32, 33, 34, 35, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // State 2 - -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, 0, -17, 0, -17, 0, -17, 0, -17, 0, 0, -17, -17, -17, + -35, -35, -35, -35, 0, -35, -35, 0, 0, -35, -35, -35, -35, -35, 0, 0, -35, 0, 0, 0, 0, 0, 0, 0, -35, 0, 0, 0, 0, 0, -35, -35, 0, 0, -35, 0, 0, 0, 0, -35, -35, -35, // State 3 - -15, 18, 19, 0, 40, 41, -15, -15, -15, -15, -15, 0, 20, 0, 21, 0, 22, 0, 23, 0, 0, 24, -52, 0, + -33, 21, 22, 0, 0, 44, 45, 0, 0, -33, -33, -33, -33, -33, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, -95, 26, 0, 0, 27, 0, 0, 0, 0, 28, -95, 0, // State 4 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -58, -58, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -113, 0, 0, 0, 0, 0, 0, 0, 0, 0, -113, -113, // State 5 - -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, 0, -40, 0, -40, 0, -40, 0, 0, -40, -40, -40, + -73, -73, -73, -73, 0, -73, -73, 0, 0, -73, -73, -73, -73, -73, -73, 0, -73, 0, 0, 0, 0, 0, 0, 0, -73, 0, 0, 0, 0, 0, -73, -73, 0, 0, -73, 0, 0, 0, 0, -73, -73, -73, // State 6 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -57, -57, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -112, 0, 0, 0, 0, 0, 0, 0, 0, 0, -112, -112, // State 7 - -14, 18, 19, 0, 40, 41, -14, -14, -14, -14, -14, 0, 20, 0, 21, 0, 22, 0, 23, 0, 0, 24, -56, -56, + -32, 21, 22, 0, 0, 44, 45, 0, 0, -32, -32, -32, -32, -32, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, -111, 26, 0, 0, 27, 0, 0, 0, 0, 28, -111, -111, // State 8 - -33, -33, -33, -33, -33, -33, -33, -33, -33, -33, -33, -33, -33, 0, -33, 0, -33, 0, -33, 44, 0, -33, -33, -33, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // State 9 - -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, 0, -39, 0, -39, 0, -39, 0, 0, -39, -39, -39, + -65, -65, -65, -65, 0, -65, -65, 0, 0, -65, -65, -65, -65, -65, -65, 0, -65, 0, 0, 0, 0, 0, 0, 0, -65, 0, 0, 0, 0, 0, -65, -65, 0, 0, -65, 0, 0, 48, 0, -65, -65, -65, // State 10 - -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, 46, -27, 0, -27, 0, -27, 0, -27, 0, 0, -27, -27, -27, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // State 11 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + -72, -72, -72, -72, 0, -72, -72, 0, 0, -72, -72, -72, -72, -72, -72, 0, -72, 0, 0, 0, 0, 0, 0, 0, -72, 0, 0, 0, 0, 0, -72, -72, 0, 0, -72, 0, 0, 0, 0, -72, -72, -72, // State 12 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 0, + -52, -52, -52, -52, 0, -52, -52, 0, 0, -52, -52, -52, -52, -52, 53, 0, -52, 0, 0, 0, 0, 0, 0, 0, -52, 0, 0, 0, 0, 0, -52, -52, 0, 0, -52, 0, 0, 0, 0, -52, -52, -52, // State 13 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -53, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // State 14 - -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, 0, -32, 0, -32, 0, -32, 0, 0, -32, -32, -32, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // State 15 - -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, 0, -34, 0, -34, 0, -34, 0, 0, -34, -34, -34, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -93, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 0, // State 16 - -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, 0, -35, 0, -35, 0, -35, 0, 0, -35, -35, -35, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -96, 0, 0, 0, 0, 0, 0, 0, 0, 0, -96, 0, // State 17 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 0, 0, 0, + -64, -64, -64, -64, 0, -64, -64, 0, 0, -64, -64, -64, -64, -64, -64, 0, -64, 0, 0, 0, 0, 0, 0, 0, -64, 0, 0, 0, 0, 0, -64, -64, 0, 0, -64, 0, 0, 0, 0, -64, -64, -64, // State 18 - 0, 18, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 21, 0, 22, 0, 23, 0, 0, 24, 0, 0, + -66, -66, -66, -66, 0, -66, -66, 0, 0, -66, -66, -66, -66, -66, -66, 0, -66, 0, 0, 0, 0, 0, 0, 0, -66, 0, 0, 0, 0, 0, -66, -66, 0, 0, -66, 0, 0, 0, 0, -66, -66, -66, // State 19 - -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, 0, -16, 0, -16, 0, -16, 0, -16, 0, 0, -16, -16, -16, + -67, -67, -67, -67, 0, -67, -67, 0, 0, -67, -67, -67, -67, -67, -67, 0, -67, 0, 0, 0, 0, 0, 0, 0, -67, 0, 0, 0, 0, 0, -67, -67, 0, 0, -67, 0, 0, 0, 0, -67, -67, -67, // State 20 - -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, 0, -61, 0, -61, 0, -61, 0, 0, -61, -61, -61, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 0, 0, 0, // State 21 - -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, 0, -31, 0, -31, 0, -31, -31, 0, -31, -31, -31, + 0, 21, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 26, 0, 0, 27, 0, 0, 0, 0, 28, 0, 0, // State 22 - -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, 0, -60, 0, -60, 0, -60, 0, 0, -60, -60, -60, + -34, -34, -34, -34, 0, -34, -34, 0, -34, -34, -34, -34, -34, -34, 0, 0, -34, 0, 0, 0, 0, 0, 0, 0, -34, 0, 0, 0, 0, 0, -34, -34, 0, 0, -34, 0, 0, 0, 0, -34, -34, -34, // State 23 - 0, 18, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 21, 0, 22, 0, 23, 0, 0, 24, 0, 0, + -117, -117, -117, -117, 0, -117, -117, 0, 0, -117, -117, -117, -117, -117, -117, 0, -117, 0, 0, 0, 0, 0, 0, 0, -117, 0, 0, 0, 0, 0, -117, -117, 0, 0, -117, 0, 0, 0, 0, -117, -117, -117, // State 24 - 0, -59, -59, 0, 0, 0, 0, 0, 0, 0, 0, 0, -59, 0, -59, 0, -59, 0, -59, 0, 0, -59, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // State 25 - 0, 18, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 21, 0, 22, 0, 23, 0, 0, 24, 0, 0, + -61, -61, -61, -61, 0, -61, -61, 0, 0, -61, -61, -61, -61, -61, -61, 0, -61, 0, 0, 0, 0, 0, 0, 0, -61, 0, 0, 0, 0, 0, -61, -61, 0, 0, -61, 0, 0, -61, 0, -61, -61, -61, // State 26 - 0, -45, -45, 0, 0, 0, 0, 0, 0, 0, 0, 0, -45, 0, -45, 0, -45, 0, -45, 0, 0, -45, 0, 0, + -116, -116, -116, -116, 0, -116, -116, 0, 0, -116, -116, -116, -116, -116, -116, 0, -116, 0, 0, 0, 0, 0, 0, 0, -116, 0, 0, 0, 0, 0, -116, -116, 0, 0, -116, 0, 0, 0, 0, -116, -116, -116, // State 27 - 0, -46, -46, 0, 0, 0, 0, 0, 0, 0, 0, 0, -46, 0, -46, 0, -46, 0, -46, 0, 0, -46, 0, 0, + 0, 21, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 26, 0, 0, 27, 0, 0, 0, 0, 28, 0, 0, // State 28 - 0, -48, -48, 0, 0, 0, 0, 0, 0, 0, 0, 0, -48, 0, -48, 0, -48, 0, -48, 0, 0, -48, 0, 0, + 0, -115, -115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -115, 0, 0, 0, 0, 0, 0, 0, -115, 0, 0, 0, 0, 0, 0, -115, 0, 0, -115, 0, 0, 0, 0, -115, 0, 0, // State 29 - 0, -44, -44, 0, 0, 0, 0, 0, 0, 0, 0, 0, -44, 0, -44, 0, -44, 0, -44, 0, 0, -44, 0, 0, + 0, 21, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 26, 0, 0, 27, 0, 0, 0, 0, 28, 0, 0, // State 30 - 0, -47, -47, 0, 0, 0, 0, 0, 0, 0, 0, 0, -47, 0, -47, 0, -47, 0, -47, 0, 0, -47, 0, 0, + 0, -81, -81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -81, 0, 0, 0, 0, 0, 0, 0, -81, 0, 0, 0, 0, 0, 0, -81, 0, 0, -81, 0, 0, 0, 0, -81, 0, 0, // State 31 - 0, -49, -49, 0, 0, 0, 0, 0, 0, 0, 0, 0, -49, 0, -49, 0, -49, 0, -49, 0, 0, -49, 0, 0, + 0, -82, -82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -82, 0, 0, 0, 0, 0, 0, 0, -82, 0, 0, 0, 0, 0, 0, -82, 0, 0, -82, 0, 0, 0, 0, -82, 0, 0, // State 32 - 27, -25, -25, -25, -25, -25, 28, 29, 30, 31, 32, 0, -25, 0, -25, 0, -25, 0, -25, 0, 0, -25, -25, -25, + 0, -84, -84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -84, 0, 0, 0, 0, 0, 0, 0, -84, 0, 0, 0, 0, 0, 0, -84, 0, 0, -84, 0, 0, 0, 0, -84, 0, 0, // State 33 - -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, 0, -15, 0, -15, 0, -15, 0, -15, 0, 0, -15, -15, -15, + 0, -80, -80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -80, 0, 0, 0, 0, 0, 0, 0, -80, 0, 0, 0, 0, 0, 0, -80, 0, 0, -80, 0, 0, 0, 0, -80, 0, 0, // State 34 - 0, 0, 0, -55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -55, -55, + 0, -83, -83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -83, 0, 0, 0, 0, 0, 0, 0, -83, 0, 0, 0, 0, 0, 0, -83, 0, 0, -83, 0, 0, 0, 0, -83, 0, 0, // State 35 - 0, 18, 19, -54, 40, 41, 0, 0, 0, 0, 0, 0, 20, 0, 21, 0, 22, 0, 23, 0, 0, 24, -54, -54, + 0, -85, -85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -85, 0, 0, 0, 0, 0, 0, 0, -85, 0, 0, 0, 0, 0, 0, -85, 0, 0, -85, 0, 0, 0, 0, -85, 0, 0, // State 36 - -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, 0, -14, 0, -14, 0, -14, 0, -14, 0, 0, -14, -14, -14, + 31, -45, -45, -45, 0, -45, -45, 0, 0, 32, 33, 34, 35, 36, 0, 0, -45, 0, 0, 0, 0, 0, 0, 0, -45, 0, 0, 0, 0, 0, -45, -45, 0, 0, -45, 0, 0, 0, 0, -45, -45, -45, // State 37 - 0, -26, -26, -26, -26, -26, 0, 0, 0, 0, 0, 0, -26, 0, -26, 0, -26, 0, -26, 0, 0, -26, -26, -26, + -33, -33, -33, -33, 0, -33, -33, 0, 0, -33, -33, -33, -33, -33, 0, 0, -33, 0, 0, 0, 0, 0, 0, 0, -33, 0, 0, 0, 0, 0, -33, -33, 0, 0, -33, 0, 0, 0, 0, -33, -33, -33, // State 38 - 0, 0, 0, -23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -23, -23, + 0, 0, 0, -110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -110, 0, 0, 0, 0, 0, 0, 0, 0, 0, -110, -110, // State 39 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 21, 22, -109, 0, 44, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, -109, 26, 0, 0, 27, 0, 0, 0, 0, 28, -109, -109, // State 40 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + -32, -32, -32, -32, 0, -32, -32, 0, 0, -32, -32, -32, -32, -32, 0, 0, -32, 0, 0, 0, 0, 0, 0, 0, -32, 0, 0, 0, 0, 0, -32, -32, 0, 0, -32, 0, 0, 0, 0, -32, -32, -32, // State 41 - 0, 18, 19, -54, 40, 41, 0, 0, 0, 0, 0, 0, 20, 0, 21, 0, 22, 0, 23, 0, 0, 24, -54, -54, + 0, -46, -46, -46, 0, -46, -46, 0, 0, 0, 0, 0, 0, 0, 0, 0, -46, 0, 0, 0, 0, 0, 0, 0, -46, 0, 0, 0, 0, 0, -46, -46, 0, 0, -46, 0, 0, 0, 0, -46, -46, -46, // State 42 - 0, 0, 0, -21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -21, -21, + 0, 0, 0, -43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -43, 0, 0, 0, 0, 0, 0, 0, 0, 0, -43, -43, // State 43 - -62, -62, -62, -62, -62, -62, -62, -62, -62, -62, -62, -62, -62, 0, -62, 0, -62, 0, -62, 0, 0, -62, -62, -62, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // State 44 - -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, 63, -28, 0, -28, 0, -28, 0, -28, 0, 0, -28, -28, -28, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // State 45 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 21, 22, -109, 0, 44, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, -109, 26, 0, 0, 27, 0, 0, 0, 0, 28, -109, -109, // State 46 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65, 0, + 0, 0, 0, -41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -41, 0, 0, 0, 0, 0, 0, 0, 0, 0, -41, -41, // State 47 - 0, 18, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 21, 0, 22, 0, 23, 0, 0, 24, 0, 0, + -119, -119, -119, -119, 0, -119, -119, 0, 0, -119, -119, -119, -119, -119, -119, 0, -119, 0, 0, 0, 0, 0, 0, 0, -119, 0, 0, 0, 0, 0, -119, -119, 0, 0, -119, 0, 0, 0, 0, -119, -119, -119, // State 48 - -63, -63, -63, -63, -63, -63, -63, -63, -63, -63, -63, -63, -63, 0, -63, 0, -63, 0, -63, 0, 0, -63, -63, -63, + 0, 21, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 24, 0, 25, 0, 0, 0, 73, 26, 0, 0, 27, 0, 0, 0, 0, 28, 0, 0, // State 49 - -15, 18, 19, 67, 40, 41, -15, -15, -15, -15, -15, 0, 20, 0, 21, 0, 22, 0, 23, 0, 0, 24, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // State 50 - 0, 0, 0, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, -10, -10, 0, -10, -10, -10, 0, 0, 0, 0, 0, 0, 0, 0, 0, -10, 0, 0, 0, 0, 0, 0, 0, -10, -10, -10, 0, 0, 0, -10, -10, 0, 0, -10, 0, 0, 0, 0, -10, 0, 0, // State 51 - 0, 0, 0, 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + -53, -53, -53, -53, 0, -53, -53, 0, 0, -53, -53, -53, -53, -53, 75, 0, -53, 0, 0, 0, 0, 0, 0, 0, -53, 0, 0, 0, 0, 0, -53, -53, 0, 0, -53, 0, 0, 0, 0, -53, -53, -53, // State 52 - -14, 18, 19, 0, 40, 41, -14, -14, -14, -14, -14, 0, 20, 0, 21, 0, 22, 0, 23, 0, 0, 24, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 0, 0, 78, 0, 0, 79, 0, 0, 0, 80, 0, 0, 0, 0, 0, 0, 0, 0, // State 53 - -15, 18, 19, 0, 40, 41, -15, -15, -15, -15, -15, 0, 20, 0, 21, 0, 22, 0, 23, 0, 0, 24, 0, 70, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -94, 0, 0, 0, 0, 0, 0, 0, 0, 0, 81, 0, // State 54 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71, + 0, 21, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 26, 0, 0, 27, 0, 0, 0, 0, 28, 0, 0, // State 55 - 0, 0, 0, -18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -18, -18, + -120, -120, -120, -120, 0, -120, -120, 0, 0, -120, -120, -120, -120, -120, -120, 0, -120, 0, 0, 0, 0, 0, 0, 0, -120, 0, 0, 0, 0, 0, -120, -120, 0, 0, -120, 0, 0, 0, 0, -120, -120, -120, // State 56 - 0, 18, 19, -24, 40, 41, 0, 0, 0, 0, 0, 0, 20, 0, 21, 0, 22, 0, 23, 0, 0, 24, -24, -24, + -33, 21, 22, 83, 0, 44, 45, 0, 0, -33, -33, -33, -33, -33, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 26, 0, 0, 27, 0, 0, 0, 0, 28, 0, 0, // State 57 - 0, -25, -25, -25, -25, -25, 0, 0, 0, 0, 0, 0, -25, 0, -25, 0, -25, 0, -25, 0, 0, -25, -25, -25, + 0, 0, 0, 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // State 58 - 0, -10, -10, -10, -10, -10, 0, 0, 0, 0, 0, 0, -10, 0, -10, 0, -10, 0, -10, 0, 0, -10, -10, -10, + 0, 0, 0, 85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // State 59 - 0, -29, -29, -29, -29, -29, 0, 0, 0, 0, 0, 0, -29, 0, -29, 0, -29, 0, -29, 0, 0, -29, -29, -29, + -32, 21, 22, 0, 0, 44, 45, 0, 0, -32, -32, -32, -32, -32, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 26, 0, 0, 27, 0, 0, 0, 0, 28, 0, 0, // State 60 - 0, -30, -30, -30, -30, -30, 0, 0, 0, 0, 0, 0, -30, 0, -30, 0, -30, 0, -30, 0, 0, -30, -30, -30, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 0, 0, 0, 0, 0, 0, // State 61 - 0, 18, 19, -22, 40, 41, 0, 0, 0, 0, 0, 0, 20, 0, 21, 0, 22, 0, 23, 0, 0, 24, -22, -22, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -51, 0, 0, 0, 0, 0, 0, // State 62 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 0, 0, 0, 0, 0, 0, 0, 0, + -33, 21, 22, 0, 0, 44, 45, 0, 0, -33, -33, -33, -33, -33, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 26, 0, 0, 27, 0, 0, 0, 0, 28, 0, 87, // State 63 - -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, 0, -2, 0, -2, 0, -2, 0, 0, -2, -2, -2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, // State 64 - 0, 18, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 21, 0, 22, 0, 23, 0, 0, 24, 0, 0, + 0, 0, 0, -36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -36, 0, 0, 0, 0, 0, 0, 0, 0, 0, -36, -36, // State 65 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -7, 0, + 0, 21, 22, -44, 0, 44, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, -44, 26, 0, 0, 27, 0, 0, 0, 0, 28, -44, -44, // State 66 - -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, 0, -42, 0, -42, 0, -42, 0, 0, -42, -42, -42, + 0, -45, -45, -45, 0, -45, -45, 0, 0, 0, 0, 0, 0, 0, 0, 0, -45, 0, 0, 0, 0, 0, 0, 0, -45, 0, 0, 0, 0, 0, -45, -45, 0, 0, -45, 0, 0, 0, 0, -45, -45, -45, // State 67 - -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, 0, -43, 0, -43, 0, -43, 0, 0, -43, -43, -43, + 0, -23, -23, -23, 0, -23, -23, 0, 0, 0, 0, 0, 0, 0, 0, 0, -23, 0, 0, 0, 0, 0, 0, 0, -23, 0, 0, 0, 0, 0, -23, -23, 0, 0, -23, 0, 0, 0, 0, -23, -23, -23, // State 68 - -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, 0, -41, 0, -41, 0, -41, 0, 0, -41, -41, -41, + 0, -54, -54, -54, 0, -54, -54, 0, 0, 0, 0, 0, 0, 0, 0, 0, -54, 0, 0, 0, 0, 0, 0, 0, -54, 0, 0, 0, 0, 0, -54, -54, 0, 0, -54, 0, 0, 0, 0, -54, -54, -54, // State 69 - -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, 0, -20, 0, -20, 0, -20, 0, 0, -20, -20, -20, + 0, -55, -55, -55, 0, -55, -55, 0, 0, 0, 0, 0, 0, 0, 0, 0, -55, 0, 0, 0, 0, 0, 0, 0, -55, 0, 0, 0, 0, 0, -55, -55, 0, 0, -55, 0, 0, 0, 0, -55, -55, -55, // State 70 - -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, 0, -19, 0, -19, 0, -19, 0, 0, -19, -19, -19, + 0, 21, 22, -42, 0, 44, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, -42, 26, 0, 0, 27, 0, 0, 0, 0, 28, -42, -42, // State 71 - 0, -11, -11, -11, -11, -11, 0, 0, 0, 0, 0, 0, -11, 0, -11, 0, -11, 0, -11, 0, 0, -11, -11, -11, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // State 72 - -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, 0, -3, 0, -3, 0, -3, 0, 0, -3, -3, -3, + 0, -11, -11, 0, -11, -11, -11, 0, 0, 0, 0, 0, 0, 0, 0, 0, -11, 0, 0, 0, 0, 0, 0, 0, -11, -11, -11, 0, 0, 0, -11, -11, 0, 0, -11, 0, 0, 0, 0, -11, 0, 0, // State 73 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -8, 0, + 0, 21, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 24, 0, 25, 0, 0, 0, 73, 26, 0, 0, 27, 0, 0, 0, 0, 28, 0, 0, + // State 74 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 0, 0, 78, 0, 0, 79, 0, 0, 0, 80, 0, 0, 0, 0, 0, 0, 0, 0, + // State 75 + -5, -5, -5, -5, 0, -5, -5, 0, 0, -5, -5, -5, -5, -5, -5, 0, -5, 0, 0, 0, 0, 0, 0, 0, -5, 0, 0, 0, 0, 0, -5, -5, 0, 0, -5, 0, 0, 0, 0, -5, -5, -5, + // State 76 + -69, -69, -69, -69, 0, -69, -69, 0, 0, -69, -69, -69, -69, -69, -69, 0, -69, 0, 0, 0, 0, 0, 0, 0, -69, 0, 0, 0, 0, 0, -69, -69, 0, 0, -69, 0, 0, 0, 0, -69, -69, -69, + // State 77 + -71, -71, -71, -71, 0, -71, -71, 0, 0, -71, -71, -71, -71, -71, -71, 0, -71, 0, 0, 0, 0, 0, 0, 0, -71, 0, 0, 0, 0, 0, -71, -71, 0, 0, -71, 0, 0, 0, 0, -71, -71, -71, + // State 78 + -68, -68, -68, -68, 0, -68, -68, 0, 0, -68, -68, -68, -68, -68, -68, 0, -68, 0, 0, 0, 0, 0, 0, 0, -68, 0, 0, 0, 0, 0, -68, -68, 0, 0, -68, 0, 0, 0, 0, -68, -68, -68, + // State 79 + -70, -70, -70, -70, 0, -70, -70, 0, 0, -70, -70, -70, -70, -70, -70, 0, -70, 0, 0, 0, 0, 0, 0, 0, -70, 0, 0, 0, 0, 0, -70, -70, 0, 0, -70, 0, 0, 0, 0, -70, -70, -70, + // State 80 + 0, 21, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 26, 0, 0, 27, 0, 0, 0, 0, 28, 0, 0, + // State 81 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -15, 0, 0, 0, 0, 0, 0, 0, 0, 0, -15, 0, + // State 82 + -75, -75, -75, -75, 0, -75, -75, 0, 0, -75, -75, -75, -75, -75, -75, 0, -75, 0, 0, 0, 0, 0, 0, 0, -75, 0, 0, 0, 0, 0, -75, -75, 0, 0, -75, 0, 0, 0, 0, -75, -75, -75, + // State 83 + -76, -76, -76, -76, 0, -76, -76, 0, 0, -76, -76, -76, -76, -76, -76, 0, -76, 0, 0, 0, 0, 0, 0, 0, -76, 0, 0, 0, 0, 0, -76, -76, 0, 0, -76, 0, 0, 0, 0, -76, -76, -76, + // State 84 + -74, -74, -74, -74, 0, -74, -74, 0, 0, -74, -74, -74, -74, -74, -74, 0, -74, 0, 0, 0, 0, 0, 0, 0, -74, 0, 0, 0, 0, 0, -74, -74, 0, 0, -74, 0, 0, 0, 0, -74, -74, -74, + // State 85 + 0, 99, 0, 0, 0, 100, 101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 86 + -40, -40, -40, -40, 0, -40, -40, 0, 0, -40, -40, -40, -40, -40, -40, 0, -40, 0, 0, 0, 0, 0, 0, 0, -40, 0, 0, 0, 0, 0, -40, -40, 0, 0, -40, 0, 0, 0, 0, -40, -40, -40, + // State 87 + -39, -39, -39, -39, 0, -39, -39, 0, 0, -39, -39, -39, -39, -39, -39, 0, -39, 0, 0, 0, 0, 0, 0, 0, -39, 0, 0, 0, 0, 0, -39, -39, 0, 0, -39, 0, 0, 0, 0, -39, -39, -39, + // State 88 + 0, -24, -24, -24, 0, -24, -24, 0, 0, 0, 0, 0, 0, 0, 0, 0, -24, 0, 0, 0, 0, 0, 0, 0, -24, 0, 0, 0, 0, 0, -24, -24, 0, 0, -24, 0, 0, 0, 0, -24, -24, -24, + // State 89 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 90 + -6, -6, -6, -6, 0, -6, -6, 0, 0, -6, -6, -6, -6, -6, -6, 0, -6, 0, 0, 0, 0, 0, 0, 0, -6, 0, 0, 0, 0, 0, -6, -6, 0, 0, -6, 0, 0, 0, 0, -6, -6, -6, + // State 91 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -16, 0, 0, 0, 0, 0, 0, 0, 0, 0, -16, 0, + // State 92 + 0, 99, 0, 0, 0, 100, 101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 93 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 94 + 0, 0, 0, 0, -86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -47, 0, 0, 0, 0, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 95 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 96 + 0, 0, 0, 0, 0, 0, 0, 0, 106, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 97 + 0, 0, 0, 0, 0, 0, 0, 0, -91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 98 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 107, 0, 0, 0, + // State 99 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 100 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 101 + 0, 0, 0, 0, -86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -49, 0, 0, 0, 0, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 102 + 0, -87, 0, 0, -87, -87, -87, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -87, 0, 0, 0, 0, 73, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 103 + 0, 0, 0, 0, 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 104 + 0, 0, 0, 0, 0, 0, 0, 114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 115, 0, 0, + // State 105 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 118, 0, 119, 120, 121, 0, 122, 123, 0, 0, 0, 0, 124, 125, 0, 0, 0, 126, 0, 0, 0, 127, 0, 0, 0, 0, 0, + // State 106 + 0, 0, 0, 0, 0, 0, 0, 0, -92, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 107 + 0, 0, 0, 0, 0, 0, 0, 0, -114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 108 + 0, 0, 0, 0, 0, 0, 0, 0, -89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 109 + 0, 0, 0, 0, 0, 0, 0, 0, -90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 110 + 0, 0, 0, 0, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 111 + 0, -86, 0, 0, 0, -86, -86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -86, 0, 0, 0, 0, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 112 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 113 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 118, 0, 119, 120, 121, 0, 122, 123, 0, 0, 0, 0, 124, 125, 0, 0, 0, 126, 0, 0, 0, 127, 0, 0, 0, 0, 0, + // State 114 + 0, 21, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 26, 0, 0, 27, 0, 0, 0, 0, 28, 0, 0, + // State 115 + 0, 0, 0, 0, -118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -118, 0, 0, 0, 0, -118, 0, 0, 0, 0, 0, 0, 0, 0, -118, 0, 0, + // State 116 + 0, 0, 0, 0, -56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -56, 0, 0, 0, 0, -56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 117 + 0, 0, 0, 0, -97, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -97, 0, 0, 0, 0, -97, 0, 0, 0, 0, 0, 0, 0, 0, -97, 0, 0, + // State 118 + 0, 0, 0, 0, -106, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -106, 0, 0, 0, 0, -106, 0, 0, 0, 0, 0, 0, 0, 0, -106, 0, 0, + // State 119 + 0, 0, 0, 0, -102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -102, 0, 0, 0, 0, -102, 0, 0, 0, 0, 0, 0, 0, 0, -102, 0, 0, + // State 120 + 0, 0, 0, 0, -100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -100, 0, 0, 0, 0, -100, 0, 0, 0, 0, 0, 0, 0, 0, -100, 0, 0, + // State 121 + 0, 0, 0, 0, -103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -103, 0, 0, 0, 0, -103, 0, 0, 0, 0, 0, 0, 0, 0, -103, 0, 0, + // State 122 + 0, 0, 0, 0, -99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -99, 0, 0, 0, 0, -99, 0, 0, 0, 0, 0, 0, 0, 0, -99, 0, 0, + // State 123 + 0, 0, 0, 0, -98, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -98, 0, 0, 0, 0, -98, 0, 0, 0, 0, 0, 0, 0, 0, -98, 0, 0, + // State 124 + 0, 0, 0, 0, -105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -105, 0, 0, 0, 0, -105, 0, 0, 0, 0, 0, 0, 0, 0, -105, 0, 0, + // State 125 + 0, 0, 0, 0, -104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -104, 0, 0, 0, 0, -104, 0, 0, 0, 0, 0, 0, 0, 0, -104, 0, 0, + // State 126 + 0, 0, 0, 0, -101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -101, 0, 0, 0, 0, -101, 0, 0, 0, 0, 0, 0, 0, 0, -101, 0, 0, + // State 127 + 0, -86, 0, 0, 0, -86, -86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -86, 0, 0, 0, 0, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 128 + 0, -28, 0, 0, 0, -28, -28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 129 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 115, 0, 0, + // State 130 + -33, 21, 22, 0, 0, 44, 45, 0, 0, -33, -33, -33, -33, -33, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 26, 0, 0, 27, 0, 0, 0, 0, 28, 0, 135, + // State 131 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 136, + // State 132 + 0, -29, 0, 0, 0, -29, -29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 133 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 134 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 135 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ]; - const __EOF_ACTION: &'static [i8] = &[ + const __EOF_ACTION: &'static [i16] = &[ // State 0 0, // State 1 0, // State 2 - -17, - // State 3 - -52, - // State 4 - -58, - // State 5 - -40, - // State 6 - -57, - // State 7 - -56, - // State 8 - -33, - // State 9 - -39, - // State 10 - -27, - // State 11 - -65, - // State 12 - -50, - // State 13 - -53, - // State 14 - -32, - // State 15 - -34, - // State 16 -35, - // State 17 - 0, - // State 18 - 0, - // State 19 - -16, - // State 20 - -61, - // State 21 - -31, - // State 22 - -60, - // State 23 - 0, - // State 24 - 0, - // State 25 - 0, - // State 26 - 0, - // State 27 - 0, - // State 28 - 0, - // State 29 - 0, - // State 30 - 0, - // State 31 - 0, - // State 32 - -25, - // State 33 - -15, - // State 34 - -55, - // State 35 - -54, - // State 36 - -14, - // State 37 - -26, - // State 38 - -23, - // State 39 - 0, - // State 40 - 0, - // State 41 - -54, - // State 42 - -21, - // State 43 - -62, - // State 44 - -28, - // State 45 - 0, - // State 46 - -51, - // State 47 - 0, - // State 48 - -63, - // State 49 - 0, - // State 50 - 0, - // State 51 - 0, - // State 52 - 0, - // State 53 - 0, - // State 54 - 0, - // State 55 - -18, - // State 56 - -24, - // State 57 - -25, - // State 58 - -10, - // State 59 - -29, - // State 60 - -30, - // State 61 - -22, - // State 62 - 0, - // State 63 - -2, - // State 64 - 0, - // State 65 - -7, - // State 66 - -42, - // State 67 - -43, - // State 68 - -41, - // State 69 - -20, - // State 70 - -19, - // State 71 - -11, - // State 72 - -3, - // State 73 - -8, - ]; - const __GOTO: &'static [i8] = &[ - // State 0 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 4, 5, 6, 7, 0, 8, 0, 9, 10, 0, 11, 0, 12, 13, 0, 14, 0, 15, 16, 17, 0, 0, - // State 1 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 26, 0, 0, 0, 0, 0, - // State 2 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // State 3 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 3, 34, 35, 6, 0, 36, 37, 38, 9, 10, 0, 11, 0, 0, 0, 39, 0, 0, 15, 16, 17, 0, 0, + -95, // State 4 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + -113, // State 5 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + -73, // State 6 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + -112, // State 7 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 3, 34, 35, 6, 0, 42, 37, 38, 9, 10, 0, 11, 0, 0, 0, 43, 0, 0, 15, 16, 17, 0, 0, + -111, // State 8 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + -63, // State 9 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + -65, // State 10 - 0, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + -77, // State 11 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + -72, // State 12 - 0, 0, 0, 0, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + -52, // State 13 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + -122, // State 14 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + -62, // State 15 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + -93, // State 16 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + -96, // State 17 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + -64, // State 18 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 50, 51, 6, 52, 0, 53, 0, 9, 10, 0, 11, 0, 0, 0, 0, 0, 0, 15, 16, 17, 0, 0, + -66, // State 19 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + -67, // State 20 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, // State 21 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, // State 22 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + -34, // State 23 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 54, 5, 6, 7, 0, 8, 0, 9, 10, 0, 11, 0, 0, 0, 0, 55, 0, 15, 16, 17, 0, 0, + -117, // State 24 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, // State 25 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 3, 34, 0, 6, 0, 0, 37, 0, 9, 10, 0, 11, 0, 0, 0, 0, 0, 0, 15, 16, 17, 0, 0, + -61, // State 26 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + -116, // State 27 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, // State 28 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, // State 29 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, // State 30 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, // State 31 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, // State 32 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 26, 0, 0, 0, 0, 0, + 0, // State 33 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, // State 34 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, // State 35 - 0, 0, 0, 0, 0, 0, 57, 0, 0, 58, 3, 34, 0, 6, 0, 59, 37, 38, 9, 10, 0, 11, 0, 0, 0, 0, 0, 0, 15, 16, 17, 0, 0, + 0, // State 36 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + -45, // State 37 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + -33, // State 38 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + -110, // State 39 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + -109, // State 40 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + -32, // State 41 - 0, 0, 0, 0, 0, 0, 62, 0, 0, 58, 3, 34, 0, 6, 0, 59, 37, 38, 9, 10, 0, 11, 0, 0, 0, 0, 0, 0, 15, 16, 17, 0, 0, + -46, // State 42 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + -43, // State 43 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, // State 44 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, // State 45 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + -109, // State 46 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + -41, // State 47 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 4, 5, 6, 7, 0, 8, 0, 9, 10, 0, 11, 0, 0, 66, 0, 14, 0, 15, 16, 17, 0, 0, + -119, // State 48 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, // State 49 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 3, 34, 35, 6, 0, 36, 37, 38, 9, 10, 0, 11, 0, 0, 0, 39, 0, 0, 15, 16, 17, 0, 0, + -78, // State 50 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, // State 51 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + -53, // State 52 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 3, 34, 35, 6, 0, 42, 37, 38, 9, 10, 0, 11, 0, 0, 0, 43, 0, 0, 15, 16, 17, 0, 0, + 0, // State 53 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 3, 34, 35, 6, 0, 36, 37, 38, 9, 10, 0, 11, 0, 0, 0, 39, 0, 0, 15, 16, 17, 0, 0, + -94, // State 54 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, // State 55 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + -120, // State 56 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 58, 3, 34, 0, 6, 0, 72, 37, 38, 9, 10, 0, 11, 0, 0, 0, 0, 0, 0, 15, 16, 17, 0, 0, + 0, // State 57 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, // State 58 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, // State 59 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, // State 60 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, // State 61 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 58, 3, 34, 0, 6, 0, 72, 37, 38, 9, 10, 0, 11, 0, 0, 0, 0, 0, 0, 15, 16, 17, 0, 0, + 0, // State 62 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, // State 63 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, // State 64 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 4, 5, 6, 7, 0, 8, 0, 9, 10, 0, 11, 0, 0, 74, 0, 14, 0, 15, 16, 17, 0, 0, + -36, // State 65 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + -44, // State 66 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + -45, // State 67 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + -23, // State 68 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + -54, // State 69 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + -55, // State 70 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + -42, // State 71 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + -20, // State 72 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, // State 73 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, + // State 74 + 0, + // State 75 + -5, + // State 76 + -69, + // State 77 + -71, + // State 78 + -68, + // State 79 + -70, + // State 80 + 0, + // State 81 + -15, + // State 82 + -75, + // State 83 + -76, + // State 84 + -74, + // State 85 + 0, + // State 86 + -40, + // State 87 + -39, + // State 88 + -24, + // State 89 + -21, + // State 90 + -6, + // State 91 + -16, + // State 92 + 0, + // State 93 + 0, + // State 94 + 0, + // State 95 + 0, + // State 96 + 0, + // State 97 + 0, + // State 98 + 0, + // State 99 + 0, + // State 100 + 0, + // State 101 + 0, + // State 102 + 0, + // State 103 + 0, + // State 104 + 0, + // State 105 + 0, + // State 106 + 0, + // State 107 + 0, + // State 108 + 0, + // State 109 + 0, + // State 110 + 0, + // State 111 + 0, + // State 112 + -60, + // State 113 + 0, + // State 114 + 0, + // State 115 + 0, + // State 116 + 0, + // State 117 + 0, + // State 118 + 0, + // State 119 + 0, + // State 120 + 0, + // State 121 + 0, + // State 122 + 0, + // State 123 + 0, + // State 124 + 0, + // State 125 + 0, + // State 126 + 0, + // State 127 + 0, + // State 128 + 0, + // State 129 + 0, + // State 130 + 0, + // State 131 + 0, + // State 132 + 0, + // State 133 + -59, + // State 134 + -38, + // State 135 + -37, + ]; + const __GOTO: &'static [i16] = &[ + // State 0 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 4, 5, 0, 6, 7, 0, 0, 0, 8, 0, 0, 0, 9, 10, 11, 12, 0, 13, 14, 0, 0, 0, 0, 0, 0, 15, 16, 0, 0, 0, 17, 0, 0, 18, 0, 19, 20, 0, 0, 0, + // State 1 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 0, 0, 0, 0, + // State 2 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 3 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 3, 38, 39, 0, 6, 0, 40, 0, 0, 41, 42, 0, 0, 0, 10, 0, 12, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 0, 0, 0, 18, 0, 19, 20, 0, 0, 0, + // State 4 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 5 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 6 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 7 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 3, 38, 39, 0, 6, 0, 46, 0, 0, 41, 42, 0, 0, 0, 10, 0, 12, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 0, 0, 0, 18, 0, 19, 20, 0, 0, 0, + // State 8 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 9 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 10 + 0, 0, 0, 0, 0, 0, 49, 0, 0, 0, 0, 0, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 11 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 12 + 0, 0, 0, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 13 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 14 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 15 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 16 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 17 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 18 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 19 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 20 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 21 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 57, 58, 0, 6, 59, 0, 0, 0, 60, 0, 0, 0, 0, 10, 0, 12, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 19, 20, 0, 0, 0, + // State 22 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 23 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 24 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 25 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 26 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 27 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 63, 5, 0, 6, 7, 0, 0, 0, 8, 0, 0, 0, 0, 10, 0, 12, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 18, 0, 19, 20, 0, 0, 0, + // State 28 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 29 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65, 3, 38, 0, 0, 6, 0, 0, 0, 0, 41, 0, 0, 0, 0, 10, 0, 12, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 19, 20, 0, 0, 0, + // State 30 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 31 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 32 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 33 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 34 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 35 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 36 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 0, 0, 0, 0, + // State 37 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 38 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 39 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 0, 0, 0, 0, 0, 67, 3, 38, 0, 0, 6, 0, 68, 0, 0, 41, 42, 0, 0, 0, 10, 0, 12, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 19, 20, 0, 0, 0, + // State 40 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 41 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 42 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 43 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 44 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 45 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71, 0, 0, 0, 0, 0, 67, 3, 38, 0, 0, 6, 0, 68, 0, 0, 41, 42, 0, 0, 0, 10, 0, 12, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 19, 20, 0, 0, 0, + // State 46 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 47 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 48 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 4, 5, 0, 6, 7, 0, 0, 0, 8, 0, 0, 0, 9, 10, 72, 12, 0, 13, 0, 0, 0, 0, 0, 0, 0, 15, 16, 0, 0, 0, 17, 0, 0, 18, 0, 19, 20, 0, 0, 0, + // State 49 + 0, 0, 0, 0, 0, 0, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 50 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 51 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 52 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 53 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 54 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 4, 5, 0, 6, 7, 0, 0, 0, 8, 0, 0, 0, 0, 10, 0, 12, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 82, 0, 0, 0, 17, 0, 0, 18, 0, 19, 20, 0, 0, 0, + // State 55 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 56 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 3, 38, 39, 0, 6, 0, 40, 0, 0, 41, 42, 0, 0, 0, 10, 0, 12, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 0, 0, 0, 18, 0, 19, 20, 0, 0, 0, + // State 57 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 58 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 59 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 3, 38, 39, 0, 6, 0, 46, 0, 0, 41, 42, 0, 0, 0, 10, 0, 12, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 0, 0, 0, 18, 0, 19, 20, 0, 0, 0, + // State 60 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 61 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 62 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 3, 38, 39, 0, 6, 0, 40, 0, 0, 41, 42, 0, 0, 0, 10, 0, 12, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 0, 0, 0, 18, 0, 19, 20, 0, 0, 0, + // State 63 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 64 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 65 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 3, 38, 0, 0, 6, 0, 89, 0, 0, 41, 42, 0, 0, 0, 10, 0, 12, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 19, 20, 0, 0, 0, + // State 66 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 67 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 68 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 69 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 70 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 3, 38, 0, 0, 6, 0, 89, 0, 0, 41, 42, 0, 0, 0, 10, 0, 12, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 19, 20, 0, 0, 0, + // State 71 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 72 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 73 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 4, 5, 0, 6, 7, 0, 0, 0, 8, 0, 0, 0, 9, 10, 90, 12, 0, 13, 0, 0, 0, 0, 0, 0, 0, 15, 16, 0, 0, 0, 17, 0, 0, 18, 0, 19, 20, 0, 0, 0, + // State 74 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 75 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 76 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 77 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 78 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 79 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 80 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 4, 5, 0, 6, 7, 0, 0, 0, 8, 0, 0, 0, 0, 10, 0, 12, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 92, 0, 0, 0, 17, 0, 0, 18, 0, 19, 20, 0, 0, 0, + // State 81 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 82 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 83 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 84 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 85 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 93, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 0, 0, 0, 95, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 97, 98, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 86 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 87 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 88 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 89 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 90 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 91 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 92 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 98, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 93 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 94 + 0, 0, 0, 0, 0, 0, 103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 95 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 96 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 97 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 98 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 99 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109, 0, 0, 0, 0, 0, 0, 0, 0, + // State 100 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 110, 0, 0, 0, 0, 0, 0, 0, 0, + // State 101 + 0, 0, 0, 0, 0, 0, 103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 102 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 103 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 104 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 113, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 105 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 116, 0, 0, 0, 0, 0, 0, 117, 0, 0, 0, 0, 0, + // State 106 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 107 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 108 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 109 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 110 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 111 + 0, 0, 0, 0, 0, 0, 103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 129, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 112 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 113 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 116, 0, 0, 0, 0, 0, 0, 130, 0, 0, 0, 0, 0, + // State 114 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 131, 5, 0, 6, 7, 0, 0, 0, 8, 0, 0, 0, 0, 10, 0, 12, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 132, 0, 0, 18, 0, 19, 20, 0, 0, 0, + // State 115 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 116 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 117 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 118 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 119 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 120 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 121 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 122 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 123 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 124 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 125 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 126 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 127 + 0, 0, 0, 0, 0, 0, 103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 133, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 128 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 129 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 134, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 130 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 3, 38, 39, 0, 6, 0, 40, 0, 0, 41, 42, 0, 0, 0, 10, 0, 12, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 0, 0, 0, 18, 0, 19, 20, 0, 0, 0, + // State 131 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 132 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 133 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 134 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 135 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ]; fn __expected_tokens(__state: usize) -> Vec<::std::string::String> { const __TERMINAL: &'static [&'static str] = &[ @@ -3166,28 +5500,4715 @@ mod __parse__Pipeline { r###""$""###, r###""(""###, r###"")""###, + r###"",""###, r###""-""###, r###""--""###, + r###""->""###, + r###"":""###, r###""<""###, r###""<=""###, r###""==""###, r###"">""###, r###"">=""###, r###""???.""###, + r###""any""###, r###""bare""###, + r###""block""###, + r###""boolean""###, + r###""bytes""###, + r###""command-name""###, + r###""date""###, + r###""decimal""###, r###""dqmember""###, r###""dqstring""###, + r###""end-params""###, + r###""function""###, + r###""int""###, + r###""list""###, r###""member""###, + r###""newline""###, r###""num""###, + r###""object""###, r###""sqmember""###, r###""sqstring""###, + r###""start-params""###, + r###""text""###, r###""unit""###, r###""variable""###, r###""{""###, r###""|""###, r###""}""###, ]; - __ACTION[(__state * 24)..].iter().zip(__TERMINAL).filter_map(|(&state, terminal)| { + __ACTION[(__state * 42)..].iter().zip(__TERMINAL).filter_map(|(&state, terminal)| { + if state == 0 { + None + } else { + Some(terminal.to_string()) + } + }).collect() + } + pub struct __StateMachine<'input> + where + { + __phantom: ::std::marker::PhantomData<(&'input ())>, + } + impl<'input> __state_machine::ParserDefinition for __StateMachine<'input> + where + { + type Location = usize; + type Error = ShellError; + type Token = SpannedToken<'input>; + type TokenIndex = usize; + type Symbol = __Symbol<'input>; + type Success = Module; + type StateIndex = i16; + type Action = i16; + type ReduceIndex = i16; + type NonterminalIndex = usize; + + #[inline] + fn start_location(&self) -> Self::Location { + Default::default() + } + + #[inline] + fn start_state(&self) -> Self::StateIndex { + 0 + } + + #[inline] + fn token_to_index(&self, token: &Self::Token) -> Option { + __token_to_integer(token, ::std::marker::PhantomData::<(&())>) + } + + #[inline] + fn action(&self, state: i16, integer: usize) -> i16 { + __ACTION[(state as usize) * 42 + integer] + } + + #[inline] + fn error_action(&self, state: i16) -> i16 { + __ACTION[(state as usize) * 42 + (42 - 1)] + } + + #[inline] + fn eof_action(&self, state: i16) -> i16 { + __EOF_ACTION[state as usize] + } + + #[inline] + fn goto(&self, state: i16, nt: usize) -> i16 { + __GOTO[(state as usize) * 62 + nt] - 1 + } + + fn token_to_symbol(&self, token_index: usize, token: Self::Token) -> Self::Symbol { + __token_to_symbol(token_index, token, ::std::marker::PhantomData::<(&())>) + } + + fn expected_tokens(&self, state: i16) -> Vec { + __expected_tokens(state as usize) + } + + #[inline] + fn uses_error_recovery(&self) -> bool { + false + } + + #[inline] + fn error_recovery_symbol( + &self, + recovery: __state_machine::ErrorRecovery, + ) -> Self::Symbol { + panic!("error recovery not enabled for this grammar") + } + + fn reduce( + &mut self, + action: i16, + start_location: Option<&Self::Location>, + states: &mut Vec, + symbols: &mut Vec<__state_machine::SymbolTriple>, + ) -> Option<__state_machine::ParseResult> { + __reduce( + action, + start_location, + states, + symbols, + ::std::marker::PhantomData::<(&())>, + ) + } + + fn simulate_reduce(&self, action: i16) -> __state_machine::SimulatedReduce { + __simulate_reduce(action, ::std::marker::PhantomData::<(&())>) + } + } + fn __token_to_integer< + 'input, + >( + __token: &SpannedToken<'input>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> Option + { + match *__token { + SpannedToken { token: Token::OpNeq, .. } if true => Some(0), + SpannedToken { token: Token::Dollar, .. } if true => Some(1), + SpannedToken { token: Token::OpenParen, .. } if true => Some(2), + SpannedToken { token: Token::CloseParen, .. } if true => Some(3), + SpannedToken { token: Token::Comma, .. } if true => Some(4), + SpannedToken { token: Token::Dash, .. } if true => Some(5), + SpannedToken { token: Token::DashDash, .. } if true => Some(6), + SpannedToken { token: Token::ReturnArrow, .. } if true => Some(7), + SpannedToken { token: Token::Colon, .. } if true => Some(8), + SpannedToken { token: Token::OpLt, .. } if true => Some(9), + SpannedToken { token: Token::OpLte, .. } if true => Some(10), + SpannedToken { token: Token::OpEq, .. } if true => Some(11), + SpannedToken { token: Token::OpGt, .. } if true => Some(12), + SpannedToken { token: Token::OpGte, .. } if true => Some(13), + SpannedToken { token: Token::PathDot, .. } if true => Some(14), + SpannedToken { token: Token::TyAny, .. } if true => Some(15), + SpannedToken { token: Token::Bare, .. } if true => Some(16), + SpannedToken { token: Token::TyBlock, .. } if true => Some(17), + SpannedToken { token: Token::TyBoolean, .. } if true => Some(18), + SpannedToken { token: Token::TyBytes, .. } if true => Some(19), + SpannedToken { token: Token::CommandName, .. } if true => Some(20), + SpannedToken { token: Token::TyDate, .. } if true => Some(21), + SpannedToken { token: Token::TyDecimal, .. } if true => Some(22), + SpannedToken { token: Token::SQMember, .. } if true => Some(23), + SpannedToken { token: Token::DQString, .. } if true => Some(24), + SpannedToken { token: Token::EndParamList, .. } if true => Some(25), + SpannedToken { token: Token::KeywordFunction, .. } if true => Some(26), + SpannedToken { token: Token::TyInt, .. } if true => Some(27), + SpannedToken { token: Token::TyList, .. } if true => Some(28), + SpannedToken { token: Token::Member, .. } if true => Some(29), + SpannedToken { token: Token::Newline, .. } if true => Some(30), + SpannedToken { token: Token::Num, .. } if true => Some(31), + SpannedToken { token: Token::TyObject, .. } if true => Some(32), + SpannedToken { token: Token::SQMember, .. } if true => Some(33), + SpannedToken { token: Token::SQString, .. } if true => Some(34), + SpannedToken { token: Token::StartParamList, .. } if true => Some(35), + SpannedToken { token: Token::TyText, .. } if true => Some(36), + SpannedToken { token: Token::Unit, .. } if true => Some(37), + SpannedToken { token: Token::Variable, .. } if true => Some(38), + SpannedToken { token: Token::OpenBrace, .. } if true => Some(39), + SpannedToken { token: Token::Pipe, .. } if true => Some(40), + SpannedToken { token: Token::CloseBrace, .. } if true => Some(41), + _ => None, + } + } + fn __token_to_symbol< + 'input, + >( + __token_index: usize, + __token: SpannedToken<'input>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> __Symbol<'input> + { + match __token_index { + 0 => match __token { + __tok @ SpannedToken { token: Token::OpNeq, .. } => __Symbol::Variant0((__tok)), + _ => unreachable!(), + }, + 1 => match __token { + __tok @ SpannedToken { token: Token::Dollar, .. } => __Symbol::Variant0((__tok)), + _ => unreachable!(), + }, + 2 => match __token { + __tok @ SpannedToken { token: Token::OpenParen, .. } => __Symbol::Variant0((__tok)), + _ => unreachable!(), + }, + 3 => match __token { + __tok @ SpannedToken { token: Token::CloseParen, .. } => __Symbol::Variant0((__tok)), + _ => unreachable!(), + }, + 4 => match __token { + __tok @ SpannedToken { token: Token::Comma, .. } => __Symbol::Variant0((__tok)), + _ => unreachable!(), + }, + 5 => match __token { + __tok @ SpannedToken { token: Token::Dash, .. } => __Symbol::Variant0((__tok)), + _ => unreachable!(), + }, + 6 => match __token { + __tok @ SpannedToken { token: Token::DashDash, .. } => __Symbol::Variant0((__tok)), + _ => unreachable!(), + }, + 7 => match __token { + __tok @ SpannedToken { token: Token::ReturnArrow, .. } => __Symbol::Variant0((__tok)), + _ => unreachable!(), + }, + 8 => match __token { + __tok @ SpannedToken { token: Token::Colon, .. } => __Symbol::Variant0((__tok)), + _ => unreachable!(), + }, + 9 => match __token { + __tok @ SpannedToken { token: Token::OpLt, .. } => __Symbol::Variant0((__tok)), + _ => unreachable!(), + }, + 10 => match __token { + __tok @ SpannedToken { token: Token::OpLte, .. } => __Symbol::Variant0((__tok)), + _ => unreachable!(), + }, + 11 => match __token { + __tok @ SpannedToken { token: Token::OpEq, .. } => __Symbol::Variant0((__tok)), + _ => unreachable!(), + }, + 12 => match __token { + __tok @ SpannedToken { token: Token::OpGt, .. } => __Symbol::Variant0((__tok)), + _ => unreachable!(), + }, + 13 => match __token { + __tok @ SpannedToken { token: Token::OpGte, .. } => __Symbol::Variant0((__tok)), + _ => unreachable!(), + }, + 14 => match __token { + __tok @ SpannedToken { token: Token::PathDot, .. } => __Symbol::Variant0((__tok)), + _ => unreachable!(), + }, + 15 => match __token { + __tok @ SpannedToken { token: Token::TyAny, .. } => __Symbol::Variant0((__tok)), + _ => unreachable!(), + }, + 16 => match __token { + __tok @ SpannedToken { token: Token::Bare, .. } => __Symbol::Variant0((__tok)), + _ => unreachable!(), + }, + 17 => match __token { + __tok @ SpannedToken { token: Token::TyBlock, .. } => __Symbol::Variant0((__tok)), + _ => unreachable!(), + }, + 18 => match __token { + __tok @ SpannedToken { token: Token::TyBoolean, .. } => __Symbol::Variant0((__tok)), + _ => unreachable!(), + }, + 19 => match __token { + __tok @ SpannedToken { token: Token::TyBytes, .. } => __Symbol::Variant0((__tok)), + _ => unreachable!(), + }, + 20 => match __token { + __tok @ SpannedToken { token: Token::CommandName, .. } => __Symbol::Variant0((__tok)), + _ => unreachable!(), + }, + 21 => match __token { + __tok @ SpannedToken { token: Token::TyDate, .. } => __Symbol::Variant0((__tok)), + _ => unreachable!(), + }, + 22 => match __token { + __tok @ SpannedToken { token: Token::TyDecimal, .. } => __Symbol::Variant0((__tok)), + _ => unreachable!(), + }, + 23 => match __token { + __tok @ SpannedToken { token: Token::SQMember, .. } => __Symbol::Variant0((__tok)), + _ => unreachable!(), + }, + 24 => match __token { + __tok @ SpannedToken { token: Token::DQString, .. } => __Symbol::Variant0((__tok)), + _ => unreachable!(), + }, + 25 => match __token { + __tok @ SpannedToken { token: Token::EndParamList, .. } => __Symbol::Variant0((__tok)), + _ => unreachable!(), + }, + 26 => match __token { + __tok @ SpannedToken { token: Token::KeywordFunction, .. } => __Symbol::Variant0((__tok)), + _ => unreachable!(), + }, + 27 => match __token { + __tok @ SpannedToken { token: Token::TyInt, .. } => __Symbol::Variant0((__tok)), + _ => unreachable!(), + }, + 28 => match __token { + __tok @ SpannedToken { token: Token::TyList, .. } => __Symbol::Variant0((__tok)), + _ => unreachable!(), + }, + 29 => match __token { + __tok @ SpannedToken { token: Token::Member, .. } => __Symbol::Variant0((__tok)), + _ => unreachable!(), + }, + 30 => match __token { + __tok @ SpannedToken { token: Token::Newline, .. } => __Symbol::Variant0((__tok)), + _ => unreachable!(), + }, + 31 => match __token { + __tok @ SpannedToken { token: Token::Num, .. } => __Symbol::Variant0((__tok)), + _ => unreachable!(), + }, + 32 => match __token { + __tok @ SpannedToken { token: Token::TyObject, .. } => __Symbol::Variant0((__tok)), + _ => unreachable!(), + }, + 33 => match __token { + __tok @ SpannedToken { token: Token::SQMember, .. } => __Symbol::Variant0((__tok)), + _ => unreachable!(), + }, + 34 => match __token { + __tok @ SpannedToken { token: Token::SQString, .. } => __Symbol::Variant0((__tok)), + _ => unreachable!(), + }, + 35 => match __token { + __tok @ SpannedToken { token: Token::StartParamList, .. } => __Symbol::Variant0((__tok)), + _ => unreachable!(), + }, + 36 => match __token { + __tok @ SpannedToken { token: Token::TyText, .. } => __Symbol::Variant0((__tok)), + _ => unreachable!(), + }, + 37 => match __token { + __tok @ SpannedToken { token: Token::Unit, .. } => __Symbol::Variant0((__tok)), + _ => unreachable!(), + }, + 38 => match __token { + __tok @ SpannedToken { token: Token::Variable, .. } => __Symbol::Variant0((__tok)), + _ => unreachable!(), + }, + 39 => match __token { + __tok @ SpannedToken { token: Token::OpenBrace, .. } => __Symbol::Variant0((__tok)), + _ => unreachable!(), + }, + 40 => match __token { + __tok @ SpannedToken { token: Token::Pipe, .. } => __Symbol::Variant0((__tok)), + _ => unreachable!(), + }, + 41 => match __token { + __tok @ SpannedToken { token: Token::CloseBrace, .. } => __Symbol::Variant0((__tok)), + _ => unreachable!(), + }, + _ => unreachable!(), + } + } + fn __simulate_reduce< + 'input, + >( + __reduce_index: i16, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> __state_machine::SimulatedReduce<__StateMachine<'input>> + { + match __reduce_index { + 0 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 2, + nonterminal_produced: 0, + } + } + 1 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 2, + nonterminal_produced: 1, + } + } + 2 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 0, + nonterminal_produced: 1, + } + } + 3 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 2, + nonterminal_produced: 2, + } + } + 4 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 2, + nonterminal_produced: 3, + } + } + 5 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 3, + nonterminal_produced: 3, + } + } + 6 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 4, + } + } + 7 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 0, + nonterminal_produced: 5, + } + } + 8 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 5, + } + } + 9 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 6, + } + } + 10 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 2, + nonterminal_produced: 6, + } + } + 11 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 2, + nonterminal_produced: 7, + } + } + 12 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 0, + nonterminal_produced: 8, + } + } + 13 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 8, + } + } + 14 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 2, + nonterminal_produced: 9, + } + } + 15 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 3, + nonterminal_produced: 9, + } + } + 16 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 2, + nonterminal_produced: 10, + } + } + 17 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 0, + nonterminal_produced: 11, + } + } + 18 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 11, + } + } + 19 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 2, + nonterminal_produced: 12, + } + } + 20 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 3, + nonterminal_produced: 12, + } + } + 21 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 13, + } + } + 22 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 14, + } + } + 23 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 2, + nonterminal_produced: 14, + } + } + 24 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 4, + nonterminal_produced: 15, + } + } + 25 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 0, + nonterminal_produced: 16, + } + } + 26 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 16, + } + } + 27 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 4, + nonterminal_produced: 17, + } + } + 28 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 5, + nonterminal_produced: 17, + } + } + 29 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 0, + nonterminal_produced: 18, + } + } + 30 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 0, + nonterminal_produced: 19, + } + } + 31 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 20, + } + } + 32 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 20, + } + } + 33 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 21, + } + } + 34 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 22, + } + } + 35 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 3, + nonterminal_produced: 23, + } + } + 36 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 3, + nonterminal_produced: 24, + } + } + 37 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 3, + nonterminal_produced: 24, + } + } + 38 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 3, + nonterminal_produced: 25, + } + } + 39 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 3, + nonterminal_produced: 25, + } + } + 40 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 2, + nonterminal_produced: 26, + } + } + 41 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 3, + nonterminal_produced: 26, + } + } + 42 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 2, + nonterminal_produced: 26, + } + } + 43 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 3, + nonterminal_produced: 26, + } + } + 44 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 27, + } + } + 45 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 27, + } + } + 46 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 28, + } + } + 47 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 0, + nonterminal_produced: 28, + } + } + 48 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 2, + nonterminal_produced: 28, + } + } + 49 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 28, + } + } + 50 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 29, + } + } + 51 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 30, + } + } + 52 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 2, + nonterminal_produced: 30, + } + } + 53 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 2, + nonterminal_produced: 31, + } + } + 54 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 2, + nonterminal_produced: 31, + } + } + 55 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 3, + nonterminal_produced: 32, + } + } + 56 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 33, + } + } + 57 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 0, + nonterminal_produced: 33, + } + } + 58 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 8, + nonterminal_produced: 34, + } + } + 59 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 6, + nonterminal_produced: 34, + } + } + 60 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 35, + } + } + 61 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 36, + } + } + 62 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 36, + } + } + 63 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 37, + } + } + 64 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 37, + } + } + 65 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 37, + } + } + 66 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 37, + } + } + 67 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 38, + } + } + 68 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 38, + } + } + 69 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 38, + } + } + 70 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 38, + } + } + 71 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 39, + } + } + 72 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 39, + } + } + 73 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 3, + nonterminal_produced: 39, + } + } + 74 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 3, + nonterminal_produced: 39, + } + } + 75 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 3, + nonterminal_produced: 39, + } + } + 76 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 40, + } + } + 77 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 2, + nonterminal_produced: 40, + } + } + 78 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 41, + } + } + 79 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 42, + } + } + 80 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 42, + } + } + 81 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 42, + } + } + 82 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 42, + } + } + 83 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 42, + } + } + 84 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 42, + } + } + 85 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 0, + nonterminal_produced: 43, + } + } + 86 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 43, + } + } + 87 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 44, + } + } + 88 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 2, + nonterminal_produced: 45, + } + } + 89 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 2, + nonterminal_produced: 45, + } + } + 90 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 45, + } + } + 91 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 2, + nonterminal_produced: 46, + } + } + 92 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 47, + } + } + 93 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 2, + nonterminal_produced: 47, + } + } + 94 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 48, + } + } + 95 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 48, + } + } + 96 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 49, + } + } + 97 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 49, + } + } + 98 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 49, + } + } + 99 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 49, + } + } + 100 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 49, + } + } + 101 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 49, + } + } + 102 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 49, + } + } + 103 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 49, + } + } + 104 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 49, + } + } + 105 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 49, + } + } + 106 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 50, + } + } + 107 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 2, + nonterminal_produced: 50, + } + } + 108 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 51, + } + } + 109 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 51, + } + } + 110 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 52, + } + } + 111 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 52, + } + } + 112 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 52, + } + } + 113 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 53, + } + } + 114 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 54, + } + } + 115 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 55, + } + } + 116 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 55, + } + } + 117 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 56, + } + } + 118 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 2, + nonterminal_produced: 57, + } + } + 119 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 2, + nonterminal_produced: 58, + } + } + 120 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 59, + } + } + 121 => __state_machine::SimulatedReduce::Accept, + 122 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 61, + } + } + _ => panic!("invalid reduction index {}", __reduce_index) + } + } + pub struct ModuleParser { + _priv: (), + } + + impl ModuleParser { + pub fn new() -> ModuleParser { + ModuleParser { + _priv: (), + } + } + + #[allow(dead_code)] + pub fn parse< + 'input, + __TOKEN: __ToTriple<'input, >, + __TOKENS: IntoIterator, + >( + &self, + __tokens0: __TOKENS, + ) -> Result, ShellError>> + { + let __tokens = __tokens0.into_iter(); + let mut __tokens = __tokens.map(|t| __ToTriple::to_triple(t)); + let __r = __state_machine::Parser::drive( + __StateMachine { + __phantom: ::std::marker::PhantomData::<(&())>, + }, + __tokens, + ); + __r + } + } + pub(crate) fn __reduce< + 'input, + >( + __action: i16, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> Option, ShellError>>> + { + let (__pop_states, __nonterminal) = match __action { + 0 => { + __reduce0(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 1 => { + __reduce1(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 2 => { + __reduce2(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 3 => { + __reduce3(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 4 => { + __reduce4(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 5 => { + __reduce5(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 6 => { + __reduce6(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 7 => { + __reduce7(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 8 => { + __reduce8(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 9 => { + __reduce9(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 10 => { + __reduce10(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 11 => { + __reduce11(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 12 => { + __reduce12(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 13 => { + __reduce13(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 14 => { + __reduce14(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 15 => { + __reduce15(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 16 => { + __reduce16(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 17 => { + __reduce17(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 18 => { + __reduce18(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 19 => { + __reduce19(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 20 => { + __reduce20(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 21 => { + __reduce21(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 22 => { + __reduce22(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 23 => { + __reduce23(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 24 => { + __reduce24(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 25 => { + __reduce25(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 26 => { + __reduce26(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 27 => { + __reduce27(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 28 => { + __reduce28(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 29 => { + __reduce29(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 30 => { + __reduce30(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 31 => { + __reduce31(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 32 => { + __reduce32(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 33 => { + __reduce33(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 34 => { + __reduce34(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 35 => { + __reduce35(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 36 => { + __reduce36(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 37 => { + __reduce37(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 38 => { + __reduce38(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 39 => { + __reduce39(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 40 => { + __reduce40(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 41 => { + __reduce41(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 42 => { + __reduce42(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 43 => { + __reduce43(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 44 => { + __reduce44(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 45 => { + __reduce45(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 46 => { + __reduce46(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 47 => { + __reduce47(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 48 => { + __reduce48(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 49 => { + __reduce49(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 50 => { + __reduce50(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 51 => { + __reduce51(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 52 => { + __reduce52(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 53 => { + __reduce53(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 54 => { + __reduce54(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 55 => { + __reduce55(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 56 => { + __reduce56(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 57 => { + __reduce57(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 58 => { + __reduce58(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 59 => { + __reduce59(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 60 => { + __reduce60(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 61 => { + __reduce61(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 62 => { + __reduce62(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 63 => { + __reduce63(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 64 => { + __reduce64(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 65 => { + __reduce65(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 66 => { + __reduce66(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 67 => { + __reduce67(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 68 => { + __reduce68(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 69 => { + __reduce69(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 70 => { + __reduce70(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 71 => { + __reduce71(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 72 => { + __reduce72(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 73 => { + __reduce73(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 74 => { + __reduce74(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 75 => { + __reduce75(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 76 => { + __reduce76(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 77 => { + __reduce77(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 78 => { + __reduce78(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 79 => { + __reduce79(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 80 => { + __reduce80(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 81 => { + __reduce81(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 82 => { + __reduce82(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 83 => { + __reduce83(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 84 => { + __reduce84(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 85 => { + __reduce85(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 86 => { + __reduce86(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 87 => { + __reduce87(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 88 => { + __reduce88(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 89 => { + __reduce89(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 90 => { + __reduce90(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 91 => { + __reduce91(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 92 => { + __reduce92(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 93 => { + __reduce93(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 94 => { + __reduce94(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 95 => { + __reduce95(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 96 => { + __reduce96(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 97 => { + __reduce97(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 98 => { + __reduce98(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 99 => { + __reduce99(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 100 => { + __reduce100(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 101 => { + __reduce101(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 102 => { + __reduce102(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 103 => { + __reduce103(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 104 => { + __reduce104(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 105 => { + __reduce105(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 106 => { + __reduce106(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 107 => { + __reduce107(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 108 => { + __reduce108(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 109 => { + __reduce109(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 110 => { + __reduce110(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 111 => { + __reduce111(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 112 => { + __reduce112(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 113 => { + __reduce113(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 114 => { + __reduce114(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 115 => { + __reduce115(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 116 => { + __reduce116(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 117 => { + __reduce117(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 118 => { + __reduce118(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 119 => { + __reduce119(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 120 => { + __reduce120(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 121 => { + // __Module = Module => ActionFn(0); + let __sym0 = __pop_Variant20(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action0::<>(__sym0); + return Some(Ok(__nt)); + } + 122 => { + __reduce122(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + _ => panic!("invalid action code {}", __action) + }; + let __states_len = __states.len(); + __states.truncate(__states_len - __pop_states); + let __state = *__states.last().unwrap() as usize; + let __next_state = __GOTO[__state * 62 + __nonterminal] - 1; + __states.push(__next_state); + None + } + fn __pop_Variant21< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, (), usize) + { + match __symbols.pop().unwrap() { + (__l, __Symbol::Variant21(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Variant13< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, Bare, usize) + { + match __symbols.pop().unwrap() { + (__l, __Symbol::Variant13(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Variant6< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, Expression, usize) + { + match __symbols.pop().unwrap() { + (__l, __Symbol::Variant6(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Variant10< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, FormalParameter, usize) + { + match __symbols.pop().unwrap() { + (__l, __Symbol::Variant10(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Variant18< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, Function, usize) + { + match __symbols.pop().unwrap() { + (__l, __Symbol::Variant18(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Variant8< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, Item, usize) + { + match __symbols.pop().unwrap() { + (__l, __Symbol::Variant8(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Variant20< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, Module, usize) + { + match __symbols.pop().unwrap() { + (__l, __Symbol::Variant20(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Variant22< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, Operator, usize) + { + match __symbols.pop().unwrap() { + (__l, __Symbol::Variant22(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Variant23< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, ParameterIdentifier, usize) + { + match __symbols.pop().unwrap() { + (__l, __Symbol::Variant23(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Variant25< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, Pipeline, usize) + { + match __symbols.pop().unwrap() { + (__l, __Symbol::Variant25(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Variant16< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, Spanned, usize) + { + match __symbols.pop().unwrap() { + (__l, __Symbol::Variant16(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Variant14< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, Spanned, usize) + { + match __symbols.pop().unwrap() { + (__l, __Symbol::Variant14(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Variant27< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, Spanned, usize) + { + match __symbols.pop().unwrap() { + (__l, __Symbol::Variant27(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Variant3< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, Spanned, usize) + { + match __symbols.pop().unwrap() { + (__l, __Symbol::Variant3(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Variant1< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, Spanned, usize) + { + match __symbols.pop().unwrap() { + (__l, __Symbol::Variant1(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Variant24< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, Spanned, usize) + { + match __symbols.pop().unwrap() { + (__l, __Symbol::Variant24(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Variant0< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, SpannedToken<'input>, usize) + { + match __symbols.pop().unwrap() { + (__l, __Symbol::Variant0(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Variant26< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, Type, usize) + { + match __symbols.pop().unwrap() { + (__l, __Symbol::Variant26(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Variant15< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, Vec, usize) + { + match __symbols.pop().unwrap() { + (__l, __Symbol::Variant15(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Variant19< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, i64, usize) + { + match __symbols.pop().unwrap() { + (__l, __Symbol::Variant19(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Variant12< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, usize, usize) + { + match __symbols.pop().unwrap() { + (__l, __Symbol::Variant12(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Variant17< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, ::std::option::Option, usize) + { + match __symbols.pop().unwrap() { + (__l, __Symbol::Variant17(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Variant2< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, ::std::option::Option>, usize) + { + match __symbols.pop().unwrap() { + (__l, __Symbol::Variant2(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Variant7< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, ::std::vec::Vec, usize) + { + match __symbols.pop().unwrap() { + (__l, __Symbol::Variant7(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Variant11< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, ::std::vec::Vec, usize) + { + match __symbols.pop().unwrap() { + (__l, __Symbol::Variant11(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Variant9< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, ::std::vec::Vec, usize) + { + match __symbols.pop().unwrap() { + (__l, __Symbol::Variant9(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Variant4< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, ::std::vec::Vec>, usize) + { + match __symbols.pop().unwrap() { + (__l, __Symbol::Variant4(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Variant5< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, ::std::vec::Vec>, usize) + { + match __symbols.pop().unwrap() { + (__l, __Symbol::Variant5(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + pub(crate) fn __reduce0< + 'input, + >( + __action: i16, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // ("->" ) = "->", Type => ActionFn(95); + let __sym1 = __pop_Variant1(__symbols); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym1.2.clone(); + let __nt = super::__action95::<>(__sym0, __sym1); + __symbols.push((__start, __Symbol::Variant1(__nt), __end)); + (2, 0) + } + pub(crate) fn __reduce1< + 'input, + >( + __action: i16, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // ("->" )? = "->", Type => ActionFn(115); + let __sym1 = __pop_Variant1(__symbols); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym1.2.clone(); + let __nt = super::__action115::<>(__sym0, __sym1); + __symbols.push((__start, __Symbol::Variant2(__nt), __end)); + (2, 1) + } + pub(crate) fn __reduce2< + 'input, + >( + __action: i16, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // ("->" )? = => ActionFn(94); + let __start = __symbols.last().map(|s| s.2.clone()).unwrap_or_default(); + let __end = __lookahead_start.cloned().unwrap_or_else(|| __start.clone()); + let __nt = super::__action94::<>(&__start, &__end); + __symbols.push((__start, __Symbol::Variant2(__nt), __end)); + (0, 1) + } + pub(crate) fn __reduce3< + 'input, + >( + __action: i16, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // ("???." ) = "???.", Member => ActionFn(83); + let __sym1 = __pop_Variant3(__symbols); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym1.2.clone(); + let __nt = super::__action83::<>(__sym0, __sym1); + __symbols.push((__start, __Symbol::Variant3(__nt), __end)); + (2, 2) + } + pub(crate) fn __reduce4< + 'input, + >( + __action: i16, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // ("???." )+ = "???.", Member => ActionFn(118); + let __sym1 = __pop_Variant3(__symbols); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym1.2.clone(); + let __nt = super::__action118::<>(__sym0, __sym1); + __symbols.push((__start, __Symbol::Variant4(__nt), __end)); + (2, 3) + } + pub(crate) fn __reduce5< + 'input, + >( + __action: i16, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // ("???." )+ = ("???." )+, "???.", Member => ActionFn(119); + let __sym2 = __pop_Variant3(__symbols); + let __sym1 = __pop_Variant0(__symbols); + let __sym0 = __pop_Variant4(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym2.2.clone(); + let __nt = super::__action119::<>(__sym0, __sym1, __sym2); + __symbols.push((__start, __Symbol::Variant4(__nt), __end)); + (3, 3) + } + pub(crate) fn __reduce6< + 'input, + >( + __action: i16, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // ("newline") = "newline" => ActionFn(102); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action102::<>(__sym0); + __symbols.push((__start, __Symbol::Variant0(__nt), __end)); + (1, 4) + } + pub(crate) fn __reduce7< + 'input, + >( + __action: i16, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // ("newline")* = => ActionFn(90); + let __start = __symbols.last().map(|s| s.2.clone()).unwrap_or_default(); + let __end = __lookahead_start.cloned().unwrap_or_else(|| __start.clone()); + let __nt = super::__action90::<>(&__start, &__end); + __symbols.push((__start, __Symbol::Variant5(__nt), __end)); + (0, 5) + } + pub(crate) fn __reduce8< + 'input, + >( + __action: i16, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // ("newline")* = ("newline")+ => ActionFn(91); + let __sym0 = __pop_Variant5(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action91::<>(__sym0); + __symbols.push((__start, __Symbol::Variant5(__nt), __end)); + (1, 5) + } + pub(crate) fn __reduce9< + 'input, + >( + __action: i16, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // ("newline")+ = "newline" => ActionFn(120); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action120::<>(__sym0); + __symbols.push((__start, __Symbol::Variant5(__nt), __end)); + (1, 6) + } + pub(crate) fn __reduce10< + 'input, + >( + __action: i16, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // ("newline")+ = ("newline")+, "newline" => ActionFn(121); + let __sym1 = __pop_Variant0(__symbols); + let __sym0 = __pop_Variant5(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym1.2.clone(); + let __nt = super::__action121::<>(__sym0, __sym1); + __symbols.push((__start, __Symbol::Variant5(__nt), __end)); + (2, 6) + } + pub(crate) fn __reduce11< + 'input, + >( + __action: i16, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // ("|" ) = "|", PipelineElement => ActionFn(89); + let __sym1 = __pop_Variant6(__symbols); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym1.2.clone(); + let __nt = super::__action89::<>(__sym0, __sym1); + __symbols.push((__start, __Symbol::Variant6(__nt), __end)); + (2, 7) + } + pub(crate) fn __reduce12< + 'input, + >( + __action: i16, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // ("|" )* = => ActionFn(87); + let __start = __symbols.last().map(|s| s.2.clone()).unwrap_or_default(); + let __end = __lookahead_start.cloned().unwrap_or_else(|| __start.clone()); + let __nt = super::__action87::<>(&__start, &__end); + __symbols.push((__start, __Symbol::Variant7(__nt), __end)); + (0, 8) + } + pub(crate) fn __reduce13< + 'input, + >( + __action: i16, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // ("|" )* = ("|" )+ => ActionFn(88); + let __sym0 = __pop_Variant7(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action88::<>(__sym0); + __symbols.push((__start, __Symbol::Variant7(__nt), __end)); + (1, 8) + } + pub(crate) fn __reduce14< + 'input, + >( + __action: i16, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // ("|" )+ = "|", PipelineElement => ActionFn(126); + let __sym1 = __pop_Variant6(__symbols); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym1.2.clone(); + let __nt = super::__action126::<>(__sym0, __sym1); + __symbols.push((__start, __Symbol::Variant7(__nt), __end)); + (2, 9) + } + pub(crate) fn __reduce15< + 'input, + >( + __action: i16, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // ("|" )+ = ("|" )+, "|", PipelineElement => ActionFn(127); + let __sym2 = __pop_Variant6(__symbols); + let __sym1 = __pop_Variant0(__symbols); + let __sym0 = __pop_Variant7(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym2.2.clone(); + let __nt = super::__action127::<>(__sym0, __sym1, __sym2); + __symbols.push((__start, __Symbol::Variant7(__nt), __end)); + (3, 9) + } + pub(crate) fn __reduce16< + 'input, + >( + __action: i16, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // (("newline")+ ) = ("newline")+, Item => ActionFn(99); + let __sym1 = __pop_Variant8(__symbols); + let __sym0 = __pop_Variant5(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym1.2.clone(); + let __nt = super::__action99::<>(__sym0, __sym1); + __symbols.push((__start, __Symbol::Variant8(__nt), __end)); + (2, 10) + } + pub(crate) fn __reduce17< + 'input, + >( + __action: i16, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // (("newline")+ )* = => ActionFn(97); + let __start = __symbols.last().map(|s| s.2.clone()).unwrap_or_default(); + let __end = __lookahead_start.cloned().unwrap_or_else(|| __start.clone()); + let __nt = super::__action97::<>(&__start, &__end); + __symbols.push((__start, __Symbol::Variant9(__nt), __end)); + (0, 11) + } + pub(crate) fn __reduce18< + 'input, + >( + __action: i16, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // (("newline")+ )* = (("newline")+ )+ => ActionFn(98); + let __sym0 = __pop_Variant9(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action98::<>(__sym0); + __symbols.push((__start, __Symbol::Variant9(__nt), __end)); + (1, 11) + } + pub(crate) fn __reduce19< + 'input, + >( + __action: i16, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // (("newline")+ )+ = ("newline")+, Item => ActionFn(130); + let __sym1 = __pop_Variant8(__symbols); + let __sym0 = __pop_Variant5(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym1.2.clone(); + let __nt = super::__action130::<>(__sym0, __sym1); + __symbols.push((__start, __Symbol::Variant9(__nt), __end)); + (2, 12) + } + pub(crate) fn __reduce20< + 'input, + >( + __action: i16, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // (("newline")+ )+ = (("newline")+ )+, ("newline")+, Item => ActionFn(131); + let __sym2 = __pop_Variant8(__symbols); + let __sym1 = __pop_Variant5(__symbols); + let __sym0 = __pop_Variant9(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym2.2.clone(); + let __nt = super::__action131::<>(__sym0, __sym1, __sym2); + __symbols.push((__start, __Symbol::Variant9(__nt), __end)); + (3, 12) + } + pub(crate) fn __reduce21< + 'input, + >( + __action: i16, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // () = CallArgument => ActionFn(86); + let __sym0 = __pop_Variant6(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action86::<>(__sym0); + __symbols.push((__start, __Symbol::Variant6(__nt), __end)); + (1, 13) + } + pub(crate) fn __reduce22< + 'input, + >( + __action: i16, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // ()+ = CallArgument => ActionFn(134); + let __sym0 = __pop_Variant6(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action134::<>(__sym0); + __symbols.push((__start, __Symbol::Variant7(__nt), __end)); + (1, 14) + } + pub(crate) fn __reduce23< + 'input, + >( + __action: i16, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // ()+ = ()+, CallArgument => ActionFn(135); + let __sym1 = __pop_Variant6(__symbols); + let __sym0 = __pop_Variant7(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym1.2.clone(); + let __nt = super::__action135::<>(__sym0, __sym1); + __symbols.push((__start, __Symbol::Variant7(__nt), __end)); + (2, 14) + } + pub(crate) fn __reduce24< + 'input, + >( + __action: i16, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // ( OptionalNewlines "," OptionalNewlines) = FormalParameter, OptionalNewlines, ",", OptionalNewlines => ActionFn(110); + let __sym3 = __pop_Variant21(__symbols); + let __sym2 = __pop_Variant0(__symbols); + let __sym1 = __pop_Variant21(__symbols); + let __sym0 = __pop_Variant10(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym3.2.clone(); + let __nt = super::__action110::<>(__sym0, __sym1, __sym2, __sym3); + __symbols.push((__start, __Symbol::Variant10(__nt), __end)); + (4, 15) + } + pub(crate) fn __reduce25< + 'input, + >( + __action: i16, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // ( OptionalNewlines "," OptionalNewlines)* = => ActionFn(108); + let __start = __symbols.last().map(|s| s.2.clone()).unwrap_or_default(); + let __end = __lookahead_start.cloned().unwrap_or_else(|| __start.clone()); + let __nt = super::__action108::<>(&__start, &__end); + __symbols.push((__start, __Symbol::Variant11(__nt), __end)); + (0, 16) + } + pub(crate) fn __reduce26< + 'input, + >( + __action: i16, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // ( OptionalNewlines "," OptionalNewlines)* = ( OptionalNewlines "," OptionalNewlines)+ => ActionFn(109); + let __sym0 = __pop_Variant11(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action109::<>(__sym0); + __symbols.push((__start, __Symbol::Variant11(__nt), __end)); + (1, 16) + } + pub(crate) fn __reduce27< + 'input, + >( + __action: i16, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // ( OptionalNewlines "," OptionalNewlines)+ = FormalParameter, OptionalNewlines, ",", OptionalNewlines => ActionFn(136); + let __sym3 = __pop_Variant21(__symbols); + let __sym2 = __pop_Variant0(__symbols); + let __sym1 = __pop_Variant21(__symbols); + let __sym0 = __pop_Variant10(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym3.2.clone(); + let __nt = super::__action136::<>(__sym0, __sym1, __sym2, __sym3); + __symbols.push((__start, __Symbol::Variant11(__nt), __end)); + (4, 17) + } + pub(crate) fn __reduce28< + 'input, + >( + __action: i16, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // ( OptionalNewlines "," OptionalNewlines)+ = ( OptionalNewlines "," OptionalNewlines)+, FormalParameter, OptionalNewlines, ",", OptionalNewlines => ActionFn(137); + let __sym4 = __pop_Variant21(__symbols); + let __sym3 = __pop_Variant0(__symbols); + let __sym2 = __pop_Variant21(__symbols); + let __sym1 = __pop_Variant10(__symbols); + let __sym0 = __pop_Variant11(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym4.2.clone(); + let __nt = super::__action137::<>(__sym0, __sym1, __sym2, __sym3, __sym4); + __symbols.push((__start, __Symbol::Variant11(__nt), __end)); + (5, 17) + } + pub(crate) fn __reduce29< + 'input, + >( + __action: i16, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // @L = => ActionFn(103); + let __start = __symbols.last().map(|s| s.2.clone()).unwrap_or_default(); + let __end = __lookahead_start.cloned().unwrap_or_else(|| __start.clone()); + let __nt = super::__action103::<>(&__start, &__end); + __symbols.push((__start, __Symbol::Variant12(__nt), __end)); + (0, 18) + } + pub(crate) fn __reduce30< + 'input, + >( + __action: i16, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // @R = => ActionFn(96); + let __start = __symbols.last().map(|s| s.2.clone()).unwrap_or_default(); + let __end = __lookahead_start.cloned().unwrap_or_else(|| __start.clone()); + let __nt = super::__action96::<>(&__start, &__end); + __symbols.push((__start, __Symbol::Variant12(__nt), __end)); + (0, 19) + } + pub(crate) fn __reduce31< + 'input, + >( + __action: i16, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // ArgumentExpression = Expression => ActionFn(48); + let __sym0 = __pop_Variant6(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action48::<>(__sym0); + __symbols.push((__start, __Symbol::Variant6(__nt), __end)); + (1, 20) + } + pub(crate) fn __reduce32< + 'input, + >( + __action: i16, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // ArgumentExpression = BareExpression => ActionFn(49); + let __sym0 = __pop_Variant6(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action49::<>(__sym0); + __symbols.push((__start, __Symbol::Variant6(__nt), __end)); + (1, 20) + } + pub(crate) fn __reduce33< + 'input, + >( + __action: i16, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // Bare = "bare" => ActionFn(61); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action61::<>(__sym0); + __symbols.push((__start, __Symbol::Variant13(__nt), __end)); + (1, 21) + } + pub(crate) fn __reduce34< + 'input, + >( + __action: i16, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // BareExpression = Bare => ActionFn(179); + let __sym0 = __pop_Variant13(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action179::<>(__sym0); + __symbols.push((__start, __Symbol::Variant6(__nt), __end)); + (1, 22) + } + pub(crate) fn __reduce35< + 'input, + >( + __action: i16, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // Binary = ArgumentExpression, SpannedOperator, ArgumentExpression => ActionFn(180); + let __sym2 = __pop_Variant6(__symbols); + let __sym1 = __pop_Variant27(__symbols); + let __sym0 = __pop_Variant6(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym2.2.clone(); + let __nt = super::__action180::<>(__sym0, __sym1, __sym2); + __symbols.push((__start, __Symbol::Variant6(__nt), __end)); + (3, 23) + } + pub(crate) fn __reduce36< + 'input, + >( + __action: i16, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // Block = "{", SingleExpression, "}" => ActionFn(181); + let __sym2 = __pop_Variant0(__symbols); + let __sym1 = __pop_Variant6(__symbols); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym2.2.clone(); + let __nt = super::__action181::<>(__sym0, __sym1, __sym2); + __symbols.push((__start, __Symbol::Variant14(__nt), __end)); + (3, 24) + } + pub(crate) fn __reduce37< + 'input, + >( + __action: i16, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // Block = "{", BareExpression, "}" => ActionFn(182); + let __sym2 = __pop_Variant0(__symbols); + let __sym1 = __pop_Variant6(__symbols); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym2.2.clone(); + let __nt = super::__action182::<>(__sym0, __sym1, __sym2); + __symbols.push((__start, __Symbol::Variant14(__nt), __end)); + (3, 24) + } + pub(crate) fn __reduce38< + 'input, + >( + __action: i16, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // BlockExpression = "{", SingleExpression, "}" => ActionFn(183); + let __sym2 = __pop_Variant0(__symbols); + let __sym1 = __pop_Variant6(__symbols); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym2.2.clone(); + let __nt = super::__action183::<>(__sym0, __sym1, __sym2); + __symbols.push((__start, __Symbol::Variant6(__nt), __end)); + (3, 25) + } + pub(crate) fn __reduce39< + 'input, + >( + __action: i16, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // BlockExpression = "{", BareExpression, "}" => ActionFn(184); + let __sym2 = __pop_Variant0(__symbols); + let __sym1 = __pop_Variant6(__symbols); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym2.2.clone(); + let __nt = super::__action184::<>(__sym0, __sym1, __sym2); + __symbols.push((__start, __Symbol::Variant6(__nt), __end)); + (3, 25) + } + pub(crate) fn __reduce40< + 'input, + >( + __action: i16, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // Call = Expression, SingleCallArgument => ActionFn(185); + let __sym1 = __pop_Variant6(__symbols); + let __sym0 = __pop_Variant6(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym1.2.clone(); + let __nt = super::__action185::<>(__sym0, __sym1); + __symbols.push((__start, __Symbol::Variant6(__nt), __end)); + (2, 26) + } + pub(crate) fn __reduce41< + 'input, + >( + __action: i16, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // Call = Expression, CallArgument, ()+ => ActionFn(186); + let __sym2 = __pop_Variant7(__symbols); + let __sym1 = __pop_Variant6(__symbols); + let __sym0 = __pop_Variant6(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym2.2.clone(); + let __nt = super::__action186::<>(__sym0, __sym1, __sym2); + __symbols.push((__start, __Symbol::Variant6(__nt), __end)); + (3, 26) + } + pub(crate) fn __reduce42< + 'input, + >( + __action: i16, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // Call = BareExpression, SingleCallArgument => ActionFn(187); + let __sym1 = __pop_Variant6(__symbols); + let __sym0 = __pop_Variant6(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym1.2.clone(); + let __nt = super::__action187::<>(__sym0, __sym1); + __symbols.push((__start, __Symbol::Variant6(__nt), __end)); + (2, 26) + } + pub(crate) fn __reduce43< + 'input, + >( + __action: i16, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // Call = BareExpression, CallArgument, ()+ => ActionFn(188); + let __sym2 = __pop_Variant7(__symbols); + let __sym1 = __pop_Variant6(__symbols); + let __sym0 = __pop_Variant6(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym2.2.clone(); + let __nt = super::__action188::<>(__sym0, __sym1, __sym2); + __symbols.push((__start, __Symbol::Variant6(__nt), __end)); + (3, 26) + } + pub(crate) fn __reduce44< + 'input, + >( + __action: i16, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // CallArgument = ArgumentExpression => ActionFn(50); + let __sym0 = __pop_Variant6(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action50::<>(__sym0); + __symbols.push((__start, __Symbol::Variant6(__nt), __end)); + (1, 27) + } + pub(crate) fn __reduce45< + 'input, + >( + __action: i16, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // CallArgument = Flag => ActionFn(51); + let __sym0 = __pop_Variant6(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action51::<>(__sym0); + __symbols.push((__start, __Symbol::Variant6(__nt), __end)); + (1, 27) + } + pub(crate) fn __reduce46< + 'input, + >( + __action: i16, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // Comma = FormalParameter => ActionFn(218); + let __sym0 = __pop_Variant10(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action218::<>(__sym0); + __symbols.push((__start, __Symbol::Variant15(__nt), __end)); + (1, 28) + } + pub(crate) fn __reduce47< + 'input, + >( + __action: i16, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // Comma = => ActionFn(219); + let __start = __symbols.last().map(|s| s.2.clone()).unwrap_or_default(); + let __end = __lookahead_start.cloned().unwrap_or_else(|| __start.clone()); + let __nt = super::__action219::<>(&__start, &__end); + __symbols.push((__start, __Symbol::Variant15(__nt), __end)); + (0, 28) + } + pub(crate) fn __reduce48< + 'input, + >( + __action: i16, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // Comma = ( OptionalNewlines "," OptionalNewlines)+, FormalParameter => ActionFn(220); + let __sym1 = __pop_Variant10(__symbols); + let __sym0 = __pop_Variant11(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym1.2.clone(); + let __nt = super::__action220::<>(__sym0, __sym1); + __symbols.push((__start, __Symbol::Variant15(__nt), __end)); + (2, 28) + } + pub(crate) fn __reduce49< + 'input, + >( + __action: i16, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // Comma = ( OptionalNewlines "," OptionalNewlines)+ => ActionFn(221); + let __sym0 = __pop_Variant11(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action221::<>(__sym0); + __symbols.push((__start, __Symbol::Variant15(__nt), __end)); + (1, 28) + } + pub(crate) fn __reduce50< + 'input, + >( + __action: i16, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // CommandName = "command-name" => ActionFn(189); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action189::<>(__sym0); + __symbols.push((__start, __Symbol::Variant16(__nt), __end)); + (1, 29) + } + pub(crate) fn __reduce51< + 'input, + >( + __action: i16, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // Expression = MemberHeadExpression => ActionFn(46); + let __sym0 = __pop_Variant6(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action46::<>(__sym0); + __symbols.push((__start, __Symbol::Variant6(__nt), __end)); + (1, 30) + } + pub(crate) fn __reduce52< + 'input, + >( + __action: i16, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // Expression = MemberHeadExpression, ("???." )+ => ActionFn(190); + let __sym1 = __pop_Variant4(__symbols); + let __sym0 = __pop_Variant6(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym1.2.clone(); + let __nt = super::__action190::<>(__sym0, __sym1); + __symbols.push((__start, __Symbol::Variant6(__nt), __end)); + (2, 30) + } + pub(crate) fn __reduce53< + 'input, + >( + __action: i16, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // Flag = "-", Bare => ActionFn(191); + let __sym1 = __pop_Variant13(__symbols); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym1.2.clone(); + let __nt = super::__action191::<>(__sym0, __sym1); + __symbols.push((__start, __Symbol::Variant6(__nt), __end)); + (2, 31) + } + pub(crate) fn __reduce54< + 'input, + >( + __action: i16, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // Flag = "--", Bare => ActionFn(192); + let __sym1 = __pop_Variant13(__symbols); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym1.2.clone(); + let __nt = super::__action192::<>(__sym0, __sym1); + __symbols.push((__start, __Symbol::Variant6(__nt), __end)); + (2, 31) + } + pub(crate) fn __reduce55< + 'input, + >( + __action: i16, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // FormalParameter = ParameterName, ":", Type => ActionFn(193); + let __sym2 = __pop_Variant1(__symbols); + let __sym1 = __pop_Variant0(__symbols); + let __sym0 = __pop_Variant23(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym2.2.clone(); + let __nt = super::__action193::<>(__sym0, __sym1, __sym2); + __symbols.push((__start, __Symbol::Variant10(__nt), __end)); + (3, 32) + } + pub(crate) fn __reduce56< + 'input, + >( + __action: i16, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // FormalParameter? = FormalParameter => ActionFn(106); + let __sym0 = __pop_Variant10(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action106::<>(__sym0); + __symbols.push((__start, __Symbol::Variant17(__nt), __end)); + (1, 33) + } + pub(crate) fn __reduce57< + 'input, + >( + __action: i16, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // FormalParameter? = => ActionFn(107); + let __start = __symbols.last().map(|s| s.2.clone()).unwrap_or_default(); + let __end = __lookahead_start.cloned().unwrap_or_else(|| __start.clone()); + let __nt = super::__action107::<>(&__start, &__end); + __symbols.push((__start, __Symbol::Variant17(__nt), __end)); + (0, 33) + } + pub(crate) fn __reduce58< + 'input, + >( + __action: i16, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // Function = "function", CommandName, "start-params", ParameterList, "end-params", "->", Type, Block => ActionFn(194); + let __sym7 = __pop_Variant14(__symbols); + let __sym6 = __pop_Variant1(__symbols); + let __sym5 = __pop_Variant0(__symbols); + let __sym4 = __pop_Variant0(__symbols); + let __sym3 = __pop_Variant15(__symbols); + let __sym2 = __pop_Variant0(__symbols); + let __sym1 = __pop_Variant16(__symbols); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym7.2.clone(); + let __nt = super::__action194::<>(__sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7); + __symbols.push((__start, __Symbol::Variant18(__nt), __end)); + (8, 34) + } + pub(crate) fn __reduce59< + 'input, + >( + __action: i16, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // Function = "function", CommandName, "start-params", ParameterList, "end-params", Block => ActionFn(195); + let __sym5 = __pop_Variant14(__symbols); + let __sym4 = __pop_Variant0(__symbols); + let __sym3 = __pop_Variant15(__symbols); + let __sym2 = __pop_Variant0(__symbols); + let __sym1 = __pop_Variant16(__symbols); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym5.2.clone(); + let __nt = super::__action195::<>(__sym0, __sym1, __sym2, __sym3, __sym4, __sym5); + __symbols.push((__start, __Symbol::Variant18(__nt), __end)); + (6, 34) + } + pub(crate) fn __reduce60< + 'input, + >( + __action: i16, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // Int = "num" => ActionFn(73); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action73::<>(__sym0); + __symbols.push((__start, __Symbol::Variant19(__nt), __end)); + (1, 35) + } + pub(crate) fn __reduce61< + 'input, + >( + __action: i16, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // Item = Pipeline => ActionFn(196); + let __sym0 = __pop_Variant25(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action196::<>(__sym0); + __symbols.push((__start, __Symbol::Variant8(__nt), __end)); + (1, 36) + } + pub(crate) fn __reduce62< + 'input, + >( + __action: i16, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // Item = Function => ActionFn(197); + let __sym0 = __pop_Variant18(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action197::<>(__sym0); + __symbols.push((__start, __Symbol::Variant8(__nt), __end)); + (1, 36) + } + pub(crate) fn __reduce63< + 'input, + >( + __action: i16, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // LeafExpression = String => ActionFn(28); + let __sym0 = __pop_Variant6(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action28::<>(__sym0); + __symbols.push((__start, __Symbol::Variant6(__nt), __end)); + (1, 37) + } + pub(crate) fn __reduce64< + 'input, + >( + __action: i16, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // LeafExpression = Int => ActionFn(198); + let __sym0 = __pop_Variant19(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action198::<>(__sym0); + __symbols.push((__start, __Symbol::Variant6(__nt), __end)); + (1, 37) + } + pub(crate) fn __reduce65< + 'input, + >( + __action: i16, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // LeafExpression = UnitsNum => ActionFn(30); + let __sym0 = __pop_Variant6(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action30::<>(__sym0); + __symbols.push((__start, __Symbol::Variant6(__nt), __end)); + (1, 37) + } + pub(crate) fn __reduce66< + 'input, + >( + __action: i16, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // LeafExpression = Var => ActionFn(31); + let __sym0 = __pop_Variant6(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action31::<>(__sym0); + __symbols.push((__start, __Symbol::Variant6(__nt), __end)); + (1, 37) + } + pub(crate) fn __reduce67< + 'input, + >( + __action: i16, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // Member = "member" => ActionFn(62); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action62::<>(__sym0); + __symbols.push((__start, __Symbol::Variant3(__nt), __end)); + (1, 38) + } + pub(crate) fn __reduce68< + 'input, + >( + __action: i16, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // Member = "dqmember" => ActionFn(63); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action63::<>(__sym0); + __symbols.push((__start, __Symbol::Variant3(__nt), __end)); + (1, 38) + } + pub(crate) fn __reduce69< + 'input, + >( + __action: i16, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // Member = "sqmember" => ActionFn(64); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action64::<>(__sym0); + __symbols.push((__start, __Symbol::Variant3(__nt), __end)); + (1, 38) + } + pub(crate) fn __reduce70< + 'input, + >( + __action: i16, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // Member = "function" => ActionFn(65); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action65::<>(__sym0); + __symbols.push((__start, __Symbol::Variant3(__nt), __end)); + (1, 38) + } + pub(crate) fn __reduce71< + 'input, + >( + __action: i16, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // MemberHeadExpression = LeafExpression => ActionFn(41); + let __sym0 = __pop_Variant6(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action41::<>(__sym0); + __symbols.push((__start, __Symbol::Variant6(__nt), __end)); + (1, 39) + } + pub(crate) fn __reduce72< + 'input, + >( + __action: i16, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // MemberHeadExpression = BlockExpression => ActionFn(42); + let __sym0 = __pop_Variant6(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action42::<>(__sym0); + __symbols.push((__start, __Symbol::Variant6(__nt), __end)); + (1, 39) + } + pub(crate) fn __reduce73< + 'input, + >( + __action: i16, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // MemberHeadExpression = "(", Call, ")" => ActionFn(199); + let __sym2 = __pop_Variant0(__symbols); + let __sym1 = __pop_Variant6(__symbols); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym2.2.clone(); + let __nt = super::__action199::<>(__sym0, __sym1, __sym2); + __symbols.push((__start, __Symbol::Variant6(__nt), __end)); + (3, 39) + } + pub(crate) fn __reduce74< + 'input, + >( + __action: i16, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // MemberHeadExpression = "(", BareExpression, ")" => ActionFn(200); + let __sym2 = __pop_Variant0(__symbols); + let __sym1 = __pop_Variant6(__symbols); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym2.2.clone(); + let __nt = super::__action200::<>(__sym0, __sym1, __sym2); + __symbols.push((__start, __Symbol::Variant6(__nt), __end)); + (3, 39) + } + pub(crate) fn __reduce75< + 'input, + >( + __action: i16, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // MemberHeadExpression = "(", Binary, ")" => ActionFn(201); + let __sym2 = __pop_Variant0(__symbols); + let __sym1 = __pop_Variant6(__symbols); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym2.2.clone(); + let __nt = super::__action201::<>(__sym0, __sym1, __sym2); + __symbols.push((__start, __Symbol::Variant6(__nt), __end)); + (3, 39) + } + pub(crate) fn __reduce76< + 'input, + >( + __action: i16, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // Module = Item => ActionFn(202); + let __sym0 = __pop_Variant8(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action202::<>(__sym0); + __symbols.push((__start, __Symbol::Variant20(__nt), __end)); + (1, 40) + } + pub(crate) fn __reduce77< + 'input, + >( + __action: i16, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // Module = Item, (("newline")+ )+ => ActionFn(203); + let __sym1 = __pop_Variant9(__symbols); + let __sym0 = __pop_Variant8(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym1.2.clone(); + let __nt = super::__action203::<>(__sym0, __sym1); + __symbols.push((__start, __Symbol::Variant20(__nt), __end)); + (2, 40) + } + pub(crate) fn __reduce78< + 'input, + >( + __action: i16, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // Newlines = ("newline")+ => ActionFn(59); + let __sym0 = __pop_Variant5(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action59::<>(__sym0); + __symbols.push((__start, __Symbol::Variant21(__nt), __end)); + (1, 41) + } + pub(crate) fn __reduce79< + 'input, + >( + __action: i16, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // Operator = "==" => ActionFn(67); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action67::<>(__sym0); + __symbols.push((__start, __Symbol::Variant22(__nt), __end)); + (1, 42) + } + pub(crate) fn __reduce80< + 'input, + >( + __action: i16, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // Operator = "!=" => ActionFn(68); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action68::<>(__sym0); + __symbols.push((__start, __Symbol::Variant22(__nt), __end)); + (1, 42) + } + pub(crate) fn __reduce81< + 'input, + >( + __action: i16, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // Operator = "<" => ActionFn(69); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action69::<>(__sym0); + __symbols.push((__start, __Symbol::Variant22(__nt), __end)); + (1, 42) + } + pub(crate) fn __reduce82< + 'input, + >( + __action: i16, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // Operator = ">" => ActionFn(70); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action70::<>(__sym0); + __symbols.push((__start, __Symbol::Variant22(__nt), __end)); + (1, 42) + } + pub(crate) fn __reduce83< + 'input, + >( + __action: i16, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // Operator = "<=" => ActionFn(71); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action71::<>(__sym0); + __symbols.push((__start, __Symbol::Variant22(__nt), __end)); + (1, 42) + } + pub(crate) fn __reduce84< + 'input, + >( + __action: i16, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // Operator = ">=" => ActionFn(72); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action72::<>(__sym0); + __symbols.push((__start, __Symbol::Variant22(__nt), __end)); + (1, 42) + } + pub(crate) fn __reduce85< + 'input, + >( + __action: i16, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // OptionalNewlines = => ActionFn(122); + let __start = __symbols.last().map(|s| s.2.clone()).unwrap_or_default(); + let __end = __lookahead_start.cloned().unwrap_or_else(|| __start.clone()); + let __nt = super::__action122::<>(&__start, &__end); + __symbols.push((__start, __Symbol::Variant21(__nt), __end)); + (0, 43) + } + pub(crate) fn __reduce86< + 'input, + >( + __action: i16, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // OptionalNewlines = ("newline")+ => ActionFn(123); + let __sym0 = __pop_Variant5(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action123::<>(__sym0); + __symbols.push((__start, __Symbol::Variant21(__nt), __end)); + (1, 43) + } + pub(crate) fn __reduce87< + 'input, + >( + __action: i16, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // ParameterList = Comma => ActionFn(7); + let __sym0 = __pop_Variant15(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action7::<>(__sym0); + __symbols.push((__start, __Symbol::Variant15(__nt), __end)); + (1, 44) + } + pub(crate) fn __reduce88< + 'input, + >( + __action: i16, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // ParameterName = "-", SpannedBare => ActionFn(204); + let __sym1 = __pop_Variant16(__symbols); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym1.2.clone(); + let __nt = super::__action204::<>(__sym0, __sym1); + __symbols.push((__start, __Symbol::Variant23(__nt), __end)); + (2, 45) + } + pub(crate) fn __reduce89< + 'input, + >( + __action: i16, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // ParameterName = "--", SpannedBare => ActionFn(205); + let __sym1 = __pop_Variant16(__symbols); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym1.2.clone(); + let __nt = super::__action205::<>(__sym0, __sym1); + __symbols.push((__start, __Symbol::Variant23(__nt), __end)); + (2, 45) + } + pub(crate) fn __reduce90< + 'input, + >( + __action: i16, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // ParameterName = ParameterVariable => ActionFn(206); + let __sym0 = __pop_Variant24(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action206::<>(__sym0); + __symbols.push((__start, __Symbol::Variant23(__nt), __end)); + (1, 45) + } + pub(crate) fn __reduce91< + 'input, + >( + __action: i16, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // ParameterVariable = "$", "variable" => ActionFn(207); + let __sym1 = __pop_Variant0(__symbols); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym1.2.clone(); + let __nt = super::__action207::<>(__sym0, __sym1); + __symbols.push((__start, __Symbol::Variant24(__nt), __end)); + (2, 46) + } + pub(crate) fn __reduce92< + 'input, + >( + __action: i16, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // Pipeline = PipelineElement => ActionFn(208); + let __sym0 = __pop_Variant6(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action208::<>(__sym0); + __symbols.push((__start, __Symbol::Variant25(__nt), __end)); + (1, 47) + } + pub(crate) fn __reduce93< + 'input, + >( + __action: i16, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // Pipeline = PipelineElement, ("|" )+ => ActionFn(209); + let __sym1 = __pop_Variant7(__symbols); + let __sym0 = __pop_Variant6(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym1.2.clone(); + let __nt = super::__action209::<>(__sym0, __sym1); + __symbols.push((__start, __Symbol::Variant25(__nt), __end)); + (2, 47) + } + pub(crate) fn __reduce94< + 'input, + >( + __action: i16, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // PipelineElement = BareExpression => ActionFn(210); + let __sym0 = __pop_Variant6(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action210::<>(__sym0); + __symbols.push((__start, __Symbol::Variant6(__nt), __end)); + (1, 48) + } + pub(crate) fn __reduce95< + 'input, + >( + __action: i16, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // PipelineElement = SingleExpression => ActionFn(27); + let __sym0 = __pop_Variant6(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action27::<>(__sym0); + __symbols.push((__start, __Symbol::Variant6(__nt), __end)); + (1, 48) + } + pub(crate) fn __reduce96< + 'input, + >( + __action: i16, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // RawType = "any" => ActionFn(14); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action14::<>(__sym0); + __symbols.push((__start, __Symbol::Variant26(__nt), __end)); + (1, 49) + } + pub(crate) fn __reduce97< + 'input, + >( + __action: i16, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // RawType = "int" => ActionFn(15); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action15::<>(__sym0); + __symbols.push((__start, __Symbol::Variant26(__nt), __end)); + (1, 49) + } + pub(crate) fn __reduce98< + 'input, + >( + __action: i16, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // RawType = "decimal" => ActionFn(16); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action16::<>(__sym0); + __symbols.push((__start, __Symbol::Variant26(__nt), __end)); + (1, 49) + } + pub(crate) fn __reduce99< + 'input, + >( + __action: i16, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // RawType = "bytes" => ActionFn(17); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action17::<>(__sym0); + __symbols.push((__start, __Symbol::Variant26(__nt), __end)); + (1, 49) + } + pub(crate) fn __reduce100< + 'input, + >( + __action: i16, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // RawType = "text" => ActionFn(18); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action18::<>(__sym0); + __symbols.push((__start, __Symbol::Variant26(__nt), __end)); + (1, 49) + } + pub(crate) fn __reduce101< + 'input, + >( + __action: i16, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // RawType = "boolean" => ActionFn(19); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action19::<>(__sym0); + __symbols.push((__start, __Symbol::Variant26(__nt), __end)); + (1, 49) + } + pub(crate) fn __reduce102< + 'input, + >( + __action: i16, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // RawType = "date" => ActionFn(20); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action20::<>(__sym0); + __symbols.push((__start, __Symbol::Variant26(__nt), __end)); + (1, 49) + } + pub(crate) fn __reduce103< + 'input, + >( + __action: i16, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // RawType = "object" => ActionFn(21); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action21::<>(__sym0); + __symbols.push((__start, __Symbol::Variant26(__nt), __end)); + (1, 49) + } + pub(crate) fn __reduce104< + 'input, + >( + __action: i16, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // RawType = "list" => ActionFn(22); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action22::<>(__sym0); + __symbols.push((__start, __Symbol::Variant26(__nt), __end)); + (1, 49) + } + pub(crate) fn __reduce105< + 'input, + >( + __action: i16, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // RawType = "block" => ActionFn(23); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action23::<>(__sym0); + __symbols.push((__start, __Symbol::Variant26(__nt), __end)); + (1, 49) + } + pub(crate) fn __reduce106< + 'input, + >( + __action: i16, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // ReplLine = Pipeline => ActionFn(124); + let __sym0 = __pop_Variant25(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action124::<>(__sym0); + __symbols.push((__start, __Symbol::Variant25(__nt), __end)); + (1, 50) + } + pub(crate) fn __reduce107< + 'input, + >( + __action: i16, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // ReplLine = Pipeline, ("newline")+ => ActionFn(125); + let __sym1 = __pop_Variant5(__symbols); + let __sym0 = __pop_Variant25(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym1.2.clone(); + let __nt = super::__action125::<>(__sym0, __sym1); + __symbols.push((__start, __Symbol::Variant25(__nt), __end)); + (2, 50) + } + pub(crate) fn __reduce108< + 'input, + >( + __action: i16, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // SingleCallArgument = CallArgument => ActionFn(52); + let __sym0 = __pop_Variant6(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action52::<>(__sym0); + __symbols.push((__start, __Symbol::Variant6(__nt), __end)); + (1, 51) + } + pub(crate) fn __reduce109< + 'input, + >( + __action: i16, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // SingleCallArgument = Binary => ActionFn(53); + let __sym0 = __pop_Variant6(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action53::<>(__sym0); + __symbols.push((__start, __Symbol::Variant6(__nt), __end)); + (1, 51) + } + pub(crate) fn __reduce110< + 'input, + >( + __action: i16, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // SingleExpression = Expression => ActionFn(54); + let __sym0 = __pop_Variant6(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action54::<>(__sym0); + __symbols.push((__start, __Symbol::Variant6(__nt), __end)); + (1, 52) + } + pub(crate) fn __reduce111< + 'input, + >( + __action: i16, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // SingleExpression = Call => ActionFn(55); + let __sym0 = __pop_Variant6(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action55::<>(__sym0); + __symbols.push((__start, __Symbol::Variant6(__nt), __end)); + (1, 52) + } + pub(crate) fn __reduce112< + 'input, + >( + __action: i16, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // SingleExpression = Binary => ActionFn(56); + let __sym0 = __pop_Variant6(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action56::<>(__sym0); + __symbols.push((__start, __Symbol::Variant6(__nt), __end)); + (1, 52) + } + pub(crate) fn __reduce113< + 'input, + >( + __action: i16, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // SpannedBare = Bare => ActionFn(211); + let __sym0 = __pop_Variant13(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action211::<>(__sym0); + __symbols.push((__start, __Symbol::Variant16(__nt), __end)); + (1, 53) + } + pub(crate) fn __reduce114< + 'input, + >( + __action: i16, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // SpannedOperator = Operator => ActionFn(212); + let __sym0 = __pop_Variant22(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action212::<>(__sym0); + __symbols.push((__start, __Symbol::Variant27(__nt), __end)); + (1, 54) + } + pub(crate) fn __reduce115< + 'input, + >( + __action: i16, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // String = "sqstring" => ActionFn(213); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action213::<>(__sym0); + __symbols.push((__start, __Symbol::Variant6(__nt), __end)); + (1, 55) + } + pub(crate) fn __reduce116< + 'input, + >( + __action: i16, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // String = "dqstring" => ActionFn(214); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action214::<>(__sym0); + __symbols.push((__start, __Symbol::Variant6(__nt), __end)); + (1, 55) + } + pub(crate) fn __reduce117< + 'input, + >( + __action: i16, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // Type = RawType => ActionFn(215); + let __sym0 = __pop_Variant26(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action215::<>(__sym0); + __symbols.push((__start, __Symbol::Variant1(__nt), __end)); + (1, 56) + } + pub(crate) fn __reduce118< + 'input, + >( + __action: i16, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // UnitsNum = Int, "unit" => ActionFn(216); + let __sym1 = __pop_Variant0(__symbols); + let __sym0 = __pop_Variant19(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym1.2.clone(); + let __nt = super::__action216::<>(__sym0, __sym1); + __symbols.push((__start, __Symbol::Variant6(__nt), __end)); + (2, 57) + } + pub(crate) fn __reduce119< + 'input, + >( + __action: i16, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // Var = "$", "variable" => ActionFn(217); + let __sym1 = __pop_Variant0(__symbols); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym1.2.clone(); + let __nt = super::__action217::<>(__sym0, __sym1); + __symbols.push((__start, __Symbol::Variant6(__nt), __end)); + (2, 58) + } + pub(crate) fn __reduce120< + 'input, + >( + __action: i16, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // __Call = Call => ActionFn(2); + let __sym0 = __pop_Variant6(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action2::<>(__sym0); + __symbols.push((__start, __Symbol::Variant6(__nt), __end)); + (1, 59) + } + pub(crate) fn __reduce122< + 'input, + >( + __action: i16, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // __ReplLine = ReplLine => ActionFn(1); + let __sym0 = __pop_Variant25(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action1::<>(__sym0); + __symbols.push((__start, __Symbol::Variant25(__nt), __end)); + (1, 61) + } +} +pub use self::__parse__Module::ModuleParser; + +#[cfg_attr(rustfmt, rustfmt_skip)] +mod __parse__ReplLine { + #![allow(non_snake_case, non_camel_case_types, unused_mut, unused_variables, unused_imports, unused_parens)] + + use std::str::FromStr; + use crate::parser::ast::expression::*; + use crate::parser::ast::module::*; + use crate::parser::ast::parser_utils::*; + use crate::parser::ast::{ExpressionBuilder, ModuleBuilder}; + use crate::prelude::*; + use crate::parser::lexer::{SpannedToken, Spanned, Span, Token}; + use byte_unit::Byte; + #[allow(unused_extern_crates)] + extern crate lalrpop_util as __lalrpop_util; + #[allow(unused_imports)] + use self::__lalrpop_util::state_machine as __state_machine; + use super::__ToTriple; + #[allow(dead_code)] + pub enum __Symbol<'input> + { + Variant0(SpannedToken<'input>), + Variant1(Spanned), + Variant2(::std::option::Option>), + Variant3(Spanned), + Variant4(::std::vec::Vec>), + Variant5(::std::vec::Vec>), + Variant6(Expression), + Variant7(::std::vec::Vec), + Variant8(Item), + Variant9(::std::vec::Vec), + Variant10(FormalParameter), + Variant11(::std::vec::Vec), + Variant12(usize), + Variant13(Bare), + Variant14(Spanned), + Variant15(Vec), + Variant16(Spanned), + Variant17(::std::option::Option), + Variant18(Function), + Variant19(i64), + Variant20(Module), + Variant21(()), + Variant22(Operator), + Variant23(ParameterIdentifier), + Variant24(Spanned), + Variant25(Pipeline), + Variant26(Type), + Variant27(Spanned), + } + const __ACTION: &'static [i8] = &[ + // State 0 + 0, 19, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, 0, 22, 0, 0, 0, 0, 0, 0, 23, 0, 0, 24, 0, 0, 0, 0, 25, 0, 0, + // State 1 + 28, 0, 0, 0, 0, 0, 0, 0, 0, 29, 30, 31, 32, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 2 + -35, -35, -35, -35, 0, -35, -35, 0, 0, -35, -35, -35, -35, -35, 0, 0, -35, 0, 0, 0, 0, 0, 0, 0, -35, 0, 0, 0, 0, 0, -35, -35, 0, 0, -35, 0, 0, 0, 0, -35, -35, -35, + // State 3 + -33, 19, 20, 0, 0, 41, 42, 0, 0, -33, -33, -33, -33, -33, 0, 0, 21, 0, 0, 0, 0, 0, 0, 0, 22, 0, 0, 0, 0, 0, -95, 23, 0, 0, 24, 0, 0, 0, 0, 25, -95, 0, + // State 4 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -113, 0, 0, 0, 0, 0, 0, 0, 0, 0, -113, -113, + // State 5 + -73, -73, -73, -73, 0, -73, -73, 0, 0, -73, -73, -73, -73, -73, -73, 0, -73, 0, 0, 0, 0, 0, 0, 0, -73, 0, 0, 0, 0, 0, -73, -73, 0, 0, -73, 0, 0, 0, 0, -73, -73, -73, + // State 6 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -112, 0, 0, 0, 0, 0, 0, 0, 0, 0, -112, -112, + // State 7 + -32, 19, 20, 0, 0, 41, 42, 0, 0, -32, -32, -32, -32, -32, 0, 0, 21, 0, 0, 0, 0, 0, 0, 0, 22, 0, 0, 0, 0, 0, -111, 23, 0, 0, 24, 0, 0, 0, 0, 25, -111, -111, + // State 8 + -65, -65, -65, -65, 0, -65, -65, 0, 0, -65, -65, -65, -65, -65, -65, 0, -65, 0, 0, 0, 0, 0, 0, 0, -65, 0, 0, 0, 0, 0, -65, -65, 0, 0, -65, 0, 0, 45, 0, -65, -65, -65, + // State 9 + -72, -72, -72, -72, 0, -72, -72, 0, 0, -72, -72, -72, -72, -72, -72, 0, -72, 0, 0, 0, 0, 0, 0, 0, -72, 0, 0, 0, 0, 0, -72, -72, 0, 0, -72, 0, 0, 0, 0, -72, -72, -72, + // State 10 + -52, -52, -52, -52, 0, -52, -52, 0, 0, -52, -52, -52, -52, -52, 47, 0, -52, 0, 0, 0, 0, 0, 0, 0, -52, 0, 0, 0, 0, 0, -52, -52, 0, 0, -52, 0, 0, 0, 0, -52, -52, -52, + // State 11 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 12 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -93, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51, 0, + // State 13 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 14 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -96, 0, 0, 0, 0, 0, 0, 0, 0, 0, -96, 0, + // State 15 + -64, -64, -64, -64, 0, -64, -64, 0, 0, -64, -64, -64, -64, -64, -64, 0, -64, 0, 0, 0, 0, 0, 0, 0, -64, 0, 0, 0, 0, 0, -64, -64, 0, 0, -64, 0, 0, 0, 0, -64, -64, -64, + // State 16 + -66, -66, -66, -66, 0, -66, -66, 0, 0, -66, -66, -66, -66, -66, -66, 0, -66, 0, 0, 0, 0, 0, 0, 0, -66, 0, 0, 0, 0, 0, -66, -66, 0, 0, -66, 0, 0, 0, 0, -66, -66, -66, + // State 17 + -67, -67, -67, -67, 0, -67, -67, 0, 0, -67, -67, -67, -67, -67, -67, 0, -67, 0, 0, 0, 0, 0, 0, 0, -67, 0, 0, 0, 0, 0, -67, -67, 0, 0, -67, 0, 0, 0, 0, -67, -67, -67, + // State 18 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, + // State 19 + 0, 19, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, 0, 22, 0, 0, 0, 0, 0, 0, 23, 0, 0, 24, 0, 0, 0, 0, 25, 0, 0, + // State 20 + -34, -34, -34, -34, 0, -34, -34, 0, 0, -34, -34, -34, -34, -34, 0, 0, -34, 0, 0, 0, 0, 0, 0, 0, -34, 0, 0, 0, 0, 0, -34, -34, 0, 0, -34, 0, 0, 0, 0, -34, -34, -34, + // State 21 + -117, -117, -117, -117, 0, -117, -117, 0, 0, -117, -117, -117, -117, -117, -117, 0, -117, 0, 0, 0, 0, 0, 0, 0, -117, 0, 0, 0, 0, 0, -117, -117, 0, 0, -117, 0, 0, 0, 0, -117, -117, -117, + // State 22 + -61, -61, -61, -61, 0, -61, -61, 0, 0, -61, -61, -61, -61, -61, -61, 0, -61, 0, 0, 0, 0, 0, 0, 0, -61, 0, 0, 0, 0, 0, -61, -61, 0, 0, -61, 0, 0, -61, 0, -61, -61, -61, + // State 23 + -116, -116, -116, -116, 0, -116, -116, 0, 0, -116, -116, -116, -116, -116, -116, 0, -116, 0, 0, 0, 0, 0, 0, 0, -116, 0, 0, 0, 0, 0, -116, -116, 0, 0, -116, 0, 0, 0, 0, -116, -116, -116, + // State 24 + 0, 19, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, 0, 22, 0, 0, 0, 0, 0, 0, 23, 0, 0, 24, 0, 0, 0, 0, 25, 0, 0, + // State 25 + 0, -115, -115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -115, 0, 0, 0, 0, 0, 0, 0, -115, 0, 0, 0, 0, 0, 0, -115, 0, 0, -115, 0, 0, 0, 0, -115, 0, 0, + // State 26 + 0, 19, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, 0, 22, 0, 0, 0, 0, 0, 0, 23, 0, 0, 24, 0, 0, 0, 0, 25, 0, 0, + // State 27 + 0, -81, -81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -81, 0, 0, 0, 0, 0, 0, 0, -81, 0, 0, 0, 0, 0, 0, -81, 0, 0, -81, 0, 0, 0, 0, -81, 0, 0, + // State 28 + 0, -82, -82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -82, 0, 0, 0, 0, 0, 0, 0, -82, 0, 0, 0, 0, 0, 0, -82, 0, 0, -82, 0, 0, 0, 0, -82, 0, 0, + // State 29 + 0, -84, -84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -84, 0, 0, 0, 0, 0, 0, 0, -84, 0, 0, 0, 0, 0, 0, -84, 0, 0, -84, 0, 0, 0, 0, -84, 0, 0, + // State 30 + 0, -80, -80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -80, 0, 0, 0, 0, 0, 0, 0, -80, 0, 0, 0, 0, 0, 0, -80, 0, 0, -80, 0, 0, 0, 0, -80, 0, 0, + // State 31 + 0, -83, -83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -83, 0, 0, 0, 0, 0, 0, 0, -83, 0, 0, 0, 0, 0, 0, -83, 0, 0, -83, 0, 0, 0, 0, -83, 0, 0, + // State 32 + 0, -85, -85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -85, 0, 0, 0, 0, 0, 0, 0, -85, 0, 0, 0, 0, 0, 0, -85, 0, 0, -85, 0, 0, 0, 0, -85, 0, 0, + // State 33 + 28, -45, -45, -45, 0, -45, -45, 0, 0, 29, 30, 31, 32, 33, 0, 0, -45, 0, 0, 0, 0, 0, 0, 0, -45, 0, 0, 0, 0, 0, -45, -45, 0, 0, -45, 0, 0, 0, 0, -45, -45, -45, + // State 34 + -33, -33, -33, -33, 0, -33, -33, 0, 0, -33, -33, -33, -33, -33, 0, 0, -33, 0, 0, 0, 0, 0, 0, 0, -33, 0, 0, 0, 0, 0, -33, -33, 0, 0, -33, 0, 0, 0, 0, -33, -33, -33, + // State 35 + 0, 0, 0, -110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -110, 0, 0, 0, 0, 0, 0, 0, 0, 0, -110, -110, + // State 36 + 0, 19, 20, -109, 0, 41, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, 0, 22, 0, 0, 0, 0, 0, -109, 23, 0, 0, 24, 0, 0, 0, 0, 25, -109, -109, + // State 37 + -32, -32, -32, -32, 0, -32, -32, 0, 0, -32, -32, -32, -32, -32, 0, 0, -32, 0, 0, 0, 0, 0, 0, 0, -32, 0, 0, 0, 0, 0, -32, -32, 0, 0, -32, 0, 0, 0, 0, -32, -32, -32, + // State 38 + 0, -46, -46, -46, 0, -46, -46, 0, 0, 0, 0, 0, 0, 0, 0, 0, -46, 0, 0, 0, 0, 0, 0, 0, -46, 0, 0, 0, 0, 0, -46, -46, 0, 0, -46, 0, 0, 0, 0, -46, -46, -46, + // State 39 + 0, 0, 0, -43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -43, 0, 0, 0, 0, 0, 0, 0, 0, 0, -43, -43, + // State 40 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 41 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 42 + 0, 19, 20, -109, 0, 41, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, 0, 22, 0, 0, 0, 0, 0, -109, 23, 0, 0, 24, 0, 0, 0, 0, 25, -109, -109, + // State 43 + 0, 0, 0, -41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -41, 0, 0, 0, 0, 0, 0, 0, 0, 0, -41, -41, + // State 44 + -119, -119, -119, -119, 0, -119, -119, 0, 0, -119, -119, -119, -119, -119, -119, 0, -119, 0, 0, 0, 0, 0, 0, 0, -119, 0, 0, 0, 0, 0, -119, -119, 0, 0, -119, 0, 0, 0, 0, -119, -119, -119, + // State 45 + -53, -53, -53, -53, 0, -53, -53, 0, 0, -53, -53, -53, -53, -53, 66, 0, -53, 0, 0, 0, 0, 0, 0, 0, -53, 0, 0, 0, 0, 0, -53, -53, 0, 0, -53, 0, 0, 0, 0, -53, -53, -53, + // State 46 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 0, 0, 69, 0, 0, 70, 0, 0, 0, 71, 0, 0, 0, 0, 0, 0, 0, 0, + // State 47 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 48 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 49 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -94, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 0, + // State 50 + 0, 19, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, 0, 22, 0, 0, 0, 0, 0, 0, 23, 0, 0, 24, 0, 0, 0, 0, 25, 0, 0, + // State 51 + -120, -120, -120, -120, 0, -120, -120, 0, 0, -120, -120, -120, -120, -120, -120, 0, -120, 0, 0, 0, 0, 0, 0, 0, -120, 0, 0, 0, 0, 0, -120, -120, 0, 0, -120, 0, 0, 0, 0, -120, -120, -120, + // State 52 + -33, 19, 20, 75, 0, 41, 42, 0, 0, -33, -33, -33, -33, -33, 0, 0, 21, 0, 0, 0, 0, 0, 0, 0, 22, 0, 0, 0, 0, 0, 0, 23, 0, 0, 24, 0, 0, 0, 0, 25, 0, 0, + // State 53 + 0, 0, 0, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 54 + 0, 0, 0, 77, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 55 + -32, 19, 20, 0, 0, 41, 42, 0, 0, -32, -32, -32, -32, -32, 0, 0, 21, 0, 0, 0, 0, 0, 0, 0, 22, 0, 0, 0, 0, 0, 0, 23, 0, 0, 24, 0, 0, 0, 0, 25, 0, 0, + // State 56 + -33, 19, 20, 0, 0, 41, 42, 0, 0, -33, -33, -33, -33, -33, 0, 0, 21, 0, 0, 0, 0, 0, 0, 0, 22, 0, 0, 0, 0, 0, 0, 23, 0, 0, 24, 0, 0, 0, 0, 25, 0, 78, + // State 57 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, + // State 58 + 0, 0, 0, -36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -36, 0, 0, 0, 0, 0, 0, 0, 0, 0, -36, -36, + // State 59 + 0, 19, 20, -44, 0, 41, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, 0, 22, 0, 0, 0, 0, 0, -44, 23, 0, 0, 24, 0, 0, 0, 0, 25, -44, -44, + // State 60 + 0, -45, -45, -45, 0, -45, -45, 0, 0, 0, 0, 0, 0, 0, 0, 0, -45, 0, 0, 0, 0, 0, 0, 0, -45, 0, 0, 0, 0, 0, -45, -45, 0, 0, -45, 0, 0, 0, 0, -45, -45, -45, + // State 61 + 0, -23, -23, -23, 0, -23, -23, 0, 0, 0, 0, 0, 0, 0, 0, 0, -23, 0, 0, 0, 0, 0, 0, 0, -23, 0, 0, 0, 0, 0, -23, -23, 0, 0, -23, 0, 0, 0, 0, -23, -23, -23, + // State 62 + 0, -54, -54, -54, 0, -54, -54, 0, 0, 0, 0, 0, 0, 0, 0, 0, -54, 0, 0, 0, 0, 0, 0, 0, -54, 0, 0, 0, 0, 0, -54, -54, 0, 0, -54, 0, 0, 0, 0, -54, -54, -54, + // State 63 + 0, -55, -55, -55, 0, -55, -55, 0, 0, 0, 0, 0, 0, 0, 0, 0, -55, 0, 0, 0, 0, 0, 0, 0, -55, 0, 0, 0, 0, 0, -55, -55, 0, 0, -55, 0, 0, 0, 0, -55, -55, -55, + // State 64 + 0, 19, 20, -42, 0, 41, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, 0, 22, 0, 0, 0, 0, 0, -42, 23, 0, 0, 24, 0, 0, 0, 0, 25, -42, -42, + // State 65 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 0, 0, 69, 0, 0, 70, 0, 0, 0, 71, 0, 0, 0, 0, 0, 0, 0, 0, + // State 66 + -5, -5, -5, -5, 0, -5, -5, 0, 0, -5, -5, -5, -5, -5, -5, 0, -5, 0, 0, 0, 0, 0, 0, 0, -5, 0, 0, 0, 0, 0, -5, -5, 0, 0, -5, 0, 0, 0, 0, -5, -5, -5, + // State 67 + -69, -69, -69, -69, 0, -69, -69, 0, 0, -69, -69, -69, -69, -69, -69, 0, -69, 0, 0, 0, 0, 0, 0, 0, -69, 0, 0, 0, 0, 0, -69, -69, 0, 0, -69, 0, 0, 0, 0, -69, -69, -69, + // State 68 + -71, -71, -71, -71, 0, -71, -71, 0, 0, -71, -71, -71, -71, -71, -71, 0, -71, 0, 0, 0, 0, 0, 0, 0, -71, 0, 0, 0, 0, 0, -71, -71, 0, 0, -71, 0, 0, 0, 0, -71, -71, -71, + // State 69 + -68, -68, -68, -68, 0, -68, -68, 0, 0, -68, -68, -68, -68, -68, -68, 0, -68, 0, 0, 0, 0, 0, 0, 0, -68, 0, 0, 0, 0, 0, -68, -68, 0, 0, -68, 0, 0, 0, 0, -68, -68, -68, + // State 70 + -70, -70, -70, -70, 0, -70, -70, 0, 0, -70, -70, -70, -70, -70, -70, 0, -70, 0, 0, 0, 0, 0, 0, 0, -70, 0, 0, 0, 0, 0, -70, -70, 0, 0, -70, 0, 0, 0, 0, -70, -70, -70, + // State 71 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 72 + 0, 19, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, 0, 22, 0, 0, 0, 0, 0, 0, 23, 0, 0, 24, 0, 0, 0, 0, 25, 0, 0, + // State 73 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -15, 0, 0, 0, 0, 0, 0, 0, 0, 0, -15, 0, + // State 74 + -75, -75, -75, -75, 0, -75, -75, 0, 0, -75, -75, -75, -75, -75, -75, 0, -75, 0, 0, 0, 0, 0, 0, 0, -75, 0, 0, 0, 0, 0, -75, -75, 0, 0, -75, 0, 0, 0, 0, -75, -75, -75, + // State 75 + -76, -76, -76, -76, 0, -76, -76, 0, 0, -76, -76, -76, -76, -76, -76, 0, -76, 0, 0, 0, 0, 0, 0, 0, -76, 0, 0, 0, 0, 0, -76, -76, 0, 0, -76, 0, 0, 0, 0, -76, -76, -76, + // State 76 + -74, -74, -74, -74, 0, -74, -74, 0, 0, -74, -74, -74, -74, -74, -74, 0, -74, 0, 0, 0, 0, 0, 0, 0, -74, 0, 0, 0, 0, 0, -74, -74, 0, 0, -74, 0, 0, 0, 0, -74, -74, -74, + // State 77 + -40, -40, -40, -40, 0, -40, -40, 0, 0, -40, -40, -40, -40, -40, -40, 0, -40, 0, 0, 0, 0, 0, 0, 0, -40, 0, 0, 0, 0, 0, -40, -40, 0, 0, -40, 0, 0, 0, 0, -40, -40, -40, + // State 78 + -39, -39, -39, -39, 0, -39, -39, 0, 0, -39, -39, -39, -39, -39, -39, 0, -39, 0, 0, 0, 0, 0, 0, 0, -39, 0, 0, 0, 0, 0, -39, -39, 0, 0, -39, 0, 0, 0, 0, -39, -39, -39, + // State 79 + 0, -24, -24, -24, 0, -24, -24, 0, 0, 0, 0, 0, 0, 0, 0, 0, -24, 0, 0, 0, 0, 0, 0, 0, -24, 0, 0, 0, 0, 0, -24, -24, 0, 0, -24, 0, 0, 0, 0, -24, -24, -24, + // State 80 + -6, -6, -6, -6, 0, -6, -6, 0, 0, -6, -6, -6, -6, -6, -6, 0, -6, 0, 0, 0, 0, 0, 0, 0, -6, 0, 0, 0, 0, 0, -6, -6, 0, 0, -6, 0, 0, 0, 0, -6, -6, -6, + // State 81 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -16, 0, 0, 0, 0, 0, 0, 0, 0, 0, -16, 0, + ]; + const __EOF_ACTION: &'static [i8] = &[ + // State 0 + 0, + // State 1 + 0, + // State 2 + -35, + // State 3 + -95, + // State 4 + -113, + // State 5 + -73, + // State 6 + -112, + // State 7 + -111, + // State 8 + -65, + // State 9 + -72, + // State 10 + -52, + // State 11 + -107, + // State 12 + -93, + // State 13 + -123, + // State 14 + -96, + // State 15 + -64, + // State 16 + -66, + // State 17 + -67, + // State 18 + 0, + // State 19 + 0, + // State 20 + -34, + // State 21 + -117, + // State 22 + -61, + // State 23 + -116, + // State 24 + 0, + // State 25 + 0, + // State 26 + 0, + // State 27 + 0, + // State 28 + 0, + // State 29 + 0, + // State 30 + 0, + // State 31 + 0, + // State 32 + 0, + // State 33 + -45, + // State 34 + -33, + // State 35 + -110, + // State 36 + -109, + // State 37 + -32, + // State 38 + -46, + // State 39 + -43, + // State 40 + 0, + // State 41 + 0, + // State 42 + -109, + // State 43 + -41, + // State 44 + -119, + // State 45 + -53, + // State 46 + 0, + // State 47 + -108, + // State 48 + -10, + // State 49 + -94, + // State 50 + 0, + // State 51 + -120, + // State 52 + 0, + // State 53 + 0, + // State 54 + 0, + // State 55 + 0, + // State 56 + 0, + // State 57 + 0, + // State 58 + -36, + // State 59 + -44, + // State 60 + -45, + // State 61 + -23, + // State 62 + -54, + // State 63 + -55, + // State 64 + -42, + // State 65 + 0, + // State 66 + -5, + // State 67 + -69, + // State 68 + -71, + // State 69 + -68, + // State 70 + -70, + // State 71 + -11, + // State 72 + 0, + // State 73 + -15, + // State 74 + -75, + // State 75 + -76, + // State 76 + -74, + // State 77 + -40, + // State 78 + -39, + // State 79 + -24, + // State 80 + -6, + // State 81 + -16, + ]; + const __GOTO: &'static [i8] = &[ + // State 0 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 4, 5, 0, 6, 7, 0, 0, 0, 8, 0, 0, 0, 0, 9, 0, 10, 0, 11, 0, 0, 0, 0, 0, 0, 0, 12, 13, 0, 14, 0, 15, 0, 0, 16, 0, 17, 18, 0, 0, 0, + // State 1 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, 0, 0, 0, 0, + // State 2 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 3 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 3, 35, 36, 0, 6, 0, 37, 0, 0, 38, 39, 0, 0, 0, 9, 0, 10, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 0, 0, 0, 16, 0, 17, 18, 0, 0, 0, + // State 4 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 5 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 6 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 7 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 3, 35, 36, 0, 6, 0, 43, 0, 0, 38, 39, 0, 0, 0, 9, 0, 10, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 0, 0, 0, 16, 0, 17, 18, 0, 0, 0, + // State 8 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 9 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 10 + 0, 0, 0, 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 11 + 0, 0, 0, 0, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 12 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 13 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 14 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 15 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 16 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 17 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 18 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 19 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 53, 54, 0, 6, 55, 0, 0, 0, 56, 0, 0, 0, 0, 9, 0, 10, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 17, 18, 0, 0, 0, + // State 20 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 21 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 22 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 23 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 24 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 57, 5, 0, 6, 7, 0, 0, 0, 8, 0, 0, 0, 0, 9, 0, 10, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58, 0, 0, 16, 0, 17, 18, 0, 0, 0, + // State 25 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 26 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59, 3, 35, 0, 0, 6, 0, 0, 0, 0, 38, 0, 0, 0, 0, 9, 0, 10, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 17, 18, 0, 0, 0, + // State 27 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 28 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 29 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 30 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 31 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 32 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 33 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, 0, 0, 0, 0, + // State 34 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 35 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 36 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 0, 0, 0, 0, 61, 3, 35, 0, 0, 6, 0, 62, 0, 0, 38, 39, 0, 0, 0, 9, 0, 10, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 17, 18, 0, 0, 0, + // State 37 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 38 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 39 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 40 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 41 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 42 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 61, 3, 35, 0, 0, 6, 0, 62, 0, 0, 38, 39, 0, 0, 0, 9, 0, 10, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 17, 18, 0, 0, 0, + // State 43 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 44 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 45 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 46 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 47 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 48 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 49 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 50 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 4, 5, 0, 6, 7, 0, 0, 0, 8, 0, 0, 0, 0, 9, 0, 10, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 74, 0, 0, 0, 15, 0, 0, 16, 0, 17, 18, 0, 0, 0, + // State 51 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 52 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 3, 35, 36, 0, 6, 0, 37, 0, 0, 38, 39, 0, 0, 0, 9, 0, 10, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 0, 0, 0, 16, 0, 17, 18, 0, 0, 0, + // State 53 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 54 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 55 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 3, 35, 36, 0, 6, 0, 43, 0, 0, 38, 39, 0, 0, 0, 9, 0, 10, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 0, 0, 0, 16, 0, 17, 18, 0, 0, 0, + // State 56 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 3, 35, 36, 0, 6, 0, 37, 0, 0, 38, 39, 0, 0, 0, 9, 0, 10, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 0, 0, 0, 16, 0, 17, 18, 0, 0, 0, + // State 57 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 58 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 59 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61, 3, 35, 0, 0, 6, 0, 80, 0, 0, 38, 39, 0, 0, 0, 9, 0, 10, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 17, 18, 0, 0, 0, + // State 60 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 61 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 62 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 63 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 64 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61, 3, 35, 0, 0, 6, 0, 80, 0, 0, 38, 39, 0, 0, 0, 9, 0, 10, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 17, 18, 0, 0, 0, + // State 65 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 66 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 67 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 68 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 69 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 70 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 71 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 72 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 4, 5, 0, 6, 7, 0, 0, 0, 8, 0, 0, 0, 0, 9, 0, 10, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 82, 0, 0, 0, 15, 0, 0, 16, 0, 17, 18, 0, 0, 0, + // State 73 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 74 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 75 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 76 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 77 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 78 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 79 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 80 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 81 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + ]; + fn __expected_tokens(__state: usize) -> Vec<::std::string::String> { + const __TERMINAL: &'static [&'static str] = &[ + r###""!=""###, + r###""$""###, + r###""(""###, + r###"")""###, + r###"",""###, + r###""-""###, + r###""--""###, + r###""->""###, + r###"":""###, + r###""<""###, + r###""<=""###, + r###""==""###, + r###"">""###, + r###"">=""###, + r###""???.""###, + r###""any""###, + r###""bare""###, + r###""block""###, + r###""boolean""###, + r###""bytes""###, + r###""command-name""###, + r###""date""###, + r###""decimal""###, + r###""dqmember""###, + r###""dqstring""###, + r###""end-params""###, + r###""function""###, + r###""int""###, + r###""list""###, + r###""member""###, + r###""newline""###, + r###""num""###, + r###""object""###, + r###""sqmember""###, + r###""sqstring""###, + r###""start-params""###, + r###""text""###, + r###""unit""###, + r###""variable""###, + r###""{""###, + r###""|""###, + r###""}""###, + ]; + __ACTION[(__state * 42)..].iter().zip(__TERMINAL).filter_map(|(&state, terminal)| { if state == 0 { None } else { @@ -3231,12 +10252,12 @@ mod __parse__Pipeline { #[inline] fn action(&self, state: i8, integer: usize) -> i8 { - __ACTION[(state as usize) * 24 + integer] + __ACTION[(state as usize) * 42 + integer] } #[inline] fn error_action(&self, state: i8) -> i8 { - __ACTION[(state as usize) * 24 + (24 - 1)] + __ACTION[(state as usize) * 42 + (42 - 1)] } #[inline] @@ -3246,7 +10267,7 @@ mod __parse__Pipeline { #[inline] fn goto(&self, state: i8, nt: usize) -> i8 { - __GOTO[(state as usize) * 33 + nt] - 1 + __GOTO[(state as usize) * 62 + nt] - 1 } fn token_to_symbol(&self, token_index: usize, token: Self::Token) -> Self::Symbol { @@ -3302,26 +10323,44 @@ mod __parse__Pipeline { SpannedToken { token: Token::Dollar, .. } if true => Some(1), SpannedToken { token: Token::OpenParen, .. } if true => Some(2), SpannedToken { token: Token::CloseParen, .. } if true => Some(3), - SpannedToken { token: Token::Dash, .. } if true => Some(4), - SpannedToken { token: Token::DashDash, .. } if true => Some(5), - SpannedToken { token: Token::OpLt, .. } if true => Some(6), - SpannedToken { token: Token::OpLte, .. } if true => Some(7), - SpannedToken { token: Token::OpEq, .. } if true => Some(8), - SpannedToken { token: Token::OpGt, .. } if true => Some(9), - SpannedToken { token: Token::OpGte, .. } if true => Some(10), - SpannedToken { token: Token::PathDot, .. } if true => Some(11), - SpannedToken { token: Token::Bare, .. } if true => Some(12), - SpannedToken { token: Token::SQMember, .. } if true => Some(13), - SpannedToken { token: Token::DQString, .. } if true => Some(14), - SpannedToken { token: Token::Member, .. } if true => Some(15), - SpannedToken { token: Token::Num, .. } if true => Some(16), - SpannedToken { token: Token::SQMember, .. } if true => Some(17), - SpannedToken { token: Token::SQString, .. } if true => Some(18), - SpannedToken { token: Token::Unit, .. } if true => Some(19), - SpannedToken { token: Token::Variable, .. } if true => Some(20), - SpannedToken { token: Token::OpenBrace, .. } if true => Some(21), - SpannedToken { token: Token::Pipe, .. } if true => Some(22), - SpannedToken { token: Token::CloseBrace, .. } if true => Some(23), + SpannedToken { token: Token::Comma, .. } if true => Some(4), + SpannedToken { token: Token::Dash, .. } if true => Some(5), + SpannedToken { token: Token::DashDash, .. } if true => Some(6), + SpannedToken { token: Token::ReturnArrow, .. } if true => Some(7), + SpannedToken { token: Token::Colon, .. } if true => Some(8), + SpannedToken { token: Token::OpLt, .. } if true => Some(9), + SpannedToken { token: Token::OpLte, .. } if true => Some(10), + SpannedToken { token: Token::OpEq, .. } if true => Some(11), + SpannedToken { token: Token::OpGt, .. } if true => Some(12), + SpannedToken { token: Token::OpGte, .. } if true => Some(13), + SpannedToken { token: Token::PathDot, .. } if true => Some(14), + SpannedToken { token: Token::TyAny, .. } if true => Some(15), + SpannedToken { token: Token::Bare, .. } if true => Some(16), + SpannedToken { token: Token::TyBlock, .. } if true => Some(17), + SpannedToken { token: Token::TyBoolean, .. } if true => Some(18), + SpannedToken { token: Token::TyBytes, .. } if true => Some(19), + SpannedToken { token: Token::CommandName, .. } if true => Some(20), + SpannedToken { token: Token::TyDate, .. } if true => Some(21), + SpannedToken { token: Token::TyDecimal, .. } if true => Some(22), + SpannedToken { token: Token::SQMember, .. } if true => Some(23), + SpannedToken { token: Token::DQString, .. } if true => Some(24), + SpannedToken { token: Token::EndParamList, .. } if true => Some(25), + SpannedToken { token: Token::KeywordFunction, .. } if true => Some(26), + SpannedToken { token: Token::TyInt, .. } if true => Some(27), + SpannedToken { token: Token::TyList, .. } if true => Some(28), + SpannedToken { token: Token::Member, .. } if true => Some(29), + SpannedToken { token: Token::Newline, .. } if true => Some(30), + SpannedToken { token: Token::Num, .. } if true => Some(31), + SpannedToken { token: Token::TyObject, .. } if true => Some(32), + SpannedToken { token: Token::SQMember, .. } if true => Some(33), + SpannedToken { token: Token::SQString, .. } if true => Some(34), + SpannedToken { token: Token::StartParamList, .. } if true => Some(35), + SpannedToken { token: Token::TyText, .. } if true => Some(36), + SpannedToken { token: Token::Unit, .. } if true => Some(37), + SpannedToken { token: Token::Variable, .. } if true => Some(38), + SpannedToken { token: Token::OpenBrace, .. } if true => Some(39), + SpannedToken { token: Token::Pipe, .. } if true => Some(40), + SpannedToken { token: Token::CloseBrace, .. } if true => Some(41), _ => None, } } @@ -3351,82 +10390,154 @@ mod __parse__Pipeline { _ => unreachable!(), }, 4 => match __token { - __tok @ SpannedToken { token: Token::Dash, .. } => __Symbol::Variant0((__tok)), + __tok @ SpannedToken { token: Token::Comma, .. } => __Symbol::Variant0((__tok)), _ => unreachable!(), }, 5 => match __token { - __tok @ SpannedToken { token: Token::DashDash, .. } => __Symbol::Variant0((__tok)), + __tok @ SpannedToken { token: Token::Dash, .. } => __Symbol::Variant0((__tok)), _ => unreachable!(), }, 6 => match __token { - __tok @ SpannedToken { token: Token::OpLt, .. } => __Symbol::Variant0((__tok)), + __tok @ SpannedToken { token: Token::DashDash, .. } => __Symbol::Variant0((__tok)), _ => unreachable!(), }, 7 => match __token { - __tok @ SpannedToken { token: Token::OpLte, .. } => __Symbol::Variant0((__tok)), + __tok @ SpannedToken { token: Token::ReturnArrow, .. } => __Symbol::Variant0((__tok)), _ => unreachable!(), }, 8 => match __token { - __tok @ SpannedToken { token: Token::OpEq, .. } => __Symbol::Variant0((__tok)), + __tok @ SpannedToken { token: Token::Colon, .. } => __Symbol::Variant0((__tok)), _ => unreachable!(), }, 9 => match __token { - __tok @ SpannedToken { token: Token::OpGt, .. } => __Symbol::Variant0((__tok)), + __tok @ SpannedToken { token: Token::OpLt, .. } => __Symbol::Variant0((__tok)), _ => unreachable!(), }, 10 => match __token { - __tok @ SpannedToken { token: Token::OpGte, .. } => __Symbol::Variant0((__tok)), + __tok @ SpannedToken { token: Token::OpLte, .. } => __Symbol::Variant0((__tok)), _ => unreachable!(), }, 11 => match __token { - __tok @ SpannedToken { token: Token::PathDot, .. } => __Symbol::Variant0((__tok)), + __tok @ SpannedToken { token: Token::OpEq, .. } => __Symbol::Variant0((__tok)), _ => unreachable!(), }, 12 => match __token { - __tok @ SpannedToken { token: Token::Bare, .. } => __Symbol::Variant0((__tok)), + __tok @ SpannedToken { token: Token::OpGt, .. } => __Symbol::Variant0((__tok)), _ => unreachable!(), }, 13 => match __token { - __tok @ SpannedToken { token: Token::SQMember, .. } => __Symbol::Variant0((__tok)), + __tok @ SpannedToken { token: Token::OpGte, .. } => __Symbol::Variant0((__tok)), _ => unreachable!(), }, 14 => match __token { - __tok @ SpannedToken { token: Token::DQString, .. } => __Symbol::Variant0((__tok)), + __tok @ SpannedToken { token: Token::PathDot, .. } => __Symbol::Variant0((__tok)), _ => unreachable!(), }, 15 => match __token { - __tok @ SpannedToken { token: Token::Member, .. } => __Symbol::Variant0((__tok)), + __tok @ SpannedToken { token: Token::TyAny, .. } => __Symbol::Variant0((__tok)), _ => unreachable!(), }, 16 => match __token { - __tok @ SpannedToken { token: Token::Num, .. } => __Symbol::Variant0((__tok)), + __tok @ SpannedToken { token: Token::Bare, .. } => __Symbol::Variant0((__tok)), _ => unreachable!(), }, 17 => match __token { - __tok @ SpannedToken { token: Token::SQMember, .. } => __Symbol::Variant0((__tok)), + __tok @ SpannedToken { token: Token::TyBlock, .. } => __Symbol::Variant0((__tok)), _ => unreachable!(), }, 18 => match __token { - __tok @ SpannedToken { token: Token::SQString, .. } => __Symbol::Variant0((__tok)), + __tok @ SpannedToken { token: Token::TyBoolean, .. } => __Symbol::Variant0((__tok)), _ => unreachable!(), }, 19 => match __token { - __tok @ SpannedToken { token: Token::Unit, .. } => __Symbol::Variant0((__tok)), + __tok @ SpannedToken { token: Token::TyBytes, .. } => __Symbol::Variant0((__tok)), _ => unreachable!(), }, 20 => match __token { - __tok @ SpannedToken { token: Token::Variable, .. } => __Symbol::Variant0((__tok)), + __tok @ SpannedToken { token: Token::CommandName, .. } => __Symbol::Variant0((__tok)), _ => unreachable!(), }, 21 => match __token { - __tok @ SpannedToken { token: Token::OpenBrace, .. } => __Symbol::Variant0((__tok)), + __tok @ SpannedToken { token: Token::TyDate, .. } => __Symbol::Variant0((__tok)), _ => unreachable!(), }, 22 => match __token { - __tok @ SpannedToken { token: Token::Pipe, .. } => __Symbol::Variant0((__tok)), + __tok @ SpannedToken { token: Token::TyDecimal, .. } => __Symbol::Variant0((__tok)), _ => unreachable!(), }, 23 => match __token { + __tok @ SpannedToken { token: Token::SQMember, .. } => __Symbol::Variant0((__tok)), + _ => unreachable!(), + }, + 24 => match __token { + __tok @ SpannedToken { token: Token::DQString, .. } => __Symbol::Variant0((__tok)), + _ => unreachable!(), + }, + 25 => match __token { + __tok @ SpannedToken { token: Token::EndParamList, .. } => __Symbol::Variant0((__tok)), + _ => unreachable!(), + }, + 26 => match __token { + __tok @ SpannedToken { token: Token::KeywordFunction, .. } => __Symbol::Variant0((__tok)), + _ => unreachable!(), + }, + 27 => match __token { + __tok @ SpannedToken { token: Token::TyInt, .. } => __Symbol::Variant0((__tok)), + _ => unreachable!(), + }, + 28 => match __token { + __tok @ SpannedToken { token: Token::TyList, .. } => __Symbol::Variant0((__tok)), + _ => unreachable!(), + }, + 29 => match __token { + __tok @ SpannedToken { token: Token::Member, .. } => __Symbol::Variant0((__tok)), + _ => unreachable!(), + }, + 30 => match __token { + __tok @ SpannedToken { token: Token::Newline, .. } => __Symbol::Variant0((__tok)), + _ => unreachable!(), + }, + 31 => match __token { + __tok @ SpannedToken { token: Token::Num, .. } => __Symbol::Variant0((__tok)), + _ => unreachable!(), + }, + 32 => match __token { + __tok @ SpannedToken { token: Token::TyObject, .. } => __Symbol::Variant0((__tok)), + _ => unreachable!(), + }, + 33 => match __token { + __tok @ SpannedToken { token: Token::SQMember, .. } => __Symbol::Variant0((__tok)), + _ => unreachable!(), + }, + 34 => match __token { + __tok @ SpannedToken { token: Token::SQString, .. } => __Symbol::Variant0((__tok)), + _ => unreachable!(), + }, + 35 => match __token { + __tok @ SpannedToken { token: Token::StartParamList, .. } => __Symbol::Variant0((__tok)), + _ => unreachable!(), + }, + 36 => match __token { + __tok @ SpannedToken { token: Token::TyText, .. } => __Symbol::Variant0((__tok)), + _ => unreachable!(), + }, + 37 => match __token { + __tok @ SpannedToken { token: Token::Unit, .. } => __Symbol::Variant0((__tok)), + _ => unreachable!(), + }, + 38 => match __token { + __tok @ SpannedToken { token: Token::Variable, .. } => __Symbol::Variant0((__tok)), + _ => unreachable!(), + }, + 39 => match __token { + __tok @ SpannedToken { token: Token::OpenBrace, .. } => __Symbol::Variant0((__tok)), + _ => unreachable!(), + }, + 40 => match __token { + __tok @ SpannedToken { token: Token::Pipe, .. } => __Symbol::Variant0((__tok)), + _ => unreachable!(), + }, + 41 => match __token { __tok @ SpannedToken { token: Token::CloseBrace, .. } => __Symbol::Variant0((__tok)), _ => unreachable!(), }, @@ -3455,7 +10566,7 @@ mod __parse__Pipeline { } 2 => { __state_machine::SimulatedReduce::Reduce { - states_to_pop: 3, + states_to_pop: 0, nonterminal_produced: 1, } } @@ -3467,26 +10578,26 @@ mod __parse__Pipeline { } 4 => { __state_machine::SimulatedReduce::Reduce { - states_to_pop: 0, + states_to_pop: 2, nonterminal_produced: 3, } } 5 => { __state_machine::SimulatedReduce::Reduce { - states_to_pop: 1, + states_to_pop: 3, nonterminal_produced: 3, } } 6 => { __state_machine::SimulatedReduce::Reduce { - states_to_pop: 2, + states_to_pop: 1, nonterminal_produced: 4, } } 7 => { __state_machine::SimulatedReduce::Reduce { - states_to_pop: 3, - nonterminal_produced: 4, + states_to_pop: 0, + nonterminal_produced: 5, } } 8 => { @@ -3509,7 +10620,7 @@ mod __parse__Pipeline { } 11 => { __state_machine::SimulatedReduce::Reduce { - states_to_pop: 0, + states_to_pop: 2, nonterminal_produced: 7, } } @@ -3522,79 +10633,79 @@ mod __parse__Pipeline { 13 => { __state_machine::SimulatedReduce::Reduce { states_to_pop: 1, - nonterminal_produced: 9, + nonterminal_produced: 8, } } 14 => { __state_machine::SimulatedReduce::Reduce { - states_to_pop: 1, + states_to_pop: 2, nonterminal_produced: 9, } } 15 => { __state_machine::SimulatedReduce::Reduce { - states_to_pop: 1, - nonterminal_produced: 10, + states_to_pop: 3, + nonterminal_produced: 9, } } 16 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 2, + nonterminal_produced: 10, + } + } + 17 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 0, + nonterminal_produced: 11, + } + } + 18 => { __state_machine::SimulatedReduce::Reduce { states_to_pop: 1, nonterminal_produced: 11, } } - 17 => { + 19 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 2, + nonterminal_produced: 12, + } + } + 20 => { __state_machine::SimulatedReduce::Reduce { states_to_pop: 3, nonterminal_produced: 12, } } - 18 => { - __state_machine::SimulatedReduce::Reduce { - states_to_pop: 3, - nonterminal_produced: 13, - } - } - 19 => { - __state_machine::SimulatedReduce::Reduce { - states_to_pop: 3, - nonterminal_produced: 13, - } - } - 20 => { - __state_machine::SimulatedReduce::Reduce { - states_to_pop: 2, - nonterminal_produced: 14, - } - } 21 => { __state_machine::SimulatedReduce::Reduce { - states_to_pop: 3, - nonterminal_produced: 14, + states_to_pop: 1, + nonterminal_produced: 13, } } 22 => { __state_machine::SimulatedReduce::Reduce { - states_to_pop: 2, + states_to_pop: 1, nonterminal_produced: 14, } } 23 => { __state_machine::SimulatedReduce::Reduce { - states_to_pop: 3, + states_to_pop: 2, nonterminal_produced: 14, } } 24 => { __state_machine::SimulatedReduce::Reduce { - states_to_pop: 1, + states_to_pop: 4, nonterminal_produced: 15, } } 25 => { __state_machine::SimulatedReduce::Reduce { - states_to_pop: 1, - nonterminal_produced: 15, + states_to_pop: 0, + nonterminal_produced: 16, } } 26 => { @@ -3605,237 +10716,585 @@ mod __parse__Pipeline { } 27 => { __state_machine::SimulatedReduce::Reduce { - states_to_pop: 2, - nonterminal_produced: 16, + states_to_pop: 4, + nonterminal_produced: 17, } } 28 => { __state_machine::SimulatedReduce::Reduce { - states_to_pop: 2, + states_to_pop: 5, nonterminal_produced: 17, } } 29 => { __state_machine::SimulatedReduce::Reduce { - states_to_pop: 2, - nonterminal_produced: 17, + states_to_pop: 0, + nonterminal_produced: 18, } } 30 => { __state_machine::SimulatedReduce::Reduce { - states_to_pop: 1, - nonterminal_produced: 18, + states_to_pop: 0, + nonterminal_produced: 19, } } 31 => { __state_machine::SimulatedReduce::Reduce { states_to_pop: 1, - nonterminal_produced: 19, + nonterminal_produced: 20, } } 32 => { __state_machine::SimulatedReduce::Reduce { states_to_pop: 1, - nonterminal_produced: 19, + nonterminal_produced: 20, } } 33 => { __state_machine::SimulatedReduce::Reduce { states_to_pop: 1, - nonterminal_produced: 19, + nonterminal_produced: 21, } } 34 => { __state_machine::SimulatedReduce::Reduce { states_to_pop: 1, - nonterminal_produced: 19, + nonterminal_produced: 22, } } 35 => { __state_machine::SimulatedReduce::Reduce { - states_to_pop: 1, - nonterminal_produced: 20, + states_to_pop: 3, + nonterminal_produced: 23, } } 36 => { __state_machine::SimulatedReduce::Reduce { - states_to_pop: 1, - nonterminal_produced: 20, + states_to_pop: 3, + nonterminal_produced: 24, } } 37 => { __state_machine::SimulatedReduce::Reduce { - states_to_pop: 1, - nonterminal_produced: 20, + states_to_pop: 3, + nonterminal_produced: 24, } } 38 => { __state_machine::SimulatedReduce::Reduce { - states_to_pop: 1, - nonterminal_produced: 21, + states_to_pop: 3, + nonterminal_produced: 25, } } 39 => { __state_machine::SimulatedReduce::Reduce { - states_to_pop: 1, - nonterminal_produced: 21, + states_to_pop: 3, + nonterminal_produced: 25, } } 40 => { __state_machine::SimulatedReduce::Reduce { - states_to_pop: 3, - nonterminal_produced: 21, + states_to_pop: 2, + nonterminal_produced: 26, } } 41 => { __state_machine::SimulatedReduce::Reduce { states_to_pop: 3, - nonterminal_produced: 21, + nonterminal_produced: 26, } } 42 => { __state_machine::SimulatedReduce::Reduce { - states_to_pop: 3, - nonterminal_produced: 21, + states_to_pop: 2, + nonterminal_produced: 26, } } 43 => { __state_machine::SimulatedReduce::Reduce { - states_to_pop: 1, - nonterminal_produced: 22, + states_to_pop: 3, + nonterminal_produced: 26, } } 44 => { __state_machine::SimulatedReduce::Reduce { states_to_pop: 1, - nonterminal_produced: 22, + nonterminal_produced: 27, } } 45 => { __state_machine::SimulatedReduce::Reduce { states_to_pop: 1, - nonterminal_produced: 22, + nonterminal_produced: 27, } } 46 => { __state_machine::SimulatedReduce::Reduce { states_to_pop: 1, - nonterminal_produced: 22, + nonterminal_produced: 28, } } 47 => { __state_machine::SimulatedReduce::Reduce { - states_to_pop: 1, - nonterminal_produced: 22, + states_to_pop: 0, + nonterminal_produced: 28, } } 48 => { __state_machine::SimulatedReduce::Reduce { - states_to_pop: 1, - nonterminal_produced: 22, + states_to_pop: 2, + nonterminal_produced: 28, } } 49 => { __state_machine::SimulatedReduce::Reduce { states_to_pop: 1, - nonterminal_produced: 23, + nonterminal_produced: 28, } } 50 => { __state_machine::SimulatedReduce::Reduce { - states_to_pop: 2, - nonterminal_produced: 23, + states_to_pop: 1, + nonterminal_produced: 29, } } 51 => { __state_machine::SimulatedReduce::Reduce { states_to_pop: 1, - nonterminal_produced: 24, + nonterminal_produced: 30, } } 52 => { - __state_machine::SimulatedReduce::Reduce { - states_to_pop: 1, - nonterminal_produced: 24, - } - } - 53 => { - __state_machine::SimulatedReduce::Reduce { - states_to_pop: 1, - nonterminal_produced: 25, - } - } - 54 => { - __state_machine::SimulatedReduce::Reduce { - states_to_pop: 1, - nonterminal_produced: 25, - } - } - 55 => { - __state_machine::SimulatedReduce::Reduce { - states_to_pop: 1, - nonterminal_produced: 26, - } - } - 56 => { - __state_machine::SimulatedReduce::Reduce { - states_to_pop: 1, - nonterminal_produced: 26, - } - } - 57 => { - __state_machine::SimulatedReduce::Reduce { - states_to_pop: 1, - nonterminal_produced: 26, - } - } - 58 => { - __state_machine::SimulatedReduce::Reduce { - states_to_pop: 1, - nonterminal_produced: 27, - } - } - 59 => { - __state_machine::SimulatedReduce::Reduce { - states_to_pop: 1, - nonterminal_produced: 28, - } - } - 60 => { - __state_machine::SimulatedReduce::Reduce { - states_to_pop: 1, - nonterminal_produced: 28, - } - } - 61 => { - __state_machine::SimulatedReduce::Reduce { - states_to_pop: 2, - nonterminal_produced: 29, - } - } - 62 => { __state_machine::SimulatedReduce::Reduce { states_to_pop: 2, nonterminal_produced: 30, } } - 63 => { + 53 => { __state_machine::SimulatedReduce::Reduce { - states_to_pop: 1, + states_to_pop: 2, nonterminal_produced: 31, } } - 64 => __state_machine::SimulatedReduce::Accept, + 54 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 2, + nonterminal_produced: 31, + } + } + 55 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 3, + nonterminal_produced: 32, + } + } + 56 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 33, + } + } + 57 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 0, + nonterminal_produced: 33, + } + } + 58 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 8, + nonterminal_produced: 34, + } + } + 59 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 6, + nonterminal_produced: 34, + } + } + 60 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 35, + } + } + 61 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 36, + } + } + 62 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 36, + } + } + 63 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 37, + } + } + 64 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 37, + } + } + 65 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 37, + } + } + 66 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 37, + } + } + 67 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 38, + } + } + 68 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 38, + } + } + 69 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 38, + } + } + 70 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 38, + } + } + 71 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 39, + } + } + 72 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 39, + } + } + 73 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 3, + nonterminal_produced: 39, + } + } + 74 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 3, + nonterminal_produced: 39, + } + } + 75 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 3, + nonterminal_produced: 39, + } + } + 76 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 40, + } + } + 77 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 2, + nonterminal_produced: 40, + } + } + 78 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 41, + } + } + 79 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 42, + } + } + 80 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 42, + } + } + 81 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 42, + } + } + 82 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 42, + } + } + 83 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 42, + } + } + 84 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 42, + } + } + 85 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 0, + nonterminal_produced: 43, + } + } + 86 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 43, + } + } + 87 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 44, + } + } + 88 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 2, + nonterminal_produced: 45, + } + } + 89 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 2, + nonterminal_produced: 45, + } + } + 90 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 45, + } + } + 91 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 2, + nonterminal_produced: 46, + } + } + 92 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 47, + } + } + 93 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 2, + nonterminal_produced: 47, + } + } + 94 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 48, + } + } + 95 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 48, + } + } + 96 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 49, + } + } + 97 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 49, + } + } + 98 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 49, + } + } + 99 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 49, + } + } + 100 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 49, + } + } + 101 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 49, + } + } + 102 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 49, + } + } + 103 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 49, + } + } + 104 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 49, + } + } + 105 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 49, + } + } + 106 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 50, + } + } + 107 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 2, + nonterminal_produced: 50, + } + } + 108 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 51, + } + } + 109 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 51, + } + } + 110 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 52, + } + } + 111 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 52, + } + } + 112 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 52, + } + } + 113 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 53, + } + } + 114 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 54, + } + } + 115 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 55, + } + } + 116 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 55, + } + } + 117 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 56, + } + } + 118 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 2, + nonterminal_produced: 57, + } + } + 119 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 2, + nonterminal_produced: 58, + } + } + 120 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 59, + } + } + 121 => { + __state_machine::SimulatedReduce::Reduce { + states_to_pop: 1, + nonterminal_produced: 60, + } + } + 122 => __state_machine::SimulatedReduce::Accept, _ => panic!("invalid reduction index {}", __reduce_index) } } - pub struct PipelineParser { + pub struct ReplLineParser { _priv: (), } - impl PipelineParser { - pub fn new() -> PipelineParser { - PipelineParser { + impl ReplLineParser { + pub fn new() -> ReplLineParser { + ReplLineParser { _priv: (), } } @@ -4065,11 +11524,185 @@ mod __parse__Pipeline { __reduce63(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) } 64 => { - // __Pipeline = Pipeline => ActionFn(0); - let __sym0 = __pop_Variant9(__symbols); + __reduce64(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 65 => { + __reduce65(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 66 => { + __reduce66(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 67 => { + __reduce67(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 68 => { + __reduce68(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 69 => { + __reduce69(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 70 => { + __reduce70(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 71 => { + __reduce71(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 72 => { + __reduce72(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 73 => { + __reduce73(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 74 => { + __reduce74(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 75 => { + __reduce75(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 76 => { + __reduce76(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 77 => { + __reduce77(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 78 => { + __reduce78(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 79 => { + __reduce79(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 80 => { + __reduce80(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 81 => { + __reduce81(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 82 => { + __reduce82(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 83 => { + __reduce83(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 84 => { + __reduce84(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 85 => { + __reduce85(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 86 => { + __reduce86(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 87 => { + __reduce87(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 88 => { + __reduce88(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 89 => { + __reduce89(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 90 => { + __reduce90(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 91 => { + __reduce91(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 92 => { + __reduce92(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 93 => { + __reduce93(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 94 => { + __reduce94(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 95 => { + __reduce95(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 96 => { + __reduce96(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 97 => { + __reduce97(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 98 => { + __reduce98(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 99 => { + __reduce99(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 100 => { + __reduce100(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 101 => { + __reduce101(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 102 => { + __reduce102(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 103 => { + __reduce103(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 104 => { + __reduce104(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 105 => { + __reduce105(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 106 => { + __reduce106(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 107 => { + __reduce107(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 108 => { + __reduce108(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 109 => { + __reduce109(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 110 => { + __reduce110(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 111 => { + __reduce111(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 112 => { + __reduce112(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 113 => { + __reduce113(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 114 => { + __reduce114(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 115 => { + __reduce115(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 116 => { + __reduce116(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 117 => { + __reduce117(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 118 => { + __reduce118(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 119 => { + __reduce119(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 120 => { + __reduce120(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 121 => { + __reduce121(__action, __lookahead_start, __states, __symbols, ::std::marker::PhantomData::<(&())>) + } + 122 => { + // __ReplLine = ReplLine => ActionFn(1); + let __sym0 = __pop_Variant25(__symbols); let __start = __sym0.0.clone(); let __end = __sym0.2.clone(); - let __nt = super::__action0::<>(__sym0); + let __nt = super::__action1::<>(__sym0); return Some(Ok(__nt)); } _ => panic!("invalid action code {}", __action) @@ -4077,51 +11710,40 @@ mod __parse__Pipeline { let __states_len = __states.len(); __states.truncate(__states_len - __pop_states); let __state = *__states.last().unwrap() as usize; - let __next_state = __GOTO[__state * 33 + __nonterminal] - 1; + let __next_state = __GOTO[__state * 62 + __nonterminal] - 1; __states.push(__next_state); None } - fn __pop_Variant5< + fn __pop_Variant21< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, (), usize) + { + match __symbols.pop().unwrap() { + (__l, __Symbol::Variant21(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Variant13< 'input, >( __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> ) -> (usize, Bare, usize) { match __symbols.pop().unwrap() { - (__l, __Symbol::Variant5(__v), __r) => (__l, __v, __r), + (__l, __Symbol::Variant13(__v), __r) => (__l, __v, __r), _ => panic!("symbol type mismatch") } } - fn __pop_Variant2< + fn __pop_Variant6< 'input, >( __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> ) -> (usize, Expression, usize) { match __symbols.pop().unwrap() { - (__l, __Symbol::Variant2(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Variant8< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, Operator, usize) - { - match __symbols.pop().unwrap() { - (__l, __Symbol::Variant8(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Variant9< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, Pipeline, usize) - { - match __symbols.pop().unwrap() { - (__l, __Symbol::Variant9(__v), __r) => (__l, __v, __r), + (__l, __Symbol::Variant6(__v), __r) => (__l, __v, __r), _ => panic!("symbol type mismatch") } } @@ -4129,13 +11751,145 @@ mod __parse__Pipeline { 'input, >( __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, Spanned, usize) + ) -> (usize, FormalParameter, usize) { match __symbols.pop().unwrap() { (__l, __Symbol::Variant10(__v), __r) => (__l, __v, __r), _ => panic!("symbol type mismatch") } } + fn __pop_Variant18< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, Function, usize) + { + match __symbols.pop().unwrap() { + (__l, __Symbol::Variant18(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Variant8< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, Item, usize) + { + match __symbols.pop().unwrap() { + (__l, __Symbol::Variant8(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Variant20< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, Module, usize) + { + match __symbols.pop().unwrap() { + (__l, __Symbol::Variant20(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Variant22< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, Operator, usize) + { + match __symbols.pop().unwrap() { + (__l, __Symbol::Variant22(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Variant23< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, ParameterIdentifier, usize) + { + match __symbols.pop().unwrap() { + (__l, __Symbol::Variant23(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Variant25< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, Pipeline, usize) + { + match __symbols.pop().unwrap() { + (__l, __Symbol::Variant25(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Variant16< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, Spanned, usize) + { + match __symbols.pop().unwrap() { + (__l, __Symbol::Variant16(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Variant14< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, Spanned, usize) + { + match __symbols.pop().unwrap() { + (__l, __Symbol::Variant14(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Variant27< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, Spanned, usize) + { + match __symbols.pop().unwrap() { + (__l, __Symbol::Variant27(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Variant3< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, Spanned, usize) + { + match __symbols.pop().unwrap() { + (__l, __Symbol::Variant3(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Variant1< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, Spanned, usize) + { + match __symbols.pop().unwrap() { + (__l, __Symbol::Variant1(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Variant24< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, Spanned, usize) + { + match __symbols.pop().unwrap() { + (__l, __Symbol::Variant24(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } fn __pop_Variant0< 'input, >( @@ -4147,25 +11901,102 @@ mod __parse__Pipeline { _ => panic!("symbol type mismatch") } } - fn __pop_Variant7< + fn __pop_Variant26< 'input, >( __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, String, usize) + ) -> (usize, Type, usize) { match __symbols.pop().unwrap() { - (__l, __Symbol::Variant7(__v), __r) => (__l, __v, __r), + (__l, __Symbol::Variant26(__v), __r) => (__l, __v, __r), _ => panic!("symbol type mismatch") } } - fn __pop_Variant6< + fn __pop_Variant15< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, Vec, usize) + { + match __symbols.pop().unwrap() { + (__l, __Symbol::Variant15(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Variant19< 'input, >( __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> ) -> (usize, i64, usize) { match __symbols.pop().unwrap() { - (__l, __Symbol::Variant6(__v), __r) => (__l, __v, __r), + (__l, __Symbol::Variant19(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Variant12< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, usize, usize) + { + match __symbols.pop().unwrap() { + (__l, __Symbol::Variant12(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Variant17< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, ::std::option::Option, usize) + { + match __symbols.pop().unwrap() { + (__l, __Symbol::Variant17(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Variant2< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, ::std::option::Option>, usize) + { + match __symbols.pop().unwrap() { + (__l, __Symbol::Variant2(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Variant7< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, ::std::vec::Vec, usize) + { + match __symbols.pop().unwrap() { + (__l, __Symbol::Variant7(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Variant11< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, ::std::vec::Vec, usize) + { + match __symbols.pop().unwrap() { + (__l, __Symbol::Variant11(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Variant9< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, ::std::vec::Vec, usize) + { + match __symbols.pop().unwrap() { + (__l, __Symbol::Variant9(__v), __r) => (__l, __v, __r), _ => panic!("symbol type mismatch") } } @@ -4173,32 +12004,21 @@ mod __parse__Pipeline { 'input, >( __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, usize, usize) + ) -> (usize, ::std::vec::Vec>, usize) { match __symbols.pop().unwrap() { (__l, __Symbol::Variant4(__v), __r) => (__l, __v, __r), _ => panic!("symbol type mismatch") } } - fn __pop_Variant3< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, ::std::vec::Vec, usize) - { - match __symbols.pop().unwrap() { - (__l, __Symbol::Variant3(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Variant1< + fn __pop_Variant5< 'input, >( __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> ) -> (usize, ::std::vec::Vec>, usize) { match __symbols.pop().unwrap() { - (__l, __Symbol::Variant1(__v), __r) => (__l, __v, __r), + (__l, __Symbol::Variant5(__v), __r) => (__l, __v, __r), _ => panic!("symbol type mismatch") } } @@ -4212,13 +12032,13 @@ mod __parse__Pipeline { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // ("???." <"member">) = "???.", "member" => ActionFn(53); - let __sym1 = __pop_Variant0(__symbols); + // ("->" ) = "->", Type => ActionFn(95); + let __sym1 = __pop_Variant1(__symbols); let __sym0 = __pop_Variant0(__symbols); let __start = __sym0.0.clone(); let __end = __sym1.2.clone(); - let __nt = super::__action53::<>(__sym0, __sym1); - __symbols.push((__start, __Symbol::Variant0(__nt), __end)); + let __nt = super::__action95::<>(__sym0, __sym1); + __symbols.push((__start, __Symbol::Variant1(__nt), __end)); (2, 0) } pub(crate) fn __reduce1< @@ -4231,13 +12051,13 @@ mod __parse__Pipeline { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // ("???." <"member">)+ = "???.", "member" => ActionFn(64); - let __sym1 = __pop_Variant0(__symbols); + // ("->" )? = "->", Type => ActionFn(115); + let __sym1 = __pop_Variant1(__symbols); let __sym0 = __pop_Variant0(__symbols); let __start = __sym0.0.clone(); let __end = __sym1.2.clone(); - let __nt = super::__action64::<>(__sym0, __sym1); - __symbols.push((__start, __Symbol::Variant1(__nt), __end)); + let __nt = super::__action115::<>(__sym0, __sym1); + __symbols.push((__start, __Symbol::Variant2(__nt), __end)); (2, 1) } pub(crate) fn __reduce2< @@ -4250,15 +12070,12 @@ mod __parse__Pipeline { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // ("???." <"member">)+ = ("???." <"member">)+, "???.", "member" => ActionFn(65); - let __sym2 = __pop_Variant0(__symbols); - let __sym1 = __pop_Variant0(__symbols); - let __sym0 = __pop_Variant1(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym2.2.clone(); - let __nt = super::__action65::<>(__sym0, __sym1, __sym2); - __symbols.push((__start, __Symbol::Variant1(__nt), __end)); - (3, 1) + // ("->" )? = => ActionFn(94); + let __start = __symbols.last().map(|s| s.2.clone()).unwrap_or_default(); + let __end = __lookahead_start.cloned().unwrap_or_else(|| __start.clone()); + let __nt = super::__action94::<>(&__start, &__end); + __symbols.push((__start, __Symbol::Variant2(__nt), __end)); + (0, 1) } pub(crate) fn __reduce3< 'input, @@ -4270,13 +12087,13 @@ mod __parse__Pipeline { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // ("|" ) = "|", PipelineElement => ActionFn(60); - let __sym1 = __pop_Variant2(__symbols); + // ("???." ) = "???.", Member => ActionFn(83); + let __sym1 = __pop_Variant3(__symbols); let __sym0 = __pop_Variant0(__symbols); let __start = __sym0.0.clone(); let __end = __sym1.2.clone(); - let __nt = super::__action60::<>(__sym0, __sym1); - __symbols.push((__start, __Symbol::Variant2(__nt), __end)); + let __nt = super::__action83::<>(__sym0, __sym1); + __symbols.push((__start, __Symbol::Variant3(__nt), __end)); (2, 2) } pub(crate) fn __reduce4< @@ -4289,12 +12106,14 @@ mod __parse__Pipeline { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // ("|" )* = => ActionFn(58); - let __start = __symbols.last().map(|s| s.2.clone()).unwrap_or_default(); - let __end = __lookahead_start.cloned().unwrap_or_else(|| __start.clone()); - let __nt = super::__action58::<>(&__start, &__end); - __symbols.push((__start, __Symbol::Variant3(__nt), __end)); - (0, 3) + // ("???." )+ = "???.", Member => ActionFn(118); + let __sym1 = __pop_Variant3(__symbols); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym1.2.clone(); + let __nt = super::__action118::<>(__sym0, __sym1); + __symbols.push((__start, __Symbol::Variant4(__nt), __end)); + (2, 3) } pub(crate) fn __reduce5< 'input, @@ -4306,13 +12125,15 @@ mod __parse__Pipeline { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // ("|" )* = ("|" )+ => ActionFn(59); - let __sym0 = __pop_Variant3(__symbols); + // ("???." )+ = ("???." )+, "???.", Member => ActionFn(119); + let __sym2 = __pop_Variant3(__symbols); + let __sym1 = __pop_Variant0(__symbols); + let __sym0 = __pop_Variant4(__symbols); let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action59::<>(__sym0); - __symbols.push((__start, __Symbol::Variant3(__nt), __end)); - (1, 3) + let __end = __sym2.2.clone(); + let __nt = super::__action119::<>(__sym0, __sym1, __sym2); + __symbols.push((__start, __Symbol::Variant4(__nt), __end)); + (3, 3) } pub(crate) fn __reduce6< 'input, @@ -4324,14 +12145,13 @@ mod __parse__Pipeline { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // ("|" )+ = "|", PipelineElement => ActionFn(66); - let __sym1 = __pop_Variant2(__symbols); + // ("newline") = "newline" => ActionFn(102); let __sym0 = __pop_Variant0(__symbols); let __start = __sym0.0.clone(); - let __end = __sym1.2.clone(); - let __nt = super::__action66::<>(__sym0, __sym1); - __symbols.push((__start, __Symbol::Variant3(__nt), __end)); - (2, 4) + let __end = __sym0.2.clone(); + let __nt = super::__action102::<>(__sym0); + __symbols.push((__start, __Symbol::Variant0(__nt), __end)); + (1, 4) } pub(crate) fn __reduce7< 'input, @@ -4343,15 +12163,12 @@ mod __parse__Pipeline { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // ("|" )+ = ("|" )+, "|", PipelineElement => ActionFn(67); - let __sym2 = __pop_Variant2(__symbols); - let __sym1 = __pop_Variant0(__symbols); - let __sym0 = __pop_Variant3(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym2.2.clone(); - let __nt = super::__action67::<>(__sym0, __sym1, __sym2); - __symbols.push((__start, __Symbol::Variant3(__nt), __end)); - (3, 4) + // ("newline")* = => ActionFn(90); + let __start = __symbols.last().map(|s| s.2.clone()).unwrap_or_default(); + let __end = __lookahead_start.cloned().unwrap_or_else(|| __start.clone()); + let __nt = super::__action90::<>(&__start, &__end); + __symbols.push((__start, __Symbol::Variant5(__nt), __end)); + (0, 5) } pub(crate) fn __reduce8< 'input, @@ -4363,12 +12180,12 @@ mod __parse__Pipeline { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // () = CallArgument => ActionFn(56); - let __sym0 = __pop_Variant2(__symbols); + // ("newline")* = ("newline")+ => ActionFn(91); + let __sym0 = __pop_Variant5(__symbols); let __start = __sym0.0.clone(); let __end = __sym0.2.clone(); - let __nt = super::__action56::<>(__sym0); - __symbols.push((__start, __Symbol::Variant2(__nt), __end)); + let __nt = super::__action91::<>(__sym0); + __symbols.push((__start, __Symbol::Variant5(__nt), __end)); (1, 5) } pub(crate) fn __reduce9< @@ -4381,12 +12198,12 @@ mod __parse__Pipeline { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // ()+ = CallArgument => ActionFn(70); - let __sym0 = __pop_Variant2(__symbols); + // ("newline")+ = "newline" => ActionFn(120); + let __sym0 = __pop_Variant0(__symbols); let __start = __sym0.0.clone(); let __end = __sym0.2.clone(); - let __nt = super::__action70::<>(__sym0); - __symbols.push((__start, __Symbol::Variant3(__nt), __end)); + let __nt = super::__action120::<>(__sym0); + __symbols.push((__start, __Symbol::Variant5(__nt), __end)); (1, 6) } pub(crate) fn __reduce10< @@ -4399,13 +12216,13 @@ mod __parse__Pipeline { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // ()+ = ()+, CallArgument => ActionFn(71); - let __sym1 = __pop_Variant2(__symbols); - let __sym0 = __pop_Variant3(__symbols); + // ("newline")+ = ("newline")+, "newline" => ActionFn(121); + let __sym1 = __pop_Variant0(__symbols); + let __sym0 = __pop_Variant5(__symbols); let __start = __sym0.0.clone(); let __end = __sym1.2.clone(); - let __nt = super::__action71::<>(__sym0, __sym1); - __symbols.push((__start, __Symbol::Variant3(__nt), __end)); + let __nt = super::__action121::<>(__sym0, __sym1); + __symbols.push((__start, __Symbol::Variant5(__nt), __end)); (2, 6) } pub(crate) fn __reduce11< @@ -4418,12 +12235,14 @@ mod __parse__Pipeline { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // @L = => ActionFn(61); - let __start = __symbols.last().map(|s| s.2.clone()).unwrap_or_default(); - let __end = __lookahead_start.cloned().unwrap_or_else(|| __start.clone()); - let __nt = super::__action61::<>(&__start, &__end); - __symbols.push((__start, __Symbol::Variant4(__nt), __end)); - (0, 7) + // ("|" ) = "|", PipelineElement => ActionFn(89); + let __sym1 = __pop_Variant6(__symbols); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym1.2.clone(); + let __nt = super::__action89::<>(__sym0, __sym1); + __symbols.push((__start, __Symbol::Variant6(__nt), __end)); + (2, 7) } pub(crate) fn __reduce12< 'input, @@ -4435,11 +12254,11 @@ mod __parse__Pipeline { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // @R = => ActionFn(57); + // ("|" )* = => ActionFn(87); let __start = __symbols.last().map(|s| s.2.clone()).unwrap_or_default(); let __end = __lookahead_start.cloned().unwrap_or_else(|| __start.clone()); - let __nt = super::__action57::<>(&__start, &__end); - __symbols.push((__start, __Symbol::Variant4(__nt), __end)); + let __nt = super::__action87::<>(&__start, &__end); + __symbols.push((__start, __Symbol::Variant7(__nt), __end)); (0, 8) } pub(crate) fn __reduce13< @@ -4452,13 +12271,13 @@ mod __parse__Pipeline { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // ArgumentExpression = Expression => ActionFn(23); - let __sym0 = __pop_Variant2(__symbols); + // ("|" )* = ("|" )+ => ActionFn(88); + let __sym0 = __pop_Variant7(__symbols); let __start = __sym0.0.clone(); let __end = __sym0.2.clone(); - let __nt = super::__action23::<>(__sym0); - __symbols.push((__start, __Symbol::Variant2(__nt), __end)); - (1, 9) + let __nt = super::__action88::<>(__sym0); + __symbols.push((__start, __Symbol::Variant7(__nt), __end)); + (1, 8) } pub(crate) fn __reduce14< 'input, @@ -4470,13 +12289,14 @@ mod __parse__Pipeline { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // ArgumentExpression = BareExpression => ActionFn(24); - let __sym0 = __pop_Variant2(__symbols); + // ("|" )+ = "|", PipelineElement => ActionFn(126); + let __sym1 = __pop_Variant6(__symbols); + let __sym0 = __pop_Variant0(__symbols); let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action24::<>(__sym0); - __symbols.push((__start, __Symbol::Variant2(__nt), __end)); - (1, 9) + let __end = __sym1.2.clone(); + let __nt = super::__action126::<>(__sym0, __sym1); + __symbols.push((__start, __Symbol::Variant7(__nt), __end)); + (2, 9) } pub(crate) fn __reduce15< 'input, @@ -4488,13 +12308,15 @@ mod __parse__Pipeline { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // Bare = "bare" => ActionFn(34); - let __sym0 = __pop_Variant0(__symbols); + // ("|" )+ = ("|" )+, "|", PipelineElement => ActionFn(127); + let __sym2 = __pop_Variant6(__symbols); + let __sym1 = __pop_Variant0(__symbols); + let __sym0 = __pop_Variant7(__symbols); let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action34::<>(__sym0); - __symbols.push((__start, __Symbol::Variant5(__nt), __end)); - (1, 10) + let __end = __sym2.2.clone(); + let __nt = super::__action127::<>(__sym0, __sym1, __sym2); + __symbols.push((__start, __Symbol::Variant7(__nt), __end)); + (3, 9) } pub(crate) fn __reduce16< 'input, @@ -4506,13 +12328,14 @@ mod __parse__Pipeline { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // BareExpression = Bare => ActionFn(95); + // (("newline")+ ) = ("newline")+, Item => ActionFn(99); + let __sym1 = __pop_Variant8(__symbols); let __sym0 = __pop_Variant5(__symbols); let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action95::<>(__sym0); - __symbols.push((__start, __Symbol::Variant2(__nt), __end)); - (1, 11) + let __end = __sym1.2.clone(); + let __nt = super::__action99::<>(__sym0, __sym1); + __symbols.push((__start, __Symbol::Variant8(__nt), __end)); + (2, 10) } pub(crate) fn __reduce17< 'input, @@ -4524,15 +12347,12 @@ mod __parse__Pipeline { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // Binary = ArgumentExpression, SpannedOperator, ArgumentExpression => ActionFn(96); - let __sym2 = __pop_Variant2(__symbols); - let __sym1 = __pop_Variant10(__symbols); - let __sym0 = __pop_Variant2(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym2.2.clone(); - let __nt = super::__action96::<>(__sym0, __sym1, __sym2); - __symbols.push((__start, __Symbol::Variant2(__nt), __end)); - (3, 12) + // (("newline")+ )* = => ActionFn(97); + let __start = __symbols.last().map(|s| s.2.clone()).unwrap_or_default(); + let __end = __lookahead_start.cloned().unwrap_or_else(|| __start.clone()); + let __nt = super::__action97::<>(&__start, &__end); + __symbols.push((__start, __Symbol::Variant9(__nt), __end)); + (0, 11) } pub(crate) fn __reduce18< 'input, @@ -4544,15 +12364,13 @@ mod __parse__Pipeline { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // Block = "{", SingleExpression, "}" => ActionFn(97); - let __sym2 = __pop_Variant0(__symbols); - let __sym1 = __pop_Variant2(__symbols); - let __sym0 = __pop_Variant0(__symbols); + // (("newline")+ )* = (("newline")+ )+ => ActionFn(98); + let __sym0 = __pop_Variant9(__symbols); let __start = __sym0.0.clone(); - let __end = __sym2.2.clone(); - let __nt = super::__action97::<>(__sym0, __sym1, __sym2); - __symbols.push((__start, __Symbol::Variant2(__nt), __end)); - (3, 13) + let __end = __sym0.2.clone(); + let __nt = super::__action98::<>(__sym0); + __symbols.push((__start, __Symbol::Variant9(__nt), __end)); + (1, 11) } pub(crate) fn __reduce19< 'input, @@ -4564,15 +12382,14 @@ mod __parse__Pipeline { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // Block = "{", BareExpression, "}" => ActionFn(98); - let __sym2 = __pop_Variant0(__symbols); - let __sym1 = __pop_Variant2(__symbols); - let __sym0 = __pop_Variant0(__symbols); + // (("newline")+ )+ = ("newline")+, Item => ActionFn(130); + let __sym1 = __pop_Variant8(__symbols); + let __sym0 = __pop_Variant5(__symbols); let __start = __sym0.0.clone(); - let __end = __sym2.2.clone(); - let __nt = super::__action98::<>(__sym0, __sym1, __sym2); - __symbols.push((__start, __Symbol::Variant2(__nt), __end)); - (3, 13) + let __end = __sym1.2.clone(); + let __nt = super::__action130::<>(__sym0, __sym1); + __symbols.push((__start, __Symbol::Variant9(__nt), __end)); + (2, 12) } pub(crate) fn __reduce20< 'input, @@ -4584,14 +12401,15 @@ mod __parse__Pipeline { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // Call = Expression, SingleCallArgument => ActionFn(99); - let __sym1 = __pop_Variant2(__symbols); - let __sym0 = __pop_Variant2(__symbols); + // (("newline")+ )+ = (("newline")+ )+, ("newline")+, Item => ActionFn(131); + let __sym2 = __pop_Variant8(__symbols); + let __sym1 = __pop_Variant5(__symbols); + let __sym0 = __pop_Variant9(__symbols); let __start = __sym0.0.clone(); - let __end = __sym1.2.clone(); - let __nt = super::__action99::<>(__sym0, __sym1); - __symbols.push((__start, __Symbol::Variant2(__nt), __end)); - (2, 14) + let __end = __sym2.2.clone(); + let __nt = super::__action131::<>(__sym0, __sym1, __sym2); + __symbols.push((__start, __Symbol::Variant9(__nt), __end)); + (3, 12) } pub(crate) fn __reduce21< 'input, @@ -4603,15 +12421,13 @@ mod __parse__Pipeline { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // Call = Expression, CallArgument, ()+ => ActionFn(100); - let __sym2 = __pop_Variant3(__symbols); - let __sym1 = __pop_Variant2(__symbols); - let __sym0 = __pop_Variant2(__symbols); + // () = CallArgument => ActionFn(86); + let __sym0 = __pop_Variant6(__symbols); let __start = __sym0.0.clone(); - let __end = __sym2.2.clone(); - let __nt = super::__action100::<>(__sym0, __sym1, __sym2); - __symbols.push((__start, __Symbol::Variant2(__nt), __end)); - (3, 14) + let __end = __sym0.2.clone(); + let __nt = super::__action86::<>(__sym0); + __symbols.push((__start, __Symbol::Variant6(__nt), __end)); + (1, 13) } pub(crate) fn __reduce22< 'input, @@ -4623,14 +12439,13 @@ mod __parse__Pipeline { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // Call = BareExpression, SingleCallArgument => ActionFn(101); - let __sym1 = __pop_Variant2(__symbols); - let __sym0 = __pop_Variant2(__symbols); + // ()+ = CallArgument => ActionFn(134); + let __sym0 = __pop_Variant6(__symbols); let __start = __sym0.0.clone(); - let __end = __sym1.2.clone(); - let __nt = super::__action101::<>(__sym0, __sym1); - __symbols.push((__start, __Symbol::Variant2(__nt), __end)); - (2, 14) + let __end = __sym0.2.clone(); + let __nt = super::__action134::<>(__sym0); + __symbols.push((__start, __Symbol::Variant7(__nt), __end)); + (1, 14) } pub(crate) fn __reduce23< 'input, @@ -4642,15 +12457,14 @@ mod __parse__Pipeline { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // Call = BareExpression, CallArgument, ()+ => ActionFn(102); - let __sym2 = __pop_Variant3(__symbols); - let __sym1 = __pop_Variant2(__symbols); - let __sym0 = __pop_Variant2(__symbols); + // ()+ = ()+, CallArgument => ActionFn(135); + let __sym1 = __pop_Variant6(__symbols); + let __sym0 = __pop_Variant7(__symbols); let __start = __sym0.0.clone(); - let __end = __sym2.2.clone(); - let __nt = super::__action102::<>(__sym0, __sym1, __sym2); - __symbols.push((__start, __Symbol::Variant2(__nt), __end)); - (3, 14) + let __end = __sym1.2.clone(); + let __nt = super::__action135::<>(__sym0, __sym1); + __symbols.push((__start, __Symbol::Variant7(__nt), __end)); + (2, 14) } pub(crate) fn __reduce24< 'input, @@ -4662,13 +12476,16 @@ mod __parse__Pipeline { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // CallArgument = ArgumentExpression => ActionFn(25); - let __sym0 = __pop_Variant2(__symbols); + // ( OptionalNewlines "," OptionalNewlines) = FormalParameter, OptionalNewlines, ",", OptionalNewlines => ActionFn(110); + let __sym3 = __pop_Variant21(__symbols); + let __sym2 = __pop_Variant0(__symbols); + let __sym1 = __pop_Variant21(__symbols); + let __sym0 = __pop_Variant10(__symbols); let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action25::<>(__sym0); - __symbols.push((__start, __Symbol::Variant2(__nt), __end)); - (1, 15) + let __end = __sym3.2.clone(); + let __nt = super::__action110::<>(__sym0, __sym1, __sym2, __sym3); + __symbols.push((__start, __Symbol::Variant10(__nt), __end)); + (4, 15) } pub(crate) fn __reduce25< 'input, @@ -4680,13 +12497,12 @@ mod __parse__Pipeline { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // CallArgument = Flag => ActionFn(26); - let __sym0 = __pop_Variant2(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action26::<>(__sym0); - __symbols.push((__start, __Symbol::Variant2(__nt), __end)); - (1, 15) + // ( OptionalNewlines "," OptionalNewlines)* = => ActionFn(108); + let __start = __symbols.last().map(|s| s.2.clone()).unwrap_or_default(); + let __end = __lookahead_start.cloned().unwrap_or_else(|| __start.clone()); + let __nt = super::__action108::<>(&__start, &__end); + __symbols.push((__start, __Symbol::Variant11(__nt), __end)); + (0, 16) } pub(crate) fn __reduce26< 'input, @@ -4698,12 +12514,12 @@ mod __parse__Pipeline { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // Expression = MemberHeadExpression => ActionFn(21); - let __sym0 = __pop_Variant2(__symbols); + // ( OptionalNewlines "," OptionalNewlines)* = ( OptionalNewlines "," OptionalNewlines)+ => ActionFn(109); + let __sym0 = __pop_Variant11(__symbols); let __start = __sym0.0.clone(); let __end = __sym0.2.clone(); - let __nt = super::__action21::<>(__sym0); - __symbols.push((__start, __Symbol::Variant2(__nt), __end)); + let __nt = super::__action109::<>(__sym0); + __symbols.push((__start, __Symbol::Variant11(__nt), __end)); (1, 16) } pub(crate) fn __reduce27< @@ -4716,14 +12532,16 @@ mod __parse__Pipeline { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // Expression = MemberHeadExpression, ("???." <"member">)+ => ActionFn(103); - let __sym1 = __pop_Variant1(__symbols); - let __sym0 = __pop_Variant2(__symbols); + // ( OptionalNewlines "," OptionalNewlines)+ = FormalParameter, OptionalNewlines, ",", OptionalNewlines => ActionFn(136); + let __sym3 = __pop_Variant21(__symbols); + let __sym2 = __pop_Variant0(__symbols); + let __sym1 = __pop_Variant21(__symbols); + let __sym0 = __pop_Variant10(__symbols); let __start = __sym0.0.clone(); - let __end = __sym1.2.clone(); - let __nt = super::__action103::<>(__sym0, __sym1); - __symbols.push((__start, __Symbol::Variant2(__nt), __end)); - (2, 16) + let __end = __sym3.2.clone(); + let __nt = super::__action136::<>(__sym0, __sym1, __sym2, __sym3); + __symbols.push((__start, __Symbol::Variant11(__nt), __end)); + (4, 17) } pub(crate) fn __reduce28< 'input, @@ -4735,14 +12553,17 @@ mod __parse__Pipeline { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // Flag = "-", Bare => ActionFn(104); - let __sym1 = __pop_Variant5(__symbols); - let __sym0 = __pop_Variant0(__symbols); + // ( OptionalNewlines "," OptionalNewlines)+ = ( OptionalNewlines "," OptionalNewlines)+, FormalParameter, OptionalNewlines, ",", OptionalNewlines => ActionFn(137); + let __sym4 = __pop_Variant21(__symbols); + let __sym3 = __pop_Variant0(__symbols); + let __sym2 = __pop_Variant21(__symbols); + let __sym1 = __pop_Variant10(__symbols); + let __sym0 = __pop_Variant11(__symbols); let __start = __sym0.0.clone(); - let __end = __sym1.2.clone(); - let __nt = super::__action104::<>(__sym0, __sym1); - __symbols.push((__start, __Symbol::Variant2(__nt), __end)); - (2, 17) + let __end = __sym4.2.clone(); + let __nt = super::__action137::<>(__sym0, __sym1, __sym2, __sym3, __sym4); + __symbols.push((__start, __Symbol::Variant11(__nt), __end)); + (5, 17) } pub(crate) fn __reduce29< 'input, @@ -4754,14 +12575,12 @@ mod __parse__Pipeline { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // Flag = "--", Bare => ActionFn(105); - let __sym1 = __pop_Variant5(__symbols); - let __sym0 = __pop_Variant0(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym1.2.clone(); - let __nt = super::__action105::<>(__sym0, __sym1); - __symbols.push((__start, __Symbol::Variant2(__nt), __end)); - (2, 17) + // @L = => ActionFn(103); + let __start = __symbols.last().map(|s| s.2.clone()).unwrap_or_default(); + let __end = __lookahead_start.cloned().unwrap_or_else(|| __start.clone()); + let __nt = super::__action103::<>(&__start, &__end); + __symbols.push((__start, __Symbol::Variant12(__nt), __end)); + (0, 18) } pub(crate) fn __reduce30< 'input, @@ -4773,13 +12592,12 @@ mod __parse__Pipeline { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // Int = "num" => ActionFn(44); - let __sym0 = __pop_Variant0(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action44::<>(__sym0); - __symbols.push((__start, __Symbol::Variant6(__nt), __end)); - (1, 18) + // @R = => ActionFn(96); + let __start = __symbols.last().map(|s| s.2.clone()).unwrap_or_default(); + let __end = __lookahead_start.cloned().unwrap_or_else(|| __start.clone()); + let __nt = super::__action96::<>(&__start, &__end); + __symbols.push((__start, __Symbol::Variant12(__nt), __end)); + (0, 19) } pub(crate) fn __reduce31< 'input, @@ -4791,13 +12609,13 @@ mod __parse__Pipeline { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // LeafExpression = String => ActionFn(5); - let __sym0 = __pop_Variant2(__symbols); + // ArgumentExpression = Expression => ActionFn(48); + let __sym0 = __pop_Variant6(__symbols); let __start = __sym0.0.clone(); let __end = __sym0.2.clone(); - let __nt = super::__action5::<>(__sym0); - __symbols.push((__start, __Symbol::Variant2(__nt), __end)); - (1, 19) + let __nt = super::__action48::<>(__sym0); + __symbols.push((__start, __Symbol::Variant6(__nt), __end)); + (1, 20) } pub(crate) fn __reduce32< 'input, @@ -4809,13 +12627,13 @@ mod __parse__Pipeline { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // LeafExpression = Int => ActionFn(106); + // ArgumentExpression = BareExpression => ActionFn(49); let __sym0 = __pop_Variant6(__symbols); let __start = __sym0.0.clone(); let __end = __sym0.2.clone(); - let __nt = super::__action106::<>(__sym0); - __symbols.push((__start, __Symbol::Variant2(__nt), __end)); - (1, 19) + let __nt = super::__action49::<>(__sym0); + __symbols.push((__start, __Symbol::Variant6(__nt), __end)); + (1, 20) } pub(crate) fn __reduce33< 'input, @@ -4827,13 +12645,13 @@ mod __parse__Pipeline { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // LeafExpression = UnitsNum => ActionFn(7); - let __sym0 = __pop_Variant2(__symbols); + // Bare = "bare" => ActionFn(61); + let __sym0 = __pop_Variant0(__symbols); let __start = __sym0.0.clone(); let __end = __sym0.2.clone(); - let __nt = super::__action7::<>(__sym0); - __symbols.push((__start, __Symbol::Variant2(__nt), __end)); - (1, 19) + let __nt = super::__action61::<>(__sym0); + __symbols.push((__start, __Symbol::Variant13(__nt), __end)); + (1, 21) } pub(crate) fn __reduce34< 'input, @@ -4845,13 +12663,13 @@ mod __parse__Pipeline { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // LeafExpression = Var => ActionFn(8); - let __sym0 = __pop_Variant2(__symbols); + // BareExpression = Bare => ActionFn(179); + let __sym0 = __pop_Variant13(__symbols); let __start = __sym0.0.clone(); let __end = __sym0.2.clone(); - let __nt = super::__action8::<>(__sym0); - __symbols.push((__start, __Symbol::Variant2(__nt), __end)); - (1, 19) + let __nt = super::__action179::<>(__sym0); + __symbols.push((__start, __Symbol::Variant6(__nt), __end)); + (1, 22) } pub(crate) fn __reduce35< 'input, @@ -4863,13 +12681,15 @@ mod __parse__Pipeline { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // Member = "member" => ActionFn(35); - let __sym0 = __pop_Variant0(__symbols); + // Binary = ArgumentExpression, SpannedOperator, ArgumentExpression => ActionFn(180); + let __sym2 = __pop_Variant6(__symbols); + let __sym1 = __pop_Variant27(__symbols); + let __sym0 = __pop_Variant6(__symbols); let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action35::<>(__sym0); - __symbols.push((__start, __Symbol::Variant7(__nt), __end)); - (1, 20) + let __end = __sym2.2.clone(); + let __nt = super::__action180::<>(__sym0, __sym1, __sym2); + __symbols.push((__start, __Symbol::Variant6(__nt), __end)); + (3, 23) } pub(crate) fn __reduce36< 'input, @@ -4881,13 +12701,15 @@ mod __parse__Pipeline { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // Member = "dqmember" => ActionFn(36); + // Block = "{", SingleExpression, "}" => ActionFn(181); + let __sym2 = __pop_Variant0(__symbols); + let __sym1 = __pop_Variant6(__symbols); let __sym0 = __pop_Variant0(__symbols); let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action36::<>(__sym0); - __symbols.push((__start, __Symbol::Variant7(__nt), __end)); - (1, 20) + let __end = __sym2.2.clone(); + let __nt = super::__action181::<>(__sym0, __sym1, __sym2); + __symbols.push((__start, __Symbol::Variant14(__nt), __end)); + (3, 24) } pub(crate) fn __reduce37< 'input, @@ -4899,13 +12721,15 @@ mod __parse__Pipeline { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // Member = "sqmember" => ActionFn(37); + // Block = "{", BareExpression, "}" => ActionFn(182); + let __sym2 = __pop_Variant0(__symbols); + let __sym1 = __pop_Variant6(__symbols); let __sym0 = __pop_Variant0(__symbols); let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action37::<>(__sym0); - __symbols.push((__start, __Symbol::Variant7(__nt), __end)); - (1, 20) + let __end = __sym2.2.clone(); + let __nt = super::__action182::<>(__sym0, __sym1, __sym2); + __symbols.push((__start, __Symbol::Variant14(__nt), __end)); + (3, 24) } pub(crate) fn __reduce38< 'input, @@ -4917,13 +12741,15 @@ mod __parse__Pipeline { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // MemberHeadExpression = LeafExpression => ActionFn(16); - let __sym0 = __pop_Variant2(__symbols); + // BlockExpression = "{", SingleExpression, "}" => ActionFn(183); + let __sym2 = __pop_Variant0(__symbols); + let __sym1 = __pop_Variant6(__symbols); + let __sym0 = __pop_Variant0(__symbols); let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action16::<>(__sym0); - __symbols.push((__start, __Symbol::Variant2(__nt), __end)); - (1, 21) + let __end = __sym2.2.clone(); + let __nt = super::__action183::<>(__sym0, __sym1, __sym2); + __symbols.push((__start, __Symbol::Variant6(__nt), __end)); + (3, 25) } pub(crate) fn __reduce39< 'input, @@ -4935,13 +12761,15 @@ mod __parse__Pipeline { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // MemberHeadExpression = Block => ActionFn(17); - let __sym0 = __pop_Variant2(__symbols); + // BlockExpression = "{", BareExpression, "}" => ActionFn(184); + let __sym2 = __pop_Variant0(__symbols); + let __sym1 = __pop_Variant6(__symbols); + let __sym0 = __pop_Variant0(__symbols); let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action17::<>(__sym0); - __symbols.push((__start, __Symbol::Variant2(__nt), __end)); - (1, 21) + let __end = __sym2.2.clone(); + let __nt = super::__action184::<>(__sym0, __sym1, __sym2); + __symbols.push((__start, __Symbol::Variant6(__nt), __end)); + (3, 25) } pub(crate) fn __reduce40< 'input, @@ -4953,15 +12781,14 @@ mod __parse__Pipeline { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // MemberHeadExpression = "(", Call, ")" => ActionFn(107); - let __sym2 = __pop_Variant0(__symbols); - let __sym1 = __pop_Variant2(__symbols); - let __sym0 = __pop_Variant0(__symbols); + // Call = Expression, SingleCallArgument => ActionFn(185); + let __sym1 = __pop_Variant6(__symbols); + let __sym0 = __pop_Variant6(__symbols); let __start = __sym0.0.clone(); - let __end = __sym2.2.clone(); - let __nt = super::__action107::<>(__sym0, __sym1, __sym2); - __symbols.push((__start, __Symbol::Variant2(__nt), __end)); - (3, 21) + let __end = __sym1.2.clone(); + let __nt = super::__action185::<>(__sym0, __sym1); + __symbols.push((__start, __Symbol::Variant6(__nt), __end)); + (2, 26) } pub(crate) fn __reduce41< 'input, @@ -4973,15 +12800,15 @@ mod __parse__Pipeline { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // MemberHeadExpression = "(", BareExpression, ")" => ActionFn(108); - let __sym2 = __pop_Variant0(__symbols); - let __sym1 = __pop_Variant2(__symbols); - let __sym0 = __pop_Variant0(__symbols); + // Call = Expression, CallArgument, ()+ => ActionFn(186); + let __sym2 = __pop_Variant7(__symbols); + let __sym1 = __pop_Variant6(__symbols); + let __sym0 = __pop_Variant6(__symbols); let __start = __sym0.0.clone(); let __end = __sym2.2.clone(); - let __nt = super::__action108::<>(__sym0, __sym1, __sym2); - __symbols.push((__start, __Symbol::Variant2(__nt), __end)); - (3, 21) + let __nt = super::__action186::<>(__sym0, __sym1, __sym2); + __symbols.push((__start, __Symbol::Variant6(__nt), __end)); + (3, 26) } pub(crate) fn __reduce42< 'input, @@ -4993,15 +12820,14 @@ mod __parse__Pipeline { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // MemberHeadExpression = "(", Binary, ")" => ActionFn(109); - let __sym2 = __pop_Variant0(__symbols); - let __sym1 = __pop_Variant2(__symbols); - let __sym0 = __pop_Variant0(__symbols); + // Call = BareExpression, SingleCallArgument => ActionFn(187); + let __sym1 = __pop_Variant6(__symbols); + let __sym0 = __pop_Variant6(__symbols); let __start = __sym0.0.clone(); - let __end = __sym2.2.clone(); - let __nt = super::__action109::<>(__sym0, __sym1, __sym2); - __symbols.push((__start, __Symbol::Variant2(__nt), __end)); - (3, 21) + let __end = __sym1.2.clone(); + let __nt = super::__action187::<>(__sym0, __sym1); + __symbols.push((__start, __Symbol::Variant6(__nt), __end)); + (2, 26) } pub(crate) fn __reduce43< 'input, @@ -5013,13 +12839,15 @@ mod __parse__Pipeline { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // Operator = "==" => ActionFn(38); - let __sym0 = __pop_Variant0(__symbols); + // Call = BareExpression, CallArgument, ()+ => ActionFn(188); + let __sym2 = __pop_Variant7(__symbols); + let __sym1 = __pop_Variant6(__symbols); + let __sym0 = __pop_Variant6(__symbols); let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action38::<>(__sym0); - __symbols.push((__start, __Symbol::Variant8(__nt), __end)); - (1, 22) + let __end = __sym2.2.clone(); + let __nt = super::__action188::<>(__sym0, __sym1, __sym2); + __symbols.push((__start, __Symbol::Variant6(__nt), __end)); + (3, 26) } pub(crate) fn __reduce44< 'input, @@ -5031,13 +12859,13 @@ mod __parse__Pipeline { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // Operator = "!=" => ActionFn(39); - let __sym0 = __pop_Variant0(__symbols); + // CallArgument = ArgumentExpression => ActionFn(50); + let __sym0 = __pop_Variant6(__symbols); let __start = __sym0.0.clone(); let __end = __sym0.2.clone(); - let __nt = super::__action39::<>(__sym0); - __symbols.push((__start, __Symbol::Variant8(__nt), __end)); - (1, 22) + let __nt = super::__action50::<>(__sym0); + __symbols.push((__start, __Symbol::Variant6(__nt), __end)); + (1, 27) } pub(crate) fn __reduce45< 'input, @@ -5049,13 +12877,13 @@ mod __parse__Pipeline { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // Operator = "<" => ActionFn(40); - let __sym0 = __pop_Variant0(__symbols); + // CallArgument = Flag => ActionFn(51); + let __sym0 = __pop_Variant6(__symbols); let __start = __sym0.0.clone(); let __end = __sym0.2.clone(); - let __nt = super::__action40::<>(__sym0); - __symbols.push((__start, __Symbol::Variant8(__nt), __end)); - (1, 22) + let __nt = super::__action51::<>(__sym0); + __symbols.push((__start, __Symbol::Variant6(__nt), __end)); + (1, 27) } pub(crate) fn __reduce46< 'input, @@ -5067,13 +12895,13 @@ mod __parse__Pipeline { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // Operator = ">" => ActionFn(41); - let __sym0 = __pop_Variant0(__symbols); + // Comma = FormalParameter => ActionFn(218); + let __sym0 = __pop_Variant10(__symbols); let __start = __sym0.0.clone(); let __end = __sym0.2.clone(); - let __nt = super::__action41::<>(__sym0); - __symbols.push((__start, __Symbol::Variant8(__nt), __end)); - (1, 22) + let __nt = super::__action218::<>(__sym0); + __symbols.push((__start, __Symbol::Variant15(__nt), __end)); + (1, 28) } pub(crate) fn __reduce47< 'input, @@ -5085,13 +12913,12 @@ mod __parse__Pipeline { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // Operator = "<=" => ActionFn(42); - let __sym0 = __pop_Variant0(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action42::<>(__sym0); - __symbols.push((__start, __Symbol::Variant8(__nt), __end)); - (1, 22) + // Comma = => ActionFn(219); + let __start = __symbols.last().map(|s| s.2.clone()).unwrap_or_default(); + let __end = __lookahead_start.cloned().unwrap_or_else(|| __start.clone()); + let __nt = super::__action219::<>(&__start, &__end); + __symbols.push((__start, __Symbol::Variant15(__nt), __end)); + (0, 28) } pub(crate) fn __reduce48< 'input, @@ -5103,13 +12930,14 @@ mod __parse__Pipeline { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // Operator = ">=" => ActionFn(43); - let __sym0 = __pop_Variant0(__symbols); + // Comma = ( OptionalNewlines "," OptionalNewlines)+, FormalParameter => ActionFn(220); + let __sym1 = __pop_Variant10(__symbols); + let __sym0 = __pop_Variant11(__symbols); let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action43::<>(__sym0); - __symbols.push((__start, __Symbol::Variant8(__nt), __end)); - (1, 22) + let __end = __sym1.2.clone(); + let __nt = super::__action220::<>(__sym0, __sym1); + __symbols.push((__start, __Symbol::Variant15(__nt), __end)); + (2, 28) } pub(crate) fn __reduce49< 'input, @@ -5121,13 +12949,13 @@ mod __parse__Pipeline { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // Pipeline = PipelineElement => ActionFn(110); - let __sym0 = __pop_Variant2(__symbols); + // Comma = ( OptionalNewlines "," OptionalNewlines)+ => ActionFn(221); + let __sym0 = __pop_Variant11(__symbols); let __start = __sym0.0.clone(); let __end = __sym0.2.clone(); - let __nt = super::__action110::<>(__sym0); - __symbols.push((__start, __Symbol::Variant9(__nt), __end)); - (1, 23) + let __nt = super::__action221::<>(__sym0); + __symbols.push((__start, __Symbol::Variant15(__nt), __end)); + (1, 28) } pub(crate) fn __reduce50< 'input, @@ -5139,14 +12967,13 @@ mod __parse__Pipeline { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // Pipeline = PipelineElement, ("|" )+ => ActionFn(111); - let __sym1 = __pop_Variant3(__symbols); - let __sym0 = __pop_Variant2(__symbols); + // CommandName = "command-name" => ActionFn(189); + let __sym0 = __pop_Variant0(__symbols); let __start = __sym0.0.clone(); - let __end = __sym1.2.clone(); - let __nt = super::__action111::<>(__sym0, __sym1); - __symbols.push((__start, __Symbol::Variant9(__nt), __end)); - (2, 23) + let __end = __sym0.2.clone(); + let __nt = super::__action189::<>(__sym0); + __symbols.push((__start, __Symbol::Variant16(__nt), __end)); + (1, 29) } pub(crate) fn __reduce51< 'input, @@ -5158,13 +12985,13 @@ mod __parse__Pipeline { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // PipelineElement = BareExpression => ActionFn(112); - let __sym0 = __pop_Variant2(__symbols); + // Expression = MemberHeadExpression => ActionFn(46); + let __sym0 = __pop_Variant6(__symbols); let __start = __sym0.0.clone(); let __end = __sym0.2.clone(); - let __nt = super::__action112::<>(__sym0); - __symbols.push((__start, __Symbol::Variant2(__nt), __end)); - (1, 24) + let __nt = super::__action46::<>(__sym0); + __symbols.push((__start, __Symbol::Variant6(__nt), __end)); + (1, 30) } pub(crate) fn __reduce52< 'input, @@ -5176,13 +13003,14 @@ mod __parse__Pipeline { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // PipelineElement = SingleExpression => ActionFn(4); - let __sym0 = __pop_Variant2(__symbols); + // Expression = MemberHeadExpression, ("???." )+ => ActionFn(190); + let __sym1 = __pop_Variant4(__symbols); + let __sym0 = __pop_Variant6(__symbols); let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action4::<>(__sym0); - __symbols.push((__start, __Symbol::Variant2(__nt), __end)); - (1, 24) + let __end = __sym1.2.clone(); + let __nt = super::__action190::<>(__sym0, __sym1); + __symbols.push((__start, __Symbol::Variant6(__nt), __end)); + (2, 30) } pub(crate) fn __reduce53< 'input, @@ -5194,13 +13022,14 @@ mod __parse__Pipeline { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // SingleCallArgument = CallArgument => ActionFn(27); - let __sym0 = __pop_Variant2(__symbols); + // Flag = "-", Bare => ActionFn(191); + let __sym1 = __pop_Variant13(__symbols); + let __sym0 = __pop_Variant0(__symbols); let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action27::<>(__sym0); - __symbols.push((__start, __Symbol::Variant2(__nt), __end)); - (1, 25) + let __end = __sym1.2.clone(); + let __nt = super::__action191::<>(__sym0, __sym1); + __symbols.push((__start, __Symbol::Variant6(__nt), __end)); + (2, 31) } pub(crate) fn __reduce54< 'input, @@ -5212,13 +13041,14 @@ mod __parse__Pipeline { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // SingleCallArgument = Binary => ActionFn(28); - let __sym0 = __pop_Variant2(__symbols); + // Flag = "--", Bare => ActionFn(192); + let __sym1 = __pop_Variant13(__symbols); + let __sym0 = __pop_Variant0(__symbols); let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action28::<>(__sym0); - __symbols.push((__start, __Symbol::Variant2(__nt), __end)); - (1, 25) + let __end = __sym1.2.clone(); + let __nt = super::__action192::<>(__sym0, __sym1); + __symbols.push((__start, __Symbol::Variant6(__nt), __end)); + (2, 31) } pub(crate) fn __reduce55< 'input, @@ -5230,13 +13060,15 @@ mod __parse__Pipeline { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // SingleExpression = Expression => ActionFn(29); - let __sym0 = __pop_Variant2(__symbols); + // FormalParameter = ParameterName, ":", Type => ActionFn(193); + let __sym2 = __pop_Variant1(__symbols); + let __sym1 = __pop_Variant0(__symbols); + let __sym0 = __pop_Variant23(__symbols); let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action29::<>(__sym0); - __symbols.push((__start, __Symbol::Variant2(__nt), __end)); - (1, 26) + let __end = __sym2.2.clone(); + let __nt = super::__action193::<>(__sym0, __sym1, __sym2); + __symbols.push((__start, __Symbol::Variant10(__nt), __end)); + (3, 32) } pub(crate) fn __reduce56< 'input, @@ -5248,13 +13080,13 @@ mod __parse__Pipeline { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // SingleExpression = Call => ActionFn(30); - let __sym0 = __pop_Variant2(__symbols); + // FormalParameter? = FormalParameter => ActionFn(106); + let __sym0 = __pop_Variant10(__symbols); let __start = __sym0.0.clone(); let __end = __sym0.2.clone(); - let __nt = super::__action30::<>(__sym0); - __symbols.push((__start, __Symbol::Variant2(__nt), __end)); - (1, 26) + let __nt = super::__action106::<>(__sym0); + __symbols.push((__start, __Symbol::Variant17(__nt), __end)); + (1, 33) } pub(crate) fn __reduce57< 'input, @@ -5266,13 +13098,12 @@ mod __parse__Pipeline { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // SingleExpression = Binary => ActionFn(31); - let __sym0 = __pop_Variant2(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action31::<>(__sym0); - __symbols.push((__start, __Symbol::Variant2(__nt), __end)); - (1, 26) + // FormalParameter? = => ActionFn(107); + let __start = __symbols.last().map(|s| s.2.clone()).unwrap_or_default(); + let __end = __lookahead_start.cloned().unwrap_or_else(|| __start.clone()); + let __nt = super::__action107::<>(&__start, &__end); + __symbols.push((__start, __Symbol::Variant17(__nt), __end)); + (0, 33) } pub(crate) fn __reduce58< 'input, @@ -5284,13 +13115,20 @@ mod __parse__Pipeline { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // SpannedOperator = Operator => ActionFn(113); - let __sym0 = __pop_Variant8(__symbols); + // Function = "function", CommandName, "start-params", ParameterList, "end-params", "->", Type, Block => ActionFn(194); + let __sym7 = __pop_Variant14(__symbols); + let __sym6 = __pop_Variant1(__symbols); + let __sym5 = __pop_Variant0(__symbols); + let __sym4 = __pop_Variant0(__symbols); + let __sym3 = __pop_Variant15(__symbols); + let __sym2 = __pop_Variant0(__symbols); + let __sym1 = __pop_Variant16(__symbols); + let __sym0 = __pop_Variant0(__symbols); let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action113::<>(__sym0); - __symbols.push((__start, __Symbol::Variant10(__nt), __end)); - (1, 27) + let __end = __sym7.2.clone(); + let __nt = super::__action194::<>(__sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7); + __symbols.push((__start, __Symbol::Variant18(__nt), __end)); + (8, 34) } pub(crate) fn __reduce59< 'input, @@ -5302,13 +13140,18 @@ mod __parse__Pipeline { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // String = "sqstring" => ActionFn(114); + // Function = "function", CommandName, "start-params", ParameterList, "end-params", Block => ActionFn(195); + let __sym5 = __pop_Variant14(__symbols); + let __sym4 = __pop_Variant0(__symbols); + let __sym3 = __pop_Variant15(__symbols); + let __sym2 = __pop_Variant0(__symbols); + let __sym1 = __pop_Variant16(__symbols); let __sym0 = __pop_Variant0(__symbols); let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action114::<>(__sym0); - __symbols.push((__start, __Symbol::Variant2(__nt), __end)); - (1, 28) + let __end = __sym5.2.clone(); + let __nt = super::__action195::<>(__sym0, __sym1, __sym2, __sym3, __sym4, __sym5); + __symbols.push((__start, __Symbol::Variant18(__nt), __end)); + (6, 34) } pub(crate) fn __reduce60< 'input, @@ -5320,13 +13163,13 @@ mod __parse__Pipeline { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // String = "dqstring" => ActionFn(115); + // Int = "num" => ActionFn(73); let __sym0 = __pop_Variant0(__symbols); let __start = __sym0.0.clone(); let __end = __sym0.2.clone(); - let __nt = super::__action115::<>(__sym0); - __symbols.push((__start, __Symbol::Variant2(__nt), __end)); - (1, 28) + let __nt = super::__action73::<>(__sym0); + __symbols.push((__start, __Symbol::Variant19(__nt), __end)); + (1, 35) } pub(crate) fn __reduce61< 'input, @@ -5338,14 +13181,13 @@ mod __parse__Pipeline { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // UnitsNum = Int, "unit" => ActionFn(116); - let __sym1 = __pop_Variant0(__symbols); - let __sym0 = __pop_Variant6(__symbols); + // Item = Pipeline => ActionFn(196); + let __sym0 = __pop_Variant25(__symbols); let __start = __sym0.0.clone(); - let __end = __sym1.2.clone(); - let __nt = super::__action116::<>(__sym0, __sym1); - __symbols.push((__start, __Symbol::Variant2(__nt), __end)); - (2, 29) + let __end = __sym0.2.clone(); + let __nt = super::__action196::<>(__sym0); + __symbols.push((__start, __Symbol::Variant8(__nt), __end)); + (1, 36) } pub(crate) fn __reduce62< 'input, @@ -5357,14 +13199,13 @@ mod __parse__Pipeline { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // Var = "$", "variable" => ActionFn(117); - let __sym1 = __pop_Variant0(__symbols); - let __sym0 = __pop_Variant0(__symbols); + // Item = Function => ActionFn(197); + let __sym0 = __pop_Variant18(__symbols); let __start = __sym0.0.clone(); - let __end = __sym1.2.clone(); - let __nt = super::__action117::<>(__sym0, __sym1); - __symbols.push((__start, __Symbol::Variant2(__nt), __end)); - (2, 30) + let __end = __sym0.2.clone(); + let __nt = super::__action197::<>(__sym0); + __symbols.push((__start, __Symbol::Variant8(__nt), __end)); + (1, 36) } pub(crate) fn __reduce63< 'input, @@ -5376,19 +13217,1085 @@ mod __parse__Pipeline { _: ::std::marker::PhantomData<(&'input ())>, ) -> (usize, usize) { - // __Call = Call => ActionFn(1); - let __sym0 = __pop_Variant2(__symbols); + // LeafExpression = String => ActionFn(28); + let __sym0 = __pop_Variant6(__symbols); let __start = __sym0.0.clone(); let __end = __sym0.2.clone(); - let __nt = super::__action1::<>(__sym0); - __symbols.push((__start, __Symbol::Variant2(__nt), __end)); - (1, 31) + let __nt = super::__action28::<>(__sym0); + __symbols.push((__start, __Symbol::Variant6(__nt), __end)); + (1, 37) + } + pub(crate) fn __reduce64< + 'input, + >( + __action: i8, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // LeafExpression = Int => ActionFn(198); + let __sym0 = __pop_Variant19(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action198::<>(__sym0); + __symbols.push((__start, __Symbol::Variant6(__nt), __end)); + (1, 37) + } + pub(crate) fn __reduce65< + 'input, + >( + __action: i8, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // LeafExpression = UnitsNum => ActionFn(30); + let __sym0 = __pop_Variant6(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action30::<>(__sym0); + __symbols.push((__start, __Symbol::Variant6(__nt), __end)); + (1, 37) + } + pub(crate) fn __reduce66< + 'input, + >( + __action: i8, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // LeafExpression = Var => ActionFn(31); + let __sym0 = __pop_Variant6(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action31::<>(__sym0); + __symbols.push((__start, __Symbol::Variant6(__nt), __end)); + (1, 37) + } + pub(crate) fn __reduce67< + 'input, + >( + __action: i8, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // Member = "member" => ActionFn(62); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action62::<>(__sym0); + __symbols.push((__start, __Symbol::Variant3(__nt), __end)); + (1, 38) + } + pub(crate) fn __reduce68< + 'input, + >( + __action: i8, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // Member = "dqmember" => ActionFn(63); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action63::<>(__sym0); + __symbols.push((__start, __Symbol::Variant3(__nt), __end)); + (1, 38) + } + pub(crate) fn __reduce69< + 'input, + >( + __action: i8, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // Member = "sqmember" => ActionFn(64); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action64::<>(__sym0); + __symbols.push((__start, __Symbol::Variant3(__nt), __end)); + (1, 38) + } + pub(crate) fn __reduce70< + 'input, + >( + __action: i8, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // Member = "function" => ActionFn(65); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action65::<>(__sym0); + __symbols.push((__start, __Symbol::Variant3(__nt), __end)); + (1, 38) + } + pub(crate) fn __reduce71< + 'input, + >( + __action: i8, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // MemberHeadExpression = LeafExpression => ActionFn(41); + let __sym0 = __pop_Variant6(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action41::<>(__sym0); + __symbols.push((__start, __Symbol::Variant6(__nt), __end)); + (1, 39) + } + pub(crate) fn __reduce72< + 'input, + >( + __action: i8, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // MemberHeadExpression = BlockExpression => ActionFn(42); + let __sym0 = __pop_Variant6(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action42::<>(__sym0); + __symbols.push((__start, __Symbol::Variant6(__nt), __end)); + (1, 39) + } + pub(crate) fn __reduce73< + 'input, + >( + __action: i8, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // MemberHeadExpression = "(", Call, ")" => ActionFn(199); + let __sym2 = __pop_Variant0(__symbols); + let __sym1 = __pop_Variant6(__symbols); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym2.2.clone(); + let __nt = super::__action199::<>(__sym0, __sym1, __sym2); + __symbols.push((__start, __Symbol::Variant6(__nt), __end)); + (3, 39) + } + pub(crate) fn __reduce74< + 'input, + >( + __action: i8, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // MemberHeadExpression = "(", BareExpression, ")" => ActionFn(200); + let __sym2 = __pop_Variant0(__symbols); + let __sym1 = __pop_Variant6(__symbols); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym2.2.clone(); + let __nt = super::__action200::<>(__sym0, __sym1, __sym2); + __symbols.push((__start, __Symbol::Variant6(__nt), __end)); + (3, 39) + } + pub(crate) fn __reduce75< + 'input, + >( + __action: i8, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // MemberHeadExpression = "(", Binary, ")" => ActionFn(201); + let __sym2 = __pop_Variant0(__symbols); + let __sym1 = __pop_Variant6(__symbols); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym2.2.clone(); + let __nt = super::__action201::<>(__sym0, __sym1, __sym2); + __symbols.push((__start, __Symbol::Variant6(__nt), __end)); + (3, 39) + } + pub(crate) fn __reduce76< + 'input, + >( + __action: i8, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // Module = Item => ActionFn(202); + let __sym0 = __pop_Variant8(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action202::<>(__sym0); + __symbols.push((__start, __Symbol::Variant20(__nt), __end)); + (1, 40) + } + pub(crate) fn __reduce77< + 'input, + >( + __action: i8, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // Module = Item, (("newline")+ )+ => ActionFn(203); + let __sym1 = __pop_Variant9(__symbols); + let __sym0 = __pop_Variant8(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym1.2.clone(); + let __nt = super::__action203::<>(__sym0, __sym1); + __symbols.push((__start, __Symbol::Variant20(__nt), __end)); + (2, 40) + } + pub(crate) fn __reduce78< + 'input, + >( + __action: i8, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // Newlines = ("newline")+ => ActionFn(59); + let __sym0 = __pop_Variant5(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action59::<>(__sym0); + __symbols.push((__start, __Symbol::Variant21(__nt), __end)); + (1, 41) + } + pub(crate) fn __reduce79< + 'input, + >( + __action: i8, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // Operator = "==" => ActionFn(67); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action67::<>(__sym0); + __symbols.push((__start, __Symbol::Variant22(__nt), __end)); + (1, 42) + } + pub(crate) fn __reduce80< + 'input, + >( + __action: i8, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // Operator = "!=" => ActionFn(68); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action68::<>(__sym0); + __symbols.push((__start, __Symbol::Variant22(__nt), __end)); + (1, 42) + } + pub(crate) fn __reduce81< + 'input, + >( + __action: i8, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // Operator = "<" => ActionFn(69); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action69::<>(__sym0); + __symbols.push((__start, __Symbol::Variant22(__nt), __end)); + (1, 42) + } + pub(crate) fn __reduce82< + 'input, + >( + __action: i8, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // Operator = ">" => ActionFn(70); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action70::<>(__sym0); + __symbols.push((__start, __Symbol::Variant22(__nt), __end)); + (1, 42) + } + pub(crate) fn __reduce83< + 'input, + >( + __action: i8, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // Operator = "<=" => ActionFn(71); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action71::<>(__sym0); + __symbols.push((__start, __Symbol::Variant22(__nt), __end)); + (1, 42) + } + pub(crate) fn __reduce84< + 'input, + >( + __action: i8, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // Operator = ">=" => ActionFn(72); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action72::<>(__sym0); + __symbols.push((__start, __Symbol::Variant22(__nt), __end)); + (1, 42) + } + pub(crate) fn __reduce85< + 'input, + >( + __action: i8, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // OptionalNewlines = => ActionFn(122); + let __start = __symbols.last().map(|s| s.2.clone()).unwrap_or_default(); + let __end = __lookahead_start.cloned().unwrap_or_else(|| __start.clone()); + let __nt = super::__action122::<>(&__start, &__end); + __symbols.push((__start, __Symbol::Variant21(__nt), __end)); + (0, 43) + } + pub(crate) fn __reduce86< + 'input, + >( + __action: i8, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // OptionalNewlines = ("newline")+ => ActionFn(123); + let __sym0 = __pop_Variant5(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action123::<>(__sym0); + __symbols.push((__start, __Symbol::Variant21(__nt), __end)); + (1, 43) + } + pub(crate) fn __reduce87< + 'input, + >( + __action: i8, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // ParameterList = Comma => ActionFn(7); + let __sym0 = __pop_Variant15(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action7::<>(__sym0); + __symbols.push((__start, __Symbol::Variant15(__nt), __end)); + (1, 44) + } + pub(crate) fn __reduce88< + 'input, + >( + __action: i8, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // ParameterName = "-", SpannedBare => ActionFn(204); + let __sym1 = __pop_Variant16(__symbols); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym1.2.clone(); + let __nt = super::__action204::<>(__sym0, __sym1); + __symbols.push((__start, __Symbol::Variant23(__nt), __end)); + (2, 45) + } + pub(crate) fn __reduce89< + 'input, + >( + __action: i8, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // ParameterName = "--", SpannedBare => ActionFn(205); + let __sym1 = __pop_Variant16(__symbols); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym1.2.clone(); + let __nt = super::__action205::<>(__sym0, __sym1); + __symbols.push((__start, __Symbol::Variant23(__nt), __end)); + (2, 45) + } + pub(crate) fn __reduce90< + 'input, + >( + __action: i8, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // ParameterName = ParameterVariable => ActionFn(206); + let __sym0 = __pop_Variant24(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action206::<>(__sym0); + __symbols.push((__start, __Symbol::Variant23(__nt), __end)); + (1, 45) + } + pub(crate) fn __reduce91< + 'input, + >( + __action: i8, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // ParameterVariable = "$", "variable" => ActionFn(207); + let __sym1 = __pop_Variant0(__symbols); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym1.2.clone(); + let __nt = super::__action207::<>(__sym0, __sym1); + __symbols.push((__start, __Symbol::Variant24(__nt), __end)); + (2, 46) + } + pub(crate) fn __reduce92< + 'input, + >( + __action: i8, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // Pipeline = PipelineElement => ActionFn(208); + let __sym0 = __pop_Variant6(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action208::<>(__sym0); + __symbols.push((__start, __Symbol::Variant25(__nt), __end)); + (1, 47) + } + pub(crate) fn __reduce93< + 'input, + >( + __action: i8, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // Pipeline = PipelineElement, ("|" )+ => ActionFn(209); + let __sym1 = __pop_Variant7(__symbols); + let __sym0 = __pop_Variant6(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym1.2.clone(); + let __nt = super::__action209::<>(__sym0, __sym1); + __symbols.push((__start, __Symbol::Variant25(__nt), __end)); + (2, 47) + } + pub(crate) fn __reduce94< + 'input, + >( + __action: i8, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // PipelineElement = BareExpression => ActionFn(210); + let __sym0 = __pop_Variant6(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action210::<>(__sym0); + __symbols.push((__start, __Symbol::Variant6(__nt), __end)); + (1, 48) + } + pub(crate) fn __reduce95< + 'input, + >( + __action: i8, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // PipelineElement = SingleExpression => ActionFn(27); + let __sym0 = __pop_Variant6(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action27::<>(__sym0); + __symbols.push((__start, __Symbol::Variant6(__nt), __end)); + (1, 48) + } + pub(crate) fn __reduce96< + 'input, + >( + __action: i8, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // RawType = "any" => ActionFn(14); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action14::<>(__sym0); + __symbols.push((__start, __Symbol::Variant26(__nt), __end)); + (1, 49) + } + pub(crate) fn __reduce97< + 'input, + >( + __action: i8, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // RawType = "int" => ActionFn(15); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action15::<>(__sym0); + __symbols.push((__start, __Symbol::Variant26(__nt), __end)); + (1, 49) + } + pub(crate) fn __reduce98< + 'input, + >( + __action: i8, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // RawType = "decimal" => ActionFn(16); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action16::<>(__sym0); + __symbols.push((__start, __Symbol::Variant26(__nt), __end)); + (1, 49) + } + pub(crate) fn __reduce99< + 'input, + >( + __action: i8, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // RawType = "bytes" => ActionFn(17); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action17::<>(__sym0); + __symbols.push((__start, __Symbol::Variant26(__nt), __end)); + (1, 49) + } + pub(crate) fn __reduce100< + 'input, + >( + __action: i8, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // RawType = "text" => ActionFn(18); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action18::<>(__sym0); + __symbols.push((__start, __Symbol::Variant26(__nt), __end)); + (1, 49) + } + pub(crate) fn __reduce101< + 'input, + >( + __action: i8, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // RawType = "boolean" => ActionFn(19); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action19::<>(__sym0); + __symbols.push((__start, __Symbol::Variant26(__nt), __end)); + (1, 49) + } + pub(crate) fn __reduce102< + 'input, + >( + __action: i8, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // RawType = "date" => ActionFn(20); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action20::<>(__sym0); + __symbols.push((__start, __Symbol::Variant26(__nt), __end)); + (1, 49) + } + pub(crate) fn __reduce103< + 'input, + >( + __action: i8, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // RawType = "object" => ActionFn(21); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action21::<>(__sym0); + __symbols.push((__start, __Symbol::Variant26(__nt), __end)); + (1, 49) + } + pub(crate) fn __reduce104< + 'input, + >( + __action: i8, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // RawType = "list" => ActionFn(22); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action22::<>(__sym0); + __symbols.push((__start, __Symbol::Variant26(__nt), __end)); + (1, 49) + } + pub(crate) fn __reduce105< + 'input, + >( + __action: i8, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // RawType = "block" => ActionFn(23); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action23::<>(__sym0); + __symbols.push((__start, __Symbol::Variant26(__nt), __end)); + (1, 49) + } + pub(crate) fn __reduce106< + 'input, + >( + __action: i8, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // ReplLine = Pipeline => ActionFn(124); + let __sym0 = __pop_Variant25(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action124::<>(__sym0); + __symbols.push((__start, __Symbol::Variant25(__nt), __end)); + (1, 50) + } + pub(crate) fn __reduce107< + 'input, + >( + __action: i8, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // ReplLine = Pipeline, ("newline")+ => ActionFn(125); + let __sym1 = __pop_Variant5(__symbols); + let __sym0 = __pop_Variant25(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym1.2.clone(); + let __nt = super::__action125::<>(__sym0, __sym1); + __symbols.push((__start, __Symbol::Variant25(__nt), __end)); + (2, 50) + } + pub(crate) fn __reduce108< + 'input, + >( + __action: i8, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // SingleCallArgument = CallArgument => ActionFn(52); + let __sym0 = __pop_Variant6(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action52::<>(__sym0); + __symbols.push((__start, __Symbol::Variant6(__nt), __end)); + (1, 51) + } + pub(crate) fn __reduce109< + 'input, + >( + __action: i8, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // SingleCallArgument = Binary => ActionFn(53); + let __sym0 = __pop_Variant6(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action53::<>(__sym0); + __symbols.push((__start, __Symbol::Variant6(__nt), __end)); + (1, 51) + } + pub(crate) fn __reduce110< + 'input, + >( + __action: i8, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // SingleExpression = Expression => ActionFn(54); + let __sym0 = __pop_Variant6(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action54::<>(__sym0); + __symbols.push((__start, __Symbol::Variant6(__nt), __end)); + (1, 52) + } + pub(crate) fn __reduce111< + 'input, + >( + __action: i8, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // SingleExpression = Call => ActionFn(55); + let __sym0 = __pop_Variant6(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action55::<>(__sym0); + __symbols.push((__start, __Symbol::Variant6(__nt), __end)); + (1, 52) + } + pub(crate) fn __reduce112< + 'input, + >( + __action: i8, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // SingleExpression = Binary => ActionFn(56); + let __sym0 = __pop_Variant6(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action56::<>(__sym0); + __symbols.push((__start, __Symbol::Variant6(__nt), __end)); + (1, 52) + } + pub(crate) fn __reduce113< + 'input, + >( + __action: i8, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // SpannedBare = Bare => ActionFn(211); + let __sym0 = __pop_Variant13(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action211::<>(__sym0); + __symbols.push((__start, __Symbol::Variant16(__nt), __end)); + (1, 53) + } + pub(crate) fn __reduce114< + 'input, + >( + __action: i8, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // SpannedOperator = Operator => ActionFn(212); + let __sym0 = __pop_Variant22(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action212::<>(__sym0); + __symbols.push((__start, __Symbol::Variant27(__nt), __end)); + (1, 54) + } + pub(crate) fn __reduce115< + 'input, + >( + __action: i8, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // String = "sqstring" => ActionFn(213); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action213::<>(__sym0); + __symbols.push((__start, __Symbol::Variant6(__nt), __end)); + (1, 55) + } + pub(crate) fn __reduce116< + 'input, + >( + __action: i8, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // String = "dqstring" => ActionFn(214); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action214::<>(__sym0); + __symbols.push((__start, __Symbol::Variant6(__nt), __end)); + (1, 55) + } + pub(crate) fn __reduce117< + 'input, + >( + __action: i8, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // Type = RawType => ActionFn(215); + let __sym0 = __pop_Variant26(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action215::<>(__sym0); + __symbols.push((__start, __Symbol::Variant1(__nt), __end)); + (1, 56) + } + pub(crate) fn __reduce118< + 'input, + >( + __action: i8, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // UnitsNum = Int, "unit" => ActionFn(216); + let __sym1 = __pop_Variant0(__symbols); + let __sym0 = __pop_Variant19(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym1.2.clone(); + let __nt = super::__action216::<>(__sym0, __sym1); + __symbols.push((__start, __Symbol::Variant6(__nt), __end)); + (2, 57) + } + pub(crate) fn __reduce119< + 'input, + >( + __action: i8, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // Var = "$", "variable" => ActionFn(217); + let __sym1 = __pop_Variant0(__symbols); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym1.2.clone(); + let __nt = super::__action217::<>(__sym0, __sym1); + __symbols.push((__start, __Symbol::Variant6(__nt), __end)); + (2, 58) + } + pub(crate) fn __reduce120< + 'input, + >( + __action: i8, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // __Call = Call => ActionFn(2); + let __sym0 = __pop_Variant6(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action2::<>(__sym0); + __symbols.push((__start, __Symbol::Variant6(__nt), __end)); + (1, 59) + } + pub(crate) fn __reduce121< + 'input, + >( + __action: i8, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // __Module = Module => ActionFn(0); + let __sym0 = __pop_Variant20(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action0::<>(__sym0); + __symbols.push((__start, __Symbol::Variant20(__nt), __end)); + (1, 60) } } -pub use self::__parse__Pipeline::PipelineParser; +pub use self::__parse__ReplLine::ReplLineParser; fn __action0< 'input, +>( + (_, __0, _): (usize, Module, usize), +) -> Module +{ + (__0) +} + +fn __action1< + 'input, >( (_, __0, _): (usize, Pipeline, usize), ) -> Pipeline @@ -5396,7 +14303,7 @@ fn __action0< (__0) } -fn __action1< +fn __action2< 'input, >( (_, __0, _): (usize, Expression, usize), @@ -5405,7 +14312,240 @@ fn __action1< (__0) } -fn __action2< +fn __action3< + 'input, +>( + (_, l, _): (usize, usize, usize), + (_, first, _): (usize, Item, usize), + (_, items, _): (usize, ::std::vec::Vec, usize), + (_, r, _): (usize, usize, usize), +) -> Module +{ + ModuleBuilder::spanned_items(concat(first, items), l, r) +} + +fn __action4< + 'input, +>( + (_, l, _): (usize, usize, usize), + (_, pipeline, _): (usize, Pipeline, usize), + (_, r, _): (usize, usize, usize), +) -> Item +{ + Spanned::from_item(RawItem::Expression(pipeline), Span::from((l, r))) +} + +fn __action5< + 'input, +>( + (_, l, _): (usize, usize, usize), + (_, function, _): (usize, Function, usize), + (_, r, _): (usize, usize, usize), +) -> Item +{ + Spanned::from_item(RawItem::Function(function), Span::from((l, r))) +} + +fn __action6< + 'input, +>( + (_, l, _): (usize, usize, usize), + (_, _, _): (usize, SpannedToken<'input>, usize), + (_, bare, _): (usize, Spanned, usize), + (_, _, _): (usize, SpannedToken<'input>, usize), + (_, params, _): (usize, Vec, usize), + (_, _, _): (usize, SpannedToken<'input>, usize), + (_, ret, _): (usize, ::std::option::Option>, usize), + (_, block, _): (usize, Spanned, usize), + (_, r, _): (usize, usize, usize), +) -> Function +{ + { + ModuleBuilder::spanned_function((bare, params, ret, block), l, r) + } +} + +fn __action7< + 'input, +>( + (_, params, _): (usize, Vec, usize), +) -> Vec +{ + params +} + +fn __action8< + 'input, +>( + (_, l, _): (usize, usize, usize), + (_, name, _): (usize, ParameterIdentifier, usize), + (_, _, _): (usize, SpannedToken<'input>, usize), + (_, ty, _): (usize, Spanned, usize), + (_, r, _): (usize, usize, usize), +) -> FormalParameter +{ + ModuleBuilder::spanned_formal_parameter((name, ty), l, r) +} + +fn __action9< + 'input, +>( + (_, l, _): (usize, usize, usize), + (_, _, _): (usize, SpannedToken<'input>, usize), + (_, b, _): (usize, Spanned, usize), + (_, r, _): (usize, usize, usize), +) -> ParameterIdentifier +{ + ParameterIdentifier::shorthand(b.map(|b| b.to_string()), (l, r)) +} + +fn __action10< + 'input, +>( + (_, l, _): (usize, usize, usize), + (_, _, _): (usize, SpannedToken<'input>, usize), + (_, b, _): (usize, Spanned, usize), + (_, r, _): (usize, usize, usize), +) -> ParameterIdentifier +{ + ParameterIdentifier::flag(b.map(|b| b.to_string()), (l, r)) +} + +fn __action11< + 'input, +>( + (_, l, _): (usize, usize, usize), + (_, var, _): (usize, Spanned, usize), + (_, r, _): (usize, usize, usize), +) -> ParameterIdentifier +{ + ParameterIdentifier::var(var, (l, r)) +} + +fn __action12< + 'input, +>( + (_, l, _): (usize, usize, usize), + (_, _, _): (usize, SpannedToken<'input>, usize), + (_, v, _): (usize, SpannedToken<'input>, usize), + (_, r, _): (usize, usize, usize), +) -> Spanned +{ + Spanned::from_item(ast::Variable::from_string(v.as_slice()), (l, r)) +} + +fn __action13< + 'input, +>( + (_, l, _): (usize, usize, usize), + (_, ty, _): (usize, Type, usize), + (_, r, _): (usize, usize, usize), +) -> Spanned +{ + Spanned::from_item(ty, (l, r)) +} + +fn __action14< + 'input, +>( + (_, __0, _): (usize, SpannedToken<'input>, usize), +) -> Type +{ + Type::Any +} + +fn __action15< + 'input, +>( + (_, __0, _): (usize, SpannedToken<'input>, usize), +) -> Type +{ + Type::Int +} + +fn __action16< + 'input, +>( + (_, __0, _): (usize, SpannedToken<'input>, usize), +) -> Type +{ + Type::Decimal +} + +fn __action17< + 'input, +>( + (_, __0, _): (usize, SpannedToken<'input>, usize), +) -> Type +{ + Type::Bytes +} + +fn __action18< + 'input, +>( + (_, __0, _): (usize, SpannedToken<'input>, usize), +) -> Type +{ + Type::Text +} + +fn __action19< + 'input, +>( + (_, __0, _): (usize, SpannedToken<'input>, usize), +) -> Type +{ + Type::Boolean +} + +fn __action20< + 'input, +>( + (_, __0, _): (usize, SpannedToken<'input>, usize), +) -> Type +{ + Type::Date +} + +fn __action21< + 'input, +>( + (_, __0, _): (usize, SpannedToken<'input>, usize), +) -> Type +{ + Type::Object +} + +fn __action22< + 'input, +>( + (_, __0, _): (usize, SpannedToken<'input>, usize), +) -> Type +{ + Type::List +} + +fn __action23< + 'input, +>( + (_, __0, _): (usize, SpannedToken<'input>, usize), +) -> Type +{ + Type::Block +} + +fn __action24< + 'input, +>( + (_, __0, _): (usize, Pipeline, usize), + (_, _, _): (usize, ::std::vec::Vec>, usize), +) -> Pipeline +{ + (__0) +} + +fn __action25< 'input, >( (_, l, _): (usize, usize, usize), @@ -5417,7 +14557,7 @@ fn __action2< Pipeline::from_parts(first, rest, l, r) } -fn __action3< +fn __action26< 'input, >( (_, l, _): (usize, usize, usize), @@ -5428,266 +14568,13 @@ fn __action3< ExpressionBuilder::spanned_call((bare, vec![]), l, r) } -fn __action4< - 'input, ->( - (_, __0, _): (usize, Expression, usize), -) -> Expression -{ - __0 -} - -fn __action5< - 'input, ->( - (_, __0, _): (usize, Expression, usize), -) -> Expression -{ - (__0) -} - -fn __action6< - 'input, ->( - (_, l, _): (usize, usize, usize), - (_, int, _): (usize, i64, usize), - (_, r, _): (usize, usize, usize), -) -> Expression -{ - ExpressionBuilder::spanned_int(int, l, r) -} - -fn __action7< - 'input, ->( - (_, __0, _): (usize, Expression, usize), -) -> Expression -{ - (__0) -} - -fn __action8< - 'input, ->( - (_, __0, _): (usize, Expression, usize), -) -> Expression -{ - (__0) -} - -fn __action9< - 'input, ->( - (_, l, _): (usize, usize, usize), - (_, expr, _): (usize, Expression, usize), - (_, rest, _): (usize, Expression, usize), - (_, r, _): (usize, usize, usize), -) -> Expression -{ - ExpressionBuilder::spanned_call((expr, vec![rest]), l, r) -} - -fn __action10< - 'input, ->( - (_, l, _): (usize, usize, usize), - (_, expr, _): (usize, Expression, usize), - (_, first, _): (usize, Expression, usize), - (_, rest, _): (usize, ::std::vec::Vec, usize), - (_, r, _): (usize, usize, usize), -) -> Expression -{ - ExpressionBuilder::spanned_call((expr, { let mut rest = rest; let mut v = vec![first]; v.append(&mut rest); v }), l, r) -} - -fn __action11< - 'input, ->( - (_, l, _): (usize, usize, usize), - (_, expr, _): (usize, Expression, usize), - (_, rest, _): (usize, Expression, usize), - (_, r, _): (usize, usize, usize), -) -> Expression -{ - ExpressionBuilder::spanned_call((expr, vec![rest]), l, r) -} - -fn __action12< - 'input, ->( - (_, l, _): (usize, usize, usize), - (_, expr, _): (usize, Expression, usize), - (_, first, _): (usize, Expression, usize), - (_, rest, _): (usize, ::std::vec::Vec, usize), - (_, r, _): (usize, usize, usize), -) -> Expression -{ - ExpressionBuilder::spanned_call((expr, { let mut v = vec![first]; let mut rest = rest; v.append(&mut rest); v }), l, r) -} - -fn __action13< - 'input, ->( - (_, l, _): (usize, usize, usize), - (_, left, _): (usize, Expression, usize), - (_, op, _): (usize, Spanned, usize), - (_, right, _): (usize, Expression, usize), - (_, r, _): (usize, usize, usize), -) -> Expression -{ - ExpressionBuilder::spanned_binary((left, op, right), l, r) -} - -fn __action14< - 'input, ->( - (_, l, _): (usize, usize, usize), - (_, _, _): (usize, SpannedToken<'input>, usize), - (_, expr, _): (usize, Expression, usize), - (_, _, _): (usize, SpannedToken<'input>, usize), - (_, r, _): (usize, usize, usize), -) -> Expression -{ - ExpressionBuilder::spanned_block(expr, l, r) -} - -fn __action15< - 'input, ->( - (_, l, _): (usize, usize, usize), - (_, _, _): (usize, SpannedToken<'input>, usize), - (_, bare, _): (usize, Expression, usize), - (_, _, _): (usize, SpannedToken<'input>, usize), - (_, r, _): (usize, usize, usize), -) -> Expression -{ - { - let call = ExpressionBuilder::spanned_call(bare.clone(), bare.span.start, bare.span.end); - ExpressionBuilder::spanned_block(call, l, r) - } -} - -fn __action16< - 'input, ->( - (_, __0, _): (usize, Expression, usize), -) -> Expression -{ - __0 -} - -fn __action17< - 'input, ->( - (_, __0, _): (usize, Expression, usize), -) -> Expression -{ - __0 -} - -fn __action18< - 'input, ->( - (_, l, _): (usize, usize, usize), - (_, _, _): (usize, SpannedToken<'input>, usize), - (_, expr, _): (usize, Expression, usize), - (_, _, _): (usize, SpannedToken<'input>, usize), - (_, r, _): (usize, usize, usize), -) -> Expression -{ - ExpressionBuilder::spanned_call(expr, l, r) -} - -fn __action19< - 'input, ->( - (_, l, _): (usize, usize, usize), - (_, _, _): (usize, SpannedToken<'input>, usize), - (_, expr, _): (usize, Expression, usize), - (_, _, _): (usize, SpannedToken<'input>, usize), - (_, r, _): (usize, usize, usize), -) -> Expression -{ - ExpressionBuilder::spanned_call((expr, vec![]), l, r) -} - -fn __action20< - 'input, ->( - (_, l, _): (usize, usize, usize), - (_, _, _): (usize, SpannedToken<'input>, usize), - (_, expr, _): (usize, Expression, usize), - (_, _, _): (usize, SpannedToken<'input>, usize), - (_, r, _): (usize, usize, usize), -) -> Expression -{ - ExpressionBuilder::spanned_parens(expr, l, r) -} - -fn __action21< - 'input, ->( - (_, __0, _): (usize, Expression, usize), -) -> Expression -{ - __0 -} - -fn __action22< - 'input, ->( - (_, l, _): (usize, usize, usize), - (_, expr, _): (usize, Expression, usize), - (_, rest, _): (usize, ::std::vec::Vec>, usize), - (_, r, _): (usize, usize, usize), -) -> Expression -{ - ExpressionBuilder::spanned_path((expr, rest.iter().map(|i| i.to_spanned_string()).collect()), l, r) -} - -fn __action23< - 'input, ->( - (_, __0, _): (usize, Expression, usize), -) -> Expression -{ - (__0) -} - -fn __action24< - 'input, ->( - (_, __0, _): (usize, Expression, usize), -) -> Expression -{ - (__0) -} - -fn __action25< - 'input, ->( - (_, __0, _): (usize, Expression, usize), -) -> Expression -{ - (__0) -} - -fn __action26< - 'input, ->( - (_, __0, _): (usize, Expression, usize), -) -> Expression -{ - (__0) -} - fn __action27< 'input, >( (_, __0, _): (usize, Expression, usize), ) -> Expression { - (__0) + __0 } fn __action28< @@ -5702,10 +14589,12 @@ fn __action28< fn __action29< 'input, >( - (_, __0, _): (usize, Expression, usize), + (_, l, _): (usize, usize, usize), + (_, int, _): (usize, i64, usize), + (_, r, _): (usize, usize, usize), ) -> Expression { - (__0) + ExpressionBuilder::spanned_int(int, l, r) } fn __action30< @@ -5730,218 +14619,251 @@ fn __action32< 'input, >( (_, l, _): (usize, usize, usize), - (_, bare, _): (usize, Bare, usize), + (_, expr, _): (usize, Expression, usize), + (_, rest, _): (usize, Expression, usize), (_, r, _): (usize, usize, usize), ) -> Expression { - ExpressionBuilder::spanned_bare(bare, l, r) + ExpressionBuilder::spanned_call((expr, vec![rest]), l, r) } fn __action33< 'input, >( (_, l, _): (usize, usize, usize), - (_, op, _): (usize, Operator, usize), + (_, expr, _): (usize, Expression, usize), + (_, first, _): (usize, Expression, usize), + (_, rest, _): (usize, ::std::vec::Vec, usize), (_, r, _): (usize, usize, usize), -) -> Spanned +) -> Expression { - Spanned::from_item(op, Span::from((l, r))) + ExpressionBuilder::spanned_call((expr, { let mut rest = rest; let mut v = vec![first]; v.append(&mut rest); v }), l, r) } fn __action34< 'input, >( - (_, head, _): (usize, SpannedToken<'input>, usize), -) -> Bare + (_, l, _): (usize, usize, usize), + (_, expr, _): (usize, Expression, usize), + (_, rest, _): (usize, Expression, usize), + (_, r, _): (usize, usize, usize), +) -> Expression { - Bare::from_string(head.as_slice()) + ExpressionBuilder::spanned_call((expr, vec![rest]), l, r) } fn __action35< 'input, >( - (_, __0, _): (usize, SpannedToken<'input>, usize), -) -> String + (_, l, _): (usize, usize, usize), + (_, expr, _): (usize, Expression, usize), + (_, first, _): (usize, Expression, usize), + (_, rest, _): (usize, ::std::vec::Vec, usize), + (_, r, _): (usize, usize, usize), +) -> Expression { - __0.to_string() + ExpressionBuilder::spanned_call((expr, { let mut v = vec![first]; let mut rest = rest; v.append(&mut rest); v }), l, r) } fn __action36< 'input, >( - (_, __0, _): (usize, SpannedToken<'input>, usize), -) -> String + (_, l, _): (usize, usize, usize), + (_, left, _): (usize, Expression, usize), + (_, op, _): (usize, Spanned, usize), + (_, right, _): (usize, Expression, usize), + (_, r, _): (usize, usize, usize), +) -> Expression { - __0.to_string() + ExpressionBuilder::spanned_binary((left, op, right), l, r) } fn __action37< 'input, >( - (_, __0, _): (usize, SpannedToken<'input>, usize), -) -> String + (_, l, _): (usize, usize, usize), + (_, _, _): (usize, SpannedToken<'input>, usize), + (_, expr, _): (usize, Expression, usize), + (_, _, _): (usize, SpannedToken<'input>, usize), + (_, r, _): (usize, usize, usize), +) -> Spanned { - __0.to_string() + ExpressionBuilder::spanned_raw_block(expr, l, r) } fn __action38< 'input, >( - (_, __0, _): (usize, SpannedToken<'input>, usize), -) -> Operator + (_, l, _): (usize, usize, usize), + (_, _, _): (usize, SpannedToken<'input>, usize), + (_, bare, _): (usize, Expression, usize), + (_, _, _): (usize, SpannedToken<'input>, usize), + (_, r, _): (usize, usize, usize), +) -> Spanned { - Operator::Equal + { + let call = ExpressionBuilder::spanned_call(bare.clone(), bare.span.start, bare.span.end); + ExpressionBuilder::spanned_raw_block(call, l, r) + } } fn __action39< 'input, >( - (_, __0, _): (usize, SpannedToken<'input>, usize), -) -> Operator + (_, l, _): (usize, usize, usize), + (_, _, _): (usize, SpannedToken<'input>, usize), + (_, expr, _): (usize, Expression, usize), + (_, _, _): (usize, SpannedToken<'input>, usize), + (_, r, _): (usize, usize, usize), +) -> Expression { - Operator::NotEqual + ExpressionBuilder::spanned_block(expr, l, r) } fn __action40< 'input, >( - (_, __0, _): (usize, SpannedToken<'input>, usize), -) -> Operator + (_, l, _): (usize, usize, usize), + (_, _, _): (usize, SpannedToken<'input>, usize), + (_, bare, _): (usize, Expression, usize), + (_, _, _): (usize, SpannedToken<'input>, usize), + (_, r, _): (usize, usize, usize), +) -> Expression { - Operator::LessThan + { + let call = ExpressionBuilder::spanned_call(bare.clone(), bare.span.start, bare.span.end); + ExpressionBuilder::spanned_block(call, l, r) + } } fn __action41< 'input, >( - (_, __0, _): (usize, SpannedToken<'input>, usize), -) -> Operator + (_, __0, _): (usize, Expression, usize), +) -> Expression { - Operator::GreaterThan + __0 } fn __action42< 'input, >( - (_, __0, _): (usize, SpannedToken<'input>, usize), -) -> Operator + (_, __0, _): (usize, Expression, usize), +) -> Expression { - Operator::LessThanOrEqual + __0 } fn __action43< 'input, >( - (_, __0, _): (usize, SpannedToken<'input>, usize), -) -> Operator + (_, l, _): (usize, usize, usize), + (_, _, _): (usize, SpannedToken<'input>, usize), + (_, expr, _): (usize, Expression, usize), + (_, _, _): (usize, SpannedToken<'input>, usize), + (_, r, _): (usize, usize, usize), +) -> Expression { - Operator::GreaterThanOrEqual + ExpressionBuilder::spanned_call(expr, l, r) } fn __action44< 'input, >( - (_, n, _): (usize, SpannedToken<'input>, usize), -) -> i64 + (_, l, _): (usize, usize, usize), + (_, _, _): (usize, SpannedToken<'input>, usize), + (_, expr, _): (usize, Expression, usize), + (_, _, _): (usize, SpannedToken<'input>, usize), + (_, r, _): (usize, usize, usize), +) -> Expression { - i64::from_str(n.as_slice()).unwrap() + ExpressionBuilder::spanned_call((expr, vec![]), l, r) } fn __action45< 'input, >( (_, l, _): (usize, usize, usize), - (_, num, _): (usize, i64, usize), - (_, unit, _): (usize, SpannedToken<'input>, usize), + (_, _, _): (usize, SpannedToken<'input>, usize), + (_, expr, _): (usize, Expression, usize), + (_, _, _): (usize, SpannedToken<'input>, usize), (_, r, _): (usize, usize, usize), ) -> Expression { - ExpressionBuilder::spanned_unit((num, Unit::from_str(unit.as_slice()).unwrap()), l, r) + ExpressionBuilder::spanned_parens(expr, l, r) } fn __action46< 'input, >( - (_, l, _): (usize, usize, usize), - (_, s, _): (usize, SpannedToken<'input>, usize), - (_, r, _): (usize, usize, usize), + (_, __0, _): (usize, Expression, usize), ) -> Expression { - ExpressionBuilder::spanned_string(&s.as_slice()[1..(s.as_slice().len() - 1)], l, r) + __0 } fn __action47< 'input, >( (_, l, _): (usize, usize, usize), - (_, s, _): (usize, SpannedToken<'input>, usize), + (_, expr, _): (usize, Expression, usize), + (_, rest, _): (usize, ::std::vec::Vec>, usize), (_, r, _): (usize, usize, usize), ) -> Expression { - ExpressionBuilder::spanned_string(&s.as_slice()[1..(s.as_slice().len() - 1)], l, r) + ExpressionBuilder::spanned_path((expr, rest), l, r) } fn __action48< 'input, >( - (_, l, _): (usize, usize, usize), - (_, _, _): (usize, SpannedToken<'input>, usize), - (_, b, _): (usize, Bare, usize), - (_, r, _): (usize, usize, usize), + (_, __0, _): (usize, Expression, usize), ) -> Expression { - ExpressionBuilder::spanned_shorthand(b.to_string(), l, r) + (__0) } fn __action49< 'input, >( - (_, l, _): (usize, usize, usize), - (_, _, _): (usize, SpannedToken<'input>, usize), - (_, b, _): (usize, Bare, usize), - (_, r, _): (usize, usize, usize), + (_, __0, _): (usize, Expression, usize), ) -> Expression { - ExpressionBuilder::spanned_flag(b.to_string(), l, r) + (__0) } fn __action50< 'input, >( - (_, l, _): (usize, usize, usize), - (_, _, _): (usize, SpannedToken<'input>, usize), - (_, v, _): (usize, SpannedToken<'input>, usize), - (_, r, _): (usize, usize, usize), + (_, __0, _): (usize, Expression, usize), ) -> Expression { - ExpressionBuilder::spanned_var(v.as_slice(), l, r) + (__0) } fn __action51< 'input, >( - (_, __0, _): (usize, SpannedToken<'input>, usize), -) -> ::std::vec::Vec> + (_, __0, _): (usize, Expression, usize), +) -> Expression { - vec![__0] + (__0) } fn __action52< 'input, >( - (_, v, _): (usize, ::std::vec::Vec>, usize), - (_, e, _): (usize, SpannedToken<'input>, usize), -) -> ::std::vec::Vec> + (_, __0, _): (usize, Expression, usize), +) -> Expression { - { let mut v = v; v.push(e); v } + (__0) } fn __action53< 'input, >( - (_, _, _): (usize, SpannedToken<'input>, usize), - (_, __0, _): (usize, SpannedToken<'input>, usize), -) -> SpannedToken<'input> + (_, __0, _): (usize, Expression, usize), +) -> Expression { (__0) } @@ -5950,19 +14872,18 @@ fn __action54< 'input, >( (_, __0, _): (usize, Expression, usize), -) -> ::std::vec::Vec +) -> Expression { - vec![__0] + (__0) } fn __action55< 'input, >( - (_, v, _): (usize, ::std::vec::Vec, usize), - (_, e, _): (usize, Expression, usize), -) -> ::std::vec::Vec + (_, __0, _): (usize, Expression, usize), +) -> Expression { - { let mut v = v; v.push(e); v } + (__0) } fn __action56< @@ -5977,54 +14898,274 @@ fn __action56< fn __action57< 'input, >( - __lookbehind: &usize, - __lookahead: &usize, -) -> usize + (_, l, _): (usize, usize, usize), + (_, bare, _): (usize, Bare, usize), + (_, r, _): (usize, usize, usize), +) -> Expression { - __lookbehind.clone() + ExpressionBuilder::spanned_bare(bare, l, r) } fn __action58< 'input, >( - __lookbehind: &usize, - __lookahead: &usize, -) -> ::std::vec::Vec + (_, l, _): (usize, usize, usize), + (_, op, _): (usize, Operator, usize), + (_, r, _): (usize, usize, usize), +) -> Spanned { - vec![] + Spanned::from_item(op, Span::from((l, r))) } fn __action59< 'input, >( - (_, v, _): (usize, ::std::vec::Vec, usize), -) -> ::std::vec::Vec + (_, __0, _): (usize, ::std::vec::Vec>, usize), +) -> () { - v + () } fn __action60< 'input, >( - (_, _, _): (usize, SpannedToken<'input>, usize), - (_, __0, _): (usize, Expression, usize), -) -> Expression + (_, __0, _): (usize, ::std::vec::Vec>, usize), +) -> () { - (__0) + () } fn __action61< 'input, >( - __lookbehind: &usize, - __lookahead: &usize, -) -> usize + (_, head, _): (usize, SpannedToken<'input>, usize), +) -> Bare { - __lookahead.clone() + Bare::from_string(head.as_slice()) } fn __action62< 'input, +>( + (_, __0, _): (usize, SpannedToken<'input>, usize), +) -> Spanned +{ + __0.to_spanned_string() +} + +fn __action63< + 'input, +>( + (_, __0, _): (usize, SpannedToken<'input>, usize), +) -> Spanned +{ + __0.to_spanned_string() +} + +fn __action64< + 'input, +>( + (_, __0, _): (usize, SpannedToken<'input>, usize), +) -> Spanned +{ + __0.to_spanned_string() +} + +fn __action65< + 'input, +>( + (_, __0, _): (usize, SpannedToken<'input>, usize), +) -> Spanned +{ + __0.to_spanned_string() +} + +fn __action66< + 'input, +>( + (_, l, _): (usize, usize, usize), + (_, name, _): (usize, SpannedToken<'input>, usize), + (_, r, _): (usize, usize, usize), +) -> Spanned +{ + Spanned::from_item(Bare::from_string(name.as_slice()), (l, r)) +} + +fn __action67< + 'input, +>( + (_, __0, _): (usize, SpannedToken<'input>, usize), +) -> Operator +{ + Operator::Equal +} + +fn __action68< + 'input, +>( + (_, __0, _): (usize, SpannedToken<'input>, usize), +) -> Operator +{ + Operator::NotEqual +} + +fn __action69< + 'input, +>( + (_, __0, _): (usize, SpannedToken<'input>, usize), +) -> Operator +{ + Operator::LessThan +} + +fn __action70< + 'input, +>( + (_, __0, _): (usize, SpannedToken<'input>, usize), +) -> Operator +{ + Operator::GreaterThan +} + +fn __action71< + 'input, +>( + (_, __0, _): (usize, SpannedToken<'input>, usize), +) -> Operator +{ + Operator::LessThanOrEqual +} + +fn __action72< + 'input, +>( + (_, __0, _): (usize, SpannedToken<'input>, usize), +) -> Operator +{ + Operator::GreaterThanOrEqual +} + +fn __action73< + 'input, +>( + (_, n, _): (usize, SpannedToken<'input>, usize), +) -> i64 +{ + i64::from_str(n.as_slice()).unwrap() +} + +fn __action74< + 'input, +>( + (_, l, _): (usize, usize, usize), + (_, num, _): (usize, i64, usize), + (_, unit, _): (usize, SpannedToken<'input>, usize), + (_, r, _): (usize, usize, usize), +) -> Expression +{ + ExpressionBuilder::spanned_unit((num, Unit::from_str(unit.as_slice()).unwrap()), l, r) +} + +fn __action75< + 'input, +>( + (_, l, _): (usize, usize, usize), + (_, s, _): (usize, SpannedToken<'input>, usize), + (_, r, _): (usize, usize, usize), +) -> Expression +{ + ExpressionBuilder::spanned_string(&s.as_slice()[1..(s.as_slice().len() - 1)], l, r) +} + +fn __action76< + 'input, +>( + (_, l, _): (usize, usize, usize), + (_, s, _): (usize, SpannedToken<'input>, usize), + (_, r, _): (usize, usize, usize), +) -> Expression +{ + ExpressionBuilder::spanned_string(&s.as_slice()[1..(s.as_slice().len() - 1)], l, r) +} + +fn __action77< + 'input, +>( + (_, l, _): (usize, usize, usize), + (_, _, _): (usize, SpannedToken<'input>, usize), + (_, b, _): (usize, Bare, usize), + (_, r, _): (usize, usize, usize), +) -> Expression +{ + ExpressionBuilder::spanned_shorthand(b.to_string(), l, r) +} + +fn __action78< + 'input, +>( + (_, l, _): (usize, usize, usize), + (_, _, _): (usize, SpannedToken<'input>, usize), + (_, b, _): (usize, Bare, usize), + (_, r, _): (usize, usize, usize), +) -> Expression +{ + ExpressionBuilder::spanned_flag(b.to_string(), l, r) +} + +fn __action79< + 'input, +>( + (_, l, _): (usize, usize, usize), + (_, _, _): (usize, SpannedToken<'input>, usize), + (_, v, _): (usize, SpannedToken<'input>, usize), + (_, r, _): (usize, usize, usize), +) -> Expression +{ + ExpressionBuilder::spanned_var(v.as_slice(), l, r) +} + +fn __action80< + 'input, +>( + (_, l, _): (usize, usize, usize), + (_, bare, _): (usize, Bare, usize), + (_, r, _): (usize, usize, usize), +) -> Spanned +{ + Spanned::from_item(bare, (l, r)) +} + +fn __action81< + 'input, +>( + (_, __0, _): (usize, Spanned, usize), +) -> ::std::vec::Vec> +{ + vec![__0] +} + +fn __action82< + 'input, +>( + (_, v, _): (usize, ::std::vec::Vec>, usize), + (_, e, _): (usize, Spanned, usize), +) -> ::std::vec::Vec> +{ + { let mut v = v; v.push(e); v } +} + +fn __action83< + 'input, +>( + (_, _, _): (usize, SpannedToken<'input>, usize), + (_, __0, _): (usize, Spanned, usize), +) -> Spanned +{ + (__0) +} + +fn __action84< + 'input, >( (_, __0, _): (usize, Expression, usize), ) -> ::std::vec::Vec @@ -6032,7 +15173,7 @@ fn __action62< vec![__0] } -fn __action63< +fn __action85< 'input, >( (_, v, _): (usize, ::std::vec::Vec, usize), @@ -6042,47 +15183,531 @@ fn __action63< { let mut v = v; v.push(e); v } } -fn __action64< +fn __action86< + 'input, +>( + (_, __0, _): (usize, Expression, usize), +) -> Expression +{ + (__0) +} + +fn __action87< + 'input, +>( + __lookbehind: &usize, + __lookahead: &usize, +) -> ::std::vec::Vec +{ + vec![] +} + +fn __action88< + 'input, +>( + (_, v, _): (usize, ::std::vec::Vec, usize), +) -> ::std::vec::Vec +{ + v +} + +fn __action89< + 'input, +>( + (_, _, _): (usize, SpannedToken<'input>, usize), + (_, __0, _): (usize, Expression, usize), +) -> Expression +{ + (__0) +} + +fn __action90< + 'input, +>( + __lookbehind: &usize, + __lookahead: &usize, +) -> ::std::vec::Vec> +{ + vec![] +} + +fn __action91< + 'input, +>( + (_, v, _): (usize, ::std::vec::Vec>, usize), +) -> ::std::vec::Vec> +{ + v +} + +fn __action92< + 'input, +>( + (_, v, _): (usize, ::std::vec::Vec, usize), + (_, e, _): (usize, ::std::option::Option, usize), +) -> Vec +{ + match e { // (2) + None => v, + Some(e) => { + let mut v = v; + v.push(e); + v + } + } +} + +fn __action93< + 'input, +>( + (_, __0, _): (usize, Spanned, usize), +) -> ::std::option::Option> +{ + Some(__0) +} + +fn __action94< + 'input, +>( + __lookbehind: &usize, + __lookahead: &usize, +) -> ::std::option::Option> +{ + None +} + +fn __action95< + 'input, +>( + (_, _, _): (usize, SpannedToken<'input>, usize), + (_, __0, _): (usize, Spanned, usize), +) -> Spanned +{ + (__0) +} + +fn __action96< + 'input, +>( + __lookbehind: &usize, + __lookahead: &usize, +) -> usize +{ + __lookbehind.clone() +} + +fn __action97< + 'input, +>( + __lookbehind: &usize, + __lookahead: &usize, +) -> ::std::vec::Vec +{ + vec![] +} + +fn __action98< + 'input, +>( + (_, v, _): (usize, ::std::vec::Vec, usize), +) -> ::std::vec::Vec +{ + v +} + +fn __action99< + 'input, +>( + (_, _, _): (usize, ::std::vec::Vec>, usize), + (_, __0, _): (usize, Item, usize), +) -> Item +{ + (__0) +} + +fn __action100< + 'input, +>( + (_, __0, _): (usize, SpannedToken<'input>, usize), +) -> ::std::vec::Vec> +{ + vec![__0] +} + +fn __action101< + 'input, +>( + (_, v, _): (usize, ::std::vec::Vec>, usize), + (_, e, _): (usize, SpannedToken<'input>, usize), +) -> ::std::vec::Vec> +{ + { let mut v = v; v.push(e); v } +} + +fn __action102< + 'input, +>( + (_, __0, _): (usize, SpannedToken<'input>, usize), +) -> SpannedToken<'input> +{ + (__0) +} + +fn __action103< + 'input, +>( + __lookbehind: &usize, + __lookahead: &usize, +) -> usize +{ + __lookahead.clone() +} + +fn __action104< + 'input, +>( + (_, __0, _): (usize, Item, usize), +) -> ::std::vec::Vec +{ + vec![__0] +} + +fn __action105< + 'input, +>( + (_, v, _): (usize, ::std::vec::Vec, usize), + (_, e, _): (usize, Item, usize), +) -> ::std::vec::Vec +{ + { let mut v = v; v.push(e); v } +} + +fn __action106< + 'input, +>( + (_, __0, _): (usize, FormalParameter, usize), +) -> ::std::option::Option +{ + Some(__0) +} + +fn __action107< + 'input, +>( + __lookbehind: &usize, + __lookahead: &usize, +) -> ::std::option::Option +{ + None +} + +fn __action108< + 'input, +>( + __lookbehind: &usize, + __lookahead: &usize, +) -> ::std::vec::Vec +{ + vec![] +} + +fn __action109< + 'input, +>( + (_, v, _): (usize, ::std::vec::Vec, usize), +) -> ::std::vec::Vec +{ + v +} + +fn __action110< + 'input, +>( + (_, __0, _): (usize, FormalParameter, usize), + (_, _, _): (usize, (), usize), + (_, _, _): (usize, SpannedToken<'input>, usize), + (_, _, _): (usize, (), usize), +) -> FormalParameter +{ + (__0) +} + +fn __action111< + 'input, +>( + (_, __0, _): (usize, Expression, usize), +) -> ::std::vec::Vec +{ + vec![__0] +} + +fn __action112< + 'input, +>( + (_, v, _): (usize, ::std::vec::Vec, usize), + (_, e, _): (usize, Expression, usize), +) -> ::std::vec::Vec +{ + { let mut v = v; v.push(e); v } +} + +fn __action113< + 'input, +>( + (_, __0, _): (usize, FormalParameter, usize), +) -> ::std::vec::Vec +{ + vec![__0] +} + +fn __action114< + 'input, +>( + (_, v, _): (usize, ::std::vec::Vec, usize), + (_, e, _): (usize, FormalParameter, usize), +) -> ::std::vec::Vec +{ + { let mut v = v; v.push(e); v } +} + +fn __action115< 'input, >( __0: (usize, SpannedToken<'input>, usize), - __1: (usize, SpannedToken<'input>, usize), -) -> ::std::vec::Vec> + __1: (usize, Spanned, usize), +) -> ::std::option::Option> { let __start0 = __0.0.clone(); let __end0 = __1.2.clone(); - let __temp0 = __action53( + let __temp0 = __action95( __0, __1, ); let __temp0 = (__start0, __temp0, __end0); - __action51( + __action93( __temp0, ) } -fn __action65< +fn __action116< 'input, >( - __0: (usize, ::std::vec::Vec>, usize), + __0: (usize, usize, usize), __1: (usize, SpannedToken<'input>, usize), - __2: (usize, SpannedToken<'input>, usize), -) -> ::std::vec::Vec> + __2: (usize, Spanned, usize), + __3: (usize, SpannedToken<'input>, usize), + __4: (usize, Vec, usize), + __5: (usize, SpannedToken<'input>, usize), + __6: (usize, SpannedToken<'input>, usize), + __7: (usize, Spanned, usize), + __8: (usize, Spanned, usize), + __9: (usize, usize, usize), +) -> Function +{ + let __start0 = __6.0.clone(); + let __end0 = __7.2.clone(); + let __temp0 = __action115( + __6, + __7, + ); + let __temp0 = (__start0, __temp0, __end0); + __action6( + __0, + __1, + __2, + __3, + __4, + __5, + __temp0, + __8, + __9, + ) +} + +fn __action117< + 'input, +>( + __0: (usize, usize, usize), + __1: (usize, SpannedToken<'input>, usize), + __2: (usize, Spanned, usize), + __3: (usize, SpannedToken<'input>, usize), + __4: (usize, Vec, usize), + __5: (usize, SpannedToken<'input>, usize), + __6: (usize, Spanned, usize), + __7: (usize, usize, usize), +) -> Function +{ + let __start0 = __5.2.clone(); + let __end0 = __6.0.clone(); + let __temp0 = __action94( + &__start0, + &__end0, + ); + let __temp0 = (__start0, __temp0, __end0); + __action6( + __0, + __1, + __2, + __3, + __4, + __5, + __temp0, + __6, + __7, + ) +} + +fn __action118< + 'input, +>( + __0: (usize, SpannedToken<'input>, usize), + __1: (usize, Spanned, usize), +) -> ::std::vec::Vec> +{ + let __start0 = __0.0.clone(); + let __end0 = __1.2.clone(); + let __temp0 = __action83( + __0, + __1, + ); + let __temp0 = (__start0, __temp0, __end0); + __action81( + __temp0, + ) +} + +fn __action119< + 'input, +>( + __0: (usize, ::std::vec::Vec>, usize), + __1: (usize, SpannedToken<'input>, usize), + __2: (usize, Spanned, usize), +) -> ::std::vec::Vec> { let __start0 = __1.0.clone(); let __end0 = __2.2.clone(); - let __temp0 = __action53( + let __temp0 = __action83( __1, __2, ); let __temp0 = (__start0, __temp0, __end0); - __action52( + __action82( __0, __temp0, ) } -fn __action66< +fn __action120< + 'input, +>( + __0: (usize, SpannedToken<'input>, usize), +) -> ::std::vec::Vec> +{ + let __start0 = __0.0.clone(); + let __end0 = __0.2.clone(); + let __temp0 = __action102( + __0, + ); + let __temp0 = (__start0, __temp0, __end0); + __action100( + __temp0, + ) +} + +fn __action121< + 'input, +>( + __0: (usize, ::std::vec::Vec>, usize), + __1: (usize, SpannedToken<'input>, usize), +) -> ::std::vec::Vec> +{ + let __start0 = __1.0.clone(); + let __end0 = __1.2.clone(); + let __temp0 = __action102( + __1, + ); + let __temp0 = (__start0, __temp0, __end0); + __action101( + __0, + __temp0, + ) +} + +fn __action122< + 'input, +>( + __lookbehind: &usize, + __lookahead: &usize, +) -> () +{ + let __start0 = __lookbehind.clone(); + let __end0 = __lookahead.clone(); + let __temp0 = __action90( + &__start0, + &__end0, + ); + let __temp0 = (__start0, __temp0, __end0); + __action60( + __temp0, + ) +} + +fn __action123< + 'input, +>( + __0: (usize, ::std::vec::Vec>, usize), +) -> () +{ + let __start0 = __0.0.clone(); + let __end0 = __0.2.clone(); + let __temp0 = __action91( + __0, + ); + let __temp0 = (__start0, __temp0, __end0); + __action60( + __temp0, + ) +} + +fn __action124< + 'input, +>( + __0: (usize, Pipeline, usize), +) -> Pipeline +{ + let __start0 = __0.2.clone(); + let __end0 = __0.2.clone(); + let __temp0 = __action90( + &__start0, + &__end0, + ); + let __temp0 = (__start0, __temp0, __end0); + __action24( + __0, + __temp0, + ) +} + +fn __action125< + 'input, +>( + __0: (usize, Pipeline, usize), + __1: (usize, ::std::vec::Vec>, usize), +) -> Pipeline +{ + let __start0 = __1.0.clone(); + let __end0 = __1.2.clone(); + let __temp0 = __action91( + __1, + ); + let __temp0 = (__start0, __temp0, __end0); + __action24( + __0, + __temp0, + ) +} + +fn __action126< 'input, >( __0: (usize, SpannedToken<'input>, usize), @@ -6091,17 +15716,17 @@ fn __action66< { let __start0 = __0.0.clone(); let __end0 = __1.2.clone(); - let __temp0 = __action60( + let __temp0 = __action89( __0, __1, ); let __temp0 = (__start0, __temp0, __end0); - __action62( + __action111( __temp0, ) } -fn __action67< +fn __action127< 'input, >( __0: (usize, ::std::vec::Vec, usize), @@ -6111,18 +15736,18 @@ fn __action67< { let __start0 = __1.0.clone(); let __end0 = __2.2.clone(); - let __temp0 = __action60( + let __temp0 = __action89( __1, __2, ); let __temp0 = (__start0, __temp0, __end0); - __action63( + __action112( __0, __temp0, ) } -fn __action68< +fn __action128< 'input, >( __0: (usize, usize, usize), @@ -6132,12 +15757,12 @@ fn __action68< { let __start0 = __1.2.clone(); let __end0 = __2.0.clone(); - let __temp0 = __action58( + let __temp0 = __action87( &__start0, &__end0, ); let __temp0 = (__start0, __temp0, __end0); - __action2( + __action25( __0, __1, __temp0, @@ -6145,7 +15770,7 @@ fn __action68< ) } -fn __action69< +fn __action129< 'input, >( __0: (usize, usize, usize), @@ -6156,11 +15781,11 @@ fn __action69< { let __start0 = __2.0.clone(); let __end0 = __2.2.clone(); - let __temp0 = __action59( + let __temp0 = __action88( __2, ); let __temp0 = (__start0, __temp0, __end0); - __action2( + __action25( __0, __1, __temp0, @@ -6168,7 +15793,93 @@ fn __action69< ) } -fn __action70< +fn __action130< + 'input, +>( + __0: (usize, ::std::vec::Vec>, usize), + __1: (usize, Item, usize), +) -> ::std::vec::Vec +{ + let __start0 = __0.0.clone(); + let __end0 = __1.2.clone(); + let __temp0 = __action99( + __0, + __1, + ); + let __temp0 = (__start0, __temp0, __end0); + __action104( + __temp0, + ) +} + +fn __action131< + 'input, +>( + __0: (usize, ::std::vec::Vec, usize), + __1: (usize, ::std::vec::Vec>, usize), + __2: (usize, Item, usize), +) -> ::std::vec::Vec +{ + let __start0 = __1.0.clone(); + let __end0 = __2.2.clone(); + let __temp0 = __action99( + __1, + __2, + ); + let __temp0 = (__start0, __temp0, __end0); + __action105( + __0, + __temp0, + ) +} + +fn __action132< + 'input, +>( + __0: (usize, usize, usize), + __1: (usize, Item, usize), + __2: (usize, usize, usize), +) -> Module +{ + let __start0 = __1.2.clone(); + let __end0 = __2.0.clone(); + let __temp0 = __action97( + &__start0, + &__end0, + ); + let __temp0 = (__start0, __temp0, __end0); + __action3( + __0, + __1, + __temp0, + __2, + ) +} + +fn __action133< + 'input, +>( + __0: (usize, usize, usize), + __1: (usize, Item, usize), + __2: (usize, ::std::vec::Vec, usize), + __3: (usize, usize, usize), +) -> Module +{ + let __start0 = __2.0.clone(); + let __end0 = __2.2.clone(); + let __temp0 = __action98( + __2, + ); + let __temp0 = (__start0, __temp0, __end0); + __action3( + __0, + __1, + __temp0, + __3, + ) +} + +fn __action134< 'input, >( __0: (usize, Expression, usize), @@ -6176,16 +15887,16 @@ fn __action70< { let __start0 = __0.0.clone(); let __end0 = __0.2.clone(); - let __temp0 = __action56( + let __temp0 = __action86( __0, ); let __temp0 = (__start0, __temp0, __end0); - __action54( + __action84( __temp0, ) } -fn __action71< +fn __action135< 'input, >( __0: (usize, ::std::vec::Vec, usize), @@ -6194,17 +15905,103 @@ fn __action71< { let __start0 = __1.0.clone(); let __end0 = __1.2.clone(); - let __temp0 = __action56( + let __temp0 = __action86( __1, ); let __temp0 = (__start0, __temp0, __end0); - __action55( + __action85( __0, __temp0, ) } -fn __action72< +fn __action136< + 'input, +>( + __0: (usize, FormalParameter, usize), + __1: (usize, (), usize), + __2: (usize, SpannedToken<'input>, usize), + __3: (usize, (), usize), +) -> ::std::vec::Vec +{ + let __start0 = __0.0.clone(); + let __end0 = __3.2.clone(); + let __temp0 = __action110( + __0, + __1, + __2, + __3, + ); + let __temp0 = (__start0, __temp0, __end0); + __action113( + __temp0, + ) +} + +fn __action137< + 'input, +>( + __0: (usize, ::std::vec::Vec, usize), + __1: (usize, FormalParameter, usize), + __2: (usize, (), usize), + __3: (usize, SpannedToken<'input>, usize), + __4: (usize, (), usize), +) -> ::std::vec::Vec +{ + let __start0 = __1.0.clone(); + let __end0 = __4.2.clone(); + let __temp0 = __action110( + __1, + __2, + __3, + __4, + ); + let __temp0 = (__start0, __temp0, __end0); + __action114( + __0, + __temp0, + ) +} + +fn __action138< + 'input, +>( + __0: (usize, ::std::option::Option, usize), +) -> Vec +{ + let __start0 = __0.0.clone(); + let __end0 = __0.0.clone(); + let __temp0 = __action108( + &__start0, + &__end0, + ); + let __temp0 = (__start0, __temp0, __end0); + __action92( + __temp0, + __0, + ) +} + +fn __action139< + 'input, +>( + __0: (usize, ::std::vec::Vec, usize), + __1: (usize, ::std::option::Option, usize), +) -> Vec +{ + let __start0 = __0.0.clone(); + let __end0 = __0.2.clone(); + let __temp0 = __action109( + __0, + ); + let __temp0 = (__start0, __temp0, __end0); + __action92( + __temp0, + __1, + ) +} + +fn __action140< 'input, >( __0: (usize, Bare, usize), @@ -6213,19 +16010,19 @@ fn __action72< { let __start0 = __0.0.clone(); let __end0 = __0.0.clone(); - let __temp0 = __action61( + let __temp0 = __action103( &__start0, &__end0, ); let __temp0 = (__start0, __temp0, __end0); - __action32( + __action57( __temp0, __0, __1, ) } -fn __action73< +fn __action141< 'input, >( __0: (usize, Expression, usize), @@ -6236,12 +16033,12 @@ fn __action73< { let __start0 = __0.0.clone(); let __end0 = __0.0.clone(); - let __temp0 = __action61( + let __temp0 = __action103( &__start0, &__end0, ); let __temp0 = (__start0, __temp0, __end0); - __action13( + __action36( __temp0, __0, __1, @@ -6250,7 +16047,57 @@ fn __action73< ) } -fn __action74< +fn __action142< + 'input, +>( + __0: (usize, SpannedToken<'input>, usize), + __1: (usize, Expression, usize), + __2: (usize, SpannedToken<'input>, usize), + __3: (usize, usize, usize), +) -> Spanned +{ + let __start0 = __0.0.clone(); + let __end0 = __0.0.clone(); + let __temp0 = __action103( + &__start0, + &__end0, + ); + let __temp0 = (__start0, __temp0, __end0); + __action37( + __temp0, + __0, + __1, + __2, + __3, + ) +} + +fn __action143< + 'input, +>( + __0: (usize, SpannedToken<'input>, usize), + __1: (usize, Expression, usize), + __2: (usize, SpannedToken<'input>, usize), + __3: (usize, usize, usize), +) -> Spanned +{ + let __start0 = __0.0.clone(); + let __end0 = __0.0.clone(); + let __temp0 = __action103( + &__start0, + &__end0, + ); + let __temp0 = (__start0, __temp0, __end0); + __action38( + __temp0, + __0, + __1, + __2, + __3, + ) +} + +fn __action144< 'input, >( __0: (usize, SpannedToken<'input>, usize), @@ -6261,12 +16108,12 @@ fn __action74< { let __start0 = __0.0.clone(); let __end0 = __0.0.clone(); - let __temp0 = __action61( + let __temp0 = __action103( &__start0, &__end0, ); let __temp0 = (__start0, __temp0, __end0); - __action14( + __action39( __temp0, __0, __1, @@ -6275,7 +16122,7 @@ fn __action74< ) } -fn __action75< +fn __action145< 'input, >( __0: (usize, SpannedToken<'input>, usize), @@ -6286,12 +16133,12 @@ fn __action75< { let __start0 = __0.0.clone(); let __end0 = __0.0.clone(); - let __temp0 = __action61( + let __temp0 = __action103( &__start0, &__end0, ); let __temp0 = (__start0, __temp0, __end0); - __action15( + __action40( __temp0, __0, __1, @@ -6300,7 +16147,7 @@ fn __action75< ) } -fn __action76< +fn __action146< 'input, >( __0: (usize, Expression, usize), @@ -6310,7 +16157,466 @@ fn __action76< { let __start0 = __0.0.clone(); let __end0 = __0.0.clone(); - let __temp0 = __action61( + let __temp0 = __action103( + &__start0, + &__end0, + ); + let __temp0 = (__start0, __temp0, __end0); + __action32( + __temp0, + __0, + __1, + __2, + ) +} + +fn __action147< + 'input, +>( + __0: (usize, Expression, usize), + __1: (usize, Expression, usize), + __2: (usize, ::std::vec::Vec, usize), + __3: (usize, usize, usize), +) -> Expression +{ + let __start0 = __0.0.clone(); + let __end0 = __0.0.clone(); + let __temp0 = __action103( + &__start0, + &__end0, + ); + let __temp0 = (__start0, __temp0, __end0); + __action33( + __temp0, + __0, + __1, + __2, + __3, + ) +} + +fn __action148< + 'input, +>( + __0: (usize, Expression, usize), + __1: (usize, Expression, usize), + __2: (usize, usize, usize), +) -> Expression +{ + let __start0 = __0.0.clone(); + let __end0 = __0.0.clone(); + let __temp0 = __action103( + &__start0, + &__end0, + ); + let __temp0 = (__start0, __temp0, __end0); + __action34( + __temp0, + __0, + __1, + __2, + ) +} + +fn __action149< + 'input, +>( + __0: (usize, Expression, usize), + __1: (usize, Expression, usize), + __2: (usize, ::std::vec::Vec, usize), + __3: (usize, usize, usize), +) -> Expression +{ + let __start0 = __0.0.clone(); + let __end0 = __0.0.clone(); + let __temp0 = __action103( + &__start0, + &__end0, + ); + let __temp0 = (__start0, __temp0, __end0); + __action35( + __temp0, + __0, + __1, + __2, + __3, + ) +} + +fn __action150< + 'input, +>( + __0: (usize, SpannedToken<'input>, usize), + __1: (usize, usize, usize), +) -> Spanned +{ + let __start0 = __0.0.clone(); + let __end0 = __0.0.clone(); + let __temp0 = __action103( + &__start0, + &__end0, + ); + let __temp0 = (__start0, __temp0, __end0); + __action66( + __temp0, + __0, + __1, + ) +} + +fn __action151< + 'input, +>( + __0: (usize, Expression, usize), + __1: (usize, ::std::vec::Vec>, usize), + __2: (usize, usize, usize), +) -> Expression +{ + let __start0 = __0.0.clone(); + let __end0 = __0.0.clone(); + let __temp0 = __action103( + &__start0, + &__end0, + ); + let __temp0 = (__start0, __temp0, __end0); + __action47( + __temp0, + __0, + __1, + __2, + ) +} + +fn __action152< + 'input, +>( + __0: (usize, SpannedToken<'input>, usize), + __1: (usize, Bare, usize), + __2: (usize, usize, usize), +) -> Expression +{ + let __start0 = __0.0.clone(); + let __end0 = __0.0.clone(); + let __temp0 = __action103( + &__start0, + &__end0, + ); + let __temp0 = (__start0, __temp0, __end0); + __action77( + __temp0, + __0, + __1, + __2, + ) +} + +fn __action153< + 'input, +>( + __0: (usize, SpannedToken<'input>, usize), + __1: (usize, Bare, usize), + __2: (usize, usize, usize), +) -> Expression +{ + let __start0 = __0.0.clone(); + let __end0 = __0.0.clone(); + let __temp0 = __action103( + &__start0, + &__end0, + ); + let __temp0 = (__start0, __temp0, __end0); + __action78( + __temp0, + __0, + __1, + __2, + ) +} + +fn __action154< + 'input, +>( + __0: (usize, ParameterIdentifier, usize), + __1: (usize, SpannedToken<'input>, usize), + __2: (usize, Spanned, usize), + __3: (usize, usize, usize), +) -> FormalParameter +{ + let __start0 = __0.0.clone(); + let __end0 = __0.0.clone(); + let __temp0 = __action103( + &__start0, + &__end0, + ); + let __temp0 = (__start0, __temp0, __end0); + __action8( + __temp0, + __0, + __1, + __2, + __3, + ) +} + +fn __action155< + 'input, +>( + __0: (usize, SpannedToken<'input>, usize), + __1: (usize, Spanned, usize), + __2: (usize, SpannedToken<'input>, usize), + __3: (usize, Vec, usize), + __4: (usize, SpannedToken<'input>, usize), + __5: (usize, SpannedToken<'input>, usize), + __6: (usize, Spanned, usize), + __7: (usize, Spanned, usize), + __8: (usize, usize, usize), +) -> Function +{ + let __start0 = __0.0.clone(); + let __end0 = __0.0.clone(); + let __temp0 = __action103( + &__start0, + &__end0, + ); + let __temp0 = (__start0, __temp0, __end0); + __action116( + __temp0, + __0, + __1, + __2, + __3, + __4, + __5, + __6, + __7, + __8, + ) +} + +fn __action156< + 'input, +>( + __0: (usize, SpannedToken<'input>, usize), + __1: (usize, Spanned, usize), + __2: (usize, SpannedToken<'input>, usize), + __3: (usize, Vec, usize), + __4: (usize, SpannedToken<'input>, usize), + __5: (usize, Spanned, usize), + __6: (usize, usize, usize), +) -> Function +{ + let __start0 = __0.0.clone(); + let __end0 = __0.0.clone(); + let __temp0 = __action103( + &__start0, + &__end0, + ); + let __temp0 = (__start0, __temp0, __end0); + __action117( + __temp0, + __0, + __1, + __2, + __3, + __4, + __5, + __6, + ) +} + +fn __action157< + 'input, +>( + __0: (usize, Pipeline, usize), + __1: (usize, usize, usize), +) -> Item +{ + let __start0 = __0.0.clone(); + let __end0 = __0.0.clone(); + let __temp0 = __action103( + &__start0, + &__end0, + ); + let __temp0 = (__start0, __temp0, __end0); + __action4( + __temp0, + __0, + __1, + ) +} + +fn __action158< + 'input, +>( + __0: (usize, Function, usize), + __1: (usize, usize, usize), +) -> Item +{ + let __start0 = __0.0.clone(); + let __end0 = __0.0.clone(); + let __temp0 = __action103( + &__start0, + &__end0, + ); + let __temp0 = (__start0, __temp0, __end0); + __action5( + __temp0, + __0, + __1, + ) +} + +fn __action159< + 'input, +>( + __0: (usize, i64, usize), + __1: (usize, usize, usize), +) -> Expression +{ + let __start0 = __0.0.clone(); + let __end0 = __0.0.clone(); + let __temp0 = __action103( + &__start0, + &__end0, + ); + let __temp0 = (__start0, __temp0, __end0); + __action29( + __temp0, + __0, + __1, + ) +} + +fn __action160< + 'input, +>( + __0: (usize, SpannedToken<'input>, usize), + __1: (usize, Expression, usize), + __2: (usize, SpannedToken<'input>, usize), + __3: (usize, usize, usize), +) -> Expression +{ + let __start0 = __0.0.clone(); + let __end0 = __0.0.clone(); + let __temp0 = __action103( + &__start0, + &__end0, + ); + let __temp0 = (__start0, __temp0, __end0); + __action43( + __temp0, + __0, + __1, + __2, + __3, + ) +} + +fn __action161< + 'input, +>( + __0: (usize, SpannedToken<'input>, usize), + __1: (usize, Expression, usize), + __2: (usize, SpannedToken<'input>, usize), + __3: (usize, usize, usize), +) -> Expression +{ + let __start0 = __0.0.clone(); + let __end0 = __0.0.clone(); + let __temp0 = __action103( + &__start0, + &__end0, + ); + let __temp0 = (__start0, __temp0, __end0); + __action44( + __temp0, + __0, + __1, + __2, + __3, + ) +} + +fn __action162< + 'input, +>( + __0: (usize, SpannedToken<'input>, usize), + __1: (usize, Expression, usize), + __2: (usize, SpannedToken<'input>, usize), + __3: (usize, usize, usize), +) -> Expression +{ + let __start0 = __0.0.clone(); + let __end0 = __0.0.clone(); + let __temp0 = __action103( + &__start0, + &__end0, + ); + let __temp0 = (__start0, __temp0, __end0); + __action45( + __temp0, + __0, + __1, + __2, + __3, + ) +} + +fn __action163< + 'input, +>( + __0: (usize, Item, usize), + __1: (usize, usize, usize), +) -> Module +{ + let __start0 = __0.0.clone(); + let __end0 = __0.0.clone(); + let __temp0 = __action103( + &__start0, + &__end0, + ); + let __temp0 = (__start0, __temp0, __end0); + __action132( + __temp0, + __0, + __1, + ) +} + +fn __action164< + 'input, +>( + __0: (usize, Item, usize), + __1: (usize, ::std::vec::Vec, usize), + __2: (usize, usize, usize), +) -> Module +{ + let __start0 = __0.0.clone(); + let __end0 = __0.0.clone(); + let __temp0 = __action103( + &__start0, + &__end0, + ); + let __temp0 = (__start0, __temp0, __end0); + __action133( + __temp0, + __0, + __1, + __2, + ) +} + +fn __action165< + 'input, +>( + __0: (usize, SpannedToken<'input>, usize), + __1: (usize, Spanned, usize), + __2: (usize, usize, usize), +) -> ParameterIdentifier +{ + let __start0 = __0.0.clone(); + let __end0 = __0.0.clone(); + let __temp0 = __action103( &__start0, &__end0, ); @@ -6323,18 +16629,17 @@ fn __action76< ) } -fn __action77< +fn __action166< 'input, >( - __0: (usize, Expression, usize), - __1: (usize, Expression, usize), - __2: (usize, ::std::vec::Vec, usize), - __3: (usize, usize, usize), -) -> Expression + __0: (usize, SpannedToken<'input>, usize), + __1: (usize, Spanned, usize), + __2: (usize, usize, usize), +) -> ParameterIdentifier { let __start0 = __0.0.clone(); let __end0 = __0.0.clone(); - let __temp0 = __action61( + let __temp0 = __action103( &__start0, &__end0, ); @@ -6344,21 +16649,19 @@ fn __action77< __0, __1, __2, - __3, ) } -fn __action78< +fn __action167< 'input, >( - __0: (usize, Expression, usize), - __1: (usize, Expression, usize), - __2: (usize, usize, usize), -) -> Expression + __0: (usize, Spanned, usize), + __1: (usize, usize, usize), +) -> ParameterIdentifier { let __start0 = __0.0.clone(); let __end0 = __0.0.clone(); - let __temp0 = __action61( + let __temp0 = __action103( &__start0, &__end0, ); @@ -6367,22 +16670,20 @@ fn __action78< __temp0, __0, __1, - __2, ) } -fn __action79< +fn __action168< 'input, >( - __0: (usize, Expression, usize), - __1: (usize, Expression, usize), - __2: (usize, ::std::vec::Vec, usize), - __3: (usize, usize, usize), -) -> Expression + __0: (usize, SpannedToken<'input>, usize), + __1: (usize, SpannedToken<'input>, usize), + __2: (usize, usize, usize), +) -> Spanned { let __start0 = __0.0.clone(); let __end0 = __0.0.clone(); - let __temp0 = __action61( + let __temp0 = __action103( &__start0, &__end0, ); @@ -6392,176 +16693,10 @@ fn __action79< __0, __1, __2, - __3, ) } -fn __action80< - 'input, ->( - __0: (usize, Expression, usize), - __1: (usize, ::std::vec::Vec>, usize), - __2: (usize, usize, usize), -) -> Expression -{ - let __start0 = __0.0.clone(); - let __end0 = __0.0.clone(); - let __temp0 = __action61( - &__start0, - &__end0, - ); - let __temp0 = (__start0, __temp0, __end0); - __action22( - __temp0, - __0, - __1, - __2, - ) -} - -fn __action81< - 'input, ->( - __0: (usize, SpannedToken<'input>, usize), - __1: (usize, Bare, usize), - __2: (usize, usize, usize), -) -> Expression -{ - let __start0 = __0.0.clone(); - let __end0 = __0.0.clone(); - let __temp0 = __action61( - &__start0, - &__end0, - ); - let __temp0 = (__start0, __temp0, __end0); - __action48( - __temp0, - __0, - __1, - __2, - ) -} - -fn __action82< - 'input, ->( - __0: (usize, SpannedToken<'input>, usize), - __1: (usize, Bare, usize), - __2: (usize, usize, usize), -) -> Expression -{ - let __start0 = __0.0.clone(); - let __end0 = __0.0.clone(); - let __temp0 = __action61( - &__start0, - &__end0, - ); - let __temp0 = (__start0, __temp0, __end0); - __action49( - __temp0, - __0, - __1, - __2, - ) -} - -fn __action83< - 'input, ->( - __0: (usize, i64, usize), - __1: (usize, usize, usize), -) -> Expression -{ - let __start0 = __0.0.clone(); - let __end0 = __0.0.clone(); - let __temp0 = __action61( - &__start0, - &__end0, - ); - let __temp0 = (__start0, __temp0, __end0); - __action6( - __temp0, - __0, - __1, - ) -} - -fn __action84< - 'input, ->( - __0: (usize, SpannedToken<'input>, usize), - __1: (usize, Expression, usize), - __2: (usize, SpannedToken<'input>, usize), - __3: (usize, usize, usize), -) -> Expression -{ - let __start0 = __0.0.clone(); - let __end0 = __0.0.clone(); - let __temp0 = __action61( - &__start0, - &__end0, - ); - let __temp0 = (__start0, __temp0, __end0); - __action18( - __temp0, - __0, - __1, - __2, - __3, - ) -} - -fn __action85< - 'input, ->( - __0: (usize, SpannedToken<'input>, usize), - __1: (usize, Expression, usize), - __2: (usize, SpannedToken<'input>, usize), - __3: (usize, usize, usize), -) -> Expression -{ - let __start0 = __0.0.clone(); - let __end0 = __0.0.clone(); - let __temp0 = __action61( - &__start0, - &__end0, - ); - let __temp0 = (__start0, __temp0, __end0); - __action19( - __temp0, - __0, - __1, - __2, - __3, - ) -} - -fn __action86< - 'input, ->( - __0: (usize, SpannedToken<'input>, usize), - __1: (usize, Expression, usize), - __2: (usize, SpannedToken<'input>, usize), - __3: (usize, usize, usize), -) -> Expression -{ - let __start0 = __0.0.clone(); - let __end0 = __0.0.clone(); - let __temp0 = __action61( - &__start0, - &__end0, - ); - let __temp0 = (__start0, __temp0, __end0); - __action20( - __temp0, - __0, - __1, - __2, - __3, - ) -} - -fn __action87< +fn __action169< 'input, >( __0: (usize, Expression, usize), @@ -6570,19 +16705,19 @@ fn __action87< { let __start0 = __0.0.clone(); let __end0 = __0.0.clone(); - let __temp0 = __action61( + let __temp0 = __action103( &__start0, &__end0, ); let __temp0 = (__start0, __temp0, __end0); - __action68( + __action128( __temp0, __0, __1, ) } -fn __action88< +fn __action170< 'input, >( __0: (usize, Expression, usize), @@ -6592,12 +16727,12 @@ fn __action88< { let __start0 = __0.0.clone(); let __end0 = __0.0.clone(); - let __temp0 = __action61( + let __temp0 = __action103( &__start0, &__end0, ); let __temp0 = (__start0, __temp0, __end0); - __action69( + __action129( __temp0, __0, __1, @@ -6605,7 +16740,7 @@ fn __action88< ) } -fn __action89< +fn __action171< 'input, >( __0: (usize, Expression, usize), @@ -6614,19 +16749,40 @@ fn __action89< { let __start0 = __0.0.clone(); let __end0 = __0.0.clone(); - let __temp0 = __action61( + let __temp0 = __action103( &__start0, &__end0, ); let __temp0 = (__start0, __temp0, __end0); - __action3( + __action26( __temp0, __0, __1, ) } -fn __action90< +fn __action172< + 'input, +>( + __0: (usize, Bare, usize), + __1: (usize, usize, usize), +) -> Spanned +{ + let __start0 = __0.0.clone(); + let __end0 = __0.0.clone(); + let __temp0 = __action103( + &__start0, + &__end0, + ); + let __temp0 = (__start0, __temp0, __end0); + __action80( + __temp0, + __0, + __1, + ) +} + +fn __action173< 'input, >( __0: (usize, Operator, usize), @@ -6635,19 +16791,19 @@ fn __action90< { let __start0 = __0.0.clone(); let __end0 = __0.0.clone(); - let __temp0 = __action61( + let __temp0 = __action103( &__start0, &__end0, ); let __temp0 = (__start0, __temp0, __end0); - __action33( + __action58( __temp0, __0, __1, ) } -fn __action91< +fn __action174< 'input, >( __0: (usize, SpannedToken<'input>, usize), @@ -6656,19 +16812,19 @@ fn __action91< { let __start0 = __0.0.clone(); let __end0 = __0.0.clone(); - let __temp0 = __action61( + let __temp0 = __action103( &__start0, &__end0, ); let __temp0 = (__start0, __temp0, __end0); - __action46( + __action75( __temp0, __0, __1, ) } -fn __action92< +fn __action175< 'input, >( __0: (usize, SpannedToken<'input>, usize), @@ -6677,19 +16833,40 @@ fn __action92< { let __start0 = __0.0.clone(); let __end0 = __0.0.clone(); - let __temp0 = __action61( + let __temp0 = __action103( &__start0, &__end0, ); let __temp0 = (__start0, __temp0, __end0); - __action47( + __action76( __temp0, __0, __1, ) } -fn __action93< +fn __action176< + 'input, +>( + __0: (usize, Type, usize), + __1: (usize, usize, usize), +) -> Spanned +{ + let __start0 = __0.0.clone(); + let __end0 = __0.0.clone(); + let __temp0 = __action103( + &__start0, + &__end0, + ); + let __temp0 = (__start0, __temp0, __end0); + __action13( + __temp0, + __0, + __1, + ) +} + +fn __action177< 'input, >( __0: (usize, i64, usize), @@ -6699,12 +16876,12 @@ fn __action93< { let __start0 = __0.0.clone(); let __end0 = __0.0.clone(); - let __temp0 = __action61( + let __temp0 = __action103( &__start0, &__end0, ); let __temp0 = (__start0, __temp0, __end0); - __action45( + __action74( __temp0, __0, __1, @@ -6712,7 +16889,7 @@ fn __action93< ) } -fn __action94< +fn __action178< 'input, >( __0: (usize, SpannedToken<'input>, usize), @@ -6722,12 +16899,12 @@ fn __action94< { let __start0 = __0.0.clone(); let __end0 = __0.0.clone(); - let __temp0 = __action61( + let __temp0 = __action103( &__start0, &__end0, ); let __temp0 = (__start0, __temp0, __end0); - __action50( + __action79( __temp0, __0, __1, @@ -6735,7 +16912,7 @@ fn __action94< ) } -fn __action95< +fn __action179< 'input, >( __0: (usize, Bare, usize), @@ -6743,18 +16920,18 @@ fn __action95< { let __start0 = __0.2.clone(); let __end0 = __0.2.clone(); - let __temp0 = __action57( + let __temp0 = __action96( &__start0, &__end0, ); let __temp0 = (__start0, __temp0, __end0); - __action72( + __action140( __0, __temp0, ) } -fn __action96< +fn __action180< 'input, >( __0: (usize, Expression, usize), @@ -6764,12 +16941,12 @@ fn __action96< { let __start0 = __2.2.clone(); let __end0 = __2.2.clone(); - let __temp0 = __action57( + let __temp0 = __action96( &__start0, &__end0, ); let __temp0 = (__start0, __temp0, __end0); - __action73( + __action141( __0, __1, __2, @@ -6777,7 +16954,53 @@ fn __action96< ) } -fn __action97< +fn __action181< + 'input, +>( + __0: (usize, SpannedToken<'input>, usize), + __1: (usize, Expression, usize), + __2: (usize, SpannedToken<'input>, usize), +) -> Spanned +{ + let __start0 = __2.2.clone(); + let __end0 = __2.2.clone(); + let __temp0 = __action96( + &__start0, + &__end0, + ); + let __temp0 = (__start0, __temp0, __end0); + __action142( + __0, + __1, + __2, + __temp0, + ) +} + +fn __action182< + 'input, +>( + __0: (usize, SpannedToken<'input>, usize), + __1: (usize, Expression, usize), + __2: (usize, SpannedToken<'input>, usize), +) -> Spanned +{ + let __start0 = __2.2.clone(); + let __end0 = __2.2.clone(); + let __temp0 = __action96( + &__start0, + &__end0, + ); + let __temp0 = (__start0, __temp0, __end0); + __action143( + __0, + __1, + __2, + __temp0, + ) +} + +fn __action183< 'input, >( __0: (usize, SpannedToken<'input>, usize), @@ -6787,12 +17010,12 @@ fn __action97< { let __start0 = __2.2.clone(); let __end0 = __2.2.clone(); - let __temp0 = __action57( + let __temp0 = __action96( &__start0, &__end0, ); let __temp0 = (__start0, __temp0, __end0); - __action74( + __action144( __0, __1, __2, @@ -6800,7 +17023,7 @@ fn __action97< ) } -fn __action98< +fn __action184< 'input, >( __0: (usize, SpannedToken<'input>, usize), @@ -6810,12 +17033,12 @@ fn __action98< { let __start0 = __2.2.clone(); let __end0 = __2.2.clone(); - let __temp0 = __action57( + let __temp0 = __action96( &__start0, &__end0, ); let __temp0 = (__start0, __temp0, __end0); - __action75( + __action145( __0, __1, __2, @@ -6823,7 +17046,7 @@ fn __action98< ) } -fn __action99< +fn __action185< 'input, >( __0: (usize, Expression, usize), @@ -6832,19 +17055,19 @@ fn __action99< { let __start0 = __1.2.clone(); let __end0 = __1.2.clone(); - let __temp0 = __action57( + let __temp0 = __action96( &__start0, &__end0, ); let __temp0 = (__start0, __temp0, __end0); - __action76( + __action146( __0, __1, __temp0, ) } -fn __action100< +fn __action186< 'input, >( __0: (usize, Expression, usize), @@ -6854,12 +17077,12 @@ fn __action100< { let __start0 = __2.2.clone(); let __end0 = __2.2.clone(); - let __temp0 = __action57( + let __temp0 = __action96( &__start0, &__end0, ); let __temp0 = (__start0, __temp0, __end0); - __action77( + __action147( __0, __1, __2, @@ -6867,7 +17090,7 @@ fn __action100< ) } -fn __action101< +fn __action187< 'input, >( __0: (usize, Expression, usize), @@ -6876,19 +17099,19 @@ fn __action101< { let __start0 = __1.2.clone(); let __end0 = __1.2.clone(); - let __temp0 = __action57( + let __temp0 = __action96( &__start0, &__end0, ); let __temp0 = (__start0, __temp0, __end0); - __action78( + __action148( __0, __1, __temp0, ) } -fn __action102< +fn __action188< 'input, >( __0: (usize, Expression, usize), @@ -6898,12 +17121,12 @@ fn __action102< { let __start0 = __2.2.clone(); let __end0 = __2.2.clone(); - let __temp0 = __action57( + let __temp0 = __action96( &__start0, &__end0, ); let __temp0 = (__start0, __temp0, __end0); - __action79( + __action149( __0, __1, __2, @@ -6911,28 +17134,47 @@ fn __action102< ) } -fn __action103< +fn __action189< + 'input, +>( + __0: (usize, SpannedToken<'input>, usize), +) -> Spanned +{ + let __start0 = __0.2.clone(); + let __end0 = __0.2.clone(); + let __temp0 = __action96( + &__start0, + &__end0, + ); + let __temp0 = (__start0, __temp0, __end0); + __action150( + __0, + __temp0, + ) +} + +fn __action190< 'input, >( __0: (usize, Expression, usize), - __1: (usize, ::std::vec::Vec>, usize), + __1: (usize, ::std::vec::Vec>, usize), ) -> Expression { let __start0 = __1.2.clone(); let __end0 = __1.2.clone(); - let __temp0 = __action57( + let __temp0 = __action96( &__start0, &__end0, ); let __temp0 = (__start0, __temp0, __end0); - __action80( + __action151( __0, __1, __temp0, ) } -fn __action104< +fn __action191< 'input, >( __0: (usize, SpannedToken<'input>, usize), @@ -6941,19 +17183,19 @@ fn __action104< { let __start0 = __1.2.clone(); let __end0 = __1.2.clone(); - let __temp0 = __action57( + let __temp0 = __action96( &__start0, &__end0, ); let __temp0 = (__start0, __temp0, __end0); - __action81( + __action152( __0, __1, __temp0, ) } -fn __action105< +fn __action192< 'input, >( __0: (usize, SpannedToken<'input>, usize), @@ -6962,19 +17204,142 @@ fn __action105< { let __start0 = __1.2.clone(); let __end0 = __1.2.clone(); - let __temp0 = __action57( + let __temp0 = __action96( &__start0, &__end0, ); let __temp0 = (__start0, __temp0, __end0); - __action82( + __action153( __0, __1, __temp0, ) } -fn __action106< +fn __action193< + 'input, +>( + __0: (usize, ParameterIdentifier, usize), + __1: (usize, SpannedToken<'input>, usize), + __2: (usize, Spanned, usize), +) -> FormalParameter +{ + let __start0 = __2.2.clone(); + let __end0 = __2.2.clone(); + let __temp0 = __action96( + &__start0, + &__end0, + ); + let __temp0 = (__start0, __temp0, __end0); + __action154( + __0, + __1, + __2, + __temp0, + ) +} + +fn __action194< + 'input, +>( + __0: (usize, SpannedToken<'input>, usize), + __1: (usize, Spanned, usize), + __2: (usize, SpannedToken<'input>, usize), + __3: (usize, Vec, usize), + __4: (usize, SpannedToken<'input>, usize), + __5: (usize, SpannedToken<'input>, usize), + __6: (usize, Spanned, usize), + __7: (usize, Spanned, usize), +) -> Function +{ + let __start0 = __7.2.clone(); + let __end0 = __7.2.clone(); + let __temp0 = __action96( + &__start0, + &__end0, + ); + let __temp0 = (__start0, __temp0, __end0); + __action155( + __0, + __1, + __2, + __3, + __4, + __5, + __6, + __7, + __temp0, + ) +} + +fn __action195< + 'input, +>( + __0: (usize, SpannedToken<'input>, usize), + __1: (usize, Spanned, usize), + __2: (usize, SpannedToken<'input>, usize), + __3: (usize, Vec, usize), + __4: (usize, SpannedToken<'input>, usize), + __5: (usize, Spanned, usize), +) -> Function +{ + let __start0 = __5.2.clone(); + let __end0 = __5.2.clone(); + let __temp0 = __action96( + &__start0, + &__end0, + ); + let __temp0 = (__start0, __temp0, __end0); + __action156( + __0, + __1, + __2, + __3, + __4, + __5, + __temp0, + ) +} + +fn __action196< + 'input, +>( + __0: (usize, Pipeline, usize), +) -> Item +{ + let __start0 = __0.2.clone(); + let __end0 = __0.2.clone(); + let __temp0 = __action96( + &__start0, + &__end0, + ); + let __temp0 = (__start0, __temp0, __end0); + __action157( + __0, + __temp0, + ) +} + +fn __action197< + 'input, +>( + __0: (usize, Function, usize), +) -> Item +{ + let __start0 = __0.2.clone(); + let __end0 = __0.2.clone(); + let __temp0 = __action96( + &__start0, + &__end0, + ); + let __temp0 = (__start0, __temp0, __end0); + __action158( + __0, + __temp0, + ) +} + +fn __action198< 'input, >( __0: (usize, i64, usize), @@ -6982,18 +17347,18 @@ fn __action106< { let __start0 = __0.2.clone(); let __end0 = __0.2.clone(); - let __temp0 = __action57( + let __temp0 = __action96( &__start0, &__end0, ); let __temp0 = (__start0, __temp0, __end0); - __action83( + __action159( __0, __temp0, ) } -fn __action107< +fn __action199< 'input, >( __0: (usize, SpannedToken<'input>, usize), @@ -7003,12 +17368,12 @@ fn __action107< { let __start0 = __2.2.clone(); let __end0 = __2.2.clone(); - let __temp0 = __action57( + let __temp0 = __action96( &__start0, &__end0, ); let __temp0 = (__start0, __temp0, __end0); - __action84( + __action160( __0, __1, __2, @@ -7016,7 +17381,7 @@ fn __action107< ) } -fn __action108< +fn __action200< 'input, >( __0: (usize, SpannedToken<'input>, usize), @@ -7026,12 +17391,12 @@ fn __action108< { let __start0 = __2.2.clone(); let __end0 = __2.2.clone(); - let __temp0 = __action57( + let __temp0 = __action96( &__start0, &__end0, ); let __temp0 = (__start0, __temp0, __end0); - __action85( + __action161( __0, __1, __2, @@ -7039,7 +17404,7 @@ fn __action108< ) } -fn __action109< +fn __action201< 'input, >( __0: (usize, SpannedToken<'input>, usize), @@ -7049,12 +17414,12 @@ fn __action109< { let __start0 = __2.2.clone(); let __end0 = __2.2.clone(); - let __temp0 = __action57( + let __temp0 = __action96( &__start0, &__end0, ); let __temp0 = (__start0, __temp0, __end0); - __action86( + __action162( __0, __1, __2, @@ -7062,7 +17427,129 @@ fn __action109< ) } -fn __action110< +fn __action202< + 'input, +>( + __0: (usize, Item, usize), +) -> Module +{ + let __start0 = __0.2.clone(); + let __end0 = __0.2.clone(); + let __temp0 = __action96( + &__start0, + &__end0, + ); + let __temp0 = (__start0, __temp0, __end0); + __action163( + __0, + __temp0, + ) +} + +fn __action203< + 'input, +>( + __0: (usize, Item, usize), + __1: (usize, ::std::vec::Vec, usize), +) -> Module +{ + let __start0 = __1.2.clone(); + let __end0 = __1.2.clone(); + let __temp0 = __action96( + &__start0, + &__end0, + ); + let __temp0 = (__start0, __temp0, __end0); + __action164( + __0, + __1, + __temp0, + ) +} + +fn __action204< + 'input, +>( + __0: (usize, SpannedToken<'input>, usize), + __1: (usize, Spanned, usize), +) -> ParameterIdentifier +{ + let __start0 = __1.2.clone(); + let __end0 = __1.2.clone(); + let __temp0 = __action96( + &__start0, + &__end0, + ); + let __temp0 = (__start0, __temp0, __end0); + __action165( + __0, + __1, + __temp0, + ) +} + +fn __action205< + 'input, +>( + __0: (usize, SpannedToken<'input>, usize), + __1: (usize, Spanned, usize), +) -> ParameterIdentifier +{ + let __start0 = __1.2.clone(); + let __end0 = __1.2.clone(); + let __temp0 = __action96( + &__start0, + &__end0, + ); + let __temp0 = (__start0, __temp0, __end0); + __action166( + __0, + __1, + __temp0, + ) +} + +fn __action206< + 'input, +>( + __0: (usize, Spanned, usize), +) -> ParameterIdentifier +{ + let __start0 = __0.2.clone(); + let __end0 = __0.2.clone(); + let __temp0 = __action96( + &__start0, + &__end0, + ); + let __temp0 = (__start0, __temp0, __end0); + __action167( + __0, + __temp0, + ) +} + +fn __action207< + 'input, +>( + __0: (usize, SpannedToken<'input>, usize), + __1: (usize, SpannedToken<'input>, usize), +) -> Spanned +{ + let __start0 = __1.2.clone(); + let __end0 = __1.2.clone(); + let __temp0 = __action96( + &__start0, + &__end0, + ); + let __temp0 = (__start0, __temp0, __end0); + __action168( + __0, + __1, + __temp0, + ) +} + +fn __action208< 'input, >( __0: (usize, Expression, usize), @@ -7070,18 +17557,18 @@ fn __action110< { let __start0 = __0.2.clone(); let __end0 = __0.2.clone(); - let __temp0 = __action57( + let __temp0 = __action96( &__start0, &__end0, ); let __temp0 = (__start0, __temp0, __end0); - __action87( + __action169( __0, __temp0, ) } -fn __action111< +fn __action209< 'input, >( __0: (usize, Expression, usize), @@ -7090,19 +17577,19 @@ fn __action111< { let __start0 = __1.2.clone(); let __end0 = __1.2.clone(); - let __temp0 = __action57( + let __temp0 = __action96( &__start0, &__end0, ); let __temp0 = (__start0, __temp0, __end0); - __action88( + __action170( __0, __1, __temp0, ) } -fn __action112< +fn __action210< 'input, >( __0: (usize, Expression, usize), @@ -7110,18 +17597,37 @@ fn __action112< { let __start0 = __0.2.clone(); let __end0 = __0.2.clone(); - let __temp0 = __action57( + let __temp0 = __action96( &__start0, &__end0, ); let __temp0 = (__start0, __temp0, __end0); - __action89( + __action171( __0, __temp0, ) } -fn __action113< +fn __action211< + 'input, +>( + __0: (usize, Bare, usize), +) -> Spanned +{ + let __start0 = __0.2.clone(); + let __end0 = __0.2.clone(); + let __temp0 = __action96( + &__start0, + &__end0, + ); + let __temp0 = (__start0, __temp0, __end0); + __action172( + __0, + __temp0, + ) +} + +fn __action212< 'input, >( __0: (usize, Operator, usize), @@ -7129,18 +17635,18 @@ fn __action113< { let __start0 = __0.2.clone(); let __end0 = __0.2.clone(); - let __temp0 = __action57( + let __temp0 = __action96( &__start0, &__end0, ); let __temp0 = (__start0, __temp0, __end0); - __action90( + __action173( __0, __temp0, ) } -fn __action114< +fn __action213< 'input, >( __0: (usize, SpannedToken<'input>, usize), @@ -7148,18 +17654,18 @@ fn __action114< { let __start0 = __0.2.clone(); let __end0 = __0.2.clone(); - let __temp0 = __action57( + let __temp0 = __action96( &__start0, &__end0, ); let __temp0 = (__start0, __temp0, __end0); - __action91( + __action174( __0, __temp0, ) } -fn __action115< +fn __action214< 'input, >( __0: (usize, SpannedToken<'input>, usize), @@ -7167,18 +17673,37 @@ fn __action115< { let __start0 = __0.2.clone(); let __end0 = __0.2.clone(); - let __temp0 = __action57( + let __temp0 = __action96( &__start0, &__end0, ); let __temp0 = (__start0, __temp0, __end0); - __action92( + __action175( __0, __temp0, ) } -fn __action116< +fn __action215< + 'input, +>( + __0: (usize, Type, usize), +) -> Spanned +{ + let __start0 = __0.2.clone(); + let __end0 = __0.2.clone(); + let __temp0 = __action96( + &__start0, + &__end0, + ); + let __temp0 = (__start0, __temp0, __end0); + __action176( + __0, + __temp0, + ) +} + +fn __action216< 'input, >( __0: (usize, i64, usize), @@ -7187,19 +17712,19 @@ fn __action116< { let __start0 = __1.2.clone(); let __end0 = __1.2.clone(); - let __temp0 = __action57( + let __temp0 = __action96( &__start0, &__end0, ); let __temp0 = (__start0, __temp0, __end0); - __action93( + __action177( __0, __1, __temp0, ) } -fn __action117< +fn __action217< 'input, >( __0: (usize, SpannedToken<'input>, usize), @@ -7208,18 +17733,92 @@ fn __action117< { let __start0 = __1.2.clone(); let __end0 = __1.2.clone(); - let __temp0 = __action57( + let __temp0 = __action96( &__start0, &__end0, ); let __temp0 = (__start0, __temp0, __end0); - __action94( + __action178( __0, __1, __temp0, ) } +fn __action218< + 'input, +>( + __0: (usize, FormalParameter, usize), +) -> Vec +{ + let __start0 = __0.0.clone(); + let __end0 = __0.2.clone(); + let __temp0 = __action106( + __0, + ); + let __temp0 = (__start0, __temp0, __end0); + __action138( + __temp0, + ) +} + +fn __action219< + 'input, +>( + __lookbehind: &usize, + __lookahead: &usize, +) -> Vec +{ + let __start0 = __lookbehind.clone(); + let __end0 = __lookahead.clone(); + let __temp0 = __action107( + &__start0, + &__end0, + ); + let __temp0 = (__start0, __temp0, __end0); + __action138( + __temp0, + ) +} + +fn __action220< + 'input, +>( + __0: (usize, ::std::vec::Vec, usize), + __1: (usize, FormalParameter, usize), +) -> Vec +{ + let __start0 = __1.0.clone(); + let __end0 = __1.2.clone(); + let __temp0 = __action106( + __1, + ); + let __temp0 = (__start0, __temp0, __end0); + __action139( + __0, + __temp0, + ) +} + +fn __action221< + 'input, +>( + __0: (usize, ::std::vec::Vec, usize), +) -> Vec +{ + let __start0 = __0.2.clone(); + let __end0 = __0.2.clone(); + let __temp0 = __action107( + &__start0, + &__end0, + ); + let __temp0 = (__start0, __temp0, __end0); + __action139( + __0, + __temp0, + ) +} + pub trait __ToTriple<'input, > { fn to_triple(value: Self) -> Result<(usize,SpannedToken<'input>,usize), __lalrpop_util::ParseError, ShellError>>; } diff --git a/tests/json_roundtrip.out b/tests/json_roundtrip.out index 37622491df..1d242fb50c 100644 --- a/tests/json_roundtrip.out +++ b/tests/json_roundtrip.out @@ -1 +1 @@ -S +"S"