From e4e044e7337ea9a47260b2fc6a839874bfa985eb Mon Sep 17 00:00:00 2001 From: Nixon Enraght-Moony Date: Sun, 16 Jan 2022 01:25:47 +0000 Subject: [PATCH] Parsable! --- hidl/Cargo.lock | 433 ++ hidl/Cargo.toml | 7 + hidl/build.rs | 6 + hidl/hypercosm.hidl | 37 +- hidl/hypercosm.json | 364 ++ hidl/src/ast.rs | 142 + hidl/src/bin/demo.rs | 20 +- hidl/src/grammar.lalrpop | 171 + hidl/src/grammar.rs | 8156 ++++++++++++++++++++++++++++++++++++++ hidl/src/lib.rs | 17 +- hidl/src/spec.rs | 87 - 11 files changed, 9318 insertions(+), 122 deletions(-) create mode 100644 hidl/build.rs create mode 100644 hidl/hypercosm.json create mode 100644 hidl/src/ast.rs create mode 100644 hidl/src/grammar.lalrpop create mode 100644 hidl/src/grammar.rs delete mode 100644 hidl/src/spec.rs diff --git a/hidl/Cargo.lock b/hidl/Cargo.lock index 7d56ffe..59bf26e 100644 --- a/hidl/Cargo.lock +++ b/hidl/Cargo.lock @@ -2,12 +2,80 @@ # It is not intended for manual editing. version = 3 +[[package]] +name = "aho-corasick" +version = "0.7.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f" +dependencies = [ + "memchr", +] + +[[package]] +name = "anyhow" +version = "1.0.52" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84450d0b4a8bd1ba4144ce8ce718fbc5d071358b1e5384bace6536b3d1f2d5b3" + +[[package]] +name = "ascii-canvas" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8824ecca2e851cec16968d54a01dd372ef8f95b244fb84b84e70128be347c3c6" +dependencies = [ + "term", +] + +[[package]] +name = "atty" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" +dependencies = [ + "hermit-abi", + "libc", + "winapi", +] + [[package]] name = "autocfg" version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a" +[[package]] +name = "bit-set" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e11e16035ea35e4e5997b393eacbf6f63983188f7a2ad25bfb13465f5ad59de" +dependencies = [ + "bit-vec", +] + +[[package]] +name = "bit-vec" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "crunchy" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" + [[package]] name = "debug2" version = "0.1.0" @@ -27,18 +95,97 @@ dependencies = [ "synstructure", ] +[[package]] +name = "diff" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e25ea47919b1560c4e3b7fe0aaab9becf5b84a10325ddf7db0f0ba5e1026499" + +[[package]] +name = "dirs-next" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1" +dependencies = [ + "cfg-if", + "dirs-sys-next", +] + +[[package]] +name = "dirs-sys-next" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d" +dependencies = [ + "libc", + "redox_users", + "winapi", +] + +[[package]] +name = "either" +version = "1.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457" + +[[package]] +name = "ena" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7402b94a93c24e742487327a7cd839dc9d36fec9de9fb25b09f2dae459f36c3" +dependencies = [ + "log", +] + +[[package]] +name = "fixedbitset" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37ab347416e802de484e4d03c7316c48f1ecb56574dfd4a46a80f173ce1de04d" + +[[package]] +name = "fs-err" +version = "2.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ebd3504ad6116843b8375ad70df74e7bfe83cac77a1f3fe73200c844d43bfe0" + +[[package]] +name = "getrandom" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "418d37c8b1d42553c93648be529cb70f920d3baf8ef469b74b9638df426e0b4c" +dependencies = [ + "cfg-if", + "libc", + "wasi", +] + [[package]] name = "hashbrown" version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e" +[[package]] +name = "hermit-abi" +version = "0.1.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" +dependencies = [ + "libc", +] + [[package]] name = "hidl" version = "0.1.0" dependencies = [ + "anyhow", "debug2", + "fs-err", + "lalrpop", + "lalrpop-util", "serde", + "serde_json", "serde_yaml", ] @@ -52,12 +199,166 @@ dependencies = [ "hashbrown", ] +[[package]] +name = "instant" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "itertools" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9a9d19fa1e79b6215ff29b9d6880b706147f16e9b1dbb1e4e5947b5b02bc5e3" +dependencies = [ + "either", +] + +[[package]] +name = "itoa" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1aab8fc367588b89dcee83ab0fd66b72b50b72fa1904d7095045ace2b0c81c35" + +[[package]] +name = "lalrpop" +version = "0.19.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b15174f1c529af5bf1283c3bc0058266b483a67156f79589fab2a25e23cf8988" +dependencies = [ + "ascii-canvas", + "atty", + "bit-set", + "diff", + "ena", + "itertools", + "lalrpop-util", + "petgraph", + "pico-args", + "regex", + "regex-syntax", + "string_cache", + "term", + "tiny-keccak", + "unicode-xid", +] + +[[package]] +name = "lalrpop-util" +version = "0.19.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3e58cce361efcc90ba8a0a5f982c741ff86b603495bb15a998412e957dcd278" +dependencies = [ + "regex", +] + +[[package]] +name = "lazy_static" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" + +[[package]] +name = "libc" +version = "0.2.112" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b03d17f364a3a042d5e5d46b053bbbf82c92c9430c592dd4c064dc6ee997125" + [[package]] name = "linked-hash-map" version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7fb9b38af92608140b86b693604b9ffcc5824240a484d1ecd4795bacb2fe88f3" +[[package]] +name = "lock_api" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712a4d093c9976e24e7dbca41db895dabcbac38eb5f4045393d17a95bdfb1109" +dependencies = [ + "scopeguard", +] + +[[package]] +name = "log" +version = "0.4.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "memchr" +version = "2.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "308cc39be01b73d0d18f82a0e7b2a3df85245f84af96fdddc5d202d27e47b86a" + +[[package]] +name = "new_debug_unreachable" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4a24736216ec316047a1fc4252e27dabb04218aa4a3f37c6e7ddbf1f9782b54" + +[[package]] +name = "parking_lot" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99" +dependencies = [ + "instant", + "lock_api", + "parking_lot_core", +] + +[[package]] +name = "parking_lot_core" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d76e8e1493bcac0d2766c42737f34458f1c8c50c0d23bcb24ea953affb273216" +dependencies = [ + "cfg-if", + "instant", + "libc", + "redox_syscall", + "smallvec", + "winapi", +] + +[[package]] +name = "petgraph" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "467d164a6de56270bd7c4d070df81d07beace25012d5103ced4e9ff08d6afdb7" +dependencies = [ + "fixedbitset", + "indexmap", +] + +[[package]] +name = "phf_shared" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c00cf8b9eafe68dde5e9eaa2cef8ee84a9336a47d566ec55ca16589633b65af7" +dependencies = [ + "siphasher", +] + +[[package]] +name = "pico-args" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db8bcd96cb740d03149cbad5518db9fd87126a10ab519c011893b1754134c468" + +[[package]] +name = "precomputed-hash" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" + [[package]] name = "proc-macro2" version = "1.0.36" @@ -76,12 +377,60 @@ dependencies = [ "proc-macro2", ] +[[package]] +name = "redox_syscall" +version = "0.2.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8383f39639269cde97d255a32bdb68c047337295414940c68bdd30c2e13203ff" +dependencies = [ + "bitflags", +] + +[[package]] +name = "redox_users" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "528532f3d801c87aec9def2add9ca802fe569e44a544afe633765267840abe64" +dependencies = [ + "getrandom", + "redox_syscall", +] + +[[package]] +name = "regex" +version = "1.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d07a8629359eb56f1e2fb1652bb04212c072a87ba68546a04065d525673ac461" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] + +[[package]] +name = "regex-syntax" +version = "0.6.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f497285884f3fcff424ffc933e56d7cbca511def0c9831a7f9b5f6153e3cc89b" + +[[package]] +name = "rustversion" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2cc38e8fa666e2de3c4aba7edeb5ffc5246c1c2ed0e3d17e560aeeba736b23f" + [[package]] name = "ryu" version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "73b4b750c782965c211b42f022f59af1fbceabdd026623714f104152f1ec149f" +[[package]] +name = "scopeguard" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" + [[package]] name = "serde" version = "1.0.133" @@ -102,6 +451,17 @@ dependencies = [ "syn", ] +[[package]] +name = "serde_json" +version = "1.0.75" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c059c05b48c5c0067d4b4b2b4f0732dd65feb52daf7e0ea09cd87e7dadc1af79" +dependencies = [ + "itoa", + "ryu", + "serde", +] + [[package]] name = "serde_yaml" version = "0.8.23" @@ -114,6 +474,31 @@ dependencies = [ "yaml-rust", ] +[[package]] +name = "siphasher" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "533494a8f9b724d33625ab53c6c4800f7cc445895924a8ef649222dcb76e938b" + +[[package]] +name = "smallvec" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2dd574626839106c320a323308629dcb1acfc96e32a8cba364ddc61ac23ee83" + +[[package]] +name = "string_cache" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "923f0f39b6267d37d23ce71ae7235602134b250ace715dd2c90421998ddac0c6" +dependencies = [ + "lazy_static", + "new_debug_unreachable", + "parking_lot", + "phf_shared", + "precomputed-hash", +] + [[package]] name = "syn" version = "1.0.85" @@ -137,12 +522,60 @@ dependencies = [ "unicode-xid", ] +[[package]] +name = "term" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c59df8ac95d96ff9bede18eb7300b0fda5e5d8d90960e76f8e14ae765eedbf1f" +dependencies = [ + "dirs-next", + "rustversion", + "winapi", +] + +[[package]] +name = "tiny-keccak" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237" +dependencies = [ + "crunchy", +] + [[package]] name = "unicode-xid" version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3" +[[package]] +name = "wasi" +version = "0.10.2+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6" + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + [[package]] name = "yaml-rust" version = "0.4.5" diff --git a/hidl/Cargo.toml b/hidl/Cargo.toml index 92cc553..2a5c922 100644 --- a/hidl/Cargo.toml +++ b/hidl/Cargo.toml @@ -6,8 +6,15 @@ edition = "2021" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] +anyhow = "1.0.52" debug2 = { git = "https://github.com/aDotInTheVoid/debug2/" } +fs-err = "2.6.0" +lalrpop-util = { version = "0.19.6", features = ["lexer"] } serde = { version = "1.0.133", features = ["derive"] } +serde_json = "1.0.75" serde_yaml = "0.8.23" [features] + +[build-dependencies] +lalrpop = "0.19.6" diff --git a/hidl/build.rs b/hidl/build.rs new file mode 100644 index 0000000..228a429 --- /dev/null +++ b/hidl/build.rs @@ -0,0 +1,6 @@ +fn main() { + lalrpop::Configuration::new() + .generate_in_source_tree() + .process() + .unwrap(); +} diff --git a/hidl/hypercosm.hidl b/hidl/hypercosm.hidl index 76979fb..fc2c92a 100644 --- a/hidl/hypercosm.hidl +++ b/hidl/hypercosm.hidl @@ -36,13 +36,11 @@ extension asset_delivery { getId(name: string) -> uuid } } - - types { - struct Asset { - id: uuid - name: string - data: []u8 - } + + struct Asset { + id: uuid + name: string + data: []u8 } } @@ -63,18 +61,17 @@ extension world { } } - types { - struct EntityInfo { - assetId: uuid - entity: Entity - transformation: matrix4x4 - flags: EntityFlags - } - - enum EntityFlags(vu128) { - None = 0 - Interactable = 1 - Collidable = 2 - } + struct EntityInfo { + assetId: uuid + entity: Entity + transformation: matrix4x4 + flags: EntityFlags } + + enum EntityFlags(vu128) { + None = 0 + Interactable = 1 + Collidable = 2 + } + } \ No newline at end of file diff --git a/hidl/hypercosm.json b/hidl/hypercosm.json new file mode 100644 index 0000000..3a508f7 --- /dev/null +++ b/hidl/hypercosm.json @@ -0,0 +1,364 @@ +{ + "name": "hypercosm", + "interfaces": [ + { + "name": "Object", + "version": [ + 0, + 0, + 0 + ], + "methods": [ + { + "name": "list_interfaces", + "args": [], + "ret": { + "Array": { + "Primitive": "String" + } + } + }, + { + "name": "release", + "args": [], + "ret": null + } + ], + "events": [] + }, + { + "name": "Root", + "version": [ + 0, + 0, + 0 + ], + "methods": [ + { + "name": "list_extenstions", + "args": [], + "ret": { + "Array": { + "Primitive": "String" + } + } + }, + { + "name": "ping", + "args": [], + "ret": null + }, + { + "name": "get_object_by_id", + "args": [ + { + "name": "id", + "ty": { + "Primitive": "Uuid" + } + } + ], + "ret": { + "Primitive": "Object" + } + }, + { + "name": "get_object_by_name", + "args": [ + { + "name": "name", + "ty": { + "Primitive": "String" + } + } + ], + "ret": { + "Primitive": "Object" + } + } + ], + "events": [] + } + ], + "types": [], + "extensions": [ + { + "name": "asset_delivery", + "version": [ + 0, + 0, + 0 + ], + "interface": { + "methods": [ + { + "name": "fetchById", + "args": [ + { + "name": "id", + "ty": { + "Primitive": "Uuid" + } + } + ], + "ret": { + "Custom": "Asset" + } + }, + { + "name": "fetchByName", + "args": [ + { + "name": "name", + "ty": { + "Primitive": "String" + } + } + ], + "ret": { + "Custom": "Asset" + } + }, + { + "name": "fetchByIds", + "args": [ + { + "name": "ids", + "ty": { + "Array": { + "Primitive": "Uuid" + } + } + } + ], + "ret": { + "Array": { + "Custom": "Asset" + } + } + }, + { + "name": "fetchByNames", + "args": [ + { + "name": "names", + "ty": { + "Array": { + "Primitive": "String" + } + } + } + ], + "ret": { + "Array": { + "Custom": "Asset" + } + } + }, + { + "name": "getId", + "args": [ + { + "name": "name", + "ty": { + "Primitive": "String" + } + } + ], + "ret": { + "Primitive": "Uuid" + } + } + ], + "events": [ + { + "name": "load_assets", + "args": [ + { + "name": "assets", + "ty": { + "Array": { + "Custom": "Asset" + } + } + } + ], + "ret": null + }, + { + "name": "unload_assets", + "args": [ + { + "name": "assets", + "ty": { + "Array": { + "Primitive": "Uuid" + } + } + } + ], + "ret": null + } + ] + }, + "interfaces": [], + "types": [ + { + "name": "Asset", + "kind": { + "Struct": { + "fields": [ + { + "name": "id", + "ty": { + "Primitive": "Uuid" + } + }, + { + "name": "name", + "ty": { + "Primitive": "String" + } + }, + { + "name": "data", + "ty": { + "Array": { + "IntType": "U8" + } + } + } + ] + } + } + } + ] + }, + { + "name": "world", + "version": [ + 0, + 0, + 0 + ], + "interface": { + "methods": [], + "events": [ + { + "name": "add_entitys", + "args": [ + { + "name": "entities", + "ty": { + "Array": { + "Custom": "EntityInfo" + } + } + } + ], + "ret": null + }, + { + "name": "update_entitys", + "args": [ + { + "name": "entities", + "ty": { + "Array": { + "Custom": "EntityInfo" + } + } + } + ], + "ret": null + }, + { + "name": "remove_entitys", + "args": [ + { + "name": "entities", + "ty": { + "Array": { + "Primitive": "Uuid" + } + } + } + ], + "ret": null + } + ] + }, + "interfaces": [ + { + "name": "Entity", + "version": null, + "methods": [ + { + "name": "interact", + "args": [], + "ret": null + } + ], + "events": [] + } + ], + "types": [ + { + "name": "EntityInfo", + "kind": { + "Struct": { + "fields": [ + { + "name": "assetId", + "ty": { + "Primitive": "Uuid" + } + }, + { + "name": "entity", + "ty": { + "Custom": "Entity" + } + }, + { + "name": "transformation", + "ty": { + "Primitive": "Matrix4x4" + } + }, + { + "name": "flags", + "ty": { + "Custom": "EntityFlags" + } + } + ] + } + } + }, + { + "name": "EntityFlags", + "kind": { + "Enum": { + "backing": "VU128", + "fields": [ + { + "name": "None", + "value": 0 + }, + { + "name": "Interactable", + "value": 1 + }, + { + "name": "Collidable", + "value": 2 + } + ] + } + } + } + ] + } + ] +} \ No newline at end of file diff --git a/hidl/src/ast.rs b/hidl/src/ast.rs new file mode 100644 index 0000000..628c031 --- /dev/null +++ b/hidl/src/ast.rs @@ -0,0 +1,142 @@ +use serde::{Deserialize, Serialize}; + +#[derive(Debug, debug2::Debug, Clone, PartialEq, Serialize, Deserialize)] +pub struct Namespace { + pub name: String, + pub interfaces: Vec, + pub types: Vec, + pub extensions: Vec, +} + +#[derive(Debug, debug2::Debug, Clone, PartialEq, Serialize, Deserialize)] + +pub struct Extension { + pub name: String, + pub version: Version, + pub interface: ImplicitInterface, + pub interfaces: Vec, + pub types: Vec, +} + +#[derive(Debug, debug2::Debug, Clone, PartialEq, Serialize, Deserialize)] + +pub struct Interface { + pub name: String, + pub version: Version, + pub methods: Vec, + pub events: Vec, +} + +#[derive(Debug, debug2::Debug, Clone, PartialEq, Serialize, Deserialize)] +pub struct ImplicitInterface { + // Gets version and name from extension + pub methods: Vec, + pub events: Vec, +} + +#[derive(Debug, debug2::Debug, Clone, PartialEq, Serialize, Deserialize)] +pub struct ExtensionInterface { + pub name: String, + // May get version from extension + pub version: Option, + pub methods: Vec, + pub events: Vec, +} + +pub type Version = (u8, u8, u8); + +#[derive(Debug, debug2::Debug, Clone, PartialEq, Serialize, Deserialize)] +pub struct Func { + pub name: String, + pub args: Vec, + pub ret: Option, +} + +#[derive(Debug, debug2::Debug, Clone, PartialEq, Serialize, Deserialize)] + +pub enum Type { + Primitive(PrimType), + Custom(String), + Array(Box), + IntType(IntType), +} + +#[derive(Debug, debug2::Debug, Clone, PartialEq, Serialize, Deserialize)] + +pub enum PrimType { + String, + Object, + Uuid, + Bytes, + Bool, + Matrix4x4, + F32, + F64, +} + +#[derive(Debug, debug2::Debug, Clone, PartialEq, Serialize, Deserialize)] +pub enum IntType { + U8, + U16, + U32, + U64, + U128, + VU8, + VU16, + VU32, + VU64, + VU128, + I8, + I16, + I32, + I64, + I128, + VI8, + VI16, + VI32, + VI64, + VI128, +} + +#[derive(Debug, debug2::Debug, Clone, PartialEq, Serialize, Deserialize)] + +pub struct Arg { + pub name: String, + pub ty: Type, +} + +#[derive(Debug, debug2::Debug, Clone, PartialEq, Serialize, Deserialize)] +pub struct TypeDef { + pub name: String, + pub kind: TypeKind, +} + +#[derive(Debug, debug2::Debug, Clone, PartialEq, Serialize, Deserialize)] + +pub enum TypeKind { + Struct(Struct), + Enum(Enum), +} + +#[derive(Debug, debug2::Debug, Clone, PartialEq, Serialize, Deserialize)] +pub struct Enum { + pub backing: IntType, + pub fields: Vec, +} + +#[derive(Debug, debug2::Debug, Clone, PartialEq, Serialize, Deserialize)] +pub struct EnumField { + pub name: String, + pub value: Option, +} + +#[derive(Debug, debug2::Debug, Clone, PartialEq, Serialize, Deserialize)] +pub struct Struct { + pub fields: Vec, +} + +#[derive(Debug, debug2::Debug, Clone, PartialEq, Serialize, Deserialize)] +pub struct StructField { + pub name: String, + pub ty: Type, +} diff --git a/hidl/src/bin/demo.rs b/hidl/src/bin/demo.rs index 5738da8..da0de11 100644 --- a/hidl/src/bin/demo.rs +++ b/hidl/src/bin/demo.rs @@ -1,9 +1,15 @@ -use std::fs; +use anyhow::Result; +use fs_err as fs; -fn main() { - let root = hidl::spec::spec(); - debug2::dbg!(&root); - let yaml_str = serde_yaml::to_string(&root).unwrap(); - eprintln!("{}", yaml_str); - fs::write("spec-demo.yaml", &yaml_str).unwrap(); +fn main() -> Result<()> { + let tree = fs::read_to_string("hypercosm.hidl")?; + + let tree = hidl::grammar::NamespaceParser::new().parse(&tree).unwrap(); + + debug2::dbg!(&tree); + + let json = serde_json::to_string_pretty(&tree)?; + + fs::write("hypercosm.json", &json)?; + Ok(()) } diff --git a/hidl/src/grammar.lalrpop b/hidl/src/grammar.lalrpop new file mode 100644 index 0000000..99b650d --- /dev/null +++ b/hidl/src/grammar.lalrpop @@ -0,0 +1,171 @@ +use crate::ast::*; + +grammar(); + + +// Skip over comments +match { + r"\s*" => { }, + r"//[^\n\r]*[\n\r]*" => { }, + _ +} + +pub Namespace: Namespace = { + "namespace" + > + > + > + => Namespace{<>} +} + +Extension: Extension = { + "extension" "{" + + + > + > + "}" + => Extension{name, version: version.unwrap_or_default(), interface, interfaces, types} +} + +Interface: Interface = { + "interface" "{" + + + + "}" => Interface { name, version: v.unwrap_or_default(), events: e.unwrap_or_default(), methods: m.unwrap_or_default() } +} + +ExtensionInterface: ExtensionInterface = { + "interface" "{" + + + + "}" => ExtensionInterface { name, version, events: e.unwrap_or_default(), methods: m.unwrap_or_default() } +} + +ImplicitInterface: ImplicitInterface = { + "interface" "{" + + + "}" => ImplicitInterface { events: e.unwrap_or_default(), methods: m.unwrap_or_default() } +} + +Version: Version = { + "version" => (<>) +} + +Events: Vec = { "events" "{" > "}" => <> } +Methods: Vec = { "methods" "{" > "}" => <> } + +Func: Func = { + "(" > ")" " )?> => Func{<>} +} + + +Arg: Arg = { + ":" => Arg{<>} +} + + +// Argument types + +Type: Type = { + PrimType => Type::Primitive(<>), + Ident => Type::Custom(<>), + IntType => Type::IntType(<>), + "[]" => Type::Array(Box::new(<>)), +} + +PrimType: PrimType = { + "string" => PrimType::String, + "object" => PrimType::Object, + "uuid" => PrimType::Uuid, + "bytes" => PrimType::Bytes, + "bool" => PrimType::Bool, + + "matrix4x4" => PrimType::Matrix4x4, + + "f32" => PrimType::F32, + "f64" => PrimType::F64, +} + +// These are seperate as only they can back an enum +IntType: IntType = { + "u8" => IntType::U8, + "u16" => IntType::U16, + "u32" => IntType::U32, + "u64" => IntType::U64, + "u128" => IntType::U128, + + "vu8" => IntType::VU8, + "vu16" => IntType::VU16, + "vu32" => IntType::VU32, + "vu64" => IntType::VU64, + "vu128" => IntType::VU128, + + "i8" => IntType::I8, + "i16" => IntType::I16, + "i32" => IntType::I32, + "i64" => IntType::I64, + "i128" => IntType::I128, + + "vi8" => IntType::VI8, + "vi16" => IntType::VI16, + "vi32" => IntType::VI32, + "vi64" => IntType::VI64, + "vi128" => IntType::VI128, +} + +// Typedefs + +TypeDef: TypeDef = { + "struct" => TypeDef{name, kind: TypeKind::Struct(s)}, + "enum" "(" ")" + => TypeDef{name, kind: TypeKind::Enum(Enum{fields, backing})}, + // Enum => TypeDef::Enum(<>), +} + +Struct: Struct = { "{" > "}" => Struct{<>} } +StructField: StructField = { + ":" => StructField{<>} +} + +Enum: Vec = { "{" > "}" => <> } +EnumField: EnumField = { + )?> => EnumField{<>} +} + + + +// Terminals + +// Num: u8 = { +// r"[0-9]+" => <>.parse().unwrap() +// } +Num: u8 = { + // TODO: This is a bit hacky, but it works for now + Int => <>.try_into().unwrap(), +} +Int: i64 = { + r"(-)?[0-9]+" => <>.parse().unwrap() +} +Ident: String = { r"[a-zA-Z][a-zA-Z0-9_]*" => <>.to_owned() } + + +// Combinators + +List: Vec = { + )*> => v +}; + +Comma: Vec = { + ",")*> => match e { + None=> v, + Some(e) => { + let mut v = v; + v.push(e); + v + } + } +}; \ No newline at end of file diff --git a/hidl/src/grammar.rs b/hidl/src/grammar.rs new file mode 100644 index 0000000..9cf271e --- /dev/null +++ b/hidl/src/grammar.rs @@ -0,0 +1,8156 @@ +// auto-generated: "lalrpop 0.19.6" +// sha3: 2463e278adbb9a1b37d4dcbe7b8218ad25d46f3527ff9ca3ea64921dbf52d4 +use crate::ast::*; +#[allow(unused_extern_crates)] +extern crate lalrpop_util as __lalrpop_util; +#[allow(unused_imports)] +use self::__lalrpop_util::state_machine as __state_machine; +extern crate core; +extern crate alloc; + +#[cfg_attr(rustfmt, rustfmt_skip)] +mod __parse__Namespace { + #![allow(non_snake_case, non_camel_case_types, unused_mut, unused_variables, unused_imports, unused_parens)] + + use crate::ast::*; + #[allow(unused_extern_crates)] + extern crate lalrpop_util as __lalrpop_util; + #[allow(unused_imports)] + use self::__lalrpop_util::state_machine as __state_machine; + extern crate core; + extern crate alloc; + use self::__lalrpop_util::lexer::Token; + #[allow(dead_code)] + pub(crate) enum __Symbol<'input> + { + Variant0(&'input str), + Variant1(Type), + Variant2(core::option::Option), + Variant3(i64), + Variant4(core::option::Option), + Variant5(Arg), + Variant6(alloc::vec::Vec), + Variant7(EnumField), + Variant8(alloc::vec::Vec), + Variant9(Extension), + Variant10(alloc::vec::Vec), + Variant11(ExtensionInterface), + Variant12(alloc::vec::Vec), + Variant13(Func), + Variant14(alloc::vec::Vec), + Variant15(Interface), + Variant16(alloc::vec::Vec), + Variant17(StructField), + Variant18(alloc::vec::Vec), + Variant19(TypeDef), + Variant20(alloc::vec::Vec), + Variant21(core::option::Option), + Variant22(Vec), + Variant23(Vec), + Variant24(Vec), + Variant25(core::option::Option>), + Variant26(String), + Variant27(ImplicitInterface), + Variant28(IntType), + Variant29(Vec), + Variant30(Vec), + Variant31(Vec), + Variant32(Vec), + Variant33(Vec), + Variant34(Namespace), + Variant35(u8), + Variant36(PrimType), + Variant37(Struct), + Variant38(Version), + Variant39(core::option::Option), + } + const __ACTION: &[i16] = &[ + // State 0 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, + // 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, 52, + // State 2 + 0, 0, 0, 0, 0, 0, 0, 0, 0, -114, 0, -114, 0, 0, 0, 0, 0, 0, 0, 6, 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, + // State 3 + 0, 0, 0, 0, 0, 0, 0, 0, 0, -115, 0, -115, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, -115, 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, 9, 0, -118, 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, 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, 52, + // State 6 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, -119, 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, 0, 0, 0, 0, 0, 0, 0, -119, 0, 0, + // State 7 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, + // 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, 52, + // 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, 52, + // State 10 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, + // 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, 52, + // 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, 16, 0, 0, 0, + // State 13 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 0, 0, + // State 14 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 70, 71, 72, 73, 0, 0, 0, 0, 0, 0, 0, 74, 75, 76, 77, 78, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 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, -116, 0, 52, + // State 16 + 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, 93, 0, 0, + // State 17 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65, 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, 96, 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, 98, 0, + // State 19 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 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, -117, 0, 52, + // State 21 + 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, 104, 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, -112, 0, 52, + // 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, -112, 0, 52, + // 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, 98, 0, + // State 25 + 0, 0, 0, 0, 0, 0, 0, 0, 0, -110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, -110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -110, 0, 0, + // State 26 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 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, 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, + // State 28 + 0, 0, 0, 0, 0, 0, 38, 116, 117, 0, 0, 0, 118, 119, 69, 70, 71, 72, 73, 0, 120, 0, 0, 121, 122, 0, 74, 75, 76, 77, 78, 123, 0, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 0, 0, 0, 52, + // 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, -113, 0, 52, + // 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, 98, 0, + // State 31 + 0, 0, 0, 0, 0, 0, 0, 0, 0, -111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, -111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -111, 0, 0, + // State 32 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 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, 0, 0, 0, 0, 0, 0, 0, -118, 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, 52, + // State 34 + 0, 0, 0, 0, 0, 0, 0, 0, 0, -110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, -110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -110, 0, 0, + // State 35 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65, 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, 133, 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, -106, 0, 52, + // State 37 + 0, 0, 0, 0, 0, 0, 38, 116, 117, 0, 0, 0, 118, 119, 69, 70, 71, 72, 73, 0, 120, 0, 0, 121, 122, 0, 74, 75, 76, 77, 78, 123, 0, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 0, 0, 0, 52, + // State 38 + 0, -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, 52, + // State 39 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 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, 0, 0, 0, 0, 0, 0, 0, -118, 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, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 144, 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, -107, 0, 52, + // State 42 + 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, 0, 52, + // State 43 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 152, 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, 98, 0, + // State 45 + 0, 0, 0, 0, 0, 0, 38, 116, 117, 0, 0, 0, 118, 119, 69, 70, 71, 72, 73, 0, 120, 0, 0, 121, 122, 0, 74, 75, 76, 77, 78, 123, 0, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 0, 0, 0, 52, + // State 46 + 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, 159, 0, 0, + // State 47 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65, 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, 162, 0, 0, + // State 48 + 0, 0, 0, 0, 0, 0, 38, 116, 117, 0, 0, 0, 118, 119, 69, 70, 71, 72, 73, 0, 120, 0, 0, 121, 122, 0, 74, 75, 76, 77, 78, 123, 0, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 0, 0, 0, 52, + // State 49 + 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, 166, 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, + // State 51 + -72, -72, -72, 0, -72, -72, 0, 0, 0, -72, 0, -72, 0, 0, 0, 0, 0, 0, 0, -72, 0, 0, 0, 0, 0, -72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -72, -72, 0, -72, + // State 52 + 0, 0, 0, 0, 0, 0, 0, 0, 0, -35, 0, -35, 0, 0, 0, 0, 0, 0, 0, -35, 0, 0, 0, 0, 0, -35, 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, -36, 0, -36, 0, 0, 0, 0, 0, 0, 0, -36, 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, + // State 54 + 0, 0, 0, 0, 0, 0, 0, 0, 0, -45, 0, -45, 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, 0, 0, 0, 0, 0, 0, 0, -45, 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, 14, 0, 0, 0, + // State 56 + 0, 0, 0, 0, 0, 0, 0, 0, 0, -46, 0, -46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -46, 0, 0, + // State 57 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -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, + // 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, + // State 59 + 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, + // State 60 + 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, 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, 20, 0, 0, 0, + // State 62 + 0, 0, 0, 0, 0, 0, 0, 0, 0, -139, 0, -139, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -139, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -139, 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, 94, 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, 23, 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, 24, 0, 0, 0, + // State 66 + 0, 0, 0, 0, 0, 0, 0, 0, 0, -105, 0, -105, 0, 0, 0, 0, 0, 0, 0, -105, 0, 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, 0, + // State 67 + 0, 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, + // State 68 + 0, -92, -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, 0, 0, 0, 0, 0, 0, 0, 0, -92, 0, -92, + // State 69 + 0, -89, -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, -89, 0, -89, + // State 70 + 0, -90, -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, -90, 0, -90, + // State 71 + 0, -91, -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, -91, 0, -91, + // State 72 + 0, -88, -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, -88, 0, -88, + // State 73 + 0, -82, -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, -82, 0, -82, + // State 74 + 0, -79, -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, -79, 0, -79, + // State 75 + 0, -80, -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, -80, 0, -80, + // State 76 + 0, -81, -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, -81, 0, -81, + // State 77 + 0, -78, -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, -78, 0, -78, + // State 78 + 0, -97, -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, -97, 0, -97, + // State 79 + 0, -94, -94, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, -94, + // State 80 + 0, -95, -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, -95, 0, -95, + // State 81 + 0, -96, -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, -96, 0, -96, + // State 82 + 0, -93, -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, -93, 0, -93, + // State 83 + 0, -87, -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, -87, 0, -87, + // State 84 + 0, -84, -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, -84, 0, -84, + // State 85 + 0, -85, -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, 0, 0, 0, -85, 0, -85, + // State 86 + 0, -86, -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, -86, 0, -86, + // State 87 + 0, -83, -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, -83, 0, -83, + // State 88 + 0, 0, 0, 0, 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, + // 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, 101, 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, -40, 0, -40, + // 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, 102, 0, 0, + // State 92 + 0, 0, 0, 0, 0, 0, 0, 0, 0, -101, 0, -101, 0, 0, 0, 0, 0, 0, 0, -101, 0, 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, 0, + // State 93 + 0, 0, 0, 0, 0, 0, 0, 0, 0, -103, 0, -103, 0, 0, 0, 0, 0, 0, 0, -103, 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, + // State 94 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, + // State 95 + 0, 0, 0, 0, 0, 0, 0, 0, 0, -104, 0, -104, 0, 0, 0, 0, 0, 0, 0, -104, 0, 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, 0, + // State 96 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -124, 0, 0, 0, 0, 0, 0, 0, 0, -124, 0, -124, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -124, -124, 0, + // State 97 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -77, 0, 0, 0, 0, 0, 0, 0, 0, -77, 0, -77, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -77, -77, -77, + // 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, 36, 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, 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, -41, + // State 100 + 0, 0, 0, 0, 0, 0, 0, 0, 0, -133, 0, -133, 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, -133, 0, 0, + // State 101 + 0, 0, 0, 0, 0, 0, 0, 0, 0, -99, 0, -99, 0, 0, 0, 0, 0, 0, 0, -99, 0, 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, 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, 124, 0, 0, + // State 103 + 0, 0, 0, 0, 0, 0, 0, 0, 0, -100, 0, -100, 0, 0, 0, 0, 0, 0, 0, -100, 0, 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, 0, + // State 104 + 0, 0, 0, 0, 0, 0, 0, 0, 0, -102, 0, -102, 0, 0, 0, 0, 0, 0, 0, -102, 0, 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, 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, -30, 0, -30, + // State 106 + 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, + // 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, 126, 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, 127, 0, 0, + // State 109 + 0, 0, 0, 0, 0, 0, 0, 0, 0, -25, 0, 0, 0, 0, 0, 0, 0, 0, 0, -25, 0, 0, 0, 0, 0, -25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -25, 0, 0, + // State 110 + 0, 0, 0, 0, 0, 0, 0, 0, 0, -140, 0, -140, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -140, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -140, 0, 0, + // State 111 + 0, -136, -136, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, -136, + // State 112 + 0, -137, -137, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -137, 0, -137, + // State 113 + 0, -135, -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, -135, 0, -135, + // State 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -134, 0, -134, + // State 115 + 0, -129, -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, 0, 0, -129, 0, -129, + // State 116 + 0, -128, -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, -128, 0, -128, + // State 117 + 0, -131, -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, -131, 0, -131, + // State 118 + 0, -132, -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, -132, 0, -132, + // State 119 + 0, -130, -130, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -130, 0, -130, + // State 120 + 0, -126, -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, -126, 0, -126, + // State 121 + 0, -125, -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, -125, 0, -125, + // State 122 + 0, -127, -127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -127, 0, -127, + // State 123 + 0, 0, 0, 0, 0, 0, 0, 0, 0, -98, 0, -98, 0, 0, 0, 0, 0, 0, 0, -98, 0, 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, 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, -31, 0, -31, + // State 125 + 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, -57, 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, -120, 0, 0, + // State 127 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -141, 0, 0, 0, 0, 0, 0, 0, 0, -141, 0, -141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -141, 0, 0, + // State 128 + 0, 0, 0, 0, 0, 0, 0, 0, 0, -26, 0, 0, 0, 0, 0, 0, 0, 0, 0, -26, 0, 0, 0, 0, 0, -26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -26, 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, 0, 0, 0, 0, 0, 141, 0, 0, + // State 130 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 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, 145, 0, 0, + // State 132 + 0, 0, 0, 0, 0, 0, 0, 0, 0, -76, 0, 0, 0, 0, 0, 0, 0, 0, 0, -76, 0, 0, 0, 0, 0, -76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -76, 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, -15, 0, -15, + // State 134 + 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, -56, 0, -56, + // 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, 147, 0, 0, + // State 136 + 0, -138, -138, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -138, 0, -138, + // State 137 + 0, -50, 149, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 138 + 0, 150, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 139 + 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, + // State 140 + 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, 0, 0, 0, + // State 141 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 153, 0, 0, + // State 142 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 154, 0, 0, + // State 143 + 0, 0, 0, 0, 0, 0, 0, 0, 0, -74, 0, 0, 0, 0, 0, 0, 0, 0, 0, -74, 0, 0, 0, 0, 0, -74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -74, 0, 0, + // State 144 + 0, 0, 0, 0, 0, 0, 0, 0, 0, -75, 0, 0, 0, 0, 0, 0, 0, 0, 0, -75, 0, 0, 0, 0, 0, -75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -75, 0, 0, + // State 145 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, -16, + // State 146 + 0, 0, 0, 0, 0, 0, 0, 0, 0, -54, 0, -54, 0, 0, 0, 0, 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, -54, 0, 0, + // State 147 + 0, -52, 156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 148 + 0, -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, -10, + // State 149 + 0, 0, 0, 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, -71, 0, -71, + // State 150 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 160, 0, 0, + // State 151 + 0, 0, 0, 0, 0, 0, 0, 0, 0, -69, 0, 0, 0, 0, 0, 0, 0, 0, 0, -69, 0, 0, 0, 0, 0, -69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -69, 0, 0, + // State 152 + 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, 0, 0, 0, 0, + // State 153 + 0, 0, 0, 0, 0, 0, 0, 0, 0, -73, 0, 0, 0, 0, 0, 0, 0, 0, 0, -73, 0, 0, 0, 0, 0, -73, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -73, 0, 0, + // State 154 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, -55, + // State 155 + 0, -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, -11, + // State 156 + 0, -47, -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, + // State 157 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 164, 0, 0, + // State 158 + 0, 0, 0, 0, 0, 0, 0, 0, 0, -65, 0, 0, 0, 0, 0, 0, 0, 0, 0, -65, 0, 0, 0, 0, 0, -65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -65, 0, 0, + // State 159 + 0, 0, 0, 0, 0, 0, 0, 0, 0, -67, 0, 0, 0, 0, 0, 0, 0, 0, 0, -67, 0, 0, 0, 0, 0, -67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -67, 0, 0, + // State 160 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 167, 0, 0, + // State 161 + 0, 0, 0, 0, 0, 0, 0, 0, 0, -68, 0, 0, 0, 0, 0, 0, 0, 0, 0, -68, 0, 0, 0, 0, 0, -68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -68, 0, 0, + // State 162 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -70, 0, -70, + // State 163 + 0, 0, 0, 0, 0, 0, 0, 0, 0, -63, 0, 0, 0, 0, 0, 0, 0, 0, 0, -63, 0, 0, 0, 0, 0, -63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -63, 0, 0, + // State 164 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 168, 0, 0, + // State 165 + 0, 0, 0, 0, 0, 0, 0, 0, 0, -64, 0, 0, 0, 0, 0, 0, 0, 0, 0, -64, 0, 0, 0, 0, 0, -64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -64, 0, 0, + // State 166 + 0, 0, 0, 0, 0, 0, 0, 0, 0, -66, 0, 0, 0, 0, 0, 0, 0, 0, 0, -66, 0, 0, 0, 0, 0, -66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -66, 0, 0, + // State 167 + 0, 0, 0, 0, 0, 0, 0, 0, 0, -62, 0, 0, 0, 0, 0, 0, 0, 0, 0, -62, 0, 0, 0, 0, 0, -62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -62, 0, 0, + ]; + fn __action(state: i16, integer: usize) -> i16 { + __ACTION[(state as usize) * 47 + integer] + } + const __EOF_ACTION: &[i16] = &[ + // State 0 + 0, + // State 1 + 0, + // State 2 + -114, + // State 3 + -115, + // State 4 + -118, + // State 5 + 0, + // State 6 + -119, + // State 7 + -108, + // State 8 + 0, + // State 9 + 0, + // State 10 + -109, + // State 11 + 0, + // State 12 + 0, + // State 13 + 0, + // State 14 + 0, + // State 15 + 0, + // State 16 + 0, + // State 17 + 0, + // State 18 + 0, + // State 19 + 0, + // State 20 + 0, + // State 21 + 0, + // State 22 + 0, + // 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 + 0, + // State 33 + 0, + // State 34 + 0, + // State 35 + 0, + // State 36 + 0, + // State 37 + 0, + // State 38 + 0, + // State 39 + 0, + // State 40 + 0, + // State 41 + 0, + // State 42 + 0, + // State 43 + 0, + // State 44 + 0, + // State 45 + 0, + // State 46 + 0, + // State 47 + 0, + // State 48 + 0, + // State 49 + 0, + // State 50 + -144, + // State 51 + -72, + // State 52 + -35, + // State 53 + -36, + // State 54 + -45, + // State 55 + 0, + // State 56 + -46, + // State 57 + -20, + // State 58 + -123, + // State 59 + 0, + // State 60 + -21, + // State 61 + 0, + // State 62 + -139, + // State 63 + 0, + // State 64 + 0, + // State 65 + 0, + // State 66 + -105, + // State 67 + 0, + // State 68 + 0, + // State 69 + 0, + // State 70 + 0, + // State 71 + 0, + // State 72 + 0, + // State 73 + 0, + // State 74 + 0, + // State 75 + 0, + // State 76 + 0, + // State 77 + 0, + // State 78 + 0, + // State 79 + 0, + // State 80 + 0, + // State 81 + 0, + // State 82 + 0, + // State 83 + 0, + // State 84 + 0, + // State 85 + 0, + // State 86 + 0, + // State 87 + 0, + // State 88 + 0, + // State 89 + 0, + // State 90 + 0, + // State 91 + 0, + // State 92 + -101, + // State 93 + -103, + // State 94 + 0, + // State 95 + -104, + // State 96 + 0, + // State 97 + 0, + // State 98 + 0, + // State 99 + 0, + // State 100 + -133, + // State 101 + -99, + // State 102 + 0, + // State 103 + -100, + // State 104 + -102, + // State 105 + 0, + // State 106 + 0, + // State 107 + 0, + // State 108 + 0, + // State 109 + 0, + // State 110 + -140, + // State 111 + 0, + // State 112 + 0, + // 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 + -98, + // 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 + 0, + // State 134 + 0, + // State 135 + 0, + // State 136 + 0, + // State 137 + 0, + // State 138 + 0, + // State 139 + 0, + // State 140 + -61, + // State 141 + 0, + // State 142 + 0, + // State 143 + 0, + // State 144 + 0, + // State 145 + 0, + // State 146 + -54, + // State 147 + 0, + // State 148 + 0, + // State 149 + 0, + // State 150 + 0, + // State 151 + 0, + // State 152 + -60, + // State 153 + 0, + // State 154 + 0, + // State 155 + 0, + // State 156 + 0, + // State 157 + 0, + // State 158 + 0, + // State 159 + 0, + // State 160 + 0, + // State 161 + 0, + // State 162 + 0, + // State 163 + 0, + // State 164 + 0, + // State 165 + 0, + // State 166 + 0, + // State 167 + 0, + ]; + fn __goto(state: i16, nt: usize) -> i16 { + match nt { + 6 => 42, + 9 => 41, + 12 => 10, + 15 => 31, + 18 => 29, + 21 => 3, + 24 => 20, + 27 => 6, + 28 => match state { + 42 => 147, + _ => 137, + }, + 30 => 138, + 31 => 110, + 32 => match state { + 41 => 145, + _ => 133, + }, + 33 => match state { + 17 => 21, + 35 => 40, + 43 => 46, + 47 => 49, + _ => 16, + }, + 35 => match state { + 10 => 60, + _ => 57, + }, + 36 => match state { + 31 => 128, + _ => 109, + }, + 37 => match state { + 29 => 124, + _ => 105, + }, + 38 => match state { + 1 => 2, + 9 => 12, + 5 => 55, + 8 => 59, + 11 => 61, + 15 | 20 => 88, + 22..=23 | 29 => 106, + 33 => 130, + 36 | 41 => 134, + 38 | 42 => 139, + _ => 111, + }, + 39 => match state { + 26 => 34, + _ => 25, + }, + 40 => match state { + 44 => 154, + _ => 96, + }, + 41 => match state { + 14 => 67, + _ => 112, + }, + 42 => match state { + 3 => 53, + _ => 52, + }, + 43 => 135, + 44 => 58, + 45 => match state { + 34 => 39, + _ => 32, + }, + 46 => match state { + 23 => 108, + _ => 107, + }, + 47 => 4, + 48 => 89, + 49 => match state { + 32 => 129, + 39 => 141, + _ => 7, + }, + 50 => match state { + 16 => 91, + 17 => 94, + 21 => 102, + 35 => 131, + 40 => 142, + 43 => 150, + 46 => 157, + 47 => 160, + 49 => 164, + _ => 63, + }, + 52 => 50, + 53 => match state { + 24 => 30, + 30 => 127, + _ => 24, + }, + 54 => 113, + 55 => 62, + 56 => match state { + 20 => 99, + _ => 90, + }, + 57 => match state { + 37 => 136, + 45 => 156, + 48 => 162, + _ => 114, + }, + 58 => match state { + 6 => 56, + _ => 54, + }, + 59 => match state { + 19 => 26, + 43 => 47, + _ => 17, + }, + _ => 0, + } + } + fn __expected_tokens(__state: i16) -> alloc::vec::Vec { + const __TERMINAL: &[&str] = &[ + r###""(""###, + r###"")""###, + r###"",""###, + r###""->""###, + r###"":""###, + r###""=""###, + r###""[]""###, + r###""bool""###, + r###""bytes""###, + r###""enum""###, + r###""events""###, + r###""extension""###, + r###""f32""###, + r###""f64""###, + r###""i128""###, + r###""i16""###, + r###""i32""###, + r###""i64""###, + r###""i8""###, + r###""interface""###, + r###""matrix4x4""###, + r###""methods""###, + r###""namespace""###, + r###""object""###, + r###""string""###, + r###""struct""###, + r###""u128""###, + r###""u16""###, + r###""u32""###, + r###""u64""###, + r###""u8""###, + r###""uuid""###, + r###""version""###, + r###""vi128""###, + r###""vi16""###, + r###""vi32""###, + r###""vi64""###, + r###""vi8""###, + r###""vu128""###, + r###""vu16""###, + r###""vu32""###, + r###""vu64""###, + r###""vu8""###, + r###""{""###, + r###""}""###, + r###"r#"(-)?[0-9]+"#"###, + r###"r#"[a-zA-Z][a-zA-Z0-9_]*"#"###, + ]; + __TERMINAL.iter().enumerate().filter_map(|(index, terminal)| { + let next_state = __action(__state, index); + if next_state == 0 { + None + } else { + Some(alloc::string::ToString::to_string(terminal)) + } + }).collect() + } + pub(crate) struct __StateMachine<'input> + where + { + input: &'input str, + __phantom: core::marker::PhantomData<(&'input ())>, + } + impl<'input> __state_machine::ParserDefinition for __StateMachine<'input> + where + { + type Location = usize; + type Error = &'static str; + type Token = Token<'input>; + type TokenIndex = usize; + type Symbol = __Symbol<'input>; + type Success = Namespace; + 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, core::marker::PhantomData::<(&())>) + } + + #[inline] + fn action(&self, state: i16, integer: usize) -> i16 { + __action(state, integer) + } + + #[inline] + fn error_action(&self, state: i16) -> i16 { + __action(state, 47 - 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, nt) + } + + fn token_to_symbol(&self, token_index: usize, token: Self::Token) -> Self::Symbol { + __token_to_symbol(token_index, token, core::marker::PhantomData::<(&())>) + } + + fn expected_tokens(&self, state: i16) -> alloc::vec::Vec { + __expected_tokens(state) + } + + #[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 alloc::vec::Vec, + symbols: &mut alloc::vec::Vec<__state_machine::SymbolTriple>, + ) -> Option<__state_machine::ParseResult> { + __reduce( + self.input, + action, + start_location, + states, + symbols, + core::marker::PhantomData::<(&())>, + ) + } + + fn simulate_reduce(&self, action: i16) -> __state_machine::SimulatedReduce { + panic!("error recovery not enabled for this grammar") + } + } + fn __token_to_integer< + 'input, + >( + __token: &Token<'input>, + _: core::marker::PhantomData<(&'input ())>, + ) -> Option + { + match *__token { + Token(2, _) if true => Some(0), + Token(3, _) if true => Some(1), + Token(4, _) if true => Some(2), + Token(5, _) if true => Some(3), + Token(6, _) if true => Some(4), + Token(7, _) if true => Some(5), + Token(8, _) if true => Some(6), + Token(9, _) if true => Some(7), + Token(10, _) if true => Some(8), + Token(11, _) if true => Some(9), + Token(12, _) if true => Some(10), + Token(13, _) if true => Some(11), + Token(14, _) if true => Some(12), + Token(15, _) if true => Some(13), + Token(16, _) if true => Some(14), + Token(17, _) if true => Some(15), + Token(18, _) if true => Some(16), + Token(19, _) if true => Some(17), + Token(20, _) if true => Some(18), + Token(21, _) if true => Some(19), + Token(22, _) if true => Some(20), + Token(23, _) if true => Some(21), + Token(24, _) if true => Some(22), + Token(25, _) if true => Some(23), + Token(26, _) if true => Some(24), + Token(27, _) if true => Some(25), + Token(28, _) if true => Some(26), + Token(29, _) if true => Some(27), + Token(30, _) if true => Some(28), + Token(31, _) if true => Some(29), + Token(32, _) if true => Some(30), + Token(33, _) if true => Some(31), + Token(34, _) if true => Some(32), + Token(35, _) if true => Some(33), + Token(36, _) if true => Some(34), + Token(37, _) if true => Some(35), + Token(38, _) if true => Some(36), + Token(39, _) if true => Some(37), + Token(40, _) if true => Some(38), + Token(41, _) if true => Some(39), + Token(42, _) if true => Some(40), + Token(43, _) if true => Some(41), + Token(44, _) if true => Some(42), + Token(45, _) if true => Some(43), + Token(46, _) if true => Some(44), + Token(0, _) if true => Some(45), + Token(1, _) if true => Some(46), + _ => None, + } + } + fn __token_to_symbol< + 'input, + >( + __token_index: usize, + __token: Token<'input>, + _: core::marker::PhantomData<(&'input ())>, + ) -> __Symbol<'input> + { + match __token_index { + 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 => match __token { + Token(2, __tok0) | Token(3, __tok0) | Token(4, __tok0) | Token(5, __tok0) | Token(6, __tok0) | Token(7, __tok0) | Token(8, __tok0) | Token(9, __tok0) | Token(10, __tok0) | Token(11, __tok0) | Token(12, __tok0) | Token(13, __tok0) | Token(14, __tok0) | Token(15, __tok0) | Token(16, __tok0) | Token(17, __tok0) | Token(18, __tok0) | Token(19, __tok0) | Token(20, __tok0) | Token(21, __tok0) | Token(22, __tok0) | Token(23, __tok0) | Token(24, __tok0) | Token(25, __tok0) | Token(26, __tok0) | Token(27, __tok0) | Token(28, __tok0) | Token(29, __tok0) | Token(30, __tok0) | Token(31, __tok0) | Token(32, __tok0) | Token(33, __tok0) | Token(34, __tok0) | Token(35, __tok0) | Token(36, __tok0) | Token(37, __tok0) | Token(38, __tok0) | Token(39, __tok0) | Token(40, __tok0) | Token(41, __tok0) | Token(42, __tok0) | Token(43, __tok0) | Token(44, __tok0) | Token(45, __tok0) | Token(46, __tok0) | Token(0, __tok0) | Token(1, __tok0) if true => __Symbol::Variant0(__tok0), + _ => unreachable!(), + }, + _ => unreachable!(), + } + } + pub struct NamespaceParser { + builder: __lalrpop_util::lexer::MatcherBuilder, + _priv: (), + } + + impl NamespaceParser { + pub fn new() -> NamespaceParser { + let __builder = super::__intern_token::new_builder(); + NamespaceParser { + builder: __builder, + _priv: (), + } + } + + #[allow(dead_code)] + pub fn parse< + 'input, + >( + &self, + input: &'input str, + ) -> Result, &'static str>> + { + let mut __tokens = self.builder.matcher(input); + __state_machine::Parser::drive( + __StateMachine { + input, + __phantom: core::marker::PhantomData::<(&())>, + }, + __tokens, + ) + } + } + pub(crate) fn __reduce< + 'input, + >( + input: &'input str, + __action: i16, + __lookahead_start: Option<&usize>, + __states: &mut alloc::vec::Vec, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> Option, &'static str>>> + { + let (__pop_states, __nonterminal) = match __action { + 0 => { + __reduce0(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 1 => { + __reduce1(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 2 => { + __reduce2(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 3 => { + __reduce3(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 4 => { + __reduce4(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 5 => { + __reduce5(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 6 => { + __reduce6(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 7 => { + __reduce7(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 8 => { + __reduce8(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 9 => { + __reduce9(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 10 => { + __reduce10(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 11 => { + __reduce11(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 12 => { + __reduce12(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 13 => { + __reduce13(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 14 => { + __reduce14(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 15 => { + __reduce15(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 16 => { + __reduce16(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 17 => { + __reduce17(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 18 => { + __reduce18(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 19 => { + __reduce19(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 20 => { + __reduce20(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 21 => { + __reduce21(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 22 => { + __reduce22(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 23 => { + __reduce23(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 24 => { + __reduce24(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 25 => { + __reduce25(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 26 => { + __reduce26(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 27 => { + __reduce27(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 28 => { + __reduce28(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 29 => { + __reduce29(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 30 => { + __reduce30(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 31 => { + __reduce31(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 32 => { + __reduce32(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 33 => { + __reduce33(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 34 => { + __reduce34(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 35 => { + __reduce35(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 36 => { + __reduce36(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 37 => { + __reduce37(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 38 => { + __reduce38(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 39 => { + __reduce39(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 40 => { + __reduce40(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 41 => { + __reduce41(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 42 => { + __reduce42(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 43 => { + __reduce43(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 44 => { + __reduce44(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 45 => { + __reduce45(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 46 => { + __reduce46(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 47 => { + __reduce47(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 48 => { + __reduce48(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 49 => { + __reduce49(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 50 => { + __reduce50(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 51 => { + __reduce51(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 52 => { + __reduce52(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 53 => { + __reduce53(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 54 => { + __reduce54(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 55 => { + __reduce55(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 56 => { + __reduce56(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 57 => { + __reduce57(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 58 => { + __reduce58(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 59 => { + __reduce59(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 60 => { + __reduce60(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 61 => { + __reduce61(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 62 => { + __reduce62(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 63 => { + __reduce63(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 64 => { + __reduce64(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 65 => { + __reduce65(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 66 => { + __reduce66(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 67 => { + __reduce67(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 68 => { + __reduce68(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 69 => { + __reduce69(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 70 => { + __reduce70(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 71 => { + __reduce71(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 72 => { + __reduce72(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 73 => { + __reduce73(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 74 => { + __reduce74(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 75 => { + __reduce75(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 76 => { + __reduce76(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 77 => { + __reduce77(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 78 => { + __reduce78(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 79 => { + __reduce79(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 80 => { + __reduce80(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 81 => { + __reduce81(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 82 => { + __reduce82(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 83 => { + __reduce83(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 84 => { + __reduce84(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 85 => { + __reduce85(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 86 => { + __reduce86(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 87 => { + __reduce87(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 88 => { + __reduce88(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 89 => { + __reduce89(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 90 => { + __reduce90(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 91 => { + __reduce91(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 92 => { + __reduce92(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 93 => { + __reduce93(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 94 => { + __reduce94(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 95 => { + __reduce95(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 96 => { + __reduce96(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 97 => { + __reduce97(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 98 => { + __reduce98(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 99 => { + __reduce99(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 100 => { + __reduce100(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 101 => { + __reduce101(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 102 => { + __reduce102(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 103 => { + __reduce103(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 104 => { + __reduce104(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 105 => { + __reduce105(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 106 => { + __reduce106(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 107 => { + __reduce107(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 108 => { + __reduce108(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 109 => { + __reduce109(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 110 => { + __reduce110(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 111 => { + __reduce111(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 112 => { + __reduce112(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 113 => { + __reduce113(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 114 => { + __reduce114(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 115 => { + __reduce115(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 116 => { + __reduce116(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 117 => { + __reduce117(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 118 => { + __reduce118(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 119 => { + __reduce119(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 120 => { + __reduce120(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 121 => { + __reduce121(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 122 => { + __reduce122(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 123 => { + __reduce123(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 124 => { + __reduce124(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 125 => { + __reduce125(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 126 => { + __reduce126(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 127 => { + __reduce127(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 128 => { + __reduce128(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 129 => { + __reduce129(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 130 => { + __reduce130(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 131 => { + __reduce131(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 132 => { + __reduce132(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 133 => { + __reduce133(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 134 => { + __reduce134(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 135 => { + __reduce135(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 136 => { + __reduce136(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 137 => { + __reduce137(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 138 => { + __reduce138(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 139 => { + __reduce139(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 140 => { + __reduce140(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 141 => { + __reduce141(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 142 => { + __reduce142(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>) + } + 143 => { + // __Namespace = Namespace => ActionFn(0); + let __sym0 = __pop_Variant34(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action0::<>(input, __sym0); + return Some(Ok(__nt)); + } + _ => panic!("invalid action code {}", __action) + }; + let __states_len = __states.len(); + __states.truncate(__states_len - __pop_states); + let __state = *__states.last().unwrap(); + let __next_state = __goto(__state, __nonterminal); + __states.push(__next_state); + None + } + #[inline(never)] + fn __symbol_type_mismatch() -> ! { + panic!("symbol type mismatch") + } + fn __pop_Variant5< + 'input, + >( + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, Arg, usize) + { + match __symbols.pop() { + Some((__l, __Symbol::Variant5(__v), __r)) => (__l, __v, __r), + _ => __symbol_type_mismatch() + } + } + fn __pop_Variant7< + 'input, + >( + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, EnumField, usize) + { + match __symbols.pop() { + Some((__l, __Symbol::Variant7(__v), __r)) => (__l, __v, __r), + _ => __symbol_type_mismatch() + } + } + fn __pop_Variant9< + 'input, + >( + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, Extension, usize) + { + match __symbols.pop() { + Some((__l, __Symbol::Variant9(__v), __r)) => (__l, __v, __r), + _ => __symbol_type_mismatch() + } + } + fn __pop_Variant11< + 'input, + >( + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, ExtensionInterface, usize) + { + match __symbols.pop() { + Some((__l, __Symbol::Variant11(__v), __r)) => (__l, __v, __r), + _ => __symbol_type_mismatch() + } + } + fn __pop_Variant13< + 'input, + >( + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, Func, usize) + { + match __symbols.pop() { + Some((__l, __Symbol::Variant13(__v), __r)) => (__l, __v, __r), + _ => __symbol_type_mismatch() + } + } + fn __pop_Variant27< + 'input, + >( + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, ImplicitInterface, usize) + { + match __symbols.pop() { + Some((__l, __Symbol::Variant27(__v), __r)) => (__l, __v, __r), + _ => __symbol_type_mismatch() + } + } + fn __pop_Variant28< + 'input, + >( + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, IntType, usize) + { + match __symbols.pop() { + Some((__l, __Symbol::Variant28(__v), __r)) => (__l, __v, __r), + _ => __symbol_type_mismatch() + } + } + fn __pop_Variant15< + 'input, + >( + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, Interface, usize) + { + match __symbols.pop() { + Some((__l, __Symbol::Variant15(__v), __r)) => (__l, __v, __r), + _ => __symbol_type_mismatch() + } + } + fn __pop_Variant34< + 'input, + >( + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, Namespace, usize) + { + match __symbols.pop() { + Some((__l, __Symbol::Variant34(__v), __r)) => (__l, __v, __r), + _ => __symbol_type_mismatch() + } + } + fn __pop_Variant36< + 'input, + >( + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, PrimType, usize) + { + match __symbols.pop() { + Some((__l, __Symbol::Variant36(__v), __r)) => (__l, __v, __r), + _ => __symbol_type_mismatch() + } + } + fn __pop_Variant26< + 'input, + >( + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, String, usize) + { + match __symbols.pop() { + Some((__l, __Symbol::Variant26(__v), __r)) => (__l, __v, __r), + _ => __symbol_type_mismatch() + } + } + fn __pop_Variant37< + 'input, + >( + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, Struct, usize) + { + match __symbols.pop() { + Some((__l, __Symbol::Variant37(__v), __r)) => (__l, __v, __r), + _ => __symbol_type_mismatch() + } + } + fn __pop_Variant17< + 'input, + >( + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, StructField, usize) + { + match __symbols.pop() { + Some((__l, __Symbol::Variant17(__v), __r)) => (__l, __v, __r), + _ => __symbol_type_mismatch() + } + } + fn __pop_Variant1< + 'input, + >( + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, Type, usize) + { + match __symbols.pop() { + Some((__l, __Symbol::Variant1(__v), __r)) => (__l, __v, __r), + _ => __symbol_type_mismatch() + } + } + fn __pop_Variant19< + 'input, + >( + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, TypeDef, usize) + { + match __symbols.pop() { + Some((__l, __Symbol::Variant19(__v), __r)) => (__l, __v, __r), + _ => __symbol_type_mismatch() + } + } + fn __pop_Variant22< + 'input, + >( + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, Vec, usize) + { + match __symbols.pop() { + Some((__l, __Symbol::Variant22(__v), __r)) => (__l, __v, __r), + _ => __symbol_type_mismatch() + } + } + fn __pop_Variant23< + 'input, + >( + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, Vec, usize) + { + match __symbols.pop() { + Some((__l, __Symbol::Variant23(__v), __r)) => (__l, __v, __r), + _ => __symbol_type_mismatch() + } + } + fn __pop_Variant29< + 'input, + >( + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, Vec, usize) + { + match __symbols.pop() { + Some((__l, __Symbol::Variant29(__v), __r)) => (__l, __v, __r), + _ => __symbol_type_mismatch() + } + } + fn __pop_Variant30< + 'input, + >( + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, Vec, usize) + { + match __symbols.pop() { + Some((__l, __Symbol::Variant30(__v), __r)) => (__l, __v, __r), + _ => __symbol_type_mismatch() + } + } + fn __pop_Variant24< + 'input, + >( + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, Vec, usize) + { + match __symbols.pop() { + Some((__l, __Symbol::Variant24(__v), __r)) => (__l, __v, __r), + _ => __symbol_type_mismatch() + } + } + fn __pop_Variant31< + 'input, + >( + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, Vec, usize) + { + match __symbols.pop() { + Some((__l, __Symbol::Variant31(__v), __r)) => (__l, __v, __r), + _ => __symbol_type_mismatch() + } + } + fn __pop_Variant32< + 'input, + >( + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, Vec, usize) + { + match __symbols.pop() { + Some((__l, __Symbol::Variant32(__v), __r)) => (__l, __v, __r), + _ => __symbol_type_mismatch() + } + } + fn __pop_Variant33< + 'input, + >( + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, Vec, usize) + { + match __symbols.pop() { + Some((__l, __Symbol::Variant33(__v), __r)) => (__l, __v, __r), + _ => __symbol_type_mismatch() + } + } + fn __pop_Variant38< + 'input, + >( + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, Version, usize) + { + match __symbols.pop() { + Some((__l, __Symbol::Variant38(__v), __r)) => (__l, __v, __r), + _ => __symbol_type_mismatch() + } + } + fn __pop_Variant6< + 'input, + >( + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, alloc::vec::Vec, usize) + { + match __symbols.pop() { + Some((__l, __Symbol::Variant6(__v), __r)) => (__l, __v, __r), + _ => __symbol_type_mismatch() + } + } + fn __pop_Variant8< + 'input, + >( + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, alloc::vec::Vec, usize) + { + match __symbols.pop() { + Some((__l, __Symbol::Variant8(__v), __r)) => (__l, __v, __r), + _ => __symbol_type_mismatch() + } + } + fn __pop_Variant10< + 'input, + >( + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, alloc::vec::Vec, usize) + { + match __symbols.pop() { + Some((__l, __Symbol::Variant10(__v), __r)) => (__l, __v, __r), + _ => __symbol_type_mismatch() + } + } + fn __pop_Variant12< + 'input, + >( + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, alloc::vec::Vec, usize) + { + match __symbols.pop() { + Some((__l, __Symbol::Variant12(__v), __r)) => (__l, __v, __r), + _ => __symbol_type_mismatch() + } + } + fn __pop_Variant14< + 'input, + >( + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, alloc::vec::Vec, usize) + { + match __symbols.pop() { + Some((__l, __Symbol::Variant14(__v), __r)) => (__l, __v, __r), + _ => __symbol_type_mismatch() + } + } + fn __pop_Variant16< + 'input, + >( + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, alloc::vec::Vec, usize) + { + match __symbols.pop() { + Some((__l, __Symbol::Variant16(__v), __r)) => (__l, __v, __r), + _ => __symbol_type_mismatch() + } + } + fn __pop_Variant18< + 'input, + >( + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, alloc::vec::Vec, usize) + { + match __symbols.pop() { + Some((__l, __Symbol::Variant18(__v), __r)) => (__l, __v, __r), + _ => __symbol_type_mismatch() + } + } + fn __pop_Variant20< + 'input, + >( + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, alloc::vec::Vec, usize) + { + match __symbols.pop() { + Some((__l, __Symbol::Variant20(__v), __r)) => (__l, __v, __r), + _ => __symbol_type_mismatch() + } + } + fn __pop_Variant21< + 'input, + >( + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, core::option::Option, usize) + { + match __symbols.pop() { + Some((__l, __Symbol::Variant21(__v), __r)) => (__l, __v, __r), + _ => __symbol_type_mismatch() + } + } + fn __pop_Variant2< + 'input, + >( + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, core::option::Option, usize) + { + match __symbols.pop() { + Some((__l, __Symbol::Variant2(__v), __r)) => (__l, __v, __r), + _ => __symbol_type_mismatch() + } + } + fn __pop_Variant25< + 'input, + >( + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, core::option::Option>, usize) + { + match __symbols.pop() { + Some((__l, __Symbol::Variant25(__v), __r)) => (__l, __v, __r), + _ => __symbol_type_mismatch() + } + } + fn __pop_Variant39< + 'input, + >( + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, core::option::Option, usize) + { + match __symbols.pop() { + Some((__l, __Symbol::Variant39(__v), __r)) => (__l, __v, __r), + _ => __symbol_type_mismatch() + } + } + fn __pop_Variant4< + 'input, + >( + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, core::option::Option, usize) + { + match __symbols.pop() { + Some((__l, __Symbol::Variant4(__v), __r)) => (__l, __v, __r), + _ => __symbol_type_mismatch() + } + } + fn __pop_Variant3< + 'input, + >( + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, i64, usize) + { + match __symbols.pop() { + Some((__l, __Symbol::Variant3(__v), __r)) => (__l, __v, __r), + _ => __symbol_type_mismatch() + } + } + fn __pop_Variant35< + 'input, + >( + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, u8, usize) + { + match __symbols.pop() { + Some((__l, __Symbol::Variant35(__v), __r)) => (__l, __v, __r), + _ => __symbol_type_mismatch() + } + } + fn __pop_Variant0< + 'input, + >( + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, &'input str, usize) + { + match __symbols.pop() { + Some((__l, __Symbol::Variant0(__v), __r)) => (__l, __v, __r), + _ => __symbol_type_mismatch() + } + } + pub(crate) fn __reduce0< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // ("->" ) = "->", Type => ActionFn(59); + assert!(__symbols.len() >= 2); + let __sym1 = __pop_Variant1(__symbols); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym1.2.clone(); + let __nt = super::__action59::<>(input, __sym0, __sym1); + __symbols.push((__start, __Symbol::Variant1(__nt), __end)); + (2, 0) + } + pub(crate) fn __reduce1< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // ("->" )? = "->", Type => ActionFn(114); + assert!(__symbols.len() >= 2); + let __sym1 = __pop_Variant1(__symbols); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym1.2.clone(); + let __nt = super::__action114::<>(input, __sym0, __sym1); + __symbols.push((__start, __Symbol::Variant2(__nt), __end)); + (2, 1) + } + pub(crate) fn __reduce2< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // ("->" )? = => ActionFn(58); + let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default(); + let __end = __start.clone(); + let __nt = super::__action58::<>(input, &__start, &__end); + __symbols.push((__start, __Symbol::Variant2(__nt), __end)); + (0, 1) + } + pub(crate) fn __reduce3< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // ("=" ) = "=", Int => ActionFn(54); + assert!(__symbols.len() >= 2); + let __sym1 = __pop_Variant3(__symbols); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym1.2.clone(); + let __nt = super::__action54::<>(input, __sym0, __sym1); + __symbols.push((__start, __Symbol::Variant3(__nt), __end)); + (2, 2) + } + pub(crate) fn __reduce4< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // ("=" )? = "=", Int => ActionFn(117); + assert!(__symbols.len() >= 2); + let __sym1 = __pop_Variant3(__symbols); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym1.2.clone(); + let __nt = super::__action117::<>(input, __sym0, __sym1); + __symbols.push((__start, __Symbol::Variant4(__nt), __end)); + (2, 3) + } + pub(crate) fn __reduce5< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // ("=" )? = => ActionFn(53); + let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default(); + let __end = __start.clone(); + let __nt = super::__action53::<>(input, &__start, &__end); + __symbols.push((__start, __Symbol::Variant4(__nt), __end)); + (0, 3) + } + pub(crate) fn __reduce6< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // ( ",") = Arg, "," => ActionFn(91); + assert!(__symbols.len() >= 2); + let __sym1 = __pop_Variant0(__symbols); + let __sym0 = __pop_Variant5(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym1.2.clone(); + let __nt = super::__action91::<>(input, __sym0, __sym1); + __symbols.push((__start, __Symbol::Variant5(__nt), __end)); + (2, 4) + } + pub(crate) fn __reduce7< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // ( ",")* = => ActionFn(89); + let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default(); + let __end = __start.clone(); + let __nt = super::__action89::<>(input, &__start, &__end); + __symbols.push((__start, __Symbol::Variant6(__nt), __end)); + (0, 5) + } + pub(crate) fn __reduce8< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // ( ",")* = ( ",")+ => ActionFn(90); + let __sym0 = __pop_Variant6(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action90::<>(input, __sym0); + __symbols.push((__start, __Symbol::Variant6(__nt), __end)); + (1, 5) + } + pub(crate) fn __reduce9< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // ( ",")+ = Arg, "," => ActionFn(120); + assert!(__symbols.len() >= 2); + let __sym1 = __pop_Variant0(__symbols); + let __sym0 = __pop_Variant5(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym1.2.clone(); + let __nt = super::__action120::<>(input, __sym0, __sym1); + __symbols.push((__start, __Symbol::Variant6(__nt), __end)); + (2, 6) + } + pub(crate) fn __reduce10< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // ( ",")+ = ( ",")+, Arg, "," => ActionFn(121); + assert!(__symbols.len() >= 3); + let __sym2 = __pop_Variant0(__symbols); + let __sym1 = __pop_Variant5(__symbols); + let __sym0 = __pop_Variant6(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym2.2.clone(); + let __nt = super::__action121::<>(input, __sym0, __sym1, __sym2); + __symbols.push((__start, __Symbol::Variant6(__nt), __end)); + (3, 6) + } + pub(crate) fn __reduce11< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // () = EnumField => ActionFn(97); + let __sym0 = __pop_Variant7(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action97::<>(input, __sym0); + __symbols.push((__start, __Symbol::Variant7(__nt), __end)); + (1, 7) + } + pub(crate) fn __reduce12< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // ()* = => ActionFn(95); + let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default(); + let __end = __start.clone(); + let __nt = super::__action95::<>(input, &__start, &__end); + __symbols.push((__start, __Symbol::Variant8(__nt), __end)); + (0, 8) + } + pub(crate) fn __reduce13< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // ()* = ()+ => ActionFn(96); + let __sym0 = __pop_Variant8(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action96::<>(input, __sym0); + __symbols.push((__start, __Symbol::Variant8(__nt), __end)); + (1, 8) + } + pub(crate) fn __reduce14< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // ()+ = EnumField => ActionFn(124); + let __sym0 = __pop_Variant7(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action124::<>(input, __sym0); + __symbols.push((__start, __Symbol::Variant8(__nt), __end)); + (1, 9) + } + pub(crate) fn __reduce15< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // ()+ = ()+, EnumField => ActionFn(125); + assert!(__symbols.len() >= 2); + let __sym1 = __pop_Variant7(__symbols); + let __sym0 = __pop_Variant8(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym1.2.clone(); + let __nt = super::__action125::<>(input, __sym0, __sym1); + __symbols.push((__start, __Symbol::Variant8(__nt), __end)); + (2, 9) + } + pub(crate) fn __reduce16< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // () = Extension => ActionFn(80); + let __sym0 = __pop_Variant9(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action80::<>(input, __sym0); + __symbols.push((__start, __Symbol::Variant9(__nt), __end)); + (1, 10) + } + pub(crate) fn __reduce17< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // ()* = => ActionFn(78); + let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default(); + let __end = __start.clone(); + let __nt = super::__action78::<>(input, &__start, &__end); + __symbols.push((__start, __Symbol::Variant10(__nt), __end)); + (0, 11) + } + pub(crate) fn __reduce18< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // ()* = ()+ => ActionFn(79); + let __sym0 = __pop_Variant10(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action79::<>(input, __sym0); + __symbols.push((__start, __Symbol::Variant10(__nt), __end)); + (1, 11) + } + pub(crate) fn __reduce19< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // ()+ = Extension => ActionFn(128); + let __sym0 = __pop_Variant9(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action128::<>(input, __sym0); + __symbols.push((__start, __Symbol::Variant10(__nt), __end)); + (1, 12) + } + pub(crate) fn __reduce20< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // ()+ = ()+, Extension => ActionFn(129); + assert!(__symbols.len() >= 2); + let __sym1 = __pop_Variant9(__symbols); + let __sym0 = __pop_Variant10(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym1.2.clone(); + let __nt = super::__action129::<>(input, __sym0, __sym1); + __symbols.push((__start, __Symbol::Variant10(__nt), __end)); + (2, 12) + } + pub(crate) fn __reduce21< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // () = ExtensionInterface => ActionFn(83); + let __sym0 = __pop_Variant11(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action83::<>(input, __sym0); + __symbols.push((__start, __Symbol::Variant11(__nt), __end)); + (1, 13) + } + pub(crate) fn __reduce22< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // ()* = => ActionFn(81); + let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default(); + let __end = __start.clone(); + let __nt = super::__action81::<>(input, &__start, &__end); + __symbols.push((__start, __Symbol::Variant12(__nt), __end)); + (0, 14) + } + pub(crate) fn __reduce23< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // ()* = ()+ => ActionFn(82); + let __sym0 = __pop_Variant12(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action82::<>(input, __sym0); + __symbols.push((__start, __Symbol::Variant12(__nt), __end)); + (1, 14) + } + pub(crate) fn __reduce24< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // ()+ = ExtensionInterface => ActionFn(132); + let __sym0 = __pop_Variant11(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action132::<>(input, __sym0); + __symbols.push((__start, __Symbol::Variant12(__nt), __end)); + (1, 15) + } + pub(crate) fn __reduce25< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // ()+ = ()+, ExtensionInterface => ActionFn(133); + assert!(__symbols.len() >= 2); + let __sym1 = __pop_Variant11(__symbols); + let __sym0 = __pop_Variant12(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym1.2.clone(); + let __nt = super::__action133::<>(input, __sym0, __sym1); + __symbols.push((__start, __Symbol::Variant12(__nt), __end)); + (2, 15) + } + pub(crate) fn __reduce26< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // () = Func => ActionFn(86); + let __sym0 = __pop_Variant13(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action86::<>(input, __sym0); + __symbols.push((__start, __Symbol::Variant13(__nt), __end)); + (1, 16) + } + pub(crate) fn __reduce27< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // ()* = => ActionFn(84); + let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default(); + let __end = __start.clone(); + let __nt = super::__action84::<>(input, &__start, &__end); + __symbols.push((__start, __Symbol::Variant14(__nt), __end)); + (0, 17) + } + pub(crate) fn __reduce28< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // ()* = ()+ => ActionFn(85); + let __sym0 = __pop_Variant14(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action85::<>(input, __sym0); + __symbols.push((__start, __Symbol::Variant14(__nt), __end)); + (1, 17) + } + pub(crate) fn __reduce29< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // ()+ = Func => ActionFn(136); + let __sym0 = __pop_Variant13(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action136::<>(input, __sym0); + __symbols.push((__start, __Symbol::Variant14(__nt), __end)); + (1, 18) + } + pub(crate) fn __reduce30< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // ()+ = ()+, Func => ActionFn(137); + assert!(__symbols.len() >= 2); + let __sym1 = __pop_Variant13(__symbols); + let __sym0 = __pop_Variant14(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym1.2.clone(); + let __nt = super::__action137::<>(input, __sym0, __sym1); + __symbols.push((__start, __Symbol::Variant14(__nt), __end)); + (2, 18) + } + pub(crate) fn __reduce31< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // () = Interface => ActionFn(74); + let __sym0 = __pop_Variant15(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action74::<>(input, __sym0); + __symbols.push((__start, __Symbol::Variant15(__nt), __end)); + (1, 19) + } + pub(crate) fn __reduce32< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // ()* = => ActionFn(72); + let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default(); + let __end = __start.clone(); + let __nt = super::__action72::<>(input, &__start, &__end); + __symbols.push((__start, __Symbol::Variant16(__nt), __end)); + (0, 20) + } + pub(crate) fn __reduce33< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // ()* = ()+ => ActionFn(73); + let __sym0 = __pop_Variant16(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action73::<>(input, __sym0); + __symbols.push((__start, __Symbol::Variant16(__nt), __end)); + (1, 20) + } + pub(crate) fn __reduce34< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // ()+ = Interface => ActionFn(140); + let __sym0 = __pop_Variant15(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action140::<>(input, __sym0); + __symbols.push((__start, __Symbol::Variant16(__nt), __end)); + (1, 21) + } + pub(crate) fn __reduce35< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // ()+ = ()+, Interface => ActionFn(141); + assert!(__symbols.len() >= 2); + let __sym1 = __pop_Variant15(__symbols); + let __sym0 = __pop_Variant16(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym1.2.clone(); + let __nt = super::__action141::<>(input, __sym0, __sym1); + __symbols.push((__start, __Symbol::Variant16(__nt), __end)); + (2, 21) + } + pub(crate) fn __reduce36< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // () = StructField => ActionFn(94); + let __sym0 = __pop_Variant17(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action94::<>(input, __sym0); + __symbols.push((__start, __Symbol::Variant17(__nt), __end)); + (1, 22) + } + pub(crate) fn __reduce37< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // ()* = => ActionFn(92); + let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default(); + let __end = __start.clone(); + let __nt = super::__action92::<>(input, &__start, &__end); + __symbols.push((__start, __Symbol::Variant18(__nt), __end)); + (0, 23) + } + pub(crate) fn __reduce38< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // ()* = ()+ => ActionFn(93); + let __sym0 = __pop_Variant18(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action93::<>(input, __sym0); + __symbols.push((__start, __Symbol::Variant18(__nt), __end)); + (1, 23) + } + pub(crate) fn __reduce39< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // ()+ = StructField => ActionFn(144); + let __sym0 = __pop_Variant17(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action144::<>(input, __sym0); + __symbols.push((__start, __Symbol::Variant18(__nt), __end)); + (1, 24) + } + pub(crate) fn __reduce40< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // ()+ = ()+, StructField => ActionFn(145); + assert!(__symbols.len() >= 2); + let __sym1 = __pop_Variant17(__symbols); + let __sym0 = __pop_Variant18(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym1.2.clone(); + let __nt = super::__action145::<>(input, __sym0, __sym1); + __symbols.push((__start, __Symbol::Variant18(__nt), __end)); + (2, 24) + } + pub(crate) fn __reduce41< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // () = TypeDef => ActionFn(77); + let __sym0 = __pop_Variant19(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action77::<>(input, __sym0); + __symbols.push((__start, __Symbol::Variant19(__nt), __end)); + (1, 25) + } + pub(crate) fn __reduce42< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // ()* = => ActionFn(75); + let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default(); + let __end = __start.clone(); + let __nt = super::__action75::<>(input, &__start, &__end); + __symbols.push((__start, __Symbol::Variant20(__nt), __end)); + (0, 26) + } + pub(crate) fn __reduce43< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // ()* = ()+ => ActionFn(76); + let __sym0 = __pop_Variant20(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action76::<>(input, __sym0); + __symbols.push((__start, __Symbol::Variant20(__nt), __end)); + (1, 26) + } + pub(crate) fn __reduce44< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // ()+ = TypeDef => ActionFn(148); + let __sym0 = __pop_Variant19(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action148::<>(input, __sym0); + __symbols.push((__start, __Symbol::Variant20(__nt), __end)); + (1, 27) + } + pub(crate) fn __reduce45< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // ()+ = ()+, TypeDef => ActionFn(149); + assert!(__symbols.len() >= 2); + let __sym1 = __pop_Variant19(__symbols); + let __sym0 = __pop_Variant20(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym1.2.clone(); + let __nt = super::__action149::<>(input, __sym0, __sym1); + __symbols.push((__start, __Symbol::Variant20(__nt), __end)); + (2, 27) + } + pub(crate) fn __reduce46< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // Arg = Ident, ":", Type => ActionFn(10); + assert!(__symbols.len() >= 3); + let __sym2 = __pop_Variant1(__symbols); + let __sym1 = __pop_Variant0(__symbols); + let __sym0 = __pop_Variant26(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym2.2.clone(); + let __nt = super::__action10::<>(input, __sym0, __sym1, __sym2); + __symbols.push((__start, __Symbol::Variant5(__nt), __end)); + (3, 28) + } + pub(crate) fn __reduce47< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // Arg? = Arg => ActionFn(87); + let __sym0 = __pop_Variant5(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action87::<>(input, __sym0); + __symbols.push((__start, __Symbol::Variant21(__nt), __end)); + (1, 29) + } + pub(crate) fn __reduce48< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // Arg? = => ActionFn(88); + let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default(); + let __end = __start.clone(); + let __nt = super::__action88::<>(input, &__start, &__end); + __symbols.push((__start, __Symbol::Variant21(__nt), __end)); + (0, 29) + } + pub(crate) fn __reduce49< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // Comma = Arg => ActionFn(152); + let __sym0 = __pop_Variant5(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action152::<>(input, __sym0); + __symbols.push((__start, __Symbol::Variant22(__nt), __end)); + (1, 30) + } + pub(crate) fn __reduce50< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // Comma = => ActionFn(153); + let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default(); + let __end = __start.clone(); + let __nt = super::__action153::<>(input, &__start, &__end); + __symbols.push((__start, __Symbol::Variant22(__nt), __end)); + (0, 30) + } + pub(crate) fn __reduce51< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // Comma = ( ",")+, Arg => ActionFn(154); + assert!(__symbols.len() >= 2); + let __sym1 = __pop_Variant5(__symbols); + let __sym0 = __pop_Variant6(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym1.2.clone(); + let __nt = super::__action154::<>(input, __sym0, __sym1); + __symbols.push((__start, __Symbol::Variant22(__nt), __end)); + (2, 30) + } + pub(crate) fn __reduce52< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // Comma = ( ",")+ => ActionFn(155); + let __sym0 = __pop_Variant6(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action155::<>(input, __sym0); + __symbols.push((__start, __Symbol::Variant22(__nt), __end)); + (1, 30) + } + pub(crate) fn __reduce53< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // Enum = "{", List, "}" => ActionFn(47); + assert!(__symbols.len() >= 3); + let __sym2 = __pop_Variant0(__symbols); + let __sym1 = __pop_Variant23(__symbols); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym2.2.clone(); + let __nt = super::__action47::<>(input, __sym0, __sym1, __sym2); + __symbols.push((__start, __Symbol::Variant23(__nt), __end)); + (3, 31) + } + pub(crate) fn __reduce54< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // EnumField = Ident, "=", Int => ActionFn(118); + assert!(__symbols.len() >= 3); + let __sym2 = __pop_Variant3(__symbols); + let __sym1 = __pop_Variant0(__symbols); + let __sym0 = __pop_Variant26(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym2.2.clone(); + let __nt = super::__action118::<>(input, __sym0, __sym1, __sym2); + __symbols.push((__start, __Symbol::Variant7(__nt), __end)); + (3, 32) + } + pub(crate) fn __reduce55< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // EnumField = Ident => ActionFn(119); + let __sym0 = __pop_Variant26(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action119::<>(input, __sym0); + __symbols.push((__start, __Symbol::Variant7(__nt), __end)); + (1, 32) + } + pub(crate) fn __reduce56< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // Events = "events", "{", List, "}" => ActionFn(7); + assert!(__symbols.len() >= 4); + let __sym3 = __pop_Variant0(__symbols); + let __sym2 = __pop_Variant24(__symbols); + let __sym1 = __pop_Variant0(__symbols); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym3.2.clone(); + let __nt = super::__action7::<>(input, __sym0, __sym1, __sym2, __sym3); + __symbols.push((__start, __Symbol::Variant24(__nt), __end)); + (4, 33) + } + pub(crate) fn __reduce57< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // Events? = Events => ActionFn(64); + let __sym0 = __pop_Variant24(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action64::<>(input, __sym0); + __symbols.push((__start, __Symbol::Variant25(__nt), __end)); + (1, 34) + } + pub(crate) fn __reduce58< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // Events? = => ActionFn(65); + let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default(); + let __end = __start.clone(); + let __nt = super::__action65::<>(input, &__start, &__end); + __symbols.push((__start, __Symbol::Variant25(__nt), __end)); + (0, 34) + } + pub(crate) fn __reduce59< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // Extension = "extension", Ident, "{", Version, ImplicitInterface, List, List, "}" => ActionFn(174); + assert!(__symbols.len() >= 8); + let __sym7 = __pop_Variant0(__symbols); + let __sym6 = __pop_Variant33(__symbols); + let __sym5 = __pop_Variant30(__symbols); + let __sym4 = __pop_Variant27(__symbols); + let __sym3 = __pop_Variant38(__symbols); + let __sym2 = __pop_Variant0(__symbols); + let __sym1 = __pop_Variant26(__symbols); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym7.2.clone(); + let __nt = super::__action174::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7); + __symbols.push((__start, __Symbol::Variant9(__nt), __end)); + (8, 35) + } + pub(crate) fn __reduce60< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // Extension = "extension", Ident, "{", ImplicitInterface, List, List, "}" => ActionFn(175); + assert!(__symbols.len() >= 7); + let __sym6 = __pop_Variant0(__symbols); + let __sym5 = __pop_Variant33(__symbols); + let __sym4 = __pop_Variant30(__symbols); + let __sym3 = __pop_Variant27(__symbols); + let __sym2 = __pop_Variant0(__symbols); + let __sym1 = __pop_Variant26(__symbols); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym6.2.clone(); + let __nt = super::__action175::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6); + __symbols.push((__start, __Symbol::Variant9(__nt), __end)); + (7, 35) + } + pub(crate) fn __reduce61< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // ExtensionInterface = "interface", Ident, "{", Version, Events, Methods, "}" => ActionFn(176); + assert!(__symbols.len() >= 7); + let __sym6 = __pop_Variant0(__symbols); + let __sym5 = __pop_Variant24(__symbols); + let __sym4 = __pop_Variant24(__symbols); + let __sym3 = __pop_Variant38(__symbols); + let __sym2 = __pop_Variant0(__symbols); + let __sym1 = __pop_Variant26(__symbols); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym6.2.clone(); + let __nt = super::__action176::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6); + __symbols.push((__start, __Symbol::Variant11(__nt), __end)); + (7, 36) + } + pub(crate) fn __reduce62< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // ExtensionInterface = "interface", Ident, "{", Events, Methods, "}" => ActionFn(177); + assert!(__symbols.len() >= 6); + let __sym5 = __pop_Variant0(__symbols); + let __sym4 = __pop_Variant24(__symbols); + let __sym3 = __pop_Variant24(__symbols); + let __sym2 = __pop_Variant0(__symbols); + let __sym1 = __pop_Variant26(__symbols); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym5.2.clone(); + let __nt = super::__action177::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5); + __symbols.push((__start, __Symbol::Variant11(__nt), __end)); + (6, 36) + } + pub(crate) fn __reduce63< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // ExtensionInterface = "interface", Ident, "{", Version, Events, "}" => ActionFn(178); + assert!(__symbols.len() >= 6); + let __sym5 = __pop_Variant0(__symbols); + let __sym4 = __pop_Variant24(__symbols); + let __sym3 = __pop_Variant38(__symbols); + let __sym2 = __pop_Variant0(__symbols); + let __sym1 = __pop_Variant26(__symbols); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym5.2.clone(); + let __nt = super::__action178::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5); + __symbols.push((__start, __Symbol::Variant11(__nt), __end)); + (6, 36) + } + pub(crate) fn __reduce64< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // ExtensionInterface = "interface", Ident, "{", Events, "}" => ActionFn(179); + assert!(__symbols.len() >= 5); + let __sym4 = __pop_Variant0(__symbols); + let __sym3 = __pop_Variant24(__symbols); + let __sym2 = __pop_Variant0(__symbols); + let __sym1 = __pop_Variant26(__symbols); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym4.2.clone(); + let __nt = super::__action179::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4); + __symbols.push((__start, __Symbol::Variant11(__nt), __end)); + (5, 36) + } + pub(crate) fn __reduce65< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // ExtensionInterface = "interface", Ident, "{", Version, Methods, "}" => ActionFn(180); + assert!(__symbols.len() >= 6); + let __sym5 = __pop_Variant0(__symbols); + let __sym4 = __pop_Variant24(__symbols); + let __sym3 = __pop_Variant38(__symbols); + let __sym2 = __pop_Variant0(__symbols); + let __sym1 = __pop_Variant26(__symbols); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym5.2.clone(); + let __nt = super::__action180::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5); + __symbols.push((__start, __Symbol::Variant11(__nt), __end)); + (6, 36) + } + pub(crate) fn __reduce66< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // ExtensionInterface = "interface", Ident, "{", Methods, "}" => ActionFn(181); + assert!(__symbols.len() >= 5); + let __sym4 = __pop_Variant0(__symbols); + let __sym3 = __pop_Variant24(__symbols); + let __sym2 = __pop_Variant0(__symbols); + let __sym1 = __pop_Variant26(__symbols); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym4.2.clone(); + let __nt = super::__action181::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4); + __symbols.push((__start, __Symbol::Variant11(__nt), __end)); + (5, 36) + } + pub(crate) fn __reduce67< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // ExtensionInterface = "interface", Ident, "{", Version, "}" => ActionFn(182); + assert!(__symbols.len() >= 5); + let __sym4 = __pop_Variant0(__symbols); + let __sym3 = __pop_Variant38(__symbols); + let __sym2 = __pop_Variant0(__symbols); + let __sym1 = __pop_Variant26(__symbols); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym4.2.clone(); + let __nt = super::__action182::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4); + __symbols.push((__start, __Symbol::Variant11(__nt), __end)); + (5, 36) + } + pub(crate) fn __reduce68< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // ExtensionInterface = "interface", Ident, "{", "}" => ActionFn(183); + assert!(__symbols.len() >= 4); + let __sym3 = __pop_Variant0(__symbols); + let __sym2 = __pop_Variant0(__symbols); + let __sym1 = __pop_Variant26(__symbols); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym3.2.clone(); + let __nt = super::__action183::<>(input, __sym0, __sym1, __sym2, __sym3); + __symbols.push((__start, __Symbol::Variant11(__nt), __end)); + (4, 36) + } + pub(crate) fn __reduce69< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // Func = Ident, "(", Comma, ")", "->", Type => ActionFn(115); + assert!(__symbols.len() >= 6); + let __sym5 = __pop_Variant1(__symbols); + let __sym4 = __pop_Variant0(__symbols); + let __sym3 = __pop_Variant0(__symbols); + let __sym2 = __pop_Variant22(__symbols); + let __sym1 = __pop_Variant0(__symbols); + let __sym0 = __pop_Variant26(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym5.2.clone(); + let __nt = super::__action115::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5); + __symbols.push((__start, __Symbol::Variant13(__nt), __end)); + (6, 37) + } + pub(crate) fn __reduce70< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // Func = Ident, "(", Comma, ")" => ActionFn(116); + assert!(__symbols.len() >= 4); + let __sym3 = __pop_Variant0(__symbols); + let __sym2 = __pop_Variant22(__symbols); + let __sym1 = __pop_Variant0(__symbols); + let __sym0 = __pop_Variant26(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym3.2.clone(); + let __nt = super::__action116::<>(input, __sym0, __sym1, __sym2, __sym3); + __symbols.push((__start, __Symbol::Variant13(__nt), __end)); + (4, 37) + } + pub(crate) fn __reduce71< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // Ident = r#"[a-zA-Z][a-zA-Z0-9_]*"# => ActionFn(51); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action51::<>(input, __sym0); + __symbols.push((__start, __Symbol::Variant26(__nt), __end)); + (1, 38) + } + pub(crate) fn __reduce72< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // ImplicitInterface = "interface", "{", Events, Methods, "}" => ActionFn(166); + assert!(__symbols.len() >= 5); + let __sym4 = __pop_Variant0(__symbols); + let __sym3 = __pop_Variant24(__symbols); + let __sym2 = __pop_Variant24(__symbols); + let __sym1 = __pop_Variant0(__symbols); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym4.2.clone(); + let __nt = super::__action166::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4); + __symbols.push((__start, __Symbol::Variant27(__nt), __end)); + (5, 39) + } + pub(crate) fn __reduce73< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // ImplicitInterface = "interface", "{", Events, "}" => ActionFn(167); + assert!(__symbols.len() >= 4); + let __sym3 = __pop_Variant0(__symbols); + let __sym2 = __pop_Variant24(__symbols); + let __sym1 = __pop_Variant0(__symbols); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym3.2.clone(); + let __nt = super::__action167::<>(input, __sym0, __sym1, __sym2, __sym3); + __symbols.push((__start, __Symbol::Variant27(__nt), __end)); + (4, 39) + } + pub(crate) fn __reduce74< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // ImplicitInterface = "interface", "{", Methods, "}" => ActionFn(168); + assert!(__symbols.len() >= 4); + let __sym3 = __pop_Variant0(__symbols); + let __sym2 = __pop_Variant24(__symbols); + let __sym1 = __pop_Variant0(__symbols); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym3.2.clone(); + let __nt = super::__action168::<>(input, __sym0, __sym1, __sym2, __sym3); + __symbols.push((__start, __Symbol::Variant27(__nt), __end)); + (4, 39) + } + pub(crate) fn __reduce75< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // ImplicitInterface = "interface", "{", "}" => ActionFn(169); + assert!(__symbols.len() >= 3); + let __sym2 = __pop_Variant0(__symbols); + let __sym1 = __pop_Variant0(__symbols); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym2.2.clone(); + let __nt = super::__action169::<>(input, __sym0, __sym1, __sym2); + __symbols.push((__start, __Symbol::Variant27(__nt), __end)); + (3, 39) + } + pub(crate) fn __reduce76< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // Int = r#"(-)?[0-9]+"# => ActionFn(50); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action50::<>(input, __sym0); + __symbols.push((__start, __Symbol::Variant3(__nt), __end)); + (1, 40) + } + pub(crate) fn __reduce77< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // IntType = "u8" => ActionFn(23); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action23::<>(input, __sym0); + __symbols.push((__start, __Symbol::Variant28(__nt), __end)); + (1, 41) + } + pub(crate) fn __reduce78< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // IntType = "u16" => ActionFn(24); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action24::<>(input, __sym0); + __symbols.push((__start, __Symbol::Variant28(__nt), __end)); + (1, 41) + } + pub(crate) fn __reduce79< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // IntType = "u32" => ActionFn(25); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action25::<>(input, __sym0); + __symbols.push((__start, __Symbol::Variant28(__nt), __end)); + (1, 41) + } + pub(crate) fn __reduce80< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // IntType = "u64" => ActionFn(26); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action26::<>(input, __sym0); + __symbols.push((__start, __Symbol::Variant28(__nt), __end)); + (1, 41) + } + pub(crate) fn __reduce81< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // IntType = "u128" => ActionFn(27); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action27::<>(input, __sym0); + __symbols.push((__start, __Symbol::Variant28(__nt), __end)); + (1, 41) + } + pub(crate) fn __reduce82< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // IntType = "vu8" => ActionFn(28); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action28::<>(input, __sym0); + __symbols.push((__start, __Symbol::Variant28(__nt), __end)); + (1, 41) + } + pub(crate) fn __reduce83< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // IntType = "vu16" => ActionFn(29); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action29::<>(input, __sym0); + __symbols.push((__start, __Symbol::Variant28(__nt), __end)); + (1, 41) + } + pub(crate) fn __reduce84< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // IntType = "vu32" => ActionFn(30); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action30::<>(input, __sym0); + __symbols.push((__start, __Symbol::Variant28(__nt), __end)); + (1, 41) + } + pub(crate) fn __reduce85< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // IntType = "vu64" => ActionFn(31); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action31::<>(input, __sym0); + __symbols.push((__start, __Symbol::Variant28(__nt), __end)); + (1, 41) + } + pub(crate) fn __reduce86< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // IntType = "vu128" => ActionFn(32); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action32::<>(input, __sym0); + __symbols.push((__start, __Symbol::Variant28(__nt), __end)); + (1, 41) + } + pub(crate) fn __reduce87< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // IntType = "i8" => ActionFn(33); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action33::<>(input, __sym0); + __symbols.push((__start, __Symbol::Variant28(__nt), __end)); + (1, 41) + } + pub(crate) fn __reduce88< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // IntType = "i16" => ActionFn(34); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action34::<>(input, __sym0); + __symbols.push((__start, __Symbol::Variant28(__nt), __end)); + (1, 41) + } + pub(crate) fn __reduce89< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // IntType = "i32" => ActionFn(35); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action35::<>(input, __sym0); + __symbols.push((__start, __Symbol::Variant28(__nt), __end)); + (1, 41) + } + pub(crate) fn __reduce90< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // IntType = "i64" => ActionFn(36); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action36::<>(input, __sym0); + __symbols.push((__start, __Symbol::Variant28(__nt), __end)); + (1, 41) + } + pub(crate) fn __reduce91< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // IntType = "i128" => ActionFn(37); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action37::<>(input, __sym0); + __symbols.push((__start, __Symbol::Variant28(__nt), __end)); + (1, 41) + } + pub(crate) fn __reduce92< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // IntType = "vi8" => ActionFn(38); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action38::<>(input, __sym0); + __symbols.push((__start, __Symbol::Variant28(__nt), __end)); + (1, 41) + } + pub(crate) fn __reduce93< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // IntType = "vi16" => ActionFn(39); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action39::<>(input, __sym0); + __symbols.push((__start, __Symbol::Variant28(__nt), __end)); + (1, 41) + } + pub(crate) fn __reduce94< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // IntType = "vi32" => ActionFn(40); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action40::<>(input, __sym0); + __symbols.push((__start, __Symbol::Variant28(__nt), __end)); + (1, 41) + } + pub(crate) fn __reduce95< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // IntType = "vi64" => ActionFn(41); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action41::<>(input, __sym0); + __symbols.push((__start, __Symbol::Variant28(__nt), __end)); + (1, 41) + } + pub(crate) fn __reduce96< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // IntType = "vi128" => ActionFn(42); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action42::<>(input, __sym0); + __symbols.push((__start, __Symbol::Variant28(__nt), __end)); + (1, 41) + } + pub(crate) fn __reduce97< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // Interface = "interface", Ident, "{", Version, Events, Methods, "}" => ActionFn(184); + assert!(__symbols.len() >= 7); + let __sym6 = __pop_Variant0(__symbols); + let __sym5 = __pop_Variant24(__symbols); + let __sym4 = __pop_Variant24(__symbols); + let __sym3 = __pop_Variant38(__symbols); + let __sym2 = __pop_Variant0(__symbols); + let __sym1 = __pop_Variant26(__symbols); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym6.2.clone(); + let __nt = super::__action184::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6); + __symbols.push((__start, __Symbol::Variant15(__nt), __end)); + (7, 42) + } + pub(crate) fn __reduce98< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // Interface = "interface", Ident, "{", Events, Methods, "}" => ActionFn(185); + assert!(__symbols.len() >= 6); + let __sym5 = __pop_Variant0(__symbols); + let __sym4 = __pop_Variant24(__symbols); + let __sym3 = __pop_Variant24(__symbols); + let __sym2 = __pop_Variant0(__symbols); + let __sym1 = __pop_Variant26(__symbols); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym5.2.clone(); + let __nt = super::__action185::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5); + __symbols.push((__start, __Symbol::Variant15(__nt), __end)); + (6, 42) + } + pub(crate) fn __reduce99< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // Interface = "interface", Ident, "{", Version, Events, "}" => ActionFn(186); + assert!(__symbols.len() >= 6); + let __sym5 = __pop_Variant0(__symbols); + let __sym4 = __pop_Variant24(__symbols); + let __sym3 = __pop_Variant38(__symbols); + let __sym2 = __pop_Variant0(__symbols); + let __sym1 = __pop_Variant26(__symbols); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym5.2.clone(); + let __nt = super::__action186::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5); + __symbols.push((__start, __Symbol::Variant15(__nt), __end)); + (6, 42) + } + pub(crate) fn __reduce100< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // Interface = "interface", Ident, "{", Events, "}" => ActionFn(187); + assert!(__symbols.len() >= 5); + let __sym4 = __pop_Variant0(__symbols); + let __sym3 = __pop_Variant24(__symbols); + let __sym2 = __pop_Variant0(__symbols); + let __sym1 = __pop_Variant26(__symbols); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym4.2.clone(); + let __nt = super::__action187::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4); + __symbols.push((__start, __Symbol::Variant15(__nt), __end)); + (5, 42) + } + pub(crate) fn __reduce101< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // Interface = "interface", Ident, "{", Version, Methods, "}" => ActionFn(188); + assert!(__symbols.len() >= 6); + let __sym5 = __pop_Variant0(__symbols); + let __sym4 = __pop_Variant24(__symbols); + let __sym3 = __pop_Variant38(__symbols); + let __sym2 = __pop_Variant0(__symbols); + let __sym1 = __pop_Variant26(__symbols); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym5.2.clone(); + let __nt = super::__action188::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5); + __symbols.push((__start, __Symbol::Variant15(__nt), __end)); + (6, 42) + } + pub(crate) fn __reduce102< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // Interface = "interface", Ident, "{", Methods, "}" => ActionFn(189); + assert!(__symbols.len() >= 5); + let __sym4 = __pop_Variant0(__symbols); + let __sym3 = __pop_Variant24(__symbols); + let __sym2 = __pop_Variant0(__symbols); + let __sym1 = __pop_Variant26(__symbols); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym4.2.clone(); + let __nt = super::__action189::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4); + __symbols.push((__start, __Symbol::Variant15(__nt), __end)); + (5, 42) + } + pub(crate) fn __reduce103< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // Interface = "interface", Ident, "{", Version, "}" => ActionFn(190); + assert!(__symbols.len() >= 5); + let __sym4 = __pop_Variant0(__symbols); + let __sym3 = __pop_Variant38(__symbols); + let __sym2 = __pop_Variant0(__symbols); + let __sym1 = __pop_Variant26(__symbols); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym4.2.clone(); + let __nt = super::__action190::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4); + __symbols.push((__start, __Symbol::Variant15(__nt), __end)); + (5, 42) + } + pub(crate) fn __reduce104< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // Interface = "interface", Ident, "{", "}" => ActionFn(191); + assert!(__symbols.len() >= 4); + let __sym3 = __pop_Variant0(__symbols); + let __sym2 = __pop_Variant0(__symbols); + let __sym1 = __pop_Variant26(__symbols); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym3.2.clone(); + let __nt = super::__action191::<>(input, __sym0, __sym1, __sym2, __sym3); + __symbols.push((__start, __Symbol::Variant15(__nt), __end)); + (4, 42) + } + pub(crate) fn __reduce105< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // List = => ActionFn(126); + let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default(); + let __end = __start.clone(); + let __nt = super::__action126::<>(input, &__start, &__end); + __symbols.push((__start, __Symbol::Variant23(__nt), __end)); + (0, 43) + } + pub(crate) fn __reduce106< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // List = ()+ => ActionFn(127); + let __sym0 = __pop_Variant8(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action127::<>(input, __sym0); + __symbols.push((__start, __Symbol::Variant23(__nt), __end)); + (1, 43) + } + pub(crate) fn __reduce107< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // List = => ActionFn(130); + let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default(); + let __end = __start.clone(); + let __nt = super::__action130::<>(input, &__start, &__end); + __symbols.push((__start, __Symbol::Variant29(__nt), __end)); + (0, 44) + } + pub(crate) fn __reduce108< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // List = ()+ => ActionFn(131); + let __sym0 = __pop_Variant10(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action131::<>(input, __sym0); + __symbols.push((__start, __Symbol::Variant29(__nt), __end)); + (1, 44) + } + pub(crate) fn __reduce109< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // List = => ActionFn(134); + let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default(); + let __end = __start.clone(); + let __nt = super::__action134::<>(input, &__start, &__end); + __symbols.push((__start, __Symbol::Variant30(__nt), __end)); + (0, 45) + } + pub(crate) fn __reduce110< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // List = ()+ => ActionFn(135); + let __sym0 = __pop_Variant12(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action135::<>(input, __sym0); + __symbols.push((__start, __Symbol::Variant30(__nt), __end)); + (1, 45) + } + pub(crate) fn __reduce111< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // List = => ActionFn(138); + let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default(); + let __end = __start.clone(); + let __nt = super::__action138::<>(input, &__start, &__end); + __symbols.push((__start, __Symbol::Variant24(__nt), __end)); + (0, 46) + } + pub(crate) fn __reduce112< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // List = ()+ => ActionFn(139); + let __sym0 = __pop_Variant14(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action139::<>(input, __sym0); + __symbols.push((__start, __Symbol::Variant24(__nt), __end)); + (1, 46) + } + pub(crate) fn __reduce113< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // List = => ActionFn(142); + let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default(); + let __end = __start.clone(); + let __nt = super::__action142::<>(input, &__start, &__end); + __symbols.push((__start, __Symbol::Variant31(__nt), __end)); + (0, 47) + } + pub(crate) fn __reduce114< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // List = ()+ => ActionFn(143); + let __sym0 = __pop_Variant16(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action143::<>(input, __sym0); + __symbols.push((__start, __Symbol::Variant31(__nt), __end)); + (1, 47) + } + pub(crate) fn __reduce115< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // List = => ActionFn(146); + let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default(); + let __end = __start.clone(); + let __nt = super::__action146::<>(input, &__start, &__end); + __symbols.push((__start, __Symbol::Variant32(__nt), __end)); + (0, 48) + } + pub(crate) fn __reduce116< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // List = ()+ => ActionFn(147); + let __sym0 = __pop_Variant18(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action147::<>(input, __sym0); + __symbols.push((__start, __Symbol::Variant32(__nt), __end)); + (1, 48) + } + pub(crate) fn __reduce117< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // List = => ActionFn(150); + let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default(); + let __end = __start.clone(); + let __nt = super::__action150::<>(input, &__start, &__end); + __symbols.push((__start, __Symbol::Variant33(__nt), __end)); + (0, 49) + } + pub(crate) fn __reduce118< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // List = ()+ => ActionFn(151); + let __sym0 = __pop_Variant20(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action151::<>(input, __sym0); + __symbols.push((__start, __Symbol::Variant33(__nt), __end)); + (1, 49) + } + pub(crate) fn __reduce119< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // Methods = "methods", "{", List, "}" => ActionFn(8); + assert!(__symbols.len() >= 4); + let __sym3 = __pop_Variant0(__symbols); + let __sym2 = __pop_Variant24(__symbols); + let __sym1 = __pop_Variant0(__symbols); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym3.2.clone(); + let __nt = super::__action8::<>(input, __sym0, __sym1, __sym2, __sym3); + __symbols.push((__start, __Symbol::Variant24(__nt), __end)); + (4, 50) + } + pub(crate) fn __reduce120< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // Methods? = Methods => ActionFn(62); + let __sym0 = __pop_Variant24(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action62::<>(input, __sym0); + __symbols.push((__start, __Symbol::Variant25(__nt), __end)); + (1, 51) + } + pub(crate) fn __reduce121< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // Methods? = => ActionFn(63); + let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default(); + let __end = __start.clone(); + let __nt = super::__action63::<>(input, &__start, &__end); + __symbols.push((__start, __Symbol::Variant25(__nt), __end)); + (0, 51) + } + pub(crate) fn __reduce122< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // Namespace = "namespace", Ident, List, List, List => ActionFn(1); + assert!(__symbols.len() >= 5); + let __sym4 = __pop_Variant29(__symbols); + let __sym3 = __pop_Variant33(__symbols); + let __sym2 = __pop_Variant31(__symbols); + let __sym1 = __pop_Variant26(__symbols); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym4.2.clone(); + let __nt = super::__action1::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4); + __symbols.push((__start, __Symbol::Variant34(__nt), __end)); + (5, 52) + } + pub(crate) fn __reduce123< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // Num = Int => ActionFn(49); + let __sym0 = __pop_Variant3(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action49::<>(input, __sym0); + __symbols.push((__start, __Symbol::Variant35(__nt), __end)); + (1, 53) + } + pub(crate) fn __reduce124< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // PrimType = "string" => ActionFn(15); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action15::<>(input, __sym0); + __symbols.push((__start, __Symbol::Variant36(__nt), __end)); + (1, 54) + } + pub(crate) fn __reduce125< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // PrimType = "object" => ActionFn(16); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action16::<>(input, __sym0); + __symbols.push((__start, __Symbol::Variant36(__nt), __end)); + (1, 54) + } + pub(crate) fn __reduce126< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // PrimType = "uuid" => ActionFn(17); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action17::<>(input, __sym0); + __symbols.push((__start, __Symbol::Variant36(__nt), __end)); + (1, 54) + } + pub(crate) fn __reduce127< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // PrimType = "bytes" => ActionFn(18); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action18::<>(input, __sym0); + __symbols.push((__start, __Symbol::Variant36(__nt), __end)); + (1, 54) + } + pub(crate) fn __reduce128< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // PrimType = "bool" => ActionFn(19); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action19::<>(input, __sym0); + __symbols.push((__start, __Symbol::Variant36(__nt), __end)); + (1, 54) + } + pub(crate) fn __reduce129< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // PrimType = "matrix4x4" => ActionFn(20); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action20::<>(input, __sym0); + __symbols.push((__start, __Symbol::Variant36(__nt), __end)); + (1, 54) + } + pub(crate) fn __reduce130< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // PrimType = "f32" => ActionFn(21); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action21::<>(input, __sym0); + __symbols.push((__start, __Symbol::Variant36(__nt), __end)); + (1, 54) + } + pub(crate) fn __reduce131< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // PrimType = "f64" => ActionFn(22); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action22::<>(input, __sym0); + __symbols.push((__start, __Symbol::Variant36(__nt), __end)); + (1, 54) + } + pub(crate) fn __reduce132< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // Struct = "{", List, "}" => ActionFn(45); + assert!(__symbols.len() >= 3); + let __sym2 = __pop_Variant0(__symbols); + let __sym1 = __pop_Variant32(__symbols); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym2.2.clone(); + let __nt = super::__action45::<>(input, __sym0, __sym1, __sym2); + __symbols.push((__start, __Symbol::Variant37(__nt), __end)); + (3, 55) + } + pub(crate) fn __reduce133< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // StructField = Ident, ":", Type => ActionFn(46); + assert!(__symbols.len() >= 3); + let __sym2 = __pop_Variant1(__symbols); + let __sym1 = __pop_Variant0(__symbols); + let __sym0 = __pop_Variant26(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym2.2.clone(); + let __nt = super::__action46::<>(input, __sym0, __sym1, __sym2); + __symbols.push((__start, __Symbol::Variant17(__nt), __end)); + (3, 56) + } + pub(crate) fn __reduce134< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // Type = PrimType => ActionFn(11); + let __sym0 = __pop_Variant36(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action11::<>(input, __sym0); + __symbols.push((__start, __Symbol::Variant1(__nt), __end)); + (1, 57) + } + pub(crate) fn __reduce135< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // Type = Ident => ActionFn(12); + let __sym0 = __pop_Variant26(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action12::<>(input, __sym0); + __symbols.push((__start, __Symbol::Variant1(__nt), __end)); + (1, 57) + } + pub(crate) fn __reduce136< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // Type = IntType => ActionFn(13); + let __sym0 = __pop_Variant28(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action13::<>(input, __sym0); + __symbols.push((__start, __Symbol::Variant1(__nt), __end)); + (1, 57) + } + pub(crate) fn __reduce137< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // Type = "[]", Type => ActionFn(14); + assert!(__symbols.len() >= 2); + let __sym1 = __pop_Variant1(__symbols); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym1.2.clone(); + let __nt = super::__action14::<>(input, __sym0, __sym1); + __symbols.push((__start, __Symbol::Variant1(__nt), __end)); + (2, 57) + } + pub(crate) fn __reduce138< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // TypeDef = "struct", Ident, Struct => ActionFn(43); + assert!(__symbols.len() >= 3); + let __sym2 = __pop_Variant37(__symbols); + let __sym1 = __pop_Variant26(__symbols); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym2.2.clone(); + let __nt = super::__action43::<>(input, __sym0, __sym1, __sym2); + __symbols.push((__start, __Symbol::Variant19(__nt), __end)); + (3, 58) + } + pub(crate) fn __reduce139< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // TypeDef = "enum", Ident, "(", IntType, ")", Enum => ActionFn(44); + assert!(__symbols.len() >= 6); + let __sym5 = __pop_Variant23(__symbols); + let __sym4 = __pop_Variant0(__symbols); + let __sym3 = __pop_Variant28(__symbols); + let __sym2 = __pop_Variant0(__symbols); + let __sym1 = __pop_Variant26(__symbols); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym5.2.clone(); + let __nt = super::__action44::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5); + __symbols.push((__start, __Symbol::Variant19(__nt), __end)); + (6, 58) + } + pub(crate) fn __reduce140< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // Version = "version", Num, Num, Num => ActionFn(6); + assert!(__symbols.len() >= 4); + let __sym3 = __pop_Variant35(__symbols); + let __sym2 = __pop_Variant35(__symbols); + let __sym1 = __pop_Variant35(__symbols); + let __sym0 = __pop_Variant0(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym3.2.clone(); + let __nt = super::__action6::<>(input, __sym0, __sym1, __sym2, __sym3); + __symbols.push((__start, __Symbol::Variant38(__nt), __end)); + (4, 59) + } + pub(crate) fn __reduce141< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // Version? = Version => ActionFn(67); + let __sym0 = __pop_Variant38(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action67::<>(input, __sym0); + __symbols.push((__start, __Symbol::Variant39(__nt), __end)); + (1, 60) + } + pub(crate) fn __reduce142< + 'input, + >( + input: &'input str, + __lookahead_start: Option<&usize>, + __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: core::marker::PhantomData<(&'input ())>, + ) -> (usize, usize) + { + // Version? = => ActionFn(68); + let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default(); + let __end = __start.clone(); + let __nt = super::__action68::<>(input, &__start, &__end); + __symbols.push((__start, __Symbol::Variant39(__nt), __end)); + (0, 60) + } +} +pub use self::__parse__Namespace::NamespaceParser; +#[cfg_attr(rustfmt, rustfmt_skip)] +mod __intern_token { + #![allow(unused_imports)] + use crate::ast::*; + #[allow(unused_extern_crates)] + extern crate lalrpop_util as __lalrpop_util; + #[allow(unused_imports)] + use self::__lalrpop_util::state_machine as __state_machine; + extern crate core; + extern crate alloc; + pub fn new_builder() -> __lalrpop_util::lexer::MatcherBuilder { + let __strs: &[(&str, bool)] = &[ + ("^((\\-)?[0-9]+)", false), + ("^([A-Za-z][0-9A-Z_a-z]*)", false), + ("^(\\()", false), + ("^(\\))", false), + ("^(,)", false), + ("^(\\->)", false), + ("^(:)", false), + ("^(=)", false), + ("^(\\[\\])", false), + ("^(bool)", false), + ("^(bytes)", false), + ("^(enum)", false), + ("^(events)", false), + ("^(extension)", false), + ("^(f32)", false), + ("^(f64)", false), + ("^(i128)", false), + ("^(i16)", false), + ("^(i32)", false), + ("^(i64)", false), + ("^(i8)", false), + ("^(interface)", false), + ("^(matrix4x4)", false), + ("^(methods)", false), + ("^(namespace)", false), + ("^(object)", false), + ("^(string)", false), + ("^(struct)", false), + ("^(u128)", false), + ("^(u16)", false), + ("^(u32)", false), + ("^(u64)", false), + ("^(u8)", false), + ("^(uuid)", false), + ("^(version)", false), + ("^(vi128)", false), + ("^(vi16)", false), + ("^(vi32)", false), + ("^(vi64)", false), + ("^(vi8)", false), + ("^(vu128)", false), + ("^(vu16)", false), + ("^(vu32)", false), + ("^(vu64)", false), + ("^(vu8)", false), + ("^(\\{)", false), + ("^(\\})", false), + ("^(//[\u{0}-\t\u{b}-\u{c}\u{e}-\u{10ffff}]*[\n\r]*)", true), + ("^([\t-\r \u{85}\u{a0}\u{1680}\u{2000}-\u{200a}\u{2028}-\u{2029}\u{202f}\u{205f}\u{3000}]*)", true), + ]; + __lalrpop_util::lexer::MatcherBuilder::new(__strs.iter().copied()).unwrap() + } +} +pub(crate) use self::__lalrpop_util::lexer::Token; + +#[allow(unused_variables)] +fn __action0< + 'input, +>( + input: &'input str, + (_, __0, _): (usize, Namespace, usize), +) -> Namespace +{ + __0 +} + +#[allow(unused_variables)] +fn __action1< + 'input, +>( + input: &'input str, + (_, _, _): (usize, &'input str, usize), + (_, name, _): (usize, String, usize), + (_, interfaces, _): (usize, Vec, usize), + (_, types, _): (usize, Vec, usize), + (_, extensions, _): (usize, Vec, usize), +) -> Namespace +{ + Namespace{name:name, interfaces:interfaces, types:types, extensions:extensions} +} + +#[allow(unused_variables)] +fn __action2< + 'input, +>( + input: &'input str, + (_, _, _): (usize, &'input str, usize), + (_, name, _): (usize, String, usize), + (_, _, _): (usize, &'input str, usize), + (_, version, _): (usize, core::option::Option, usize), + (_, interface, _): (usize, ImplicitInterface, usize), + (_, interfaces, _): (usize, Vec, usize), + (_, types, _): (usize, Vec, usize), + (_, _, _): (usize, &'input str, usize), +) -> Extension +{ + Extension{name, version: version.unwrap_or_default(), interface, interfaces, types} +} + +#[allow(unused_variables)] +fn __action3< + 'input, +>( + input: &'input str, + (_, _, _): (usize, &'input str, usize), + (_, name, _): (usize, String, usize), + (_, _, _): (usize, &'input str, usize), + (_, v, _): (usize, core::option::Option, usize), + (_, e, _): (usize, core::option::Option>, usize), + (_, m, _): (usize, core::option::Option>, usize), + (_, _, _): (usize, &'input str, usize), +) -> Interface +{ + Interface { name, version: v.unwrap_or_default(), events: e.unwrap_or_default(), methods: m.unwrap_or_default() } +} + +#[allow(unused_variables)] +fn __action4< + 'input, +>( + input: &'input str, + (_, _, _): (usize, &'input str, usize), + (_, name, _): (usize, String, usize), + (_, _, _): (usize, &'input str, usize), + (_, version, _): (usize, core::option::Option, usize), + (_, e, _): (usize, core::option::Option>, usize), + (_, m, _): (usize, core::option::Option>, usize), + (_, _, _): (usize, &'input str, usize), +) -> ExtensionInterface +{ + ExtensionInterface { name, version, events: e.unwrap_or_default(), methods: m.unwrap_or_default() } +} + +#[allow(unused_variables)] +fn __action5< + 'input, +>( + input: &'input str, + (_, _, _): (usize, &'input str, usize), + (_, _, _): (usize, &'input str, usize), + (_, e, _): (usize, core::option::Option>, usize), + (_, m, _): (usize, core::option::Option>, usize), + (_, _, _): (usize, &'input str, usize), +) -> ImplicitInterface +{ + ImplicitInterface { events: e.unwrap_or_default(), methods: m.unwrap_or_default() } +} + +#[allow(unused_variables)] +fn __action6< + 'input, +>( + input: &'input str, + (_, _, _): (usize, &'input str, usize), + (_, __0, _): (usize, u8, usize), + (_, __1, _): (usize, u8, usize), + (_, __2, _): (usize, u8, usize), +) -> Version +{ + (__0, __1, __2) +} + +#[allow(unused_variables)] +fn __action7< + 'input, +>( + input: &'input str, + (_, _, _): (usize, &'input str, usize), + (_, _, _): (usize, &'input str, usize), + (_, __0, _): (usize, Vec, usize), + (_, _, _): (usize, &'input str, usize), +) -> Vec +{ + __0 +} + +#[allow(unused_variables)] +fn __action8< + 'input, +>( + input: &'input str, + (_, _, _): (usize, &'input str, usize), + (_, _, _): (usize, &'input str, usize), + (_, __0, _): (usize, Vec, usize), + (_, _, _): (usize, &'input str, usize), +) -> Vec +{ + __0 +} + +#[allow(unused_variables)] +fn __action9< + 'input, +>( + input: &'input str, + (_, name, _): (usize, String, usize), + (_, _, _): (usize, &'input str, usize), + (_, args, _): (usize, Vec, usize), + (_, _, _): (usize, &'input str, usize), + (_, ret, _): (usize, core::option::Option, usize), +) -> Func +{ + Func{name:name, args:args, ret:ret} +} + +#[allow(unused_variables)] +fn __action10< + 'input, +>( + input: &'input str, + (_, name, _): (usize, String, usize), + (_, _, _): (usize, &'input str, usize), + (_, ty, _): (usize, Type, usize), +) -> Arg +{ + Arg{name:name, ty:ty} +} + +#[allow(unused_variables)] +fn __action11< + 'input, +>( + input: &'input str, + (_, __0, _): (usize, PrimType, usize), +) -> Type +{ + Type::Primitive(__0) +} + +#[allow(unused_variables)] +fn __action12< + 'input, +>( + input: &'input str, + (_, __0, _): (usize, String, usize), +) -> Type +{ + Type::Custom(__0) +} + +#[allow(unused_variables)] +fn __action13< + 'input, +>( + input: &'input str, + (_, __0, _): (usize, IntType, usize), +) -> Type +{ + Type::IntType(__0) +} + +#[allow(unused_variables)] +fn __action14< + 'input, +>( + input: &'input str, + (_, _, _): (usize, &'input str, usize), + (_, __0, _): (usize, Type, usize), +) -> Type +{ + Type::Array(Box::new(__0)) +} + +#[allow(unused_variables)] +fn __action15< + 'input, +>( + input: &'input str, + (_, __0, _): (usize, &'input str, usize), +) -> PrimType +{ + PrimType::String +} + +#[allow(unused_variables)] +fn __action16< + 'input, +>( + input: &'input str, + (_, __0, _): (usize, &'input str, usize), +) -> PrimType +{ + PrimType::Object +} + +#[allow(unused_variables)] +fn __action17< + 'input, +>( + input: &'input str, + (_, __0, _): (usize, &'input str, usize), +) -> PrimType +{ + PrimType::Uuid +} + +#[allow(unused_variables)] +fn __action18< + 'input, +>( + input: &'input str, + (_, __0, _): (usize, &'input str, usize), +) -> PrimType +{ + PrimType::Bytes +} + +#[allow(unused_variables)] +fn __action19< + 'input, +>( + input: &'input str, + (_, __0, _): (usize, &'input str, usize), +) -> PrimType +{ + PrimType::Bool +} + +#[allow(unused_variables)] +fn __action20< + 'input, +>( + input: &'input str, + (_, __0, _): (usize, &'input str, usize), +) -> PrimType +{ + PrimType::Matrix4x4 +} + +#[allow(unused_variables)] +fn __action21< + 'input, +>( + input: &'input str, + (_, __0, _): (usize, &'input str, usize), +) -> PrimType +{ + PrimType::F32 +} + +#[allow(unused_variables)] +fn __action22< + 'input, +>( + input: &'input str, + (_, __0, _): (usize, &'input str, usize), +) -> PrimType +{ + PrimType::F64 +} + +#[allow(unused_variables)] +fn __action23< + 'input, +>( + input: &'input str, + (_, __0, _): (usize, &'input str, usize), +) -> IntType +{ + IntType::U8 +} + +#[allow(unused_variables)] +fn __action24< + 'input, +>( + input: &'input str, + (_, __0, _): (usize, &'input str, usize), +) -> IntType +{ + IntType::U16 +} + +#[allow(unused_variables)] +fn __action25< + 'input, +>( + input: &'input str, + (_, __0, _): (usize, &'input str, usize), +) -> IntType +{ + IntType::U32 +} + +#[allow(unused_variables)] +fn __action26< + 'input, +>( + input: &'input str, + (_, __0, _): (usize, &'input str, usize), +) -> IntType +{ + IntType::U64 +} + +#[allow(unused_variables)] +fn __action27< + 'input, +>( + input: &'input str, + (_, __0, _): (usize, &'input str, usize), +) -> IntType +{ + IntType::U128 +} + +#[allow(unused_variables)] +fn __action28< + 'input, +>( + input: &'input str, + (_, __0, _): (usize, &'input str, usize), +) -> IntType +{ + IntType::VU8 +} + +#[allow(unused_variables)] +fn __action29< + 'input, +>( + input: &'input str, + (_, __0, _): (usize, &'input str, usize), +) -> IntType +{ + IntType::VU16 +} + +#[allow(unused_variables)] +fn __action30< + 'input, +>( + input: &'input str, + (_, __0, _): (usize, &'input str, usize), +) -> IntType +{ + IntType::VU32 +} + +#[allow(unused_variables)] +fn __action31< + 'input, +>( + input: &'input str, + (_, __0, _): (usize, &'input str, usize), +) -> IntType +{ + IntType::VU64 +} + +#[allow(unused_variables)] +fn __action32< + 'input, +>( + input: &'input str, + (_, __0, _): (usize, &'input str, usize), +) -> IntType +{ + IntType::VU128 +} + +#[allow(unused_variables)] +fn __action33< + 'input, +>( + input: &'input str, + (_, __0, _): (usize, &'input str, usize), +) -> IntType +{ + IntType::I8 +} + +#[allow(unused_variables)] +fn __action34< + 'input, +>( + input: &'input str, + (_, __0, _): (usize, &'input str, usize), +) -> IntType +{ + IntType::I16 +} + +#[allow(unused_variables)] +fn __action35< + 'input, +>( + input: &'input str, + (_, __0, _): (usize, &'input str, usize), +) -> IntType +{ + IntType::I32 +} + +#[allow(unused_variables)] +fn __action36< + 'input, +>( + input: &'input str, + (_, __0, _): (usize, &'input str, usize), +) -> IntType +{ + IntType::I64 +} + +#[allow(unused_variables)] +fn __action37< + 'input, +>( + input: &'input str, + (_, __0, _): (usize, &'input str, usize), +) -> IntType +{ + IntType::I128 +} + +#[allow(unused_variables)] +fn __action38< + 'input, +>( + input: &'input str, + (_, __0, _): (usize, &'input str, usize), +) -> IntType +{ + IntType::VI8 +} + +#[allow(unused_variables)] +fn __action39< + 'input, +>( + input: &'input str, + (_, __0, _): (usize, &'input str, usize), +) -> IntType +{ + IntType::VI16 +} + +#[allow(unused_variables)] +fn __action40< + 'input, +>( + input: &'input str, + (_, __0, _): (usize, &'input str, usize), +) -> IntType +{ + IntType::VI32 +} + +#[allow(unused_variables)] +fn __action41< + 'input, +>( + input: &'input str, + (_, __0, _): (usize, &'input str, usize), +) -> IntType +{ + IntType::VI64 +} + +#[allow(unused_variables)] +fn __action42< + 'input, +>( + input: &'input str, + (_, __0, _): (usize, &'input str, usize), +) -> IntType +{ + IntType::VI128 +} + +#[allow(unused_variables)] +fn __action43< + 'input, +>( + input: &'input str, + (_, _, _): (usize, &'input str, usize), + (_, name, _): (usize, String, usize), + (_, s, _): (usize, Struct, usize), +) -> TypeDef +{ + TypeDef{name, kind: TypeKind::Struct(s)} +} + +#[allow(unused_variables)] +fn __action44< + 'input, +>( + input: &'input str, + (_, _, _): (usize, &'input str, usize), + (_, name, _): (usize, String, usize), + (_, _, _): (usize, &'input str, usize), + (_, backing, _): (usize, IntType, usize), + (_, _, _): (usize, &'input str, usize), + (_, fields, _): (usize, Vec, usize), +) -> TypeDef +{ + TypeDef{name, kind: TypeKind::Enum(Enum{fields, backing})} +} + +#[allow(unused_variables)] +fn __action45< + 'input, +>( + input: &'input str, + (_, _, _): (usize, &'input str, usize), + (_, fields, _): (usize, Vec, usize), + (_, _, _): (usize, &'input str, usize), +) -> Struct +{ + Struct{fields:fields} +} + +#[allow(unused_variables)] +fn __action46< + 'input, +>( + input: &'input str, + (_, name, _): (usize, String, usize), + (_, _, _): (usize, &'input str, usize), + (_, ty, _): (usize, Type, usize), +) -> StructField +{ + StructField{name:name, ty:ty} +} + +#[allow(unused_variables)] +fn __action47< + 'input, +>( + input: &'input str, + (_, _, _): (usize, &'input str, usize), + (_, __0, _): (usize, Vec, usize), + (_, _, _): (usize, &'input str, usize), +) -> Vec +{ + __0 +} + +#[allow(unused_variables)] +fn __action48< + 'input, +>( + input: &'input str, + (_, name, _): (usize, String, usize), + (_, value, _): (usize, core::option::Option, usize), +) -> EnumField +{ + EnumField{name:name, value:value} +} + +#[allow(unused_variables)] +fn __action49< + 'input, +>( + input: &'input str, + (_, __0, _): (usize, i64, usize), +) -> u8 +{ + __0.try_into().unwrap() +} + +#[allow(unused_variables)] +fn __action50< + 'input, +>( + input: &'input str, + (_, __0, _): (usize, &'input str, usize), +) -> i64 +{ + __0.parse().unwrap() +} + +#[allow(unused_variables)] +fn __action51< + 'input, +>( + input: &'input str, + (_, __0, _): (usize, &'input str, usize), +) -> String +{ + __0.to_owned() +} + +#[allow(unused_variables)] +fn __action52< + 'input, +>( + input: &'input str, + (_, __0, _): (usize, i64, usize), +) -> core::option::Option +{ + Some(__0) +} + +#[allow(unused_variables)] +fn __action53< + 'input, +>( + input: &'input str, + __lookbehind: &usize, + __lookahead: &usize, +) -> core::option::Option +{ + None +} + +#[allow(unused_variables)] +fn __action54< + 'input, +>( + input: &'input str, + (_, _, _): (usize, &'input str, usize), + (_, __0, _): (usize, i64, usize), +) -> i64 +{ + __0 +} + +#[allow(unused_variables)] +fn __action55< + 'input, +>( + input: &'input str, + (_, v, _): (usize, alloc::vec::Vec, usize), +) -> Vec +{ + v +} + +#[allow(unused_variables)] +fn __action56< + 'input, +>( + input: &'input str, + (_, v, _): (usize, alloc::vec::Vec, usize), +) -> Vec +{ + v +} + +#[allow(unused_variables)] +fn __action57< + 'input, +>( + input: &'input str, + (_, __0, _): (usize, Type, usize), +) -> core::option::Option +{ + Some(__0) +} + +#[allow(unused_variables)] +fn __action58< + 'input, +>( + input: &'input str, + __lookbehind: &usize, + __lookahead: &usize, +) -> core::option::Option +{ + None +} + +#[allow(unused_variables)] +fn __action59< + 'input, +>( + input: &'input str, + (_, _, _): (usize, &'input str, usize), + (_, __0, _): (usize, Type, usize), +) -> Type +{ + __0 +} + +#[allow(unused_variables)] +fn __action60< + 'input, +>( + input: &'input str, + (_, v, _): (usize, alloc::vec::Vec, usize), + (_, e, _): (usize, core::option::Option, usize), +) -> Vec +{ + match e { + None=> v, + Some(e) => { + let mut v = v; + v.push(e); + v + } + } +} + +#[allow(unused_variables)] +fn __action61< + 'input, +>( + input: &'input str, + (_, v, _): (usize, alloc::vec::Vec, usize), +) -> Vec +{ + v +} + +#[allow(unused_variables)] +fn __action62< + 'input, +>( + input: &'input str, + (_, __0, _): (usize, Vec, usize), +) -> core::option::Option> +{ + Some(__0) +} + +#[allow(unused_variables)] +fn __action63< + 'input, +>( + input: &'input str, + __lookbehind: &usize, + __lookahead: &usize, +) -> core::option::Option> +{ + None +} + +#[allow(unused_variables)] +fn __action64< + 'input, +>( + input: &'input str, + (_, __0, _): (usize, Vec, usize), +) -> core::option::Option> +{ + Some(__0) +} + +#[allow(unused_variables)] +fn __action65< + 'input, +>( + input: &'input str, + __lookbehind: &usize, + __lookahead: &usize, +) -> core::option::Option> +{ + None +} + +#[allow(unused_variables)] +fn __action66< + 'input, +>( + input: &'input str, + (_, v, _): (usize, alloc::vec::Vec, usize), +) -> Vec +{ + v +} + +#[allow(unused_variables)] +fn __action67< + 'input, +>( + input: &'input str, + (_, __0, _): (usize, Version, usize), +) -> core::option::Option +{ + Some(__0) +} + +#[allow(unused_variables)] +fn __action68< + 'input, +>( + input: &'input str, + __lookbehind: &usize, + __lookahead: &usize, +) -> core::option::Option +{ + None +} + +#[allow(unused_variables)] +fn __action69< + 'input, +>( + input: &'input str, + (_, v, _): (usize, alloc::vec::Vec, usize), +) -> Vec +{ + v +} + +#[allow(unused_variables)] +fn __action70< + 'input, +>( + input: &'input str, + (_, v, _): (usize, alloc::vec::Vec, usize), +) -> Vec +{ + v +} + +#[allow(unused_variables)] +fn __action71< + 'input, +>( + input: &'input str, + (_, v, _): (usize, alloc::vec::Vec, usize), +) -> Vec +{ + v +} + +#[allow(unused_variables)] +fn __action72< + 'input, +>( + input: &'input str, + __lookbehind: &usize, + __lookahead: &usize, +) -> alloc::vec::Vec +{ + alloc::vec![] +} + +#[allow(unused_variables)] +fn __action73< + 'input, +>( + input: &'input str, + (_, v, _): (usize, alloc::vec::Vec, usize), +) -> alloc::vec::Vec +{ + v +} + +#[allow(unused_variables)] +fn __action74< + 'input, +>( + input: &'input str, + (_, __0, _): (usize, Interface, usize), +) -> Interface +{ + __0 +} + +#[allow(unused_variables)] +fn __action75< + 'input, +>( + input: &'input str, + __lookbehind: &usize, + __lookahead: &usize, +) -> alloc::vec::Vec +{ + alloc::vec![] +} + +#[allow(unused_variables)] +fn __action76< + 'input, +>( + input: &'input str, + (_, v, _): (usize, alloc::vec::Vec, usize), +) -> alloc::vec::Vec +{ + v +} + +#[allow(unused_variables)] +fn __action77< + 'input, +>( + input: &'input str, + (_, __0, _): (usize, TypeDef, usize), +) -> TypeDef +{ + __0 +} + +#[allow(unused_variables)] +fn __action78< + 'input, +>( + input: &'input str, + __lookbehind: &usize, + __lookahead: &usize, +) -> alloc::vec::Vec +{ + alloc::vec![] +} + +#[allow(unused_variables)] +fn __action79< + 'input, +>( + input: &'input str, + (_, v, _): (usize, alloc::vec::Vec, usize), +) -> alloc::vec::Vec +{ + v +} + +#[allow(unused_variables)] +fn __action80< + 'input, +>( + input: &'input str, + (_, __0, _): (usize, Extension, usize), +) -> Extension +{ + __0 +} + +#[allow(unused_variables)] +fn __action81< + 'input, +>( + input: &'input str, + __lookbehind: &usize, + __lookahead: &usize, +) -> alloc::vec::Vec +{ + alloc::vec![] +} + +#[allow(unused_variables)] +fn __action82< + 'input, +>( + input: &'input str, + (_, v, _): (usize, alloc::vec::Vec, usize), +) -> alloc::vec::Vec +{ + v +} + +#[allow(unused_variables)] +fn __action83< + 'input, +>( + input: &'input str, + (_, __0, _): (usize, ExtensionInterface, usize), +) -> ExtensionInterface +{ + __0 +} + +#[allow(unused_variables)] +fn __action84< + 'input, +>( + input: &'input str, + __lookbehind: &usize, + __lookahead: &usize, +) -> alloc::vec::Vec +{ + alloc::vec![] +} + +#[allow(unused_variables)] +fn __action85< + 'input, +>( + input: &'input str, + (_, v, _): (usize, alloc::vec::Vec, usize), +) -> alloc::vec::Vec +{ + v +} + +#[allow(unused_variables)] +fn __action86< + 'input, +>( + input: &'input str, + (_, __0, _): (usize, Func, usize), +) -> Func +{ + __0 +} + +#[allow(unused_variables)] +fn __action87< + 'input, +>( + input: &'input str, + (_, __0, _): (usize, Arg, usize), +) -> core::option::Option +{ + Some(__0) +} + +#[allow(unused_variables)] +fn __action88< + 'input, +>( + input: &'input str, + __lookbehind: &usize, + __lookahead: &usize, +) -> core::option::Option +{ + None +} + +#[allow(unused_variables)] +fn __action89< + 'input, +>( + input: &'input str, + __lookbehind: &usize, + __lookahead: &usize, +) -> alloc::vec::Vec +{ + alloc::vec![] +} + +#[allow(unused_variables)] +fn __action90< + 'input, +>( + input: &'input str, + (_, v, _): (usize, alloc::vec::Vec, usize), +) -> alloc::vec::Vec +{ + v +} + +#[allow(unused_variables)] +fn __action91< + 'input, +>( + input: &'input str, + (_, __0, _): (usize, Arg, usize), + (_, _, _): (usize, &'input str, usize), +) -> Arg +{ + __0 +} + +#[allow(unused_variables)] +fn __action92< + 'input, +>( + input: &'input str, + __lookbehind: &usize, + __lookahead: &usize, +) -> alloc::vec::Vec +{ + alloc::vec![] +} + +#[allow(unused_variables)] +fn __action93< + 'input, +>( + input: &'input str, + (_, v, _): (usize, alloc::vec::Vec, usize), +) -> alloc::vec::Vec +{ + v +} + +#[allow(unused_variables)] +fn __action94< + 'input, +>( + input: &'input str, + (_, __0, _): (usize, StructField, usize), +) -> StructField +{ + __0 +} + +#[allow(unused_variables)] +fn __action95< + 'input, +>( + input: &'input str, + __lookbehind: &usize, + __lookahead: &usize, +) -> alloc::vec::Vec +{ + alloc::vec![] +} + +#[allow(unused_variables)] +fn __action96< + 'input, +>( + input: &'input str, + (_, v, _): (usize, alloc::vec::Vec, usize), +) -> alloc::vec::Vec +{ + v +} + +#[allow(unused_variables)] +fn __action97< + 'input, +>( + input: &'input str, + (_, __0, _): (usize, EnumField, usize), +) -> EnumField +{ + __0 +} + +#[allow(unused_variables)] +fn __action98< + 'input, +>( + input: &'input str, + (_, __0, _): (usize, EnumField, usize), +) -> alloc::vec::Vec +{ + alloc::vec![__0] +} + +#[allow(unused_variables)] +fn __action99< + 'input, +>( + input: &'input str, + (_, v, _): (usize, alloc::vec::Vec, usize), + (_, e, _): (usize, EnumField, usize), +) -> alloc::vec::Vec +{ + { let mut v = v; v.push(e); v } +} + +#[allow(unused_variables)] +fn __action100< + 'input, +>( + input: &'input str, + (_, __0, _): (usize, StructField, usize), +) -> alloc::vec::Vec +{ + alloc::vec![__0] +} + +#[allow(unused_variables)] +fn __action101< + 'input, +>( + input: &'input str, + (_, v, _): (usize, alloc::vec::Vec, usize), + (_, e, _): (usize, StructField, usize), +) -> alloc::vec::Vec +{ + { let mut v = v; v.push(e); v } +} + +#[allow(unused_variables)] +fn __action102< + 'input, +>( + input: &'input str, + (_, __0, _): (usize, Arg, usize), +) -> alloc::vec::Vec +{ + alloc::vec![__0] +} + +#[allow(unused_variables)] +fn __action103< + 'input, +>( + input: &'input str, + (_, v, _): (usize, alloc::vec::Vec, usize), + (_, e, _): (usize, Arg, usize), +) -> alloc::vec::Vec +{ + { let mut v = v; v.push(e); v } +} + +#[allow(unused_variables)] +fn __action104< + 'input, +>( + input: &'input str, + (_, __0, _): (usize, Func, usize), +) -> alloc::vec::Vec +{ + alloc::vec![__0] +} + +#[allow(unused_variables)] +fn __action105< + 'input, +>( + input: &'input str, + (_, v, _): (usize, alloc::vec::Vec, usize), + (_, e, _): (usize, Func, usize), +) -> alloc::vec::Vec +{ + { let mut v = v; v.push(e); v } +} + +#[allow(unused_variables)] +fn __action106< + 'input, +>( + input: &'input str, + (_, __0, _): (usize, ExtensionInterface, usize), +) -> alloc::vec::Vec +{ + alloc::vec![__0] +} + +#[allow(unused_variables)] +fn __action107< + 'input, +>( + input: &'input str, + (_, v, _): (usize, alloc::vec::Vec, usize), + (_, e, _): (usize, ExtensionInterface, usize), +) -> alloc::vec::Vec +{ + { let mut v = v; v.push(e); v } +} + +#[allow(unused_variables)] +fn __action108< + 'input, +>( + input: &'input str, + (_, __0, _): (usize, Extension, usize), +) -> alloc::vec::Vec +{ + alloc::vec![__0] +} + +#[allow(unused_variables)] +fn __action109< + 'input, +>( + input: &'input str, + (_, v, _): (usize, alloc::vec::Vec, usize), + (_, e, _): (usize, Extension, usize), +) -> alloc::vec::Vec +{ + { let mut v = v; v.push(e); v } +} + +#[allow(unused_variables)] +fn __action110< + 'input, +>( + input: &'input str, + (_, __0, _): (usize, TypeDef, usize), +) -> alloc::vec::Vec +{ + alloc::vec![__0] +} + +#[allow(unused_variables)] +fn __action111< + 'input, +>( + input: &'input str, + (_, v, _): (usize, alloc::vec::Vec, usize), + (_, e, _): (usize, TypeDef, usize), +) -> alloc::vec::Vec +{ + { let mut v = v; v.push(e); v } +} + +#[allow(unused_variables)] +fn __action112< + 'input, +>( + input: &'input str, + (_, __0, _): (usize, Interface, usize), +) -> alloc::vec::Vec +{ + alloc::vec![__0] +} + +#[allow(unused_variables)] +fn __action113< + 'input, +>( + input: &'input str, + (_, v, _): (usize, alloc::vec::Vec, usize), + (_, e, _): (usize, Interface, usize), +) -> alloc::vec::Vec +{ + { let mut v = v; v.push(e); v } +} + +#[allow(unused_variables)] +fn __action114< + 'input, +>( + input: &'input str, + __0: (usize, &'input str, usize), + __1: (usize, Type, usize), +) -> core::option::Option +{ + let __start0 = __0.0.clone(); + let __end0 = __1.2.clone(); + let __temp0 = __action59( + input, + __0, + __1, + ); + let __temp0 = (__start0, __temp0, __end0); + __action57( + input, + __temp0, + ) +} + +#[allow(unused_variables)] +fn __action115< + 'input, +>( + input: &'input str, + __0: (usize, String, usize), + __1: (usize, &'input str, usize), + __2: (usize, Vec, usize), + __3: (usize, &'input str, usize), + __4: (usize, &'input str, usize), + __5: (usize, Type, usize), +) -> Func +{ + let __start0 = __4.0.clone(); + let __end0 = __5.2.clone(); + let __temp0 = __action114( + input, + __4, + __5, + ); + let __temp0 = (__start0, __temp0, __end0); + __action9( + input, + __0, + __1, + __2, + __3, + __temp0, + ) +} + +#[allow(unused_variables)] +fn __action116< + 'input, +>( + input: &'input str, + __0: (usize, String, usize), + __1: (usize, &'input str, usize), + __2: (usize, Vec, usize), + __3: (usize, &'input str, usize), +) -> Func +{ + let __start0 = __3.2.clone(); + let __end0 = __3.2.clone(); + let __temp0 = __action58( + input, + &__start0, + &__end0, + ); + let __temp0 = (__start0, __temp0, __end0); + __action9( + input, + __0, + __1, + __2, + __3, + __temp0, + ) +} + +#[allow(unused_variables)] +fn __action117< + 'input, +>( + input: &'input str, + __0: (usize, &'input str, usize), + __1: (usize, i64, usize), +) -> core::option::Option +{ + let __start0 = __0.0.clone(); + let __end0 = __1.2.clone(); + let __temp0 = __action54( + input, + __0, + __1, + ); + let __temp0 = (__start0, __temp0, __end0); + __action52( + input, + __temp0, + ) +} + +#[allow(unused_variables)] +fn __action118< + 'input, +>( + input: &'input str, + __0: (usize, String, usize), + __1: (usize, &'input str, usize), + __2: (usize, i64, usize), +) -> EnumField +{ + let __start0 = __1.0.clone(); + let __end0 = __2.2.clone(); + let __temp0 = __action117( + input, + __1, + __2, + ); + let __temp0 = (__start0, __temp0, __end0); + __action48( + input, + __0, + __temp0, + ) +} + +#[allow(unused_variables)] +fn __action119< + 'input, +>( + input: &'input str, + __0: (usize, String, usize), +) -> EnumField +{ + let __start0 = __0.2.clone(); + let __end0 = __0.2.clone(); + let __temp0 = __action53( + input, + &__start0, + &__end0, + ); + let __temp0 = (__start0, __temp0, __end0); + __action48( + input, + __0, + __temp0, + ) +} + +#[allow(unused_variables)] +fn __action120< + 'input, +>( + input: &'input str, + __0: (usize, Arg, usize), + __1: (usize, &'input str, usize), +) -> alloc::vec::Vec +{ + let __start0 = __0.0.clone(); + let __end0 = __1.2.clone(); + let __temp0 = __action91( + input, + __0, + __1, + ); + let __temp0 = (__start0, __temp0, __end0); + __action102( + input, + __temp0, + ) +} + +#[allow(unused_variables)] +fn __action121< + 'input, +>( + input: &'input str, + __0: (usize, alloc::vec::Vec, usize), + __1: (usize, Arg, usize), + __2: (usize, &'input str, usize), +) -> alloc::vec::Vec +{ + let __start0 = __1.0.clone(); + let __end0 = __2.2.clone(); + let __temp0 = __action91( + input, + __1, + __2, + ); + let __temp0 = (__start0, __temp0, __end0); + __action103( + input, + __0, + __temp0, + ) +} + +#[allow(unused_variables)] +fn __action122< + 'input, +>( + input: &'input str, + __0: (usize, core::option::Option, usize), +) -> Vec +{ + let __start0 = __0.0.clone(); + let __end0 = __0.0.clone(); + let __temp0 = __action89( + input, + &__start0, + &__end0, + ); + let __temp0 = (__start0, __temp0, __end0); + __action60( + input, + __temp0, + __0, + ) +} + +#[allow(unused_variables)] +fn __action123< + 'input, +>( + input: &'input str, + __0: (usize, alloc::vec::Vec, usize), + __1: (usize, core::option::Option, usize), +) -> Vec +{ + let __start0 = __0.0.clone(); + let __end0 = __0.2.clone(); + let __temp0 = __action90( + input, + __0, + ); + let __temp0 = (__start0, __temp0, __end0); + __action60( + input, + __temp0, + __1, + ) +} + +#[allow(unused_variables)] +fn __action124< + 'input, +>( + input: &'input str, + __0: (usize, EnumField, usize), +) -> alloc::vec::Vec +{ + let __start0 = __0.0.clone(); + let __end0 = __0.2.clone(); + let __temp0 = __action97( + input, + __0, + ); + let __temp0 = (__start0, __temp0, __end0); + __action98( + input, + __temp0, + ) +} + +#[allow(unused_variables)] +fn __action125< + 'input, +>( + input: &'input str, + __0: (usize, alloc::vec::Vec, usize), + __1: (usize, EnumField, usize), +) -> alloc::vec::Vec +{ + let __start0 = __1.0.clone(); + let __end0 = __1.2.clone(); + let __temp0 = __action97( + input, + __1, + ); + let __temp0 = (__start0, __temp0, __end0); + __action99( + input, + __0, + __temp0, + ) +} + +#[allow(unused_variables)] +fn __action126< + 'input, +>( + input: &'input str, + __lookbehind: &usize, + __lookahead: &usize, +) -> Vec +{ + let __start0 = __lookbehind.clone(); + let __end0 = __lookahead.clone(); + let __temp0 = __action95( + input, + &__start0, + &__end0, + ); + let __temp0 = (__start0, __temp0, __end0); + __action55( + input, + __temp0, + ) +} + +#[allow(unused_variables)] +fn __action127< + 'input, +>( + input: &'input str, + __0: (usize, alloc::vec::Vec, usize), +) -> Vec +{ + let __start0 = __0.0.clone(); + let __end0 = __0.2.clone(); + let __temp0 = __action96( + input, + __0, + ); + let __temp0 = (__start0, __temp0, __end0); + __action55( + input, + __temp0, + ) +} + +#[allow(unused_variables)] +fn __action128< + 'input, +>( + input: &'input str, + __0: (usize, Extension, usize), +) -> alloc::vec::Vec +{ + let __start0 = __0.0.clone(); + let __end0 = __0.2.clone(); + let __temp0 = __action80( + input, + __0, + ); + let __temp0 = (__start0, __temp0, __end0); + __action108( + input, + __temp0, + ) +} + +#[allow(unused_variables)] +fn __action129< + 'input, +>( + input: &'input str, + __0: (usize, alloc::vec::Vec, usize), + __1: (usize, Extension, usize), +) -> alloc::vec::Vec +{ + let __start0 = __1.0.clone(); + let __end0 = __1.2.clone(); + let __temp0 = __action80( + input, + __1, + ); + let __temp0 = (__start0, __temp0, __end0); + __action109( + input, + __0, + __temp0, + ) +} + +#[allow(unused_variables)] +fn __action130< + 'input, +>( + input: &'input str, + __lookbehind: &usize, + __lookahead: &usize, +) -> Vec +{ + let __start0 = __lookbehind.clone(); + let __end0 = __lookahead.clone(); + let __temp0 = __action78( + input, + &__start0, + &__end0, + ); + let __temp0 = (__start0, __temp0, __end0); + __action69( + input, + __temp0, + ) +} + +#[allow(unused_variables)] +fn __action131< + 'input, +>( + input: &'input str, + __0: (usize, alloc::vec::Vec, usize), +) -> Vec +{ + let __start0 = __0.0.clone(); + let __end0 = __0.2.clone(); + let __temp0 = __action79( + input, + __0, + ); + let __temp0 = (__start0, __temp0, __end0); + __action69( + input, + __temp0, + ) +} + +#[allow(unused_variables)] +fn __action132< + 'input, +>( + input: &'input str, + __0: (usize, ExtensionInterface, usize), +) -> alloc::vec::Vec +{ + let __start0 = __0.0.clone(); + let __end0 = __0.2.clone(); + let __temp0 = __action83( + input, + __0, + ); + let __temp0 = (__start0, __temp0, __end0); + __action106( + input, + __temp0, + ) +} + +#[allow(unused_variables)] +fn __action133< + 'input, +>( + input: &'input str, + __0: (usize, alloc::vec::Vec, usize), + __1: (usize, ExtensionInterface, usize), +) -> alloc::vec::Vec +{ + let __start0 = __1.0.clone(); + let __end0 = __1.2.clone(); + let __temp0 = __action83( + input, + __1, + ); + let __temp0 = (__start0, __temp0, __end0); + __action107( + input, + __0, + __temp0, + ) +} + +#[allow(unused_variables)] +fn __action134< + 'input, +>( + input: &'input str, + __lookbehind: &usize, + __lookahead: &usize, +) -> Vec +{ + let __start0 = __lookbehind.clone(); + let __end0 = __lookahead.clone(); + let __temp0 = __action81( + input, + &__start0, + &__end0, + ); + let __temp0 = (__start0, __temp0, __end0); + __action66( + input, + __temp0, + ) +} + +#[allow(unused_variables)] +fn __action135< + 'input, +>( + input: &'input str, + __0: (usize, alloc::vec::Vec, usize), +) -> Vec +{ + let __start0 = __0.0.clone(); + let __end0 = __0.2.clone(); + let __temp0 = __action82( + input, + __0, + ); + let __temp0 = (__start0, __temp0, __end0); + __action66( + input, + __temp0, + ) +} + +#[allow(unused_variables)] +fn __action136< + 'input, +>( + input: &'input str, + __0: (usize, Func, usize), +) -> alloc::vec::Vec +{ + let __start0 = __0.0.clone(); + let __end0 = __0.2.clone(); + let __temp0 = __action86( + input, + __0, + ); + let __temp0 = (__start0, __temp0, __end0); + __action104( + input, + __temp0, + ) +} + +#[allow(unused_variables)] +fn __action137< + 'input, +>( + input: &'input str, + __0: (usize, alloc::vec::Vec, usize), + __1: (usize, Func, usize), +) -> alloc::vec::Vec +{ + let __start0 = __1.0.clone(); + let __end0 = __1.2.clone(); + let __temp0 = __action86( + input, + __1, + ); + let __temp0 = (__start0, __temp0, __end0); + __action105( + input, + __0, + __temp0, + ) +} + +#[allow(unused_variables)] +fn __action138< + 'input, +>( + input: &'input str, + __lookbehind: &usize, + __lookahead: &usize, +) -> Vec +{ + let __start0 = __lookbehind.clone(); + let __end0 = __lookahead.clone(); + let __temp0 = __action84( + input, + &__start0, + &__end0, + ); + let __temp0 = (__start0, __temp0, __end0); + __action61( + input, + __temp0, + ) +} + +#[allow(unused_variables)] +fn __action139< + 'input, +>( + input: &'input str, + __0: (usize, alloc::vec::Vec, usize), +) -> Vec +{ + let __start0 = __0.0.clone(); + let __end0 = __0.2.clone(); + let __temp0 = __action85( + input, + __0, + ); + let __temp0 = (__start0, __temp0, __end0); + __action61( + input, + __temp0, + ) +} + +#[allow(unused_variables)] +fn __action140< + 'input, +>( + input: &'input str, + __0: (usize, Interface, usize), +) -> alloc::vec::Vec +{ + let __start0 = __0.0.clone(); + let __end0 = __0.2.clone(); + let __temp0 = __action74( + input, + __0, + ); + let __temp0 = (__start0, __temp0, __end0); + __action112( + input, + __temp0, + ) +} + +#[allow(unused_variables)] +fn __action141< + 'input, +>( + input: &'input str, + __0: (usize, alloc::vec::Vec, usize), + __1: (usize, Interface, usize), +) -> alloc::vec::Vec +{ + let __start0 = __1.0.clone(); + let __end0 = __1.2.clone(); + let __temp0 = __action74( + input, + __1, + ); + let __temp0 = (__start0, __temp0, __end0); + __action113( + input, + __0, + __temp0, + ) +} + +#[allow(unused_variables)] +fn __action142< + 'input, +>( + input: &'input str, + __lookbehind: &usize, + __lookahead: &usize, +) -> Vec +{ + let __start0 = __lookbehind.clone(); + let __end0 = __lookahead.clone(); + let __temp0 = __action72( + input, + &__start0, + &__end0, + ); + let __temp0 = (__start0, __temp0, __end0); + __action71( + input, + __temp0, + ) +} + +#[allow(unused_variables)] +fn __action143< + 'input, +>( + input: &'input str, + __0: (usize, alloc::vec::Vec, usize), +) -> Vec +{ + let __start0 = __0.0.clone(); + let __end0 = __0.2.clone(); + let __temp0 = __action73( + input, + __0, + ); + let __temp0 = (__start0, __temp0, __end0); + __action71( + input, + __temp0, + ) +} + +#[allow(unused_variables)] +fn __action144< + 'input, +>( + input: &'input str, + __0: (usize, StructField, usize), +) -> alloc::vec::Vec +{ + let __start0 = __0.0.clone(); + let __end0 = __0.2.clone(); + let __temp0 = __action94( + input, + __0, + ); + let __temp0 = (__start0, __temp0, __end0); + __action100( + input, + __temp0, + ) +} + +#[allow(unused_variables)] +fn __action145< + 'input, +>( + input: &'input str, + __0: (usize, alloc::vec::Vec, usize), + __1: (usize, StructField, usize), +) -> alloc::vec::Vec +{ + let __start0 = __1.0.clone(); + let __end0 = __1.2.clone(); + let __temp0 = __action94( + input, + __1, + ); + let __temp0 = (__start0, __temp0, __end0); + __action101( + input, + __0, + __temp0, + ) +} + +#[allow(unused_variables)] +fn __action146< + 'input, +>( + input: &'input str, + __lookbehind: &usize, + __lookahead: &usize, +) -> Vec +{ + let __start0 = __lookbehind.clone(); + let __end0 = __lookahead.clone(); + let __temp0 = __action92( + input, + &__start0, + &__end0, + ); + let __temp0 = (__start0, __temp0, __end0); + __action56( + input, + __temp0, + ) +} + +#[allow(unused_variables)] +fn __action147< + 'input, +>( + input: &'input str, + __0: (usize, alloc::vec::Vec, usize), +) -> Vec +{ + let __start0 = __0.0.clone(); + let __end0 = __0.2.clone(); + let __temp0 = __action93( + input, + __0, + ); + let __temp0 = (__start0, __temp0, __end0); + __action56( + input, + __temp0, + ) +} + +#[allow(unused_variables)] +fn __action148< + 'input, +>( + input: &'input str, + __0: (usize, TypeDef, usize), +) -> alloc::vec::Vec +{ + let __start0 = __0.0.clone(); + let __end0 = __0.2.clone(); + let __temp0 = __action77( + input, + __0, + ); + let __temp0 = (__start0, __temp0, __end0); + __action110( + input, + __temp0, + ) +} + +#[allow(unused_variables)] +fn __action149< + 'input, +>( + input: &'input str, + __0: (usize, alloc::vec::Vec, usize), + __1: (usize, TypeDef, usize), +) -> alloc::vec::Vec +{ + let __start0 = __1.0.clone(); + let __end0 = __1.2.clone(); + let __temp0 = __action77( + input, + __1, + ); + let __temp0 = (__start0, __temp0, __end0); + __action111( + input, + __0, + __temp0, + ) +} + +#[allow(unused_variables)] +fn __action150< + 'input, +>( + input: &'input str, + __lookbehind: &usize, + __lookahead: &usize, +) -> Vec +{ + let __start0 = __lookbehind.clone(); + let __end0 = __lookahead.clone(); + let __temp0 = __action75( + input, + &__start0, + &__end0, + ); + let __temp0 = (__start0, __temp0, __end0); + __action70( + input, + __temp0, + ) +} + +#[allow(unused_variables)] +fn __action151< + 'input, +>( + input: &'input str, + __0: (usize, alloc::vec::Vec, usize), +) -> Vec +{ + let __start0 = __0.0.clone(); + let __end0 = __0.2.clone(); + let __temp0 = __action76( + input, + __0, + ); + let __temp0 = (__start0, __temp0, __end0); + __action70( + input, + __temp0, + ) +} + +#[allow(unused_variables)] +fn __action152< + 'input, +>( + input: &'input str, + __0: (usize, Arg, usize), +) -> Vec +{ + let __start0 = __0.0.clone(); + let __end0 = __0.2.clone(); + let __temp0 = __action87( + input, + __0, + ); + let __temp0 = (__start0, __temp0, __end0); + __action122( + input, + __temp0, + ) +} + +#[allow(unused_variables)] +fn __action153< + 'input, +>( + input: &'input str, + __lookbehind: &usize, + __lookahead: &usize, +) -> Vec +{ + let __start0 = __lookbehind.clone(); + let __end0 = __lookahead.clone(); + let __temp0 = __action88( + input, + &__start0, + &__end0, + ); + let __temp0 = (__start0, __temp0, __end0); + __action122( + input, + __temp0, + ) +} + +#[allow(unused_variables)] +fn __action154< + 'input, +>( + input: &'input str, + __0: (usize, alloc::vec::Vec, usize), + __1: (usize, Arg, usize), +) -> Vec +{ + let __start0 = __1.0.clone(); + let __end0 = __1.2.clone(); + let __temp0 = __action87( + input, + __1, + ); + let __temp0 = (__start0, __temp0, __end0); + __action123( + input, + __0, + __temp0, + ) +} + +#[allow(unused_variables)] +fn __action155< + 'input, +>( + input: &'input str, + __0: (usize, alloc::vec::Vec, usize), +) -> Vec +{ + let __start0 = __0.2.clone(); + let __end0 = __0.2.clone(); + let __temp0 = __action88( + input, + &__start0, + &__end0, + ); + let __temp0 = (__start0, __temp0, __end0); + __action123( + input, + __0, + __temp0, + ) +} + +#[allow(unused_variables)] +fn __action156< + 'input, +>( + input: &'input str, + __0: (usize, &'input str, usize), + __1: (usize, String, usize), + __2: (usize, &'input str, usize), + __3: (usize, core::option::Option, usize), + __4: (usize, Vec, usize), + __5: (usize, core::option::Option>, usize), + __6: (usize, &'input str, usize), +) -> ExtensionInterface +{ + let __start0 = __4.0.clone(); + let __end0 = __4.2.clone(); + let __temp0 = __action64( + input, + __4, + ); + let __temp0 = (__start0, __temp0, __end0); + __action4( + input, + __0, + __1, + __2, + __3, + __temp0, + __5, + __6, + ) +} + +#[allow(unused_variables)] +fn __action157< + 'input, +>( + input: &'input str, + __0: (usize, &'input str, usize), + __1: (usize, String, usize), + __2: (usize, &'input str, usize), + __3: (usize, core::option::Option, usize), + __4: (usize, core::option::Option>, usize), + __5: (usize, &'input str, usize), +) -> ExtensionInterface +{ + let __start0 = __3.2.clone(); + let __end0 = __4.0.clone(); + let __temp0 = __action65( + input, + &__start0, + &__end0, + ); + let __temp0 = (__start0, __temp0, __end0); + __action4( + input, + __0, + __1, + __2, + __3, + __temp0, + __4, + __5, + ) +} + +#[allow(unused_variables)] +fn __action158< + 'input, +>( + input: &'input str, + __0: (usize, &'input str, usize), + __1: (usize, &'input str, usize), + __2: (usize, Vec, usize), + __3: (usize, core::option::Option>, usize), + __4: (usize, &'input str, usize), +) -> ImplicitInterface +{ + let __start0 = __2.0.clone(); + let __end0 = __2.2.clone(); + let __temp0 = __action64( + input, + __2, + ); + let __temp0 = (__start0, __temp0, __end0); + __action5( + input, + __0, + __1, + __temp0, + __3, + __4, + ) +} + +#[allow(unused_variables)] +fn __action159< + 'input, +>( + input: &'input str, + __0: (usize, &'input str, usize), + __1: (usize, &'input str, usize), + __2: (usize, core::option::Option>, usize), + __3: (usize, &'input str, usize), +) -> ImplicitInterface +{ + let __start0 = __1.2.clone(); + let __end0 = __2.0.clone(); + let __temp0 = __action65( + input, + &__start0, + &__end0, + ); + let __temp0 = (__start0, __temp0, __end0); + __action5( + input, + __0, + __1, + __temp0, + __2, + __3, + ) +} + +#[allow(unused_variables)] +fn __action160< + 'input, +>( + input: &'input str, + __0: (usize, &'input str, usize), + __1: (usize, String, usize), + __2: (usize, &'input str, usize), + __3: (usize, core::option::Option, usize), + __4: (usize, Vec, usize), + __5: (usize, core::option::Option>, usize), + __6: (usize, &'input str, usize), +) -> Interface +{ + let __start0 = __4.0.clone(); + let __end0 = __4.2.clone(); + let __temp0 = __action64( + input, + __4, + ); + let __temp0 = (__start0, __temp0, __end0); + __action3( + input, + __0, + __1, + __2, + __3, + __temp0, + __5, + __6, + ) +} + +#[allow(unused_variables)] +fn __action161< + 'input, +>( + input: &'input str, + __0: (usize, &'input str, usize), + __1: (usize, String, usize), + __2: (usize, &'input str, usize), + __3: (usize, core::option::Option, usize), + __4: (usize, core::option::Option>, usize), + __5: (usize, &'input str, usize), +) -> Interface +{ + let __start0 = __3.2.clone(); + let __end0 = __4.0.clone(); + let __temp0 = __action65( + input, + &__start0, + &__end0, + ); + let __temp0 = (__start0, __temp0, __end0); + __action3( + input, + __0, + __1, + __2, + __3, + __temp0, + __4, + __5, + ) +} + +#[allow(unused_variables)] +fn __action162< + 'input, +>( + input: &'input str, + __0: (usize, &'input str, usize), + __1: (usize, String, usize), + __2: (usize, &'input str, usize), + __3: (usize, core::option::Option, usize), + __4: (usize, Vec, usize), + __5: (usize, Vec, usize), + __6: (usize, &'input str, usize), +) -> ExtensionInterface +{ + let __start0 = __5.0.clone(); + let __end0 = __5.2.clone(); + let __temp0 = __action62( + input, + __5, + ); + let __temp0 = (__start0, __temp0, __end0); + __action156( + input, + __0, + __1, + __2, + __3, + __4, + __temp0, + __6, + ) +} + +#[allow(unused_variables)] +fn __action163< + 'input, +>( + input: &'input str, + __0: (usize, &'input str, usize), + __1: (usize, String, usize), + __2: (usize, &'input str, usize), + __3: (usize, core::option::Option, usize), + __4: (usize, Vec, usize), + __5: (usize, &'input str, usize), +) -> ExtensionInterface +{ + let __start0 = __4.2.clone(); + let __end0 = __5.0.clone(); + let __temp0 = __action63( + input, + &__start0, + &__end0, + ); + let __temp0 = (__start0, __temp0, __end0); + __action156( + input, + __0, + __1, + __2, + __3, + __4, + __temp0, + __5, + ) +} + +#[allow(unused_variables)] +fn __action164< + 'input, +>( + input: &'input str, + __0: (usize, &'input str, usize), + __1: (usize, String, usize), + __2: (usize, &'input str, usize), + __3: (usize, core::option::Option, usize), + __4: (usize, Vec, usize), + __5: (usize, &'input str, usize), +) -> ExtensionInterface +{ + let __start0 = __4.0.clone(); + let __end0 = __4.2.clone(); + let __temp0 = __action62( + input, + __4, + ); + let __temp0 = (__start0, __temp0, __end0); + __action157( + input, + __0, + __1, + __2, + __3, + __temp0, + __5, + ) +} + +#[allow(unused_variables)] +fn __action165< + 'input, +>( + input: &'input str, + __0: (usize, &'input str, usize), + __1: (usize, String, usize), + __2: (usize, &'input str, usize), + __3: (usize, core::option::Option, usize), + __4: (usize, &'input str, usize), +) -> ExtensionInterface +{ + let __start0 = __3.2.clone(); + let __end0 = __4.0.clone(); + let __temp0 = __action63( + input, + &__start0, + &__end0, + ); + let __temp0 = (__start0, __temp0, __end0); + __action157( + input, + __0, + __1, + __2, + __3, + __temp0, + __4, + ) +} + +#[allow(unused_variables)] +fn __action166< + 'input, +>( + input: &'input str, + __0: (usize, &'input str, usize), + __1: (usize, &'input str, usize), + __2: (usize, Vec, usize), + __3: (usize, Vec, usize), + __4: (usize, &'input str, usize), +) -> ImplicitInterface +{ + let __start0 = __3.0.clone(); + let __end0 = __3.2.clone(); + let __temp0 = __action62( + input, + __3, + ); + let __temp0 = (__start0, __temp0, __end0); + __action158( + input, + __0, + __1, + __2, + __temp0, + __4, + ) +} + +#[allow(unused_variables)] +fn __action167< + 'input, +>( + input: &'input str, + __0: (usize, &'input str, usize), + __1: (usize, &'input str, usize), + __2: (usize, Vec, usize), + __3: (usize, &'input str, usize), +) -> ImplicitInterface +{ + let __start0 = __2.2.clone(); + let __end0 = __3.0.clone(); + let __temp0 = __action63( + input, + &__start0, + &__end0, + ); + let __temp0 = (__start0, __temp0, __end0); + __action158( + input, + __0, + __1, + __2, + __temp0, + __3, + ) +} + +#[allow(unused_variables)] +fn __action168< + 'input, +>( + input: &'input str, + __0: (usize, &'input str, usize), + __1: (usize, &'input str, usize), + __2: (usize, Vec, usize), + __3: (usize, &'input str, usize), +) -> ImplicitInterface +{ + let __start0 = __2.0.clone(); + let __end0 = __2.2.clone(); + let __temp0 = __action62( + input, + __2, + ); + let __temp0 = (__start0, __temp0, __end0); + __action159( + input, + __0, + __1, + __temp0, + __3, + ) +} + +#[allow(unused_variables)] +fn __action169< + 'input, +>( + input: &'input str, + __0: (usize, &'input str, usize), + __1: (usize, &'input str, usize), + __2: (usize, &'input str, usize), +) -> ImplicitInterface +{ + let __start0 = __1.2.clone(); + let __end0 = __2.0.clone(); + let __temp0 = __action63( + input, + &__start0, + &__end0, + ); + let __temp0 = (__start0, __temp0, __end0); + __action159( + input, + __0, + __1, + __temp0, + __2, + ) +} + +#[allow(unused_variables)] +fn __action170< + 'input, +>( + input: &'input str, + __0: (usize, &'input str, usize), + __1: (usize, String, usize), + __2: (usize, &'input str, usize), + __3: (usize, core::option::Option, usize), + __4: (usize, Vec, usize), + __5: (usize, Vec, usize), + __6: (usize, &'input str, usize), +) -> Interface +{ + let __start0 = __5.0.clone(); + let __end0 = __5.2.clone(); + let __temp0 = __action62( + input, + __5, + ); + let __temp0 = (__start0, __temp0, __end0); + __action160( + input, + __0, + __1, + __2, + __3, + __4, + __temp0, + __6, + ) +} + +#[allow(unused_variables)] +fn __action171< + 'input, +>( + input: &'input str, + __0: (usize, &'input str, usize), + __1: (usize, String, usize), + __2: (usize, &'input str, usize), + __3: (usize, core::option::Option, usize), + __4: (usize, Vec, usize), + __5: (usize, &'input str, usize), +) -> Interface +{ + let __start0 = __4.2.clone(); + let __end0 = __5.0.clone(); + let __temp0 = __action63( + input, + &__start0, + &__end0, + ); + let __temp0 = (__start0, __temp0, __end0); + __action160( + input, + __0, + __1, + __2, + __3, + __4, + __temp0, + __5, + ) +} + +#[allow(unused_variables)] +fn __action172< + 'input, +>( + input: &'input str, + __0: (usize, &'input str, usize), + __1: (usize, String, usize), + __2: (usize, &'input str, usize), + __3: (usize, core::option::Option, usize), + __4: (usize, Vec, usize), + __5: (usize, &'input str, usize), +) -> Interface +{ + let __start0 = __4.0.clone(); + let __end0 = __4.2.clone(); + let __temp0 = __action62( + input, + __4, + ); + let __temp0 = (__start0, __temp0, __end0); + __action161( + input, + __0, + __1, + __2, + __3, + __temp0, + __5, + ) +} + +#[allow(unused_variables)] +fn __action173< + 'input, +>( + input: &'input str, + __0: (usize, &'input str, usize), + __1: (usize, String, usize), + __2: (usize, &'input str, usize), + __3: (usize, core::option::Option, usize), + __4: (usize, &'input str, usize), +) -> Interface +{ + let __start0 = __3.2.clone(); + let __end0 = __4.0.clone(); + let __temp0 = __action63( + input, + &__start0, + &__end0, + ); + let __temp0 = (__start0, __temp0, __end0); + __action161( + input, + __0, + __1, + __2, + __3, + __temp0, + __4, + ) +} + +#[allow(unused_variables)] +fn __action174< + 'input, +>( + input: &'input str, + __0: (usize, &'input str, usize), + __1: (usize, String, usize), + __2: (usize, &'input str, usize), + __3: (usize, Version, usize), + __4: (usize, ImplicitInterface, usize), + __5: (usize, Vec, usize), + __6: (usize, Vec, usize), + __7: (usize, &'input str, usize), +) -> Extension +{ + let __start0 = __3.0.clone(); + let __end0 = __3.2.clone(); + let __temp0 = __action67( + input, + __3, + ); + let __temp0 = (__start0, __temp0, __end0); + __action2( + input, + __0, + __1, + __2, + __temp0, + __4, + __5, + __6, + __7, + ) +} + +#[allow(unused_variables)] +fn __action175< + 'input, +>( + input: &'input str, + __0: (usize, &'input str, usize), + __1: (usize, String, usize), + __2: (usize, &'input str, usize), + __3: (usize, ImplicitInterface, usize), + __4: (usize, Vec, usize), + __5: (usize, Vec, usize), + __6: (usize, &'input str, usize), +) -> Extension +{ + let __start0 = __2.2.clone(); + let __end0 = __3.0.clone(); + let __temp0 = __action68( + input, + &__start0, + &__end0, + ); + let __temp0 = (__start0, __temp0, __end0); + __action2( + input, + __0, + __1, + __2, + __temp0, + __3, + __4, + __5, + __6, + ) +} + +#[allow(unused_variables)] +fn __action176< + 'input, +>( + input: &'input str, + __0: (usize, &'input str, usize), + __1: (usize, String, usize), + __2: (usize, &'input str, usize), + __3: (usize, Version, usize), + __4: (usize, Vec, usize), + __5: (usize, Vec, usize), + __6: (usize, &'input str, usize), +) -> ExtensionInterface +{ + let __start0 = __3.0.clone(); + let __end0 = __3.2.clone(); + let __temp0 = __action67( + input, + __3, + ); + let __temp0 = (__start0, __temp0, __end0); + __action162( + input, + __0, + __1, + __2, + __temp0, + __4, + __5, + __6, + ) +} + +#[allow(unused_variables)] +fn __action177< + 'input, +>( + input: &'input str, + __0: (usize, &'input str, usize), + __1: (usize, String, usize), + __2: (usize, &'input str, usize), + __3: (usize, Vec, usize), + __4: (usize, Vec, usize), + __5: (usize, &'input str, usize), +) -> ExtensionInterface +{ + let __start0 = __2.2.clone(); + let __end0 = __3.0.clone(); + let __temp0 = __action68( + input, + &__start0, + &__end0, + ); + let __temp0 = (__start0, __temp0, __end0); + __action162( + input, + __0, + __1, + __2, + __temp0, + __3, + __4, + __5, + ) +} + +#[allow(unused_variables)] +fn __action178< + 'input, +>( + input: &'input str, + __0: (usize, &'input str, usize), + __1: (usize, String, usize), + __2: (usize, &'input str, usize), + __3: (usize, Version, usize), + __4: (usize, Vec, usize), + __5: (usize, &'input str, usize), +) -> ExtensionInterface +{ + let __start0 = __3.0.clone(); + let __end0 = __3.2.clone(); + let __temp0 = __action67( + input, + __3, + ); + let __temp0 = (__start0, __temp0, __end0); + __action163( + input, + __0, + __1, + __2, + __temp0, + __4, + __5, + ) +} + +#[allow(unused_variables)] +fn __action179< + 'input, +>( + input: &'input str, + __0: (usize, &'input str, usize), + __1: (usize, String, usize), + __2: (usize, &'input str, usize), + __3: (usize, Vec, usize), + __4: (usize, &'input str, usize), +) -> ExtensionInterface +{ + let __start0 = __2.2.clone(); + let __end0 = __3.0.clone(); + let __temp0 = __action68( + input, + &__start0, + &__end0, + ); + let __temp0 = (__start0, __temp0, __end0); + __action163( + input, + __0, + __1, + __2, + __temp0, + __3, + __4, + ) +} + +#[allow(unused_variables)] +fn __action180< + 'input, +>( + input: &'input str, + __0: (usize, &'input str, usize), + __1: (usize, String, usize), + __2: (usize, &'input str, usize), + __3: (usize, Version, usize), + __4: (usize, Vec, usize), + __5: (usize, &'input str, usize), +) -> ExtensionInterface +{ + let __start0 = __3.0.clone(); + let __end0 = __3.2.clone(); + let __temp0 = __action67( + input, + __3, + ); + let __temp0 = (__start0, __temp0, __end0); + __action164( + input, + __0, + __1, + __2, + __temp0, + __4, + __5, + ) +} + +#[allow(unused_variables)] +fn __action181< + 'input, +>( + input: &'input str, + __0: (usize, &'input str, usize), + __1: (usize, String, usize), + __2: (usize, &'input str, usize), + __3: (usize, Vec, usize), + __4: (usize, &'input str, usize), +) -> ExtensionInterface +{ + let __start0 = __2.2.clone(); + let __end0 = __3.0.clone(); + let __temp0 = __action68( + input, + &__start0, + &__end0, + ); + let __temp0 = (__start0, __temp0, __end0); + __action164( + input, + __0, + __1, + __2, + __temp0, + __3, + __4, + ) +} + +#[allow(unused_variables)] +fn __action182< + 'input, +>( + input: &'input str, + __0: (usize, &'input str, usize), + __1: (usize, String, usize), + __2: (usize, &'input str, usize), + __3: (usize, Version, usize), + __4: (usize, &'input str, usize), +) -> ExtensionInterface +{ + let __start0 = __3.0.clone(); + let __end0 = __3.2.clone(); + let __temp0 = __action67( + input, + __3, + ); + let __temp0 = (__start0, __temp0, __end0); + __action165( + input, + __0, + __1, + __2, + __temp0, + __4, + ) +} + +#[allow(unused_variables)] +fn __action183< + 'input, +>( + input: &'input str, + __0: (usize, &'input str, usize), + __1: (usize, String, usize), + __2: (usize, &'input str, usize), + __3: (usize, &'input str, usize), +) -> ExtensionInterface +{ + let __start0 = __2.2.clone(); + let __end0 = __3.0.clone(); + let __temp0 = __action68( + input, + &__start0, + &__end0, + ); + let __temp0 = (__start0, __temp0, __end0); + __action165( + input, + __0, + __1, + __2, + __temp0, + __3, + ) +} + +#[allow(unused_variables)] +fn __action184< + 'input, +>( + input: &'input str, + __0: (usize, &'input str, usize), + __1: (usize, String, usize), + __2: (usize, &'input str, usize), + __3: (usize, Version, usize), + __4: (usize, Vec, usize), + __5: (usize, Vec, usize), + __6: (usize, &'input str, usize), +) -> Interface +{ + let __start0 = __3.0.clone(); + let __end0 = __3.2.clone(); + let __temp0 = __action67( + input, + __3, + ); + let __temp0 = (__start0, __temp0, __end0); + __action170( + input, + __0, + __1, + __2, + __temp0, + __4, + __5, + __6, + ) +} + +#[allow(unused_variables)] +fn __action185< + 'input, +>( + input: &'input str, + __0: (usize, &'input str, usize), + __1: (usize, String, usize), + __2: (usize, &'input str, usize), + __3: (usize, Vec, usize), + __4: (usize, Vec, usize), + __5: (usize, &'input str, usize), +) -> Interface +{ + let __start0 = __2.2.clone(); + let __end0 = __3.0.clone(); + let __temp0 = __action68( + input, + &__start0, + &__end0, + ); + let __temp0 = (__start0, __temp0, __end0); + __action170( + input, + __0, + __1, + __2, + __temp0, + __3, + __4, + __5, + ) +} + +#[allow(unused_variables)] +fn __action186< + 'input, +>( + input: &'input str, + __0: (usize, &'input str, usize), + __1: (usize, String, usize), + __2: (usize, &'input str, usize), + __3: (usize, Version, usize), + __4: (usize, Vec, usize), + __5: (usize, &'input str, usize), +) -> Interface +{ + let __start0 = __3.0.clone(); + let __end0 = __3.2.clone(); + let __temp0 = __action67( + input, + __3, + ); + let __temp0 = (__start0, __temp0, __end0); + __action171( + input, + __0, + __1, + __2, + __temp0, + __4, + __5, + ) +} + +#[allow(unused_variables)] +fn __action187< + 'input, +>( + input: &'input str, + __0: (usize, &'input str, usize), + __1: (usize, String, usize), + __2: (usize, &'input str, usize), + __3: (usize, Vec, usize), + __4: (usize, &'input str, usize), +) -> Interface +{ + let __start0 = __2.2.clone(); + let __end0 = __3.0.clone(); + let __temp0 = __action68( + input, + &__start0, + &__end0, + ); + let __temp0 = (__start0, __temp0, __end0); + __action171( + input, + __0, + __1, + __2, + __temp0, + __3, + __4, + ) +} + +#[allow(unused_variables)] +fn __action188< + 'input, +>( + input: &'input str, + __0: (usize, &'input str, usize), + __1: (usize, String, usize), + __2: (usize, &'input str, usize), + __3: (usize, Version, usize), + __4: (usize, Vec, usize), + __5: (usize, &'input str, usize), +) -> Interface +{ + let __start0 = __3.0.clone(); + let __end0 = __3.2.clone(); + let __temp0 = __action67( + input, + __3, + ); + let __temp0 = (__start0, __temp0, __end0); + __action172( + input, + __0, + __1, + __2, + __temp0, + __4, + __5, + ) +} + +#[allow(unused_variables)] +fn __action189< + 'input, +>( + input: &'input str, + __0: (usize, &'input str, usize), + __1: (usize, String, usize), + __2: (usize, &'input str, usize), + __3: (usize, Vec, usize), + __4: (usize, &'input str, usize), +) -> Interface +{ + let __start0 = __2.2.clone(); + let __end0 = __3.0.clone(); + let __temp0 = __action68( + input, + &__start0, + &__end0, + ); + let __temp0 = (__start0, __temp0, __end0); + __action172( + input, + __0, + __1, + __2, + __temp0, + __3, + __4, + ) +} + +#[allow(unused_variables)] +fn __action190< + 'input, +>( + input: &'input str, + __0: (usize, &'input str, usize), + __1: (usize, String, usize), + __2: (usize, &'input str, usize), + __3: (usize, Version, usize), + __4: (usize, &'input str, usize), +) -> Interface +{ + let __start0 = __3.0.clone(); + let __end0 = __3.2.clone(); + let __temp0 = __action67( + input, + __3, + ); + let __temp0 = (__start0, __temp0, __end0); + __action173( + input, + __0, + __1, + __2, + __temp0, + __4, + ) +} + +#[allow(unused_variables)] +fn __action191< + 'input, +>( + input: &'input str, + __0: (usize, &'input str, usize), + __1: (usize, String, usize), + __2: (usize, &'input str, usize), + __3: (usize, &'input str, usize), +) -> Interface +{ + let __start0 = __2.2.clone(); + let __end0 = __3.0.clone(); + let __temp0 = __action68( + input, + &__start0, + &__end0, + ); + let __temp0 = (__start0, __temp0, __end0); + __action173( + input, + __0, + __1, + __2, + __temp0, + __3, + ) +} + +pub trait __ToTriple<'input, > { + fn to_triple(value: Self) -> Result<(usize,Token<'input>,usize), __lalrpop_util::ParseError, &'static str>>; +} + +impl<'input, > __ToTriple<'input, > for (usize, Token<'input>, usize) { + fn to_triple(value: Self) -> Result<(usize,Token<'input>,usize), __lalrpop_util::ParseError, &'static str>> { + Ok(value) + } +} +impl<'input, > __ToTriple<'input, > for Result<(usize, Token<'input>, usize), &'static str> { + fn to_triple(value: Self) -> Result<(usize,Token<'input>,usize), __lalrpop_util::ParseError, &'static str>> { + match value { + Ok(v) => Ok(v), + Err(error) => Err(__lalrpop_util::ParseError::User { error }), + } + } +} diff --git a/hidl/src/lib.rs b/hidl/src/lib.rs index 27bb893..9f94b7f 100644 --- a/hidl/src/lib.rs +++ b/hidl/src/lib.rs @@ -1,14 +1,16 @@ use debug2::Debug as Debug2; use serde::{Deserialize, Serialize}; -pub mod spec; +pub mod ast; + +#[allow(clippy::all)] +pub mod grammar; #[derive(Debug, Debug2, Default, Clone, Serialize, Deserialize, PartialEq)] pub struct Module { - #[serde(default, skip_serializing_if = "is_default")] interfaces: Vec, - #[serde(default, skip_serializing_if = "is_default")] + types: Vec, } @@ -17,7 +19,7 @@ pub struct Module { pub struct IDL { name: String, root: Module, - #[serde(default, skip_serializing_if = "is_default")] + extenstions: Vec, } @@ -35,18 +37,17 @@ pub struct Interface { name: String, version: Version, - #[serde(default, skip_serializing_if = "is_default")] methods: Vec, - #[serde(default, skip_serializing_if = "is_default")] + events: Vec, } #[derive(Debug, Debug2, Default, Clone, Serialize, Deserialize, PartialEq)] pub struct Method { name: String, - #[serde(default, skip_serializing_if = "is_default")] + ret: Type, - #[serde(default, skip_serializing_if = "is_default")] + args: Vec<(String, Type)>, } diff --git a/hidl/src/spec.rs b/hidl/src/spec.rs deleted file mode 100644 index adebb6e..0000000 --- a/hidl/src/spec.rs +++ /dev/null @@ -1,87 +0,0 @@ -use crate::*; - -// TODO: Use autodefault when https://github.com/Lucretiel/autodefault/issues/4 -// is fixed - -pub fn spec() -> IDL { - IDL { - name: "hypercosm".to_owned(), - root: Module { - interfaces: vec![ - Interface { - name: "object".to_owned(), - version: (1, 0, 0), // TODO: Change - methods: vec![ - Method { - name: "listInterfaces".to_owned(), - args: vec![], - ret: ty::array(ty::string()), - }, - Method { - name: "release".to_owned(), - ..default() - }, - ], - ..default() - }, - Interface { - name: "root".to_owned(), - version: (0, 1, 0), - methods: vec![ - Method { - name: "listExtensions".to_owned(), - ret: ty::array(ty::string()), - ..default() - }, - Method { - name: "ping".to_owned(), - ..default() - }, - Method { - name: "getObjectById".to_owned(), - ret: ty::object(), - args: vec![("id".to_owned(), ty::uuid())], - }, - Method { - name: "getObjectByName".to_owned(), - ret: ty::object(), - args: vec![("name".to_owned(), ty::string())], - }, - ], - ..default() - }, - ], - ..default() - }, - extenstions: vec![Extension { - name: "assetdelivery".to_owned(), - version: (0, 1, 0), - module: Module { - interfaces: vec![Interface { - name: "assetdelivery".to_owned(), - version: (0, 1, 0), - events: vec![Method { - name: "loadAssets".to_owned(), - args: vec![("name".to_owned(), ty::string())], - ..default() - }], - ..default() - }], - types: vec![CustomType { - name: "asset".to_owned(), - kind: CustomTypeKind::Struct(CustomStruct { - fields: vec![ - ("id".to_owned(), ty::uuid()), - ("name".to_owned(), ty::string()), - ("data".to_owned(), ty::array(ty::u8())), - ], - }), - }], - }, - }], - } -} - -fn default() -> D { - Default::default() -}