From 9f82aceb9fbdb42f332d68f4a423123bd0788b2c Mon Sep 17 00:00:00 2001 From: bnewbold Date: Sat, 17 Dec 2016 18:34:47 -0800 Subject: refactor modelica parser into separate crate --- Cargo.lock | 13 +- Cargo.toml | 11 +- examples/minimal.modelica | 6 - examples/minimal2.modelica | 8 - examples/minimal3.modelica | 8 - modelica-parser-lalrpop/.gitignore | 1 + modelica-parser-lalrpop/Cargo.toml | 25 + modelica-parser-lalrpop/examples/minimal.modelica | 6 + modelica-parser-lalrpop/examples/minimal2.modelica | 8 + modelica-parser-lalrpop/examples/minimal3.modelica | 8 + modelica-parser-lalrpop/src/ast.rs | 241 + modelica-parser-lalrpop/src/build.rs | 5 + modelica-parser-lalrpop/src/lib.rs | 65 + modelica-parser-lalrpop/src/parser.lalrpop | 97 + modelica-parser-lalrpop/src/parser.rs | 15955 +++++++++++++++++++ modelica-parser-lalrpop/tests/ast.rs | 56 + modelica-parser-lalrpop/tests/parser.rs | 40 + src/bin/mt-tool.rs | 7 +- src/build.rs | 5 - src/lib.rs | 68 +- src/modelica_ast.rs | 407 - src/modelica_model.rs | 231 + src/modelica_parser.lalrpop | 97 - src/modelica_parser.lalrpop.full | 171 - src/modelica_parser.rs | 15955 ------------------- src/transpile_js.rs | 6 +- src/transpile_scheme.rs | 6 +- tests/lib.rs | 37 +- tests/modelica_ast.rs | 78 - tests/rebalance.rs | 28 + 30 files changed, 16794 insertions(+), 16855 deletions(-) delete mode 100644 examples/minimal.modelica delete mode 100644 examples/minimal2.modelica delete mode 100644 examples/minimal3.modelica create mode 100644 modelica-parser-lalrpop/.gitignore create mode 100644 modelica-parser-lalrpop/Cargo.toml create mode 100644 modelica-parser-lalrpop/examples/minimal.modelica create mode 100644 modelica-parser-lalrpop/examples/minimal2.modelica create mode 100644 modelica-parser-lalrpop/examples/minimal3.modelica create mode 100644 modelica-parser-lalrpop/src/ast.rs create mode 100644 modelica-parser-lalrpop/src/build.rs create mode 100644 modelica-parser-lalrpop/src/lib.rs create mode 100644 modelica-parser-lalrpop/src/parser.lalrpop create mode 100644 modelica-parser-lalrpop/src/parser.rs create mode 100644 modelica-parser-lalrpop/tests/ast.rs create mode 100644 modelica-parser-lalrpop/tests/parser.rs delete mode 100644 src/build.rs delete mode 100644 src/modelica_ast.rs create mode 100644 src/modelica_model.rs delete mode 100644 src/modelica_parser.lalrpop delete mode 100644 src/modelica_parser.lalrpop.full delete mode 100644 src/modelica_parser.rs delete mode 100644 tests/modelica_ast.rs create mode 100644 tests/rebalance.rs diff --git a/Cargo.lock b/Cargo.lock index 14c1291..afb3b0b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2,14 +2,12 @@ name = "modelthing" version = "0.1.0" dependencies = [ - "colored 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)", "docopt 0.6.86 (registry+https://github.com/rust-lang/crates.io-index)", "env_logger 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", "getopts 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)", - "lalrpop 0.12.4 (registry+https://github.com/rust-lang/crates.io-index)", - "lalrpop-util 0.12.4 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", "markdown 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "modelica-parser-lalrpop 0.1.0", "pencil 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "rustc-serialize 0.3.21 (registry+https://github.com/rust-lang/crates.io-index)", "toml 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -428,6 +426,15 @@ dependencies = [ "textnonce 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "modelica-parser-lalrpop" +version = "0.1.0" +dependencies = [ + "colored 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)", + "lalrpop 0.12.4 (registry+https://github.com/rust-lang/crates.io-index)", + "lalrpop-util 0.12.4 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "num_cpus" version = "1.2.0" diff --git a/Cargo.toml b/Cargo.toml index 57aa54b..cd16e93 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -2,19 +2,14 @@ name = "modelthing" version = "0.1.0" authors = ["bnewbold "] -build = "src/build.rs" # eg, LALRPOP preprocessing - -[build-dependencies] -lalrpop = "0.12" [dependencies] getopts = "^0.2" toml = "0.2" log = "0.3" env_logger = "0.3" -lalrpop-util = "^0.12.4" markdown = "0.1" -colored = "1.3" +modelica-parser-lalrpop = { version = "*", path = "./modelica-parser-lalrpop" } # parser util rustc-serialize = "0.3" @@ -23,7 +18,3 @@ docopt = "0.6" # webface pencil = "0.3" - -[features] -# this effectively enables the feature `no-color` of colored when testing -test = ["colored/no-color"] diff --git a/examples/minimal.modelica b/examples/minimal.modelica deleted file mode 100644 index 85335a5..0000000 --- a/examples/minimal.modelica +++ /dev/null @@ -1,6 +0,0 @@ -model FirstOrder - parameter Real c; - Real x; -equation - der(x) = -c*x; -end FirstOrder; diff --git a/examples/minimal2.modelica b/examples/minimal2.modelica deleted file mode 100644 index 69790b0..0000000 --- a/examples/minimal2.modelica +++ /dev/null @@ -1,8 +0,0 @@ -model FirstOrder - parameter Real c; - Real x; -equation - connect(c, x); - 1 = c; - (5 + 4) = x; -end FirstOrder; diff --git a/examples/minimal3.modelica b/examples/minimal3.modelica deleted file mode 100644 index 1e9a211..0000000 --- a/examples/minimal3.modelica +++ /dev/null @@ -1,8 +0,0 @@ -model MinimalModel - parameter Real a; - Real b; -equation - connect(a, b); - a = 1; - b = (abs(a) + 2) / 4; -end FirstOrder; diff --git a/modelica-parser-lalrpop/.gitignore b/modelica-parser-lalrpop/.gitignore new file mode 100644 index 0000000..03314f7 --- /dev/null +++ b/modelica-parser-lalrpop/.gitignore @@ -0,0 +1 @@ +Cargo.lock diff --git a/modelica-parser-lalrpop/Cargo.toml b/modelica-parser-lalrpop/Cargo.toml new file mode 100644 index 0000000..fabffe5 --- /dev/null +++ b/modelica-parser-lalrpop/Cargo.toml @@ -0,0 +1,25 @@ +[package] +name = "modelica-parser-lalrpop" +version = "0.1.0" +authors = ["bnewbold "] +description = """ +Partial (work in progress) parser for the modelica language using the LALRPOP +rust parser crate. +""" +keywords = ["modelica", "lalrpop", "parser"] +build = "src/build.rs" # LALRPOP preprocessing +license = "MIT" + +[lib] +name = "modelica_parser" + +[dependencies] +lalrpop-util = "^0.12.4" +colored = "1.3" + +[build-dependencies] +lalrpop = "0.12" + +[features] +# this effectively enables the feature `no-color` of colored when testing +test = ["colored/no-color"] diff --git a/modelica-parser-lalrpop/examples/minimal.modelica b/modelica-parser-lalrpop/examples/minimal.modelica new file mode 100644 index 0000000..85335a5 --- /dev/null +++ b/modelica-parser-lalrpop/examples/minimal.modelica @@ -0,0 +1,6 @@ +model FirstOrder + parameter Real c; + Real x; +equation + der(x) = -c*x; +end FirstOrder; diff --git a/modelica-parser-lalrpop/examples/minimal2.modelica b/modelica-parser-lalrpop/examples/minimal2.modelica new file mode 100644 index 0000000..69790b0 --- /dev/null +++ b/modelica-parser-lalrpop/examples/minimal2.modelica @@ -0,0 +1,8 @@ +model FirstOrder + parameter Real c; + Real x; +equation + connect(c, x); + 1 = c; + (5 + 4) = x; +end FirstOrder; diff --git a/modelica-parser-lalrpop/examples/minimal3.modelica b/modelica-parser-lalrpop/examples/minimal3.modelica new file mode 100644 index 0000000..1e9a211 --- /dev/null +++ b/modelica-parser-lalrpop/examples/minimal3.modelica @@ -0,0 +1,8 @@ +model MinimalModel + parameter Real a; + Real b; +equation + connect(a, b); + a = 1; + b = (abs(a) + 2) / 4; +end FirstOrder; diff --git a/modelica-parser-lalrpop/src/ast.rs b/modelica-parser-lalrpop/src/ast.rs new file mode 100644 index 0000000..99d443c --- /dev/null +++ b/modelica-parser-lalrpop/src/ast.rs @@ -0,0 +1,241 @@ + +use std::clone::Clone; +use std::fmt::{Debug, Formatter, Error}; +use std::collections::HashMap; + +#[derive(Clone, PartialEq)] +pub struct ModelicaModel { + pub name: String, + pub components: Vec, + pub equations: Vec, + pub connections: Vec, + pub extends: Vec, +} + +#[derive(Copy, Clone, PartialEq)] +pub enum ComponentPrefix { + // incomplete: eg, can be parameter and input + Flow, + Stream, + Input, + Output, + Discrete, + Parameter, + Constant, +} + +#[derive(Clone, PartialEq)] +pub struct Component { + pub prefix: Option, + pub specifier: String, + pub name: String, + pub value: Option, + pub units: Option, + pub description: Option, +} + +#[derive(Clone, PartialEq)] +pub struct Connection { + pub a: String, + pub b: String, +} + +#[derive(Clone, PartialEq)] +pub struct SimpleEquation { + pub lhs: Expr, + pub rhs: Expr, +} + +#[derive(Clone, PartialEq)] +pub enum Expr { + Integer(i64), + Float(f64), + Ident(String), + Der(Box), + Abs(Box), + BinExpr(BinOperator, Box, Box), +} + +#[derive(Copy, Clone, PartialEq)] +pub enum BinOperator { + Multiply, + Divide, + Add, + Subtract, +} + +//// Helpers + +impl ModelicaModel { + + pub fn get_constant_vars(&self) -> HashMap> { + let mut binds = HashMap::new(); + // XXX: actually implement this... + for c in &self.components { + match c.prefix { + Some(ComponentPrefix::Constant) => { binds.insert(c.name.clone(), Some(Expr::Integer(123))); }, + Some(ComponentPrefix::Parameter) => { binds.insert(c.name.clone(), Some(Expr::Float(4.56))); }, + _ => (), + } + } + binds + } + + // This crude function finds "unbound" variables: those which are not constants, parameters, or + // the sole element on the LHS of an equation. + // Bugs: + // if a var is on LHS and RHS of same equation + pub fn get_free_vars(&self) -> Vec { + // Start with components, and remove constants and parameters + let vars = self.components.iter().filter(|v| match v.prefix { + Some(ComponentPrefix::Constant) | Some(ComponentPrefix::Parameter) => false, + _ => true, + }); + + // Remove LHS (bound) vars + let mut outputs = vec![]; + for eq in self.equations.iter() { + // TODO: + if let Expr::Ident(ref symb) = eq.lhs { + outputs.push(symb.to_string()); + } + } + let vars = vars.filter(|v| !outputs.contains(&v.name)); + + vars.map(|c| c.name.clone()).collect() + } + +} + +fn union_strings(a: &Vec, b: &Vec) -> Vec { + let mut u = a.clone(); + for e in b { + if !(u.contains(&e)) { + u.push(e.clone()); + } + } + u +} + +impl Expr { + + // Order is undefined + // TODO: should return a HashSet, not a Vec + pub fn identifiers(&self) -> Vec { + use self::Expr::*; + match *self { + Integer(_) | Float(_) => vec![], + Ident(ref s) => vec![s.clone()], + Der(ref e) | Abs(ref e) => e.identifiers(), + BinExpr(_, ref e1, ref e2) => { + union_strings(&e1.identifiers(), &e2.identifiers()) + }, + } + } + + pub fn contains(&self, ident: &str) -> bool{ + self.identifiers().contains(&ident.to_string()) + } +} + +impl SimpleEquation { + + // Order is undefined + pub fn identifiers(&self) -> Vec { + union_strings(&self.lhs.identifiers(), &self.rhs.identifiers()) + } + + pub fn contains(&self, ident: &str) -> bool{ + let s = &ident.to_string(); + self.lhs.identifiers().contains(s) || self.rhs.identifiers().contains(s) + } +} + +//// Debug Implementations + +impl Debug for ModelicaModel { + fn fmt(&self, fmt: &mut Formatter) -> Result<(), Error> { + try!(write!(fmt, "model {}\n", self.name)); + for e in self.extends.iter() { + try!(write!(fmt, " extends {};\n", e)); + } + for v in self.components.iter() { + try!(write!(fmt, " {:?};\n", v)); + } + try!(write!(fmt, "equation\n")); + for c in self.connections.iter() { + try!(write!(fmt, " {:?};\n", c)); + } + for e in self.equations.iter() { + try!(write!(fmt, " {:?};\n", e)); + } + write!(fmt, "end {};\n", self.name) + } +} + +impl Debug for ComponentPrefix { + fn fmt(&self, fmt: &mut Formatter) -> Result<(), Error> { + use self::ComponentPrefix::*; + write!(fmt, "{}", + match *self { + Flow => "flow", + Stream => "stream", + Input => "input", + Output => "output", + Discrete => "discrete", + Parameter => "parameter", + Constant => "constant", + }) + } +} + +impl Debug for Component { + fn fmt(&self, fmt: &mut Formatter) -> Result<(), Error> { + write!(fmt, "{}{} {}", + match self.prefix { + Some(p) => format!("{:?} ", p), + None => "".to_string(), + }, + self.specifier, + self.name, + ) + } +} + +impl Debug for Connection { + fn fmt(&self, fmt: &mut Formatter) -> Result<(), Error> { + write!(fmt, "connect({}, {})", self.a, self.b) + } +} + +impl Debug for SimpleEquation { + fn fmt(&self, fmt: &mut Formatter) -> Result<(), Error> { + write!(fmt, "{:?} = {:?}", self.lhs, self.rhs) + } +} + +impl Debug for Expr { + fn fmt(&self, fmt: &mut Formatter) -> Result<(), Error> { + use self::Expr::*; + match *self { + Integer(e) => write!(fmt, "{}", e), + Float(e) => write!(fmt, "{}", e), + Ident(ref e) => write!(fmt, "{}", e), + Der(ref e) => write!(fmt, "der({:?})", e), + Abs(ref e) => write!(fmt, "abs({:?})", e), + BinExpr(op, ref l, ref r) => write!(fmt, "({:?} {:?} {:?})", l, op, r), + } + } +} + +impl Debug for BinOperator { + fn fmt(&self, fmt: &mut Formatter) -> Result<(), Error> { + use self::BinOperator::*; + match *self { + Multiply => write!(fmt, "*"), + Divide => write!(fmt, "/"), + Add => write!(fmt, "+"), + Subtract => write!(fmt, "-"), + } + } +} diff --git a/modelica-parser-lalrpop/src/build.rs b/modelica-parser-lalrpop/src/build.rs new file mode 100644 index 0000000..23c7d3f --- /dev/null +++ b/modelica-parser-lalrpop/src/build.rs @@ -0,0 +1,5 @@ +extern crate lalrpop; + +fn main() { + lalrpop::process_root().unwrap(); +} diff --git a/modelica-parser-lalrpop/src/lib.rs b/modelica-parser-lalrpop/src/lib.rs new file mode 100644 index 0000000..f6f1e8b --- /dev/null +++ b/modelica-parser-lalrpop/src/lib.rs @@ -0,0 +1,65 @@ + +extern crate lalrpop_util; +extern crate colored; + +pub mod parser; +pub mod ast; + +use colored::*; +use lalrpop_util::ParseError; + + +fn pp_segment(raw: &str, start: usize, end: usize) -> String { + let mut line_start = 0; + let mut num = 0; + let mut ret = String::new(); + for line in raw.lines() { + num += 1; + let line_end = line_start + line.len(); + if (line_start <= start) && (start < line_end) { + ret += &format!(" {}\n{:>3} {} {}{}{}\n {} {}{}\n", + "|".blue().bold(), + num.to_string().blue().bold(), + "|".blue().bold(), + raw[line_start..start].normal(), + raw[start..end].red().bold(), + if end < line_end { + raw[end..line_end].normal() + } else { + "".normal() + }, + "|".blue().bold(), + std::iter::repeat(" ").take(start - line_start).collect::(), + std::iter::repeat("^").take(end - start).collect::().red().bold()); + } + line_start += line.len() + 1; + if line_start > end { break }; + } + ret +} + +pub fn pp_parseerror(raw: &str, pe: ParseError) -> String { + match pe { + ParseError::InvalidToken{location} => { + format!("{} invalid token starting at:\n{}", + "parse error:".red().bold(), + pp_segment(raw, location, location+1)) }, + ParseError::UnrecognizedToken{token: Some((start, (_, tok), end)), expected} => { + format!("{} unrecognized token '{}' (expected one of {:?}):\n{}", + "parse error:".red().bold(), + tok, + expected, + pp_segment(raw, start, end)) }, + ParseError::UnrecognizedToken{token: None, expected} => { + format!("{} premature end-of-file (expected one of {:?})", + "parse error:".red().bold(), + expected) }, + ParseError::ExtraToken{token: (start, (_, tok), end)} => { + format!("{} unexpected extra token '{}':\n{}", + "parse error:".red().bold(), + tok, + pp_segment(raw, start, end)) }, + _ => { + format!("{} {:?}", "parse error:".red().bold(), pe) }, + } +} diff --git a/modelica-parser-lalrpop/src/parser.lalrpop b/modelica-parser-lalrpop/src/parser.lalrpop new file mode 100644 index 0000000..cdd15b4 --- /dev/null +++ b/modelica-parser-lalrpop/src/parser.lalrpop @@ -0,0 +1,97 @@ +use std::str::FromStr; +use ast::{ModelicaModel,Component, ComponentPrefix, Connection, + SimpleEquation, Expr, BinOperator}; + +// This is an incomplete, non-standards-compliant, minimum-viable parser + +grammar; + +// Lexical Tokens + +pub identifier: String = { + r"[a-zA-Z_][a-zA-Z_0-9]*" => <>.to_string(), +}; + +string_literal: String = { + r#""[^"\\]*""# => <>.to_string(), + // => &s[1..s.len()-1], +}; + +pub integer: i64 = { + r"[+-]?\d+" => i64::from_str(<>).unwrap(), +}; + +pub float: f64 = { + r"[+-]?\d+\.\d*([eE][-+]?\d+)?" => f64::from_str(<>).unwrap(), +}; + + +// Grammar + +pub model: ModelicaModel = { + "model" "equation" "end" identifier ";" => + ModelicaModel { name:n, components: cd, connections: cc, equations: se, extends: vec![] }, +}; + +value_declaration: Expr = { + "=" => value +}; + +units_declaration: String = { + "(" "unit" "=" ")" => units +}; + +component_declaration: Component = { + ";" => + Component { prefix:prefix, specifier:specifier, name:name, description:desc, value:value, units:units }, +}; + +component_prefix: ComponentPrefix = { + "flow" => ComponentPrefix::Flow, + "stream" => ComponentPrefix::Stream, + "input" => ComponentPrefix::Input, + "output" => ComponentPrefix::Output, + "discrete" => ComponentPrefix::Discrete, + "parameter" => ComponentPrefix::Parameter, + "constant" => ComponentPrefix::Constant, +}; + +simple_equation: SimpleEquation = { + "=" ";" => SimpleEquation {lhs:lhs, rhs:rhs}, +}; + +connect_clause: Connection = { + "connect" "(" "," ")" ";" => + Connection { a: a.to_string(), b: b.to_string()}, +}; + +// This weird expr/factor/term hierarchy is for binary operator precedence +expr: Expr = { + "+" => + Expr::BinExpr(BinOperator::Add, Box::new(lhs), Box::new(rhs)), + "-" => + Expr::BinExpr(BinOperator::Subtract, Box::new(lhs), Box::new(rhs)), + factor, +}; + +factor: Expr = { + "*" => + Expr::BinExpr(BinOperator::Multiply, Box::new(lhs), Box::new(rhs)), + "/" => + Expr::BinExpr(BinOperator::Divide, Box::new(lhs), Box::new(rhs)), + "^" => + Expr::BinExpr(BinOperator::Divide, Box::new(lhs), Box::new(rhs)), + "-" => + Expr::BinExpr(BinOperator::Multiply, Box::new(Expr::Integer(-1)), Box::new(t)), + term, +}; + +term: Expr = { + integer => Expr::Integer(<>), + float => Expr::Float(<>), + identifier => Expr::Ident(<>), + "der" "(" ")" => Expr::Der(Box::new(e)), + "abs" "(" ")" => Expr::Abs(Box::new(e)), + "(" ")" => e, +}; + diff --git a/modelica-parser-lalrpop/src/parser.rs b/modelica-parser-lalrpop/src/parser.rs new file mode 100644 index 0000000..f364e84 --- /dev/null +++ b/modelica-parser-lalrpop/src/parser.rs @@ -0,0 +1,15955 @@ +use std::str::FromStr; +use ast::{ModelicaModel,Component, ComponentPrefix, Connection, + SimpleEquation, Expr, BinOperator}; +extern crate lalrpop_util as __lalrpop_util; + +mod __parse__float { + #![allow(non_snake_case, non_camel_case_types, unused_mut, unused_variables, unused_imports)] + + use std::str::FromStr; + use ast::{ModelicaModel,Component, ComponentPrefix, Connection, + SimpleEquation, Expr, BinOperator}; + extern crate lalrpop_util as __lalrpop_util; + #[allow(dead_code)] + pub enum __Symbol<'input> { + Term_22_28_22(&'input str), + Term_22_29_22(&'input str), + Term_22_2a_22(&'input str), + Term_22_2b_22(&'input str), + Term_22_2c_22(&'input str), + Term_22_2d_22(&'input str), + Term_22_2f_22(&'input str), + Term_22_3b_22(&'input str), + Term_22_3d_22(&'input str), + Term_22_5e_22(&'input str), + Term_22abs_22(&'input str), + Term_22connect_22(&'input str), + Term_22constant_22(&'input str), + Term_22der_22(&'input str), + Term_22discrete_22(&'input str), + Term_22end_22(&'input str), + Term_22equation_22(&'input str), + Term_22flow_22(&'input str), + Term_22input_22(&'input str), + Term_22model_22(&'input str), + Term_22output_22(&'input str), + Term_22parameter_22(&'input str), + Term_22stream_22(&'input str), + Term_22unit_22(&'input str), + Termr_23_22_5c_22_5b_5e_5c_22_5c_5c_5c_5c_5d_2a_5c_22_22_23(&'input str), + Termr_23_22_5b_2b_2d_5d_3f_5c_5cd_2b_22_23(&'input str), + Termr_23_22_5b_2b_2d_5d_3f_5c_5cd_2b_5c_5c_2e_5c_5cd_2a_28_5beE_5d_5b_2d_2b_5d_3f_5c_5cd_2b_29_3f_22_23(&'input str), + Termr_23_22_5ba_2dzA_2dZ___5d_5ba_2dzA_2dZ__0_2d9_5d_2a_22_23(&'input str), + Termerror(__lalrpop_util::ErrorRecovery), + Nt____float(f64), + Nt____identifier(String), + Nt____integer(i64), + Nt____model(ModelicaModel), + Ntcomponent__declaration(Component), + Ntcomponent__declaration_2a(::std::vec::Vec), + Ntcomponent__declaration_2b(::std::vec::Vec), + Ntcomponent__prefix(ComponentPrefix), + Ntcomponent__prefix_3f(::std::option::Option), + Ntconnect__clause(Connection), + Ntconnect__clause_2a(::std::vec::Vec), + Ntconnect__clause_2b(::std::vec::Vec), + Ntexpr(Expr), + Ntfactor(Expr), + Ntfloat(f64), + Ntidentifier(String), + Ntinteger(i64), + Ntmodel(ModelicaModel), + Ntsimple__equation(SimpleEquation), + Ntsimple__equation_2a(::std::vec::Vec), + Ntsimple__equation_2b(::std::vec::Vec), + Ntstring__literal(String), + Ntstring__literal_3f(::std::option::Option), + Ntterm(Expr), + Ntunits__declaration(String), + Ntunits__declaration_3f(::std::option::Option), + Ntvalue__declaration(Expr), + Ntvalue__declaration_3f(::std::option::Option), + } + const __ACTION: &'static [i32] = &[ + // State 0 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 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, + // State 2 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + ]; + const __EOF_ACTION: &'static [i32] = &[ + 0, + -1, + -47, + ]; + const __GOTO: &'static [i32] = &[ + // State 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, + // 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, + // State 2 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + ]; + pub fn parse_float< + 'input, + >( + input: &'input str, + ) -> Result> + { + let mut __tokens = super::__intern_token::__Matcher::new(input); + let mut __states = vec![0_i32]; + let mut __symbols = vec![]; + let mut __integer; + let mut __lookahead; + let mut __last_location = Default::default(); + '__shift: loop { + __lookahead = match __tokens.next() { + Some(Ok(v)) => v, + None => break '__shift, + Some(Err(e)) => return Err(e), + }; + __last_location = __lookahead.2.clone(); + __integer = match __lookahead.1 { + (0, _) if true => 0, + (1, _) if true => 1, + (2, _) if true => 2, + (3, _) if true => 3, + (4, _) if true => 4, + (5, _) if true => 5, + (6, _) if true => 6, + (7, _) if true => 7, + (8, _) if true => 8, + (9, _) if true => 9, + (10, _) if true => 10, + (11, _) if true => 11, + (12, _) if true => 12, + (13, _) if true => 13, + (14, _) if true => 14, + (15, _) if true => 15, + (16, _) if true => 16, + (17, _) if true => 17, + (18, _) if true => 18, + (19, _) if true => 19, + (20, _) if true => 20, + (21, _) if true => 21, + (22, _) if true => 22, + (23, _) if true => 23, + (24, _) if true => 24, + (25, _) if true => 25, + (26, _) if true => 26, + (27, _) if true => 27, + _ => { + return Err(__lalrpop_util::ParseError::UnrecognizedToken { + token: Some(__lookahead), + expected: vec![], + }); + } + }; + '__inner: loop { + let __state = *__states.last().unwrap() as usize; + let __action = __ACTION[__state * 29 + __integer]; + if __action > 0 { + let __symbol = match __integer { + 0 => match __lookahead.1 { + (0, __tok0) => __Symbol::Term_22_28_22(__tok0), + _ => unreachable!(), + }, + 1 => match __lookahead.1 { + (1, __tok0) => __Symbol::Term_22_29_22(__tok0), + _ => unreachable!(), + }, + 2 => match __lookahead.1 { + (2, __tok0) => __Symbol::Term_22_2a_22(__tok0), + _ => unreachable!(), + }, + 3 => match __lookahead.1 { + (3, __tok0) => __Symbol::Term_22_2b_22(__tok0), + _ => unreachable!(), + }, + 4 => match __lookahead.1 { + (4, __tok0) => __Symbol::Term_22_2c_22(__tok0), + _ => unreachable!(), + }, + 5 => match __lookahead.1 { + (5, __tok0) => __Symbol::Term_22_2d_22(__tok0), + _ => unreachable!(), + }, + 6 => match __lookahead.1 { + (6, __tok0) => __Symbol::Term_22_2f_22(__tok0), + _ => unreachable!(), + }, + 7 => match __lookahead.1 { + (7, __tok0) => __Symbol::Term_22_3b_22(__tok0), + _ => unreachable!(), + }, + 8 => match __lookahead.1 { + (8, __tok0) => __Symbol::Term_22_3d_22(__tok0), + _ => unreachable!(), + }, + 9 => match __lookahead.1 { + (9, __tok0) => __Symbol::Term_22_5e_22(__tok0), + _ => unreachable!(), + }, + 10 => match __lookahead.1 { + (10, __tok0) => __Symbol::Term_22abs_22(__tok0), + _ => unreachable!(), + }, + 11 => match __lookahead.1 { + (11, __tok0) => __Symbol::Term_22connect_22(__tok0), + _ => unreachable!(), + }, + 12 => match __lookahead.1 { + (12, __tok0) => __Symbol::Term_22constant_22(__tok0), + _ => unreachable!(), + }, + 13 => match __lookahead.1 { + (13, __tok0) => __Symbol::Term_22der_22(__tok0), + _ => unreachable!(), + }, + 14 => match __lookahead.1 { + (14, __tok0) => __Symbol::Term_22discrete_22(__tok0), + _ => unreachable!(), + }, + 15 => match __lookahead.1 { + (15, __tok0) => __Symbol::Term_22end_22(__tok0), + _ => unreachable!(), + }, + 16 => match __lookahead.1 { + (16, __tok0) => __Symbol::Term_22equation_22(__tok0), + _ => unreachable!(), + }, + 17 => match __lookahead.1 { + (17, __tok0) => __Symbol::Term_22flow_22(__tok0), + _ => unreachable!(), + }, + 18 => match __lookahead.1 { + (18, __tok0) => __Symbol::Term_22input_22(__tok0), + _ => unreachable!(), + }, + 19 => match __lookahead.1 { + (19, __tok0) => __Symbol::Term_22model_22(__tok0), + _ => unreachable!(), + }, + 20 => match __lookahead.1 { + (20, __tok0) => __Symbol::Term_22output_22(__tok0), + _ => unreachable!(), + }, + 21 => match __lookahead.1 { + (21, __tok0) => __Symbol::Term_22parameter_22(__tok0), + _ => unreachable!(), + }, + 22 => match __lookahead.1 { + (22, __tok0) => __Symbol::Term_22stream_22(__tok0), + _ => unreachable!(), + }, + 23 => match __lookahead.1 { + (23, __tok0) => __Symbol::Term_22unit_22(__tok0), + _ => unreachable!(), + }, + 24 => match __lookahead.1 { + (24, __tok0) => __Symbol::Termr_23_22_5c_22_5b_5e_5c_22_5c_5c_5c_5c_5d_2a_5c_22_22_23(__tok0), + _ => unreachable!(), + }, + 25 => match __lookahead.1 { + (25, __tok0) => __Symbol::Termr_23_22_5b_2b_2d_5d_3f_5c_5cd_2b_22_23(__tok0), + _ => unreachable!(), + }, + 26 => match __lookahead.1 { + (26, __tok0) => __Symbol::Termr_23_22_5b_2b_2d_5d_3f_5c_5cd_2b_5c_5c_2e_5c_5cd_2a_28_5beE_5d_5b_2d_2b_5d_3f_5c_5cd_2b_29_3f_22_23(__tok0), + _ => unreachable!(), + }, + 27 => match __lookahead.1 { + (27, __tok0) => __Symbol::Termr_23_22_5ba_2dzA_2dZ___5d_5ba_2dzA_2dZ__0_2d9_5d_2a_22_23(__tok0), + _ => unreachable!(), + }, + _ => unreachable!(), + }; + __states.push(__action - 1); + __symbols.push((__lookahead.0, __symbol, __lookahead.2)); + continue '__shift; + } else if __action < 0 { + if let Some(r) = __reduce(input, __action, Some(&__lookahead.0), &mut __states, &mut __symbols, ::std::marker::PhantomData::<()>) { + return r; + } + } else { + return Err(__lalrpop_util::ParseError::UnrecognizedToken { + token: Some(__lookahead), + expected: vec![], + }); + } + } + } + loop { + let __state = *__states.last().unwrap() as usize; + let __action = __EOF_ACTION[__state]; + if __action < 0 { + if let Some(r) = __reduce(input, __action, None, &mut __states, &mut __symbols, ::std::marker::PhantomData::<()>) { + return r; + } + } else { + let __error = __lalrpop_util::ParseError::UnrecognizedToken { + token: None, + expected: vec![], + }; + return Err(__error); + } + } + } + pub fn __reduce< + 'input, + >( + input: &'input str, + __action: i32, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<()>, + ) -> Option>> + { + let __nonterminal = match -__action { + 1 => { + // __float = float => ActionFn(2); + let __sym0 = __pop_Ntfloat(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action2::<>(input, __sym0); + return Some(Ok(__nt)); + } + 2 => { + // __identifier = identifier => ActionFn(0); + let __sym0 = __pop_Ntidentifier(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action0::<>(input, __sym0); + let __states_len = __states.len(); + __states.truncate(__states_len - 1); + __symbols.push((__start, __Symbol::Nt____identifier(__nt), __end)); + 1 + } + 3 => { + // __integer = integer => ActionFn(1); + let __sym0 = __pop_Ntinteger(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action1::<>(input, __sym0); + let __states_len = __states.len(); + __states.truncate(__states_len - 1); + __symbols.push((__start, __Symbol::Nt____integer(__nt), __end)); + 2 + } + 4 => { + // __model = model => ActionFn(3); + let __sym0 = __pop_Ntmodel(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action3::<>(input, __sym0); + let __states_len = __states.len(); + __states.truncate(__states_len - 1); + __symbols.push((__start, __Symbol::Nt____model(__nt), __end)); + 3 + } + 5 => { + // component_declaration = component_prefix, identifier, identifier, units_declaration, value_declaration, string_literal, ";" => ActionFn(83); + let __sym6 = __pop_Term_22_3b_22(__symbols); + let __sym5 = __pop_Ntstring__literal(__symbols); + let __sym4 = __pop_Ntvalue__declaration(__symbols); + let __sym3 = __pop_Ntunits__declaration(__symbols); + let __sym2 = __pop_Ntidentifier(__symbols); + let __sym1 = __pop_Ntidentifier(__symbols); + let __sym0 = __pop_Ntcomponent__prefix(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym6.2.clone(); + let __nt = super::__action83::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6); + let __states_len = __states.len(); + __states.truncate(__states_len - 7); + __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); + 4 + } + 6 => { + // component_declaration = component_prefix, identifier, identifier, units_declaration, string_literal, ";" => ActionFn(84); + let __sym5 = __pop_Term_22_3b_22(__symbols); + let __sym4 = __pop_Ntstring__literal(__symbols); + let __sym3 = __pop_Ntunits__declaration(__symbols); + let __sym2 = __pop_Ntidentifier(__symbols); + let __sym1 = __pop_Ntidentifier(__symbols); + let __sym0 = __pop_Ntcomponent__prefix(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym5.2.clone(); + let __nt = super::__action84::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5); + let __states_len = __states.len(); + __states.truncate(__states_len - 6); + __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); + 4 + } + 7 => { + // component_declaration = component_prefix, identifier, identifier, value_declaration, string_literal, ";" => ActionFn(85); + let __sym5 = __pop_Term_22_3b_22(__symbols); + let __sym4 = __pop_Ntstring__literal(__symbols); + let __sym3 = __pop_Ntvalue__declaration(__symbols); + let __sym2 = __pop_Ntidentifier(__symbols); + let __sym1 = __pop_Ntidentifier(__symbols); + let __sym0 = __pop_Ntcomponent__prefix(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym5.2.clone(); + let __nt = super::__action85::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5); + let __states_len = __states.len(); + __states.truncate(__states_len - 6); + __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); + 4 + } + 8 => { + // component_declaration = component_prefix, identifier, identifier, string_literal, ";" => ActionFn(86); + let __sym4 = __pop_Term_22_3b_22(__symbols); + let __sym3 = __pop_Ntstring__literal(__symbols); + let __sym2 = __pop_Ntidentifier(__symbols); + let __sym1 = __pop_Ntidentifier(__symbols); + let __sym0 = __pop_Ntcomponent__prefix(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym4.2.clone(); + let __nt = super::__action86::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4); + let __states_len = __states.len(); + __states.truncate(__states_len - 5); + __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); + 4 + } + 9 => { + // component_declaration = component_prefix, identifier, identifier, units_declaration, value_declaration, ";" => ActionFn(87); + let __sym5 = __pop_Term_22_3b_22(__symbols); + let __sym4 = __pop_Ntvalue__declaration(__symbols); + let __sym3 = __pop_Ntunits__declaration(__symbols); + let __sym2 = __pop_Ntidentifier(__symbols); + let __sym1 = __pop_Ntidentifier(__symbols); + let __sym0 = __pop_Ntcomponent__prefix(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym5.2.clone(); + let __nt = super::__action87::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5); + let __states_len = __states.len(); + __states.truncate(__states_len - 6); + __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); + 4 + } + 10 => { + // component_declaration = component_prefix, identifier, identifier, units_declaration, ";" => ActionFn(88); + let __sym4 = __pop_Term_22_3b_22(__symbols); + let __sym3 = __pop_Ntunits__declaration(__symbols); + let __sym2 = __pop_Ntidentifier(__symbols); + let __sym1 = __pop_Ntidentifier(__symbols); + let __sym0 = __pop_Ntcomponent__prefix(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym4.2.clone(); + let __nt = super::__action88::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4); + let __states_len = __states.len(); + __states.truncate(__states_len - 5); + __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); + 4 + } + 11 => { + // component_declaration = component_prefix, identifier, identifier, value_declaration, ";" => ActionFn(89); + let __sym4 = __pop_Term_22_3b_22(__symbols); + let __sym3 = __pop_Ntvalue__declaration(__symbols); + let __sym2 = __pop_Ntidentifier(__symbols); + let __sym1 = __pop_Ntidentifier(__symbols); + let __sym0 = __pop_Ntcomponent__prefix(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym4.2.clone(); + let __nt = super::__action89::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4); + let __states_len = __states.len(); + __states.truncate(__states_len - 5); + __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); + 4 + } + 12 => { + // component_declaration = component_prefix, identifier, identifier, ";" => ActionFn(90); + let __sym3 = __pop_Term_22_3b_22(__symbols); + let __sym2 = __pop_Ntidentifier(__symbols); + let __sym1 = __pop_Ntidentifier(__symbols); + let __sym0 = __pop_Ntcomponent__prefix(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym3.2.clone(); + let __nt = super::__action90::<>(input, __sym0, __sym1, __sym2, __sym3); + let __states_len = __states.len(); + __states.truncate(__states_len - 4); + __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); + 4 + } + 13 => { + // component_declaration = identifier, identifier, units_declaration, value_declaration, string_literal, ";" => ActionFn(91); + let __sym5 = __pop_Term_22_3b_22(__symbols); + let __sym4 = __pop_Ntstring__literal(__symbols); + let __sym3 = __pop_Ntvalue__declaration(__symbols); + let __sym2 = __pop_Ntunits__declaration(__symbols); + let __sym1 = __pop_Ntidentifier(__symbols); + let __sym0 = __pop_Ntidentifier(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym5.2.clone(); + let __nt = super::__action91::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5); + let __states_len = __states.len(); + __states.truncate(__states_len - 6); + __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); + 4 + } + 14 => { + // component_declaration = identifier, identifier, units_declaration, string_literal, ";" => ActionFn(92); + let __sym4 = __pop_Term_22_3b_22(__symbols); + let __sym3 = __pop_Ntstring__literal(__symbols); + let __sym2 = __pop_Ntunits__declaration(__symbols); + let __sym1 = __pop_Ntidentifier(__symbols); + let __sym0 = __pop_Ntidentifier(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym4.2.clone(); + let __nt = super::__action92::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4); + let __states_len = __states.len(); + __states.truncate(__states_len - 5); + __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); + 4 + } + 15 => { + // component_declaration = identifier, identifier, value_declaration, string_literal, ";" => ActionFn(93); + let __sym4 = __pop_Term_22_3b_22(__symbols); + let __sym3 = __pop_Ntstring__literal(__symbols); + let __sym2 = __pop_Ntvalue__declaration(__symbols); + let __sym1 = __pop_Ntidentifier(__symbols); + let __sym0 = __pop_Ntidentifier(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym4.2.clone(); + let __nt = super::__action93::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4); + let __states_len = __states.len(); + __states.truncate(__states_len - 5); + __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); + 4 + } + 16 => { + // component_declaration = identifier, identifier, string_literal, ";" => ActionFn(94); + let __sym3 = __pop_Term_22_3b_22(__symbols); + let __sym2 = __pop_Ntstring__literal(__symbols); + let __sym1 = __pop_Ntidentifier(__symbols); + let __sym0 = __pop_Ntidentifier(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym3.2.clone(); + let __nt = super::__action94::<>(input, __sym0, __sym1, __sym2, __sym3); + let __states_len = __states.len(); + __states.truncate(__states_len - 4); + __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); + 4 + } + 17 => { + // component_declaration = identifier, identifier, units_declaration, value_declaration, ";" => ActionFn(95); + let __sym4 = __pop_Term_22_3b_22(__symbols); + let __sym3 = __pop_Ntvalue__declaration(__symbols); + let __sym2 = __pop_Ntunits__declaration(__symbols); + let __sym1 = __pop_Ntidentifier(__symbols); + let __sym0 = __pop_Ntidentifier(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym4.2.clone(); + let __nt = super::__action95::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4); + let __states_len = __states.len(); + __states.truncate(__states_len - 5); + __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); + 4 + } + 18 => { + // component_declaration = identifier, identifier, units_declaration, ";" => ActionFn(96); + let __sym3 = __pop_Term_22_3b_22(__symbols); + let __sym2 = __pop_Ntunits__declaration(__symbols); + let __sym1 = __pop_Ntidentifier(__symbols); + let __sym0 = __pop_Ntidentifier(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym3.2.clone(); + let __nt = super::__action96::<>(input, __sym0, __sym1, __sym2, __sym3); + let __states_len = __states.len(); + __states.truncate(__states_len - 4); + __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); + 4 + } + 19 => { + // component_declaration = identifier, identifier, value_declaration, ";" => ActionFn(97); + let __sym3 = __pop_Term_22_3b_22(__symbols); + let __sym2 = __pop_Ntvalue__declaration(__symbols); + let __sym1 = __pop_Ntidentifier(__symbols); + let __sym0 = __pop_Ntidentifier(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym3.2.clone(); + let __nt = super::__action97::<>(input, __sym0, __sym1, __sym2, __sym3); + let __states_len = __states.len(); + __states.truncate(__states_len - 4); + __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); + 4 + } + 20 => { + // component_declaration = identifier, identifier, ";" => ActionFn(98); + let __sym2 = __pop_Term_22_3b_22(__symbols); + let __sym1 = __pop_Ntidentifier(__symbols); + let __sym0 = __pop_Ntidentifier(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym2.2.clone(); + let __nt = super::__action98::<>(input, __sym0, __sym1, __sym2); + let __states_len = __states.len(); + __states.truncate(__states_len - 3); + __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); + 4 + } + 21 => { + // component_declaration* = => ActionFn(47); + let __start = __symbols.last().map(|s| s.2.clone()).unwrap_or_default(); + let __end = __lookahead_start.cloned().unwrap_or_else(|| __start.clone()); + let __nt = super::__action47::<>(input, &__start, &__end); + let __states_len = __states.len(); + __states.truncate(__states_len - 0); + __symbols.push((__start, __Symbol::Ntcomponent__declaration_2a(__nt), __end)); + 5 + } + 22 => { + // component_declaration* = component_declaration+ => ActionFn(48); + let __sym0 = __pop_Ntcomponent__declaration_2b(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action48::<>(input, __sym0); + let __states_len = __states.len(); + __states.truncate(__states_len - 1); + __symbols.push((__start, __Symbol::Ntcomponent__declaration_2a(__nt), __end)); + 5 + } + 23 => { + // component_declaration+ = component_declaration => ActionFn(49); + let __sym0 = __pop_Ntcomponent__declaration(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action49::<>(input, __sym0); + let __states_len = __states.len(); + __states.truncate(__states_len - 1); + __symbols.push((__start, __Symbol::Ntcomponent__declaration_2b(__nt), __end)); + 6 + } + 24 => { + // component_declaration+ = component_declaration+, component_declaration => ActionFn(50); + let __sym1 = __pop_Ntcomponent__declaration(__symbols); + let __sym0 = __pop_Ntcomponent__declaration_2b(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym1.2.clone(); + let __nt = super::__action50::<>(input, __sym0, __sym1); + let __states_len = __states.len(); + __states.truncate(__states_len - 2); + __symbols.push((__start, __Symbol::Ntcomponent__declaration_2b(__nt), __end)); + 6 + } + 25 => { + // component_prefix = "flow" => ActionFn(12); + let __sym0 = __pop_Term_22flow_22(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action12::<>(input, __sym0); + let __states_len = __states.len(); + __states.truncate(__states_len - 1); + __symbols.push((__start, __Symbol::Ntcomponent__prefix(__nt), __end)); + 7 + } + 26 => { + // component_prefix = "stream" => ActionFn(13); + let __sym0 = __pop_Term_22stream_22(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action13::<>(input, __sym0); + let __states_len = __states.len(); + __states.truncate(__states_len - 1); + __symbols.push((__start, __Symbol::Ntcomponent__prefix(__nt), __end)); + 7 + } + 27 => { + // component_prefix = "input" => ActionFn(14); + let __sym0 = __pop_Term_22input_22(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action14::<>(input, __sym0); + let __states_len = __states.len(); + __states.truncate(__states_len - 1); + __symbols.push((__start, __Symbol::Ntcomponent__prefix(__nt), __end)); + 7 + } + 28 => { + // component_prefix = "output" => ActionFn(15); + let __sym0 = __pop_Term_22output_22(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action15::<>(input, __sym0); + let __states_len = __states.len(); + __states.truncate(__states_len - 1); + __symbols.push((__start, __Symbol::Ntcomponent__prefix(__nt), __end)); + 7 + } + 29 => { + // component_prefix = "discrete" => ActionFn(16); + let __sym0 = __pop_Term_22discrete_22(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action16::<>(input, __sym0); + let __states_len = __states.len(); + __states.truncate(__states_len - 1); + __symbols.push((__start, __Symbol::Ntcomponent__prefix(__nt), __end)); + 7 + } + 30 => { + // component_prefix = "parameter" => ActionFn(17); + let __sym0 = __pop_Term_22parameter_22(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action17::<>(input, __sym0); + let __states_len = __states.len(); + __states.truncate(__states_len - 1); + __symbols.push((__start, __Symbol::Ntcomponent__prefix(__nt), __end)); + 7 + } + 31 => { + // component_prefix = "constant" => ActionFn(18); + let __sym0 = __pop_Term_22constant_22(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action18::<>(input, __sym0); + let __states_len = __states.len(); + __states.truncate(__states_len - 1); + __symbols.push((__start, __Symbol::Ntcomponent__prefix(__nt), __end)); + 7 + } + 32 => { + // component_prefix? = component_prefix => ActionFn(41); + let __sym0 = __pop_Ntcomponent__prefix(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action41::<>(input, __sym0); + let __states_len = __states.len(); + __states.truncate(__states_len - 1); + __symbols.push((__start, __Symbol::Ntcomponent__prefix_3f(__nt), __end)); + 8 + } + 33 => { + // component_prefix? = => ActionFn(42); + let __start = __symbols.last().map(|s| s.2.clone()).unwrap_or_default(); + let __end = __lookahead_start.cloned().unwrap_or_else(|| __start.clone()); + let __nt = super::__action42::<>(input, &__start, &__end); + let __states_len = __states.len(); + __states.truncate(__states_len - 0); + __symbols.push((__start, __Symbol::Ntcomponent__prefix_3f(__nt), __end)); + 8 + } + 34 => { + // connect_clause = "connect", "(", identifier, ",", identifier, ")", ";" => ActionFn(20); + let __sym6 = __pop_Term_22_3b_22(__symbols); + let __sym5 = __pop_Term_22_29_22(__symbols); + let __sym4 = __pop_Ntidentifier(__symbols); + let __sym3 = __pop_Term_22_2c_22(__symbols); + let __sym2 = __pop_Ntidentifier(__symbols); + let __sym1 = __pop_Term_22_28_22(__symbols); + let __sym0 = __pop_Term_22connect_22(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym6.2.clone(); + let __nt = super::__action20::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6); + let __states_len = __states.len(); + __states.truncate(__states_len - 7); + __symbols.push((__start, __Symbol::Ntconnect__clause(__nt), __end)); + 9 + } + 35 => { + // connect_clause* = => ActionFn(45); + let __start = __symbols.last().map(|s| s.2.clone()).unwrap_or_default(); + let __end = __lookahead_start.cloned().unwrap_or_else(|| __start.clone()); + let __nt = super::__action45::<>(input, &__start, &__end); + let __states_len = __states.len(); + __states.truncate(__states_len - 0); + __symbols.push((__start, __Symbol::Ntconnect__clause_2a(__nt), __end)); + 10 + } + 36 => { + // connect_clause* = connect_clause+ => ActionFn(46); + let __sym0 = __pop_Ntconnect__clause_2b(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action46::<>(input, __sym0); + let __states_len = __states.len(); + __states.truncate(__states_len - 1); + __symbols.push((__start, __Symbol::Ntconnect__clause_2a(__nt), __end)); + 10 + } + 37 => { + // connect_clause+ = connect_clause => ActionFn(51); + let __sym0 = __pop_Ntconnect__clause(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action51::<>(input, __sym0); + let __states_len = __states.len(); + __states.truncate(__states_len - 1); + __symbols.push((__start, __Symbol::Ntconnect__clause_2b(__nt), __end)); + 11 + } + 38 => { + // connect_clause+ = connect_clause+, connect_clause => ActionFn(52); + let __sym1 = __pop_Ntconnect__clause(__symbols); + let __sym0 = __pop_Ntconnect__clause_2b(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym1.2.clone(); + let __nt = super::__action52::<>(input, __sym0, __sym1); + let __states_len = __states.len(); + __states.truncate(__states_len - 2); + __symbols.push((__start, __Symbol::Ntconnect__clause_2b(__nt), __end)); + 11 + } + 39 => { + // expr = expr, "+", factor => ActionFn(21); + let __sym2 = __pop_Ntfactor(__symbols); + let __sym1 = __pop_Term_22_2b_22(__symbols); + let __sym0 = __pop_Ntexpr(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym2.2.clone(); + let __nt = super::__action21::<>(input, __sym0, __sym1, __sym2); + let __states_len = __states.len(); + __states.truncate(__states_len - 3); + __symbols.push((__start, __Symbol::Ntexpr(__nt), __end)); + 12 + } + 40 => { + // expr = expr, "-", factor => ActionFn(22); + let __sym2 = __pop_Ntfactor(__symbols); + let __sym1 = __pop_Term_22_2d_22(__symbols); + let __sym0 = __pop_Ntexpr(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym2.2.clone(); + let __nt = super::__action22::<>(input, __sym0, __sym1, __sym2); + let __states_len = __states.len(); + __states.truncate(__states_len - 3); + __symbols.push((__start, __Symbol::Ntexpr(__nt), __end)); + 12 + } + 41 => { + // expr = factor => ActionFn(23); + let __sym0 = __pop_Ntfactor(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action23::<>(input, __sym0); + let __states_len = __states.len(); + __states.truncate(__states_len - 1); + __symbols.push((__start, __Symbol::Ntexpr(__nt), __end)); + 12 + } + 42 => { + // factor = factor, "*", term => ActionFn(24); + let __sym2 = __pop_Ntterm(__symbols); + let __sym1 = __pop_Term_22_2a_22(__symbols); + let __sym0 = __pop_Ntfactor(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym2.2.clone(); + let __nt = super::__action24::<>(input, __sym0, __sym1, __sym2); + let __states_len = __states.len(); + __states.truncate(__states_len - 3); + __symbols.push((__start, __Symbol::Ntfactor(__nt), __end)); + 13 + } + 43 => { + // factor = factor, "/", term => ActionFn(25); + let __sym2 = __pop_Ntterm(__symbols); + let __sym1 = __pop_Term_22_2f_22(__symbols); + let __sym0 = __pop_Ntfactor(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym2.2.clone(); + let __nt = super::__action25::<>(input, __sym0, __sym1, __sym2); + let __states_len = __states.len(); + __states.truncate(__states_len - 3); + __symbols.push((__start, __Symbol::Ntfactor(__nt), __end)); + 13 + } + 44 => { + // factor = factor, "^", term => ActionFn(26); + let __sym2 = __pop_Ntterm(__symbols); + let __sym1 = __pop_Term_22_5e_22(__symbols); + let __sym0 = __pop_Ntfactor(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym2.2.clone(); + let __nt = super::__action26::<>(input, __sym0, __sym1, __sym2); + let __states_len = __states.len(); + __states.truncate(__states_len - 3); + __symbols.push((__start, __Symbol::Ntfactor(__nt), __end)); + 13 + } + 45 => { + // factor = "-", term => ActionFn(27); + let __sym1 = __pop_Ntterm(__symbols); + let __sym0 = __pop_Term_22_2d_22(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym1.2.clone(); + let __nt = super::__action27::<>(input, __sym0, __sym1); + let __states_len = __states.len(); + __states.truncate(__states_len - 2); + __symbols.push((__start, __Symbol::Ntfactor(__nt), __end)); + 13 + } + 46 => { + // factor = term => ActionFn(28); + let __sym0 = __pop_Ntterm(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action28::<>(input, __sym0); + let __states_len = __states.len(); + __states.truncate(__states_len - 1); + __symbols.push((__start, __Symbol::Ntfactor(__nt), __end)); + 13 + } + 47 => { + // float = r#"[+-]?\\d+\\.\\d*([eE][-+]?\\d+)?"# => ActionFn(7); + let __sym0 = __pop_Termr_23_22_5b_2b_2d_5d_3f_5c_5cd_2b_5c_5c_2e_5c_5cd_2a_28_5beE_5d_5b_2d_2b_5d_3f_5c_5cd_2b_29_3f_22_23(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action7::<>(input, __sym0); + let __states_len = __states.len(); + __states.truncate(__states_len - 1); + __symbols.push((__start, __Symbol::Ntfloat(__nt), __end)); + 14 + } + 48 => { + // identifier = r#"[a-zA-Z_][a-zA-Z_0-9]*"# => ActionFn(4); + let __sym0 = __pop_Termr_23_22_5ba_2dzA_2dZ___5d_5ba_2dzA_2dZ__0_2d9_5d_2a_22_23(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action4::<>(input, __sym0); + let __states_len = __states.len(); + __states.truncate(__states_len - 1); + __symbols.push((__start, __Symbol::Ntidentifier(__nt), __end)); + 15 + } + 49 => { + // integer = r#"[+-]?\\d+"# => ActionFn(6); + let __sym0 = __pop_Termr_23_22_5b_2b_2d_5d_3f_5c_5cd_2b_22_23(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action6::<>(input, __sym0); + let __states_len = __states.len(); + __states.truncate(__states_len - 1); + __symbols.push((__start, __Symbol::Ntinteger(__nt), __end)); + 16 + } + 50 => { + // model = "model", identifier, "equation", "end", identifier, ";" => ActionFn(63); + let __sym5 = __pop_Term_22_3b_22(__symbols); + let __sym4 = __pop_Ntidentifier(__symbols); + let __sym3 = __pop_Term_22end_22(__symbols); + let __sym2 = __pop_Term_22equation_22(__symbols); + let __sym1 = __pop_Ntidentifier(__symbols); + let __sym0 = __pop_Term_22model_22(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym5.2.clone(); + let __nt = super::__action63::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5); + let __states_len = __states.len(); + __states.truncate(__states_len - 6); + __symbols.push((__start, __Symbol::Ntmodel(__nt), __end)); + 17 + } + 51 => { + // model = "model", identifier, "equation", simple_equation+, "end", identifier, ";" => ActionFn(64); + let __sym6 = __pop_Term_22_3b_22(__symbols); + let __sym5 = __pop_Ntidentifier(__symbols); + let __sym4 = __pop_Term_22end_22(__symbols); + let __sym3 = __pop_Ntsimple__equation_2b(__symbols); + let __sym2 = __pop_Term_22equation_22(__symbols); + let __sym1 = __pop_Ntidentifier(__symbols); + let __sym0 = __pop_Term_22model_22(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym6.2.clone(); + let __nt = super::__action64::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6); + let __states_len = __states.len(); + __states.truncate(__states_len - 7); + __symbols.push((__start, __Symbol::Ntmodel(__nt), __end)); + 17 + } + 52 => { + // model = "model", identifier, "equation", connect_clause+, "end", identifier, ";" => ActionFn(65); + let __sym6 = __pop_Term_22_3b_22(__symbols); + let __sym5 = __pop_Ntidentifier(__symbols); + let __sym4 = __pop_Term_22end_22(__symbols); + let __sym3 = __pop_Ntconnect__clause_2b(__symbols); + let __sym2 = __pop_Term_22equation_22(__symbols); + let __sym1 = __pop_Ntidentifier(__symbols); + let __sym0 = __pop_Term_22model_22(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym6.2.clone(); + let __nt = super::__action65::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6); + let __states_len = __states.len(); + __states.truncate(__states_len - 7); + __symbols.push((__start, __Symbol::Ntmodel(__nt), __end)); + 17 + } + 53 => { + // model = "model", identifier, "equation", connect_clause+, simple_equation+, "end", identifier, ";" => ActionFn(66); + let __sym7 = __pop_Term_22_3b_22(__symbols); + let __sym6 = __pop_Ntidentifier(__symbols); + let __sym5 = __pop_Term_22end_22(__symbols); + let __sym4 = __pop_Ntsimple__equation_2b(__symbols); + let __sym3 = __pop_Ntconnect__clause_2b(__symbols); + let __sym2 = __pop_Term_22equation_22(__symbols); + let __sym1 = __pop_Ntidentifier(__symbols); + let __sym0 = __pop_Term_22model_22(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym7.2.clone(); + let __nt = super::__action66::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7); + let __states_len = __states.len(); + __states.truncate(__states_len - 8); + __symbols.push((__start, __Symbol::Ntmodel(__nt), __end)); + 17 + } + 54 => { + // model = "model", identifier, component_declaration+, "equation", "end", identifier, ";" => ActionFn(67); + let __sym6 = __pop_Term_22_3b_22(__symbols); + let __sym5 = __pop_Ntidentifier(__symbols); + let __sym4 = __pop_Term_22end_22(__symbols); + let __sym3 = __pop_Term_22equation_22(__symbols); + let __sym2 = __pop_Ntcomponent__declaration_2b(__symbols); + let __sym1 = __pop_Ntidentifier(__symbols); + let __sym0 = __pop_Term_22model_22(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym6.2.clone(); + let __nt = super::__action67::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6); + let __states_len = __states.len(); + __states.truncate(__states_len - 7); + __symbols.push((__start, __Symbol::Ntmodel(__nt), __end)); + 17 + } + 55 => { + // model = "model", identifier, component_declaration+, "equation", simple_equation+, "end", identifier, ";" => ActionFn(68); + let __sym7 = __pop_Term_22_3b_22(__symbols); + let __sym6 = __pop_Ntidentifier(__symbols); + let __sym5 = __pop_Term_22end_22(__symbols); + let __sym4 = __pop_Ntsimple__equation_2b(__symbols); + let __sym3 = __pop_Term_22equation_22(__symbols); + let __sym2 = __pop_Ntcomponent__declaration_2b(__symbols); + let __sym1 = __pop_Ntidentifier(__symbols); + let __sym0 = __pop_Term_22model_22(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym7.2.clone(); + let __nt = super::__action68::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7); + let __states_len = __states.len(); + __states.truncate(__states_len - 8); + __symbols.push((__start, __Symbol::Ntmodel(__nt), __end)); + 17 + } + 56 => { + // model = "model", identifier, component_declaration+, "equation", connect_clause+, "end", identifier, ";" => ActionFn(69); + let __sym7 = __pop_Term_22_3b_22(__symbols); + let __sym6 = __pop_Ntidentifier(__symbols); + let __sym5 = __pop_Term_22end_22(__symbols); + let __sym4 = __pop_Ntconnect__clause_2b(__symbols); + let __sym3 = __pop_Term_22equation_22(__symbols); + let __sym2 = __pop_Ntcomponent__declaration_2b(__symbols); + let __sym1 = __pop_Ntidentifier(__symbols); + let __sym0 = __pop_Term_22model_22(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym7.2.clone(); + let __nt = super::__action69::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7); + let __states_len = __states.len(); + __states.truncate(__states_len - 8); + __symbols.push((__start, __Symbol::Ntmodel(__nt), __end)); + 17 + } + 57 => { + // model = "model", identifier, component_declaration+, "equation", connect_clause+, simple_equation+, "end", identifier, ";" => ActionFn(70); + let __sym8 = __pop_Term_22_3b_22(__symbols); + let __sym7 = __pop_Ntidentifier(__symbols); + let __sym6 = __pop_Term_22end_22(__symbols); + let __sym5 = __pop_Ntsimple__equation_2b(__symbols); + let __sym4 = __pop_Ntconnect__clause_2b(__symbols); + let __sym3 = __pop_Term_22equation_22(__symbols); + let __sym2 = __pop_Ntcomponent__declaration_2b(__symbols); + let __sym1 = __pop_Ntidentifier(__symbols); + let __sym0 = __pop_Term_22model_22(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym8.2.clone(); + let __nt = super::__action70::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7, __sym8); + let __states_len = __states.len(); + __states.truncate(__states_len - 9); + __symbols.push((__start, __Symbol::Ntmodel(__nt), __end)); + 17 + } + 58 => { + // simple_equation = expr, "=", expr, ";" => ActionFn(19); + let __sym3 = __pop_Term_22_3b_22(__symbols); + let __sym2 = __pop_Ntexpr(__symbols); + let __sym1 = __pop_Term_22_3d_22(__symbols); + let __sym0 = __pop_Ntexpr(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym3.2.clone(); + let __nt = super::__action19::<>(input, __sym0, __sym1, __sym2, __sym3); + let __states_len = __states.len(); + __states.truncate(__states_len - 4); + __symbols.push((__start, __Symbol::Ntsimple__equation(__nt), __end)); + 18 + } + 59 => { + // simple_equation* = => ActionFn(43); + let __start = __symbols.last().map(|s| s.2.clone()).unwrap_or_default(); + let __end = __lookahead_start.cloned().unwrap_or_else(|| __start.clone()); + let __nt = super::__action43::<>(input, &__start, &__end); + let __states_len = __states.len(); + __states.truncate(__states_len - 0); + __symbols.push((__start, __Symbol::Ntsimple__equation_2a(__nt), __end)); + 19 + } + 60 => { + // simple_equation* = simple_equation+ => ActionFn(44); + let __sym0 = __pop_Ntsimple__equation_2b(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action44::<>(input, __sym0); + let __states_len = __states.len(); + __states.truncate(__states_len - 1); + __symbols.push((__start, __Symbol::Ntsimple__equation_2a(__nt), __end)); + 19 + } + 61 => { + // simple_equation+ = simple_equation => ActionFn(53); + let __sym0 = __pop_Ntsimple__equation(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action53::<>(input, __sym0); + let __states_len = __states.len(); + __states.truncate(__states_len - 1); + __symbols.push((__start, __Symbol::Ntsimple__equation_2b(__nt), __end)); + 20 + } + 62 => { + // simple_equation+ = simple_equation+, simple_equation => ActionFn(54); + let __sym1 = __pop_Ntsimple__equation(__symbols); + let __sym0 = __pop_Ntsimple__equation_2b(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym1.2.clone(); + let __nt = super::__action54::<>(input, __sym0, __sym1); + let __states_len = __states.len(); + __states.truncate(__states_len - 2); + __symbols.push((__start, __Symbol::Ntsimple__equation_2b(__nt), __end)); + 20 + } + 63 => { + // string_literal = r#"\"[^\"\\\\]*\""# => ActionFn(5); + let __sym0 = __pop_Termr_23_22_5c_22_5b_5e_5c_22_5c_5c_5c_5c_5d_2a_5c_22_22_23(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action5::<>(input, __sym0); + let __states_len = __states.len(); + __states.truncate(__states_len - 1); + __symbols.push((__start, __Symbol::Ntstring__literal(__nt), __end)); + 21 + } + 64 => { + // string_literal? = string_literal => ActionFn(35); + let __sym0 = __pop_Ntstring__literal(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action35::<>(input, __sym0); + let __states_len = __states.len(); + __states.truncate(__states_len - 1); + __symbols.push((__start, __Symbol::Ntstring__literal_3f(__nt), __end)); + 22 + } + 65 => { + // string_literal? = => ActionFn(36); + let __start = __symbols.last().map(|s| s.2.clone()).unwrap_or_default(); + let __end = __lookahead_start.cloned().unwrap_or_else(|| __start.clone()); + let __nt = super::__action36::<>(input, &__start, &__end); + let __states_len = __states.len(); + __states.truncate(__states_len - 0); + __symbols.push((__start, __Symbol::Ntstring__literal_3f(__nt), __end)); + 22 + } + 66 => { + // term = integer => ActionFn(29); + let __sym0 = __pop_Ntinteger(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action29::<>(input, __sym0); + let __states_len = __states.len(); + __states.truncate(__states_len - 1); + __symbols.push((__start, __Symbol::Ntterm(__nt), __end)); + 23 + } + 67 => { + // term = float => ActionFn(30); + let __sym0 = __pop_Ntfloat(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action30::<>(input, __sym0); + let __states_len = __states.len(); + __states.truncate(__states_len - 1); + __symbols.push((__start, __Symbol::Ntterm(__nt), __end)); + 23 + } + 68 => { + // term = identifier => ActionFn(31); + let __sym0 = __pop_Ntidentifier(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action31::<>(input, __sym0); + let __states_len = __states.len(); + __states.truncate(__states_len - 1); + __symbols.push((__start, __Symbol::Ntterm(__nt), __end)); + 23 + } + 69 => { + // term = "der", "(", expr, ")" => ActionFn(32); + let __sym3 = __pop_Term_22_29_22(__symbols); + let __sym2 = __pop_Ntexpr(__symbols); + let __sym1 = __pop_Term_22_28_22(__symbols); + let __sym0 = __pop_Term_22der_22(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym3.2.clone(); + let __nt = super::__action32::<>(input, __sym0, __sym1, __sym2, __sym3); + let __states_len = __states.len(); + __states.truncate(__states_len - 4); + __symbols.push((__start, __Symbol::Ntterm(__nt), __end)); + 23 + } + 70 => { + // term = "abs", "(", expr, ")" => ActionFn(33); + let __sym3 = __pop_Term_22_29_22(__symbols); + let __sym2 = __pop_Ntexpr(__symbols); + let __sym1 = __pop_Term_22_28_22(__symbols); + let __sym0 = __pop_Term_22abs_22(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym3.2.clone(); + let __nt = super::__action33::<>(input, __sym0, __sym1, __sym2, __sym3); + let __states_len = __states.len(); + __states.truncate(__states_len - 4); + __symbols.push((__start, __Symbol::Ntterm(__nt), __end)); + 23 + } + 71 => { + // term = "(", expr, ")" => ActionFn(34); + let __sym2 = __pop_Term_22_29_22(__symbols); + let __sym1 = __pop_Ntexpr(__symbols); + let __sym0 = __pop_Term_22_28_22(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym2.2.clone(); + let __nt = super::__action34::<>(input, __sym0, __sym1, __sym2); + let __states_len = __states.len(); + __states.truncate(__states_len - 3); + __symbols.push((__start, __Symbol::Ntterm(__nt), __end)); + 23 + } + 72 => { + // units_declaration = "(", "unit", "=", string_literal, ")" => ActionFn(10); + let __sym4 = __pop_Term_22_29_22(__symbols); + let __sym3 = __pop_Ntstring__literal(__symbols); + let __sym2 = __pop_Term_22_3d_22(__symbols); + let __sym1 = __pop_Term_22unit_22(__symbols); + let __sym0 = __pop_Term_22_28_22(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym4.2.clone(); + let __nt = super::__action10::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4); + let __states_len = __states.len(); + __states.truncate(__states_len - 5); + __symbols.push((__start, __Symbol::Ntunits__declaration(__nt), __end)); + 24 + } + 73 => { + // units_declaration? = units_declaration => ActionFn(39); + let __sym0 = __pop_Ntunits__declaration(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action39::<>(input, __sym0); + let __states_len = __states.len(); + __states.truncate(__states_len - 1); + __symbols.push((__start, __Symbol::Ntunits__declaration_3f(__nt), __end)); + 25 + } + 74 => { + // units_declaration? = => ActionFn(40); + let __start = __symbols.last().map(|s| s.2.clone()).unwrap_or_default(); + let __end = __lookahead_start.cloned().unwrap_or_else(|| __start.clone()); + let __nt = super::__action40::<>(input, &__start, &__end); + let __states_len = __states.len(); + __states.truncate(__states_len - 0); + __symbols.push((__start, __Symbol::Ntunits__declaration_3f(__nt), __end)); + 25 + } + 75 => { + // value_declaration = "=", expr => ActionFn(9); + let __sym1 = __pop_Ntexpr(__symbols); + let __sym0 = __pop_Term_22_3d_22(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym1.2.clone(); + let __nt = super::__action9::<>(input, __sym0, __sym1); + let __states_len = __states.len(); + __states.truncate(__states_len - 2); + __symbols.push((__start, __Symbol::Ntvalue__declaration(__nt), __end)); + 26 + } + 76 => { + // value_declaration? = value_declaration => ActionFn(37); + let __sym0 = __pop_Ntvalue__declaration(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action37::<>(input, __sym0); + let __states_len = __states.len(); + __states.truncate(__states_len - 1); + __symbols.push((__start, __Symbol::Ntvalue__declaration_3f(__nt), __end)); + 27 + } + 77 => { + // value_declaration? = => ActionFn(38); + let __start = __symbols.last().map(|s| s.2.clone()).unwrap_or_default(); + let __end = __lookahead_start.cloned().unwrap_or_else(|| __start.clone()); + let __nt = super::__action38::<>(input, &__start, &__end); + let __states_len = __states.len(); + __states.truncate(__states_len - 0); + __symbols.push((__start, __Symbol::Ntvalue__declaration_3f(__nt), __end)); + 27 + } + _ => panic!("invalid action code {}", __action) + }; + let __state = *__states.last().unwrap() as usize; + let __next_state = __GOTO[__state * 28 + __nonterminal] - 1; + __states.push(__next_state); + None + } + fn __pop_Term_22_28_22< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, &'input str, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Term_22_28_22(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Term_22_29_22< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, &'input str, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Term_22_29_22(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Term_22_2a_22< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, &'input str, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Term_22_2a_22(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Term_22_2b_22< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, &'input str, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Term_22_2b_22(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Term_22_2c_22< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, &'input str, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Term_22_2c_22(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Term_22_2d_22< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, &'input str, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Term_22_2d_22(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Term_22_2f_22< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, &'input str, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Term_22_2f_22(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Term_22_3b_22< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, &'input str, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Term_22_3b_22(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Term_22_3d_22< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, &'input str, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Term_22_3d_22(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Term_22_5e_22< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, &'input str, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Term_22_5e_22(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Term_22abs_22< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, &'input str, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Term_22abs_22(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Term_22connect_22< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, &'input str, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Term_22connect_22(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Term_22constant_22< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, &'input str, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Term_22constant_22(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Term_22der_22< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, &'input str, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Term_22der_22(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Term_22discrete_22< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, &'input str, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Term_22discrete_22(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Term_22end_22< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, &'input str, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Term_22end_22(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Term_22equation_22< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, &'input str, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Term_22equation_22(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Term_22flow_22< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, &'input str, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Term_22flow_22(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Term_22input_22< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, &'input str, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Term_22input_22(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Term_22model_22< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, &'input str, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Term_22model_22(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Term_22output_22< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, &'input str, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Term_22output_22(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Term_22parameter_22< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, &'input str, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Term_22parameter_22(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Term_22stream_22< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, &'input str, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Term_22stream_22(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Term_22unit_22< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, &'input str, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Term_22unit_22(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Termr_23_22_5c_22_5b_5e_5c_22_5c_5c_5c_5c_5d_2a_5c_22_22_23< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, &'input str, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Termr_23_22_5c_22_5b_5e_5c_22_5c_5c_5c_5c_5d_2a_5c_22_22_23(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Termr_23_22_5b_2b_2d_5d_3f_5c_5cd_2b_22_23< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, &'input str, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Termr_23_22_5b_2b_2d_5d_3f_5c_5cd_2b_22_23(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Termr_23_22_5b_2b_2d_5d_3f_5c_5cd_2b_5c_5c_2e_5c_5cd_2a_28_5beE_5d_5b_2d_2b_5d_3f_5c_5cd_2b_29_3f_22_23< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, &'input str, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Termr_23_22_5b_2b_2d_5d_3f_5c_5cd_2b_5c_5c_2e_5c_5cd_2a_28_5beE_5d_5b_2d_2b_5d_3f_5c_5cd_2b_29_3f_22_23(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Termr_23_22_5ba_2dzA_2dZ___5d_5ba_2dzA_2dZ__0_2d9_5d_2a_22_23< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, &'input str, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Termr_23_22_5ba_2dzA_2dZ___5d_5ba_2dzA_2dZ__0_2d9_5d_2a_22_23(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Termerror< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, __lalrpop_util::ErrorRecovery, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Termerror(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Nt____float< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, f64, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Nt____float(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Nt____identifier< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, String, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Nt____identifier(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Nt____integer< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, i64, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Nt____integer(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Nt____model< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, ModelicaModel, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Nt____model(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Ntcomponent__declaration< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, Component, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Ntcomponent__declaration(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Ntcomponent__declaration_2a< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, ::std::vec::Vec, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Ntcomponent__declaration_2a(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Ntcomponent__declaration_2b< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, ::std::vec::Vec, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Ntcomponent__declaration_2b(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Ntcomponent__prefix< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, ComponentPrefix, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Ntcomponent__prefix(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Ntcomponent__prefix_3f< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, ::std::option::Option, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Ntcomponent__prefix_3f(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Ntconnect__clause< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, Connection, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Ntconnect__clause(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Ntconnect__clause_2a< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, ::std::vec::Vec, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Ntconnect__clause_2a(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Ntconnect__clause_2b< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, ::std::vec::Vec, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Ntconnect__clause_2b(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Ntexpr< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, Expr, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Ntexpr(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Ntfactor< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, Expr, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Ntfactor(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Ntfloat< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, f64, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Ntfloat(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Ntidentifier< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, String, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Ntidentifier(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Ntinteger< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, i64, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Ntinteger(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Ntmodel< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, ModelicaModel, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Ntmodel(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Ntsimple__equation< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, SimpleEquation, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Ntsimple__equation(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Ntsimple__equation_2a< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, ::std::vec::Vec, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Ntsimple__equation_2a(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Ntsimple__equation_2b< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, ::std::vec::Vec, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Ntsimple__equation_2b(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Ntstring__literal< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, String, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Ntstring__literal(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Ntstring__literal_3f< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, ::std::option::Option, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Ntstring__literal_3f(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Ntterm< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, Expr, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Ntterm(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Ntunits__declaration< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, String, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Ntunits__declaration(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Ntunits__declaration_3f< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, ::std::option::Option, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Ntunits__declaration_3f(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Ntvalue__declaration< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, Expr, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Ntvalue__declaration(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Ntvalue__declaration_3f< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, ::std::option::Option, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Ntvalue__declaration_3f(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } +} +pub use self::__parse__float::parse_float; + +mod __parse__identifier { + #![allow(non_snake_case, non_camel_case_types, unused_mut, unused_variables, unused_imports)] + + use std::str::FromStr; + use ast::{ModelicaModel,Component, ComponentPrefix, Connection, + SimpleEquation, Expr, BinOperator}; + extern crate lalrpop_util as __lalrpop_util; + #[allow(dead_code)] + pub enum __Symbol<'input> { + Term_22_28_22(&'input str), + Term_22_29_22(&'input str), + Term_22_2a_22(&'input str), + Term_22_2b_22(&'input str), + Term_22_2c_22(&'input str), + Term_22_2d_22(&'input str), + Term_22_2f_22(&'input str), + Term_22_3b_22(&'input str), + Term_22_3d_22(&'input str), + Term_22_5e_22(&'input str), + Term_22abs_22(&'input str), + Term_22connect_22(&'input str), + Term_22constant_22(&'input str), + Term_22der_22(&'input str), + Term_22discrete_22(&'input str), + Term_22end_22(&'input str), + Term_22equation_22(&'input str), + Term_22flow_22(&'input str), + Term_22input_22(&'input str), + Term_22model_22(&'input str), + Term_22output_22(&'input str), + Term_22parameter_22(&'input str), + Term_22stream_22(&'input str), + Term_22unit_22(&'input str), + Termr_23_22_5c_22_5b_5e_5c_22_5c_5c_5c_5c_5d_2a_5c_22_22_23(&'input str), + Termr_23_22_5b_2b_2d_5d_3f_5c_5cd_2b_22_23(&'input str), + Termr_23_22_5b_2b_2d_5d_3f_5c_5cd_2b_5c_5c_2e_5c_5cd_2a_28_5beE_5d_5b_2d_2b_5d_3f_5c_5cd_2b_29_3f_22_23(&'input str), + Termr_23_22_5ba_2dzA_2dZ___5d_5ba_2dzA_2dZ__0_2d9_5d_2a_22_23(&'input str), + Termerror(__lalrpop_util::ErrorRecovery), + Nt____float(f64), + Nt____identifier(String), + Nt____integer(i64), + Nt____model(ModelicaModel), + Ntcomponent__declaration(Component), + Ntcomponent__declaration_2a(::std::vec::Vec), + Ntcomponent__declaration_2b(::std::vec::Vec), + Ntcomponent__prefix(ComponentPrefix), + Ntcomponent__prefix_3f(::std::option::Option), + Ntconnect__clause(Connection), + Ntconnect__clause_2a(::std::vec::Vec), + Ntconnect__clause_2b(::std::vec::Vec), + Ntexpr(Expr), + Ntfactor(Expr), + Ntfloat(f64), + Ntidentifier(String), + Ntinteger(i64), + Ntmodel(ModelicaModel), + Ntsimple__equation(SimpleEquation), + Ntsimple__equation_2a(::std::vec::Vec), + Ntsimple__equation_2b(::std::vec::Vec), + Ntstring__literal(String), + Ntstring__literal_3f(::std::option::Option), + Ntterm(Expr), + Ntunits__declaration(String), + Ntunits__declaration_3f(::std::option::Option), + Ntvalue__declaration(Expr), + Ntvalue__declaration_3f(::std::option::Option), + } + const __ACTION: &'static [i32] = &[ + // State 0 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 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, + // State 2 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + ]; + const __EOF_ACTION: &'static [i32] = &[ + 0, + -2, + -48, + ]; + const __GOTO: &'static [i32] = &[ + // State 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, + // 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, + // State 2 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + ]; + pub fn parse_identifier< + 'input, + >( + input: &'input str, + ) -> Result> + { + let mut __tokens = super::__intern_token::__Matcher::new(input); + let mut __states = vec![0_i32]; + let mut __symbols = vec![]; + let mut __integer; + let mut __lookahead; + let mut __last_location = Default::default(); + '__shift: loop { + __lookahead = match __tokens.next() { + Some(Ok(v)) => v, + None => break '__shift, + Some(Err(e)) => return Err(e), + }; + __last_location = __lookahead.2.clone(); + __integer = match __lookahead.1 { + (0, _) if true => 0, + (1, _) if true => 1, + (2, _) if true => 2, + (3, _) if true => 3, + (4, _) if true => 4, + (5, _) if true => 5, + (6, _) if true => 6, + (7, _) if true => 7, + (8, _) if true => 8, + (9, _) if true => 9, + (10, _) if true => 10, + (11, _) if true => 11, + (12, _) if true => 12, + (13, _) if true => 13, + (14, _) if true => 14, + (15, _) if true => 15, + (16, _) if true => 16, + (17, _) if true => 17, + (18, _) if true => 18, + (19, _) if true => 19, + (20, _) if true => 20, + (21, _) if true => 21, + (22, _) if true => 22, + (23, _) if true => 23, + (24, _) if true => 24, + (25, _) if true => 25, + (26, _) if true => 26, + (27, _) if true => 27, + _ => { + return Err(__lalrpop_util::ParseError::UnrecognizedToken { + token: Some(__lookahead), + expected: vec![], + }); + } + }; + '__inner: loop { + let __state = *__states.last().unwrap() as usize; + let __action = __ACTION[__state * 29 + __integer]; + if __action > 0 { + let __symbol = match __integer { + 0 => match __lookahead.1 { + (0, __tok0) => __Symbol::Term_22_28_22(__tok0), + _ => unreachable!(), + }, + 1 => match __lookahead.1 { + (1, __tok0) => __Symbol::Term_22_29_22(__tok0), + _ => unreachable!(), + }, + 2 => match __lookahead.1 { + (2, __tok0) => __Symbol::Term_22_2a_22(__tok0), + _ => unreachable!(), + }, + 3 => match __lookahead.1 { + (3, __tok0) => __Symbol::Term_22_2b_22(__tok0), + _ => unreachable!(), + }, + 4 => match __lookahead.1 { + (4, __tok0) => __Symbol::Term_22_2c_22(__tok0), + _ => unreachable!(), + }, + 5 => match __lookahead.1 { + (5, __tok0) => __Symbol::Term_22_2d_22(__tok0), + _ => unreachable!(), + }, + 6 => match __lookahead.1 { + (6, __tok0) => __Symbol::Term_22_2f_22(__tok0), + _ => unreachable!(), + }, + 7 => match __lookahead.1 { + (7, __tok0) => __Symbol::Term_22_3b_22(__tok0), + _ => unreachable!(), + }, + 8 => match __lookahead.1 { + (8, __tok0) => __Symbol::Term_22_3d_22(__tok0), + _ => unreachable!(), + }, + 9 => match __lookahead.1 { + (9, __tok0) => __Symbol::Term_22_5e_22(__tok0), + _ => unreachable!(), + }, + 10 => match __lookahead.1 { + (10, __tok0) => __Symbol::Term_22abs_22(__tok0), + _ => unreachable!(), + }, + 11 => match __lookahead.1 { + (11, __tok0) => __Symbol::Term_22connect_22(__tok0), + _ => unreachable!(), + }, + 12 => match __lookahead.1 { + (12, __tok0) => __Symbol::Term_22constant_22(__tok0), + _ => unreachable!(), + }, + 13 => match __lookahead.1 { + (13, __tok0) => __Symbol::Term_22der_22(__tok0), + _ => unreachable!(), + }, + 14 => match __lookahead.1 { + (14, __tok0) => __Symbol::Term_22discrete_22(__tok0), + _ => unreachable!(), + }, + 15 => match __lookahead.1 { + (15, __tok0) => __Symbol::Term_22end_22(__tok0), + _ => unreachable!(), + }, + 16 => match __lookahead.1 { + (16, __tok0) => __Symbol::Term_22equation_22(__tok0), + _ => unreachable!(), + }, + 17 => match __lookahead.1 { + (17, __tok0) => __Symbol::Term_22flow_22(__tok0), + _ => unreachable!(), + }, + 18 => match __lookahead.1 { + (18, __tok0) => __Symbol::Term_22input_22(__tok0), + _ => unreachable!(), + }, + 19 => match __lookahead.1 { + (19, __tok0) => __Symbol::Term_22model_22(__tok0), + _ => unreachable!(), + }, + 20 => match __lookahead.1 { + (20, __tok0) => __Symbol::Term_22output_22(__tok0), + _ => unreachable!(), + }, + 21 => match __lookahead.1 { + (21, __tok0) => __Symbol::Term_22parameter_22(__tok0), + _ => unreachable!(), + }, + 22 => match __lookahead.1 { + (22, __tok0) => __Symbol::Term_22stream_22(__tok0), + _ => unreachable!(), + }, + 23 => match __lookahead.1 { + (23, __tok0) => __Symbol::Term_22unit_22(__tok0), + _ => unreachable!(), + }, + 24 => match __lookahead.1 { + (24, __tok0) => __Symbol::Termr_23_22_5c_22_5b_5e_5c_22_5c_5c_5c_5c_5d_2a_5c_22_22_23(__tok0), + _ => unreachable!(), + }, + 25 => match __lookahead.1 { + (25, __tok0) => __Symbol::Termr_23_22_5b_2b_2d_5d_3f_5c_5cd_2b_22_23(__tok0), + _ => unreachable!(), + }, + 26 => match __lookahead.1 { + (26, __tok0) => __Symbol::Termr_23_22_5b_2b_2d_5d_3f_5c_5cd_2b_5c_5c_2e_5c_5cd_2a_28_5beE_5d_5b_2d_2b_5d_3f_5c_5cd_2b_29_3f_22_23(__tok0), + _ => unreachable!(), + }, + 27 => match __lookahead.1 { + (27, __tok0) => __Symbol::Termr_23_22_5ba_2dzA_2dZ___5d_5ba_2dzA_2dZ__0_2d9_5d_2a_22_23(__tok0), + _ => unreachable!(), + }, + _ => unreachable!(), + }; + __states.push(__action - 1); + __symbols.push((__lookahead.0, __symbol, __lookahead.2)); + continue '__shift; + } else if __action < 0 { + if let Some(r) = __reduce(input, __action, Some(&__lookahead.0), &mut __states, &mut __symbols, ::std::marker::PhantomData::<()>) { + return r; + } + } else { + return Err(__lalrpop_util::ParseError::UnrecognizedToken { + token: Some(__lookahead), + expected: vec![], + }); + } + } + } + loop { + let __state = *__states.last().unwrap() as usize; + let __action = __EOF_ACTION[__state]; + if __action < 0 { + if let Some(r) = __reduce(input, __action, None, &mut __states, &mut __symbols, ::std::marker::PhantomData::<()>) { + return r; + } + } else { + let __error = __lalrpop_util::ParseError::UnrecognizedToken { + token: None, + expected: vec![], + }; + return Err(__error); + } + } + } + pub fn __reduce< + 'input, + >( + input: &'input str, + __action: i32, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<()>, + ) -> Option>> + { + let __nonterminal = match -__action { + 1 => { + // __float = float => ActionFn(2); + let __sym0 = __pop_Ntfloat(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action2::<>(input, __sym0); + let __states_len = __states.len(); + __states.truncate(__states_len - 1); + __symbols.push((__start, __Symbol::Nt____float(__nt), __end)); + 0 + } + 2 => { + // __identifier = identifier => ActionFn(0); + let __sym0 = __pop_Ntidentifier(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action0::<>(input, __sym0); + return Some(Ok(__nt)); + } + 3 => { + // __integer = integer => ActionFn(1); + let __sym0 = __pop_Ntinteger(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action1::<>(input, __sym0); + let __states_len = __states.len(); + __states.truncate(__states_len - 1); + __symbols.push((__start, __Symbol::Nt____integer(__nt), __end)); + 2 + } + 4 => { + // __model = model => ActionFn(3); + let __sym0 = __pop_Ntmodel(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action3::<>(input, __sym0); + let __states_len = __states.len(); + __states.truncate(__states_len - 1); + __symbols.push((__start, __Symbol::Nt____model(__nt), __end)); + 3 + } + 5 => { + // component_declaration = component_prefix, identifier, identifier, units_declaration, value_declaration, string_literal, ";" => ActionFn(83); + let __sym6 = __pop_Term_22_3b_22(__symbols); + let __sym5 = __pop_Ntstring__literal(__symbols); + let __sym4 = __pop_Ntvalue__declaration(__symbols); + let __sym3 = __pop_Ntunits__declaration(__symbols); + let __sym2 = __pop_Ntidentifier(__symbols); + let __sym1 = __pop_Ntidentifier(__symbols); + let __sym0 = __pop_Ntcomponent__prefix(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym6.2.clone(); + let __nt = super::__action83::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6); + let __states_len = __states.len(); + __states.truncate(__states_len - 7); + __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); + 4 + } + 6 => { + // component_declaration = component_prefix, identifier, identifier, units_declaration, string_literal, ";" => ActionFn(84); + let __sym5 = __pop_Term_22_3b_22(__symbols); + let __sym4 = __pop_Ntstring__literal(__symbols); + let __sym3 = __pop_Ntunits__declaration(__symbols); + let __sym2 = __pop_Ntidentifier(__symbols); + let __sym1 = __pop_Ntidentifier(__symbols); + let __sym0 = __pop_Ntcomponent__prefix(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym5.2.clone(); + let __nt = super::__action84::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5); + let __states_len = __states.len(); + __states.truncate(__states_len - 6); + __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); + 4 + } + 7 => { + // component_declaration = component_prefix, identifier, identifier, value_declaration, string_literal, ";" => ActionFn(85); + let __sym5 = __pop_Term_22_3b_22(__symbols); + let __sym4 = __pop_Ntstring__literal(__symbols); + let __sym3 = __pop_Ntvalue__declaration(__symbols); + let __sym2 = __pop_Ntidentifier(__symbols); + let __sym1 = __pop_Ntidentifier(__symbols); + let __sym0 = __pop_Ntcomponent__prefix(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym5.2.clone(); + let __nt = super::__action85::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5); + let __states_len = __states.len(); + __states.truncate(__states_len - 6); + __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); + 4 + } + 8 => { + // component_declaration = component_prefix, identifier, identifier, string_literal, ";" => ActionFn(86); + let __sym4 = __pop_Term_22_3b_22(__symbols); + let __sym3 = __pop_Ntstring__literal(__symbols); + let __sym2 = __pop_Ntidentifier(__symbols); + let __sym1 = __pop_Ntidentifier(__symbols); + let __sym0 = __pop_Ntcomponent__prefix(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym4.2.clone(); + let __nt = super::__action86::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4); + let __states_len = __states.len(); + __states.truncate(__states_len - 5); + __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); + 4 + } + 9 => { + // component_declaration = component_prefix, identifier, identifier, units_declaration, value_declaration, ";" => ActionFn(87); + let __sym5 = __pop_Term_22_3b_22(__symbols); + let __sym4 = __pop_Ntvalue__declaration(__symbols); + let __sym3 = __pop_Ntunits__declaration(__symbols); + let __sym2 = __pop_Ntidentifier(__symbols); + let __sym1 = __pop_Ntidentifier(__symbols); + let __sym0 = __pop_Ntcomponent__prefix(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym5.2.clone(); + let __nt = super::__action87::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5); + let __states_len = __states.len(); + __states.truncate(__states_len - 6); + __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); + 4 + } + 10 => { + // component_declaration = component_prefix, identifier, identifier, units_declaration, ";" => ActionFn(88); + let __sym4 = __pop_Term_22_3b_22(__symbols); + let __sym3 = __pop_Ntunits__declaration(__symbols); + let __sym2 = __pop_Ntidentifier(__symbols); + let __sym1 = __pop_Ntidentifier(__symbols); + let __sym0 = __pop_Ntcomponent__prefix(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym4.2.clone(); + let __nt = super::__action88::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4); + let __states_len = __states.len(); + __states.truncate(__states_len - 5); + __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); + 4 + } + 11 => { + // component_declaration = component_prefix, identifier, identifier, value_declaration, ";" => ActionFn(89); + let __sym4 = __pop_Term_22_3b_22(__symbols); + let __sym3 = __pop_Ntvalue__declaration(__symbols); + let __sym2 = __pop_Ntidentifier(__symbols); + let __sym1 = __pop_Ntidentifier(__symbols); + let __sym0 = __pop_Ntcomponent__prefix(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym4.2.clone(); + let __nt = super::__action89::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4); + let __states_len = __states.len(); + __states.truncate(__states_len - 5); + __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); + 4 + } + 12 => { + // component_declaration = component_prefix, identifier, identifier, ";" => ActionFn(90); + let __sym3 = __pop_Term_22_3b_22(__symbols); + let __sym2 = __pop_Ntidentifier(__symbols); + let __sym1 = __pop_Ntidentifier(__symbols); + let __sym0 = __pop_Ntcomponent__prefix(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym3.2.clone(); + let __nt = super::__action90::<>(input, __sym0, __sym1, __sym2, __sym3); + let __states_len = __states.len(); + __states.truncate(__states_len - 4); + __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); + 4 + } + 13 => { + // component_declaration = identifier, identifier, units_declaration, value_declaration, string_literal, ";" => ActionFn(91); + let __sym5 = __pop_Term_22_3b_22(__symbols); + let __sym4 = __pop_Ntstring__literal(__symbols); + let __sym3 = __pop_Ntvalue__declaration(__symbols); + let __sym2 = __pop_Ntunits__declaration(__symbols); + let __sym1 = __pop_Ntidentifier(__symbols); + let __sym0 = __pop_Ntidentifier(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym5.2.clone(); + let __nt = super::__action91::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5); + let __states_len = __states.len(); + __states.truncate(__states_len - 6); + __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); + 4 + } + 14 => { + // component_declaration = identifier, identifier, units_declaration, string_literal, ";" => ActionFn(92); + let __sym4 = __pop_Term_22_3b_22(__symbols); + let __sym3 = __pop_Ntstring__literal(__symbols); + let __sym2 = __pop_Ntunits__declaration(__symbols); + let __sym1 = __pop_Ntidentifier(__symbols); + let __sym0 = __pop_Ntidentifier(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym4.2.clone(); + let __nt = super::__action92::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4); + let __states_len = __states.len(); + __states.truncate(__states_len - 5); + __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); + 4 + } + 15 => { + // component_declaration = identifier, identifier, value_declaration, string_literal, ";" => ActionFn(93); + let __sym4 = __pop_Term_22_3b_22(__symbols); + let __sym3 = __pop_Ntstring__literal(__symbols); + let __sym2 = __pop_Ntvalue__declaration(__symbols); + let __sym1 = __pop_Ntidentifier(__symbols); + let __sym0 = __pop_Ntidentifier(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym4.2.clone(); + let __nt = super::__action93::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4); + let __states_len = __states.len(); + __states.truncate(__states_len - 5); + __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); + 4 + } + 16 => { + // component_declaration = identifier, identifier, string_literal, ";" => ActionFn(94); + let __sym3 = __pop_Term_22_3b_22(__symbols); + let __sym2 = __pop_Ntstring__literal(__symbols); + let __sym1 = __pop_Ntidentifier(__symbols); + let __sym0 = __pop_Ntidentifier(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym3.2.clone(); + let __nt = super::__action94::<>(input, __sym0, __sym1, __sym2, __sym3); + let __states_len = __states.len(); + __states.truncate(__states_len - 4); + __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); + 4 + } + 17 => { + // component_declaration = identifier, identifier, units_declaration, value_declaration, ";" => ActionFn(95); + let __sym4 = __pop_Term_22_3b_22(__symbols); + let __sym3 = __pop_Ntvalue__declaration(__symbols); + let __sym2 = __pop_Ntunits__declaration(__symbols); + let __sym1 = __pop_Ntidentifier(__symbols); + let __sym0 = __pop_Ntidentifier(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym4.2.clone(); + let __nt = super::__action95::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4); + let __states_len = __states.len(); + __states.truncate(__states_len - 5); + __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); + 4 + } + 18 => { + // component_declaration = identifier, identifier, units_declaration, ";" => ActionFn(96); + let __sym3 = __pop_Term_22_3b_22(__symbols); + let __sym2 = __pop_Ntunits__declaration(__symbols); + let __sym1 = __pop_Ntidentifier(__symbols); + let __sym0 = __pop_Ntidentifier(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym3.2.clone(); + let __nt = super::__action96::<>(input, __sym0, __sym1, __sym2, __sym3); + let __states_len = __states.len(); + __states.truncate(__states_len - 4); + __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); + 4 + } + 19 => { + // component_declaration = identifier, identifier, value_declaration, ";" => ActionFn(97); + let __sym3 = __pop_Term_22_3b_22(__symbols); + let __sym2 = __pop_Ntvalue__declaration(__symbols); + let __sym1 = __pop_Ntidentifier(__symbols); + let __sym0 = __pop_Ntidentifier(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym3.2.clone(); + let __nt = super::__action97::<>(input, __sym0, __sym1, __sym2, __sym3); + let __states_len = __states.len(); + __states.truncate(__states_len - 4); + __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); + 4 + } + 20 => { + // component_declaration = identifier, identifier, ";" => ActionFn(98); + let __sym2 = __pop_Term_22_3b_22(__symbols); + let __sym1 = __pop_Ntidentifier(__symbols); + let __sym0 = __pop_Ntidentifier(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym2.2.clone(); + let __nt = super::__action98::<>(input, __sym0, __sym1, __sym2); + let __states_len = __states.len(); + __states.truncate(__states_len - 3); + __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); + 4 + } + 21 => { + // component_declaration* = => ActionFn(47); + let __start = __symbols.last().map(|s| s.2.clone()).unwrap_or_default(); + let __end = __lookahead_start.cloned().unwrap_or_else(|| __start.clone()); + let __nt = super::__action47::<>(input, &__start, &__end); + let __states_len = __states.len(); + __states.truncate(__states_len - 0); + __symbols.push((__start, __Symbol::Ntcomponent__declaration_2a(__nt), __end)); + 5 + } + 22 => { + // component_declaration* = component_declaration+ => ActionFn(48); + let __sym0 = __pop_Ntcomponent__declaration_2b(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action48::<>(input, __sym0); + let __states_len = __states.len(); + __states.truncate(__states_len - 1); + __symbols.push((__start, __Symbol::Ntcomponent__declaration_2a(__nt), __end)); + 5 + } + 23 => { + // component_declaration+ = component_declaration => ActionFn(49); + let __sym0 = __pop_Ntcomponent__declaration(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action49::<>(input, __sym0); + let __states_len = __states.len(); + __states.truncate(__states_len - 1); + __symbols.push((__start, __Symbol::Ntcomponent__declaration_2b(__nt), __end)); + 6 + } + 24 => { + // component_declaration+ = component_declaration+, component_declaration => ActionFn(50); + let __sym1 = __pop_Ntcomponent__declaration(__symbols); + let __sym0 = __pop_Ntcomponent__declaration_2b(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym1.2.clone(); + let __nt = super::__action50::<>(input, __sym0, __sym1); + let __states_len = __states.len(); + __states.truncate(__states_len - 2); + __symbols.push((__start, __Symbol::Ntcomponent__declaration_2b(__nt), __end)); + 6 + } + 25 => { + // component_prefix = "flow" => ActionFn(12); + let __sym0 = __pop_Term_22flow_22(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action12::<>(input, __sym0); + let __states_len = __states.len(); + __states.truncate(__states_len - 1); + __symbols.push((__start, __Symbol::Ntcomponent__prefix(__nt), __end)); + 7 + } + 26 => { + // component_prefix = "stream" => ActionFn(13); + let __sym0 = __pop_Term_22stream_22(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action13::<>(input, __sym0); + let __states_len = __states.len(); + __states.truncate(__states_len - 1); + __symbols.push((__start, __Symbol::Ntcomponent__prefix(__nt), __end)); + 7 + } + 27 => { + // component_prefix = "input" => ActionFn(14); + let __sym0 = __pop_Term_22input_22(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action14::<>(input, __sym0); + let __states_len = __states.len(); + __states.truncate(__states_len - 1); + __symbols.push((__start, __Symbol::Ntcomponent__prefix(__nt), __end)); + 7 + } + 28 => { + // component_prefix = "output" => ActionFn(15); + let __sym0 = __pop_Term_22output_22(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action15::<>(input, __sym0); + let __states_len = __states.len(); + __states.truncate(__states_len - 1); + __symbols.push((__start, __Symbol::Ntcomponent__prefix(__nt), __end)); + 7 + } + 29 => { + // component_prefix = "discrete" => ActionFn(16); + let __sym0 = __pop_Term_22discrete_22(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action16::<>(input, __sym0); + let __states_len = __states.len(); + __states.truncate(__states_len - 1); + __symbols.push((__start, __Symbol::Ntcomponent__prefix(__nt), __end)); + 7 + } + 30 => { + // component_prefix = "parameter" => ActionFn(17); + let __sym0 = __pop_Term_22parameter_22(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action17::<>(input, __sym0); + let __states_len = __states.len(); + __states.truncate(__states_len - 1); + __symbols.push((__start, __Symbol::Ntcomponent__prefix(__nt), __end)); + 7 + } + 31 => { + // component_prefix = "constant" => ActionFn(18); + let __sym0 = __pop_Term_22constant_22(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action18::<>(input, __sym0); + let __states_len = __states.len(); + __states.truncate(__states_len - 1); + __symbols.push((__start, __Symbol::Ntcomponent__prefix(__nt), __end)); + 7 + } + 32 => { + // component_prefix? = component_prefix => ActionFn(41); + let __sym0 = __pop_Ntcomponent__prefix(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action41::<>(input, __sym0); + let __states_len = __states.len(); + __states.truncate(__states_len - 1); + __symbols.push((__start, __Symbol::Ntcomponent__prefix_3f(__nt), __end)); + 8 + } + 33 => { + // component_prefix? = => ActionFn(42); + let __start = __symbols.last().map(|s| s.2.clone()).unwrap_or_default(); + let __end = __lookahead_start.cloned().unwrap_or_else(|| __start.clone()); + let __nt = super::__action42::<>(input, &__start, &__end); + let __states_len = __states.len(); + __states.truncate(__states_len - 0); + __symbols.push((__start, __Symbol::Ntcomponent__prefix_3f(__nt), __end)); + 8 + } + 34 => { + // connect_clause = "connect", "(", identifier, ",", identifier, ")", ";" => ActionFn(20); + let __sym6 = __pop_Term_22_3b_22(__symbols); + let __sym5 = __pop_Term_22_29_22(__symbols); + let __sym4 = __pop_Ntidentifier(__symbols); + let __sym3 = __pop_Term_22_2c_22(__symbols); + let __sym2 = __pop_Ntidentifier(__symbols); + let __sym1 = __pop_Term_22_28_22(__symbols); + let __sym0 = __pop_Term_22connect_22(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym6.2.clone(); + let __nt = super::__action20::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6); + let __states_len = __states.len(); + __states.truncate(__states_len - 7); + __symbols.push((__start, __Symbol::Ntconnect__clause(__nt), __end)); + 9 + } + 35 => { + // connect_clause* = => ActionFn(45); + let __start = __symbols.last().map(|s| s.2.clone()).unwrap_or_default(); + let __end = __lookahead_start.cloned().unwrap_or_else(|| __start.clone()); + let __nt = super::__action45::<>(input, &__start, &__end); + let __states_len = __states.len(); + __states.truncate(__states_len - 0); + __symbols.push((__start, __Symbol::Ntconnect__clause_2a(__nt), __end)); + 10 + } + 36 => { + // connect_clause* = connect_clause+ => ActionFn(46); + let __sym0 = __pop_Ntconnect__clause_2b(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action46::<>(input, __sym0); + let __states_len = __states.len(); + __states.truncate(__states_len - 1); + __symbols.push((__start, __Symbol::Ntconnect__clause_2a(__nt), __end)); + 10 + } + 37 => { + // connect_clause+ = connect_clause => ActionFn(51); + let __sym0 = __pop_Ntconnect__clause(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action51::<>(input, __sym0); + let __states_len = __states.len(); + __states.truncate(__states_len - 1); + __symbols.push((__start, __Symbol::Ntconnect__clause_2b(__nt), __end)); + 11 + } + 38 => { + // connect_clause+ = connect_clause+, connect_clause => ActionFn(52); + let __sym1 = __pop_Ntconnect__clause(__symbols); + let __sym0 = __pop_Ntconnect__clause_2b(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym1.2.clone(); + let __nt = super::__action52::<>(input, __sym0, __sym1); + let __states_len = __states.len(); + __states.truncate(__states_len - 2); + __symbols.push((__start, __Symbol::Ntconnect__clause_2b(__nt), __end)); + 11 + } + 39 => { + // expr = expr, "+", factor => ActionFn(21); + let __sym2 = __pop_Ntfactor(__symbols); + let __sym1 = __pop_Term_22_2b_22(__symbols); + let __sym0 = __pop_Ntexpr(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym2.2.clone(); + let __nt = super::__action21::<>(input, __sym0, __sym1, __sym2); + let __states_len = __states.len(); + __states.truncate(__states_len - 3); + __symbols.push((__start, __Symbol::Ntexpr(__nt), __end)); + 12 + } + 40 => { + // expr = expr, "-", factor => ActionFn(22); + let __sym2 = __pop_Ntfactor(__symbols); + let __sym1 = __pop_Term_22_2d_22(__symbols); + let __sym0 = __pop_Ntexpr(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym2.2.clone(); + let __nt = super::__action22::<>(input, __sym0, __sym1, __sym2); + let __states_len = __states.len(); + __states.truncate(__states_len - 3); + __symbols.push((__start, __Symbol::Ntexpr(__nt), __end)); + 12 + } + 41 => { + // expr = factor => ActionFn(23); + let __sym0 = __pop_Ntfactor(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action23::<>(input, __sym0); + let __states_len = __states.len(); + __states.truncate(__states_len - 1); + __symbols.push((__start, __Symbol::Ntexpr(__nt), __end)); + 12 + } + 42 => { + // factor = factor, "*", term => ActionFn(24); + let __sym2 = __pop_Ntterm(__symbols); + let __sym1 = __pop_Term_22_2a_22(__symbols); + let __sym0 = __pop_Ntfactor(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym2.2.clone(); + let __nt = super::__action24::<>(input, __sym0, __sym1, __sym2); + let __states_len = __states.len(); + __states.truncate(__states_len - 3); + __symbols.push((__start, __Symbol::Ntfactor(__nt), __end)); + 13 + } + 43 => { + // factor = factor, "/", term => ActionFn(25); + let __sym2 = __pop_Ntterm(__symbols); + let __sym1 = __pop_Term_22_2f_22(__symbols); + let __sym0 = __pop_Ntfactor(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym2.2.clone(); + let __nt = super::__action25::<>(input, __sym0, __sym1, __sym2); + let __states_len = __states.len(); + __states.truncate(__states_len - 3); + __symbols.push((__start, __Symbol::Ntfactor(__nt), __end)); + 13 + } + 44 => { + // factor = factor, "^", term => ActionFn(26); + let __sym2 = __pop_Ntterm(__symbols); + let __sym1 = __pop_Term_22_5e_22(__symbols); + let __sym0 = __pop_Ntfactor(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym2.2.clone(); + let __nt = super::__action26::<>(input, __sym0, __sym1, __sym2); + let __states_len = __states.len(); + __states.truncate(__states_len - 3); + __symbols.push((__start, __Symbol::Ntfactor(__nt), __end)); + 13 + } + 45 => { + // factor = "-", term => ActionFn(27); + let __sym1 = __pop_Ntterm(__symbols); + let __sym0 = __pop_Term_22_2d_22(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym1.2.clone(); + let __nt = super::__action27::<>(input, __sym0, __sym1); + let __states_len = __states.len(); + __states.truncate(__states_len - 2); + __symbols.push((__start, __Symbol::Ntfactor(__nt), __end)); + 13 + } + 46 => { + // factor = term => ActionFn(28); + let __sym0 = __pop_Ntterm(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action28::<>(input, __sym0); + let __states_len = __states.len(); + __states.truncate(__states_len - 1); + __symbols.push((__start, __Symbol::Ntfactor(__nt), __end)); + 13 + } + 47 => { + // float = r#"[+-]?\\d+\\.\\d*([eE][-+]?\\d+)?"# => ActionFn(7); + let __sym0 = __pop_Termr_23_22_5b_2b_2d_5d_3f_5c_5cd_2b_5c_5c_2e_5c_5cd_2a_28_5beE_5d_5b_2d_2b_5d_3f_5c_5cd_2b_29_3f_22_23(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action7::<>(input, __sym0); + let __states_len = __states.len(); + __states.truncate(__states_len - 1); + __symbols.push((__start, __Symbol::Ntfloat(__nt), __end)); + 14 + } + 48 => { + // identifier = r#"[a-zA-Z_][a-zA-Z_0-9]*"# => ActionFn(4); + let __sym0 = __pop_Termr_23_22_5ba_2dzA_2dZ___5d_5ba_2dzA_2dZ__0_2d9_5d_2a_22_23(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action4::<>(input, __sym0); + let __states_len = __states.len(); + __states.truncate(__states_len - 1); + __symbols.push((__start, __Symbol::Ntidentifier(__nt), __end)); + 15 + } + 49 => { + // integer = r#"[+-]?\\d+"# => ActionFn(6); + let __sym0 = __pop_Termr_23_22_5b_2b_2d_5d_3f_5c_5cd_2b_22_23(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action6::<>(input, __sym0); + let __states_len = __states.len(); + __states.truncate(__states_len - 1); + __symbols.push((__start, __Symbol::Ntinteger(__nt), __end)); + 16 + } + 50 => { + // model = "model", identifier, "equation", "end", identifier, ";" => ActionFn(63); + let __sym5 = __pop_Term_22_3b_22(__symbols); + let __sym4 = __pop_Ntidentifier(__symbols); + let __sym3 = __pop_Term_22end_22(__symbols); + let __sym2 = __pop_Term_22equation_22(__symbols); + let __sym1 = __pop_Ntidentifier(__symbols); + let __sym0 = __pop_Term_22model_22(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym5.2.clone(); + let __nt = super::__action63::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5); + let __states_len = __states.len(); + __states.truncate(__states_len - 6); + __symbols.push((__start, __Symbol::Ntmodel(__nt), __end)); + 17 + } + 51 => { + // model = "model", identifier, "equation", simple_equation+, "end", identifier, ";" => ActionFn(64); + let __sym6 = __pop_Term_22_3b_22(__symbols); + let __sym5 = __pop_Ntidentifier(__symbols); + let __sym4 = __pop_Term_22end_22(__symbols); + let __sym3 = __pop_Ntsimple__equation_2b(__symbols); + let __sym2 = __pop_Term_22equation_22(__symbols); + let __sym1 = __pop_Ntidentifier(__symbols); + let __sym0 = __pop_Term_22model_22(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym6.2.clone(); + let __nt = super::__action64::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6); + let __states_len = __states.len(); + __states.truncate(__states_len - 7); + __symbols.push((__start, __Symbol::Ntmodel(__nt), __end)); + 17 + } + 52 => { + // model = "model", identifier, "equation", connect_clause+, "end", identifier, ";" => ActionFn(65); + let __sym6 = __pop_Term_22_3b_22(__symbols); + let __sym5 = __pop_Ntidentifier(__symbols); + let __sym4 = __pop_Term_22end_22(__symbols); + let __sym3 = __pop_Ntconnect__clause_2b(__symbols); + let __sym2 = __pop_Term_22equation_22(__symbols); + let __sym1 = __pop_Ntidentifier(__symbols); + let __sym0 = __pop_Term_22model_22(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym6.2.clone(); + let __nt = super::__action65::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6); + let __states_len = __states.len(); + __states.truncate(__states_len - 7); + __symbols.push((__start, __Symbol::Ntmodel(__nt), __end)); + 17 + } + 53 => { + // model = "model", identifier, "equation", connect_clause+, simple_equation+, "end", identifier, ";" => ActionFn(66); + let __sym7 = __pop_Term_22_3b_22(__symbols); + let __sym6 = __pop_Ntidentifier(__symbols); + let __sym5 = __pop_Term_22end_22(__symbols); + let __sym4 = __pop_Ntsimple__equation_2b(__symbols); + let __sym3 = __pop_Ntconnect__clause_2b(__symbols); + let __sym2 = __pop_Term_22equation_22(__symbols); + let __sym1 = __pop_Ntidentifier(__symbols); + let __sym0 = __pop_Term_22model_22(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym7.2.clone(); + let __nt = super::__action66::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7); + let __states_len = __states.len(); + __states.truncate(__states_len - 8); + __symbols.push((__start, __Symbol::Ntmodel(__nt), __end)); + 17 + } + 54 => { + // model = "model", identifier, component_declaration+, "equation", "end", identifier, ";" => ActionFn(67); + let __sym6 = __pop_Term_22_3b_22(__symbols); + let __sym5 = __pop_Ntidentifier(__symbols); + let __sym4 = __pop_Term_22end_22(__symbols); + let __sym3 = __pop_Term_22equation_22(__symbols); + let __sym2 = __pop_Ntcomponent__declaration_2b(__symbols); + let __sym1 = __pop_Ntidentifier(__symbols); + let __sym0 = __pop_Term_22model_22(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym6.2.clone(); + let __nt = super::__action67::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6); + let __states_len = __states.len(); + __states.truncate(__states_len - 7); + __symbols.push((__start, __Symbol::Ntmodel(__nt), __end)); + 17 + } + 55 => { + // model = "model", identifier, component_declaration+, "equation", simple_equation+, "end", identifier, ";" => ActionFn(68); + let __sym7 = __pop_Term_22_3b_22(__symbols); + let __sym6 = __pop_Ntidentifier(__symbols); + let __sym5 = __pop_Term_22end_22(__symbols); + let __sym4 = __pop_Ntsimple__equation_2b(__symbols); + let __sym3 = __pop_Term_22equation_22(__symbols); + let __sym2 = __pop_Ntcomponent__declaration_2b(__symbols); + let __sym1 = __pop_Ntidentifier(__symbols); + let __sym0 = __pop_Term_22model_22(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym7.2.clone(); + let __nt = super::__action68::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7); + let __states_len = __states.len(); + __states.truncate(__states_len - 8); + __symbols.push((__start, __Symbol::Ntmodel(__nt), __end)); + 17 + } + 56 => { + // model = "model", identifier, component_declaration+, "equation", connect_clause+, "end", identifier, ";" => ActionFn(69); + let __sym7 = __pop_Term_22_3b_22(__symbols); + let __sym6 = __pop_Ntidentifier(__symbols); + let __sym5 = __pop_Term_22end_22(__symbols); + let __sym4 = __pop_Ntconnect__clause_2b(__symbols); + let __sym3 = __pop_Term_22equation_22(__symbols); + let __sym2 = __pop_Ntcomponent__declaration_2b(__symbols); + let __sym1 = __pop_Ntidentifier(__symbols); + let __sym0 = __pop_Term_22model_22(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym7.2.clone(); + let __nt = super::__action69::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7); + let __states_len = __states.len(); + __states.truncate(__states_len - 8); + __symbols.push((__start, __Symbol::Ntmodel(__nt), __end)); + 17 + } + 57 => { + // model = "model", identifier, component_declaration+, "equation", connect_clause+, simple_equation+, "end", identifier, ";" => ActionFn(70); + let __sym8 = __pop_Term_22_3b_22(__symbols); + let __sym7 = __pop_Ntidentifier(__symbols); + let __sym6 = __pop_Term_22end_22(__symbols); + let __sym5 = __pop_Ntsimple__equation_2b(__symbols); + let __sym4 = __pop_Ntconnect__clause_2b(__symbols); + let __sym3 = __pop_Term_22equation_22(__symbols); + let __sym2 = __pop_Ntcomponent__declaration_2b(__symbols); + let __sym1 = __pop_Ntidentifier(__symbols); + let __sym0 = __pop_Term_22model_22(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym8.2.clone(); + let __nt = super::__action70::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7, __sym8); + let __states_len = __states.len(); + __states.truncate(__states_len - 9); + __symbols.push((__start, __Symbol::Ntmodel(__nt), __end)); + 17 + } + 58 => { + // simple_equation = expr, "=", expr, ";" => ActionFn(19); + let __sym3 = __pop_Term_22_3b_22(__symbols); + let __sym2 = __pop_Ntexpr(__symbols); + let __sym1 = __pop_Term_22_3d_22(__symbols); + let __sym0 = __pop_Ntexpr(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym3.2.clone(); + let __nt = super::__action19::<>(input, __sym0, __sym1, __sym2, __sym3); + let __states_len = __states.len(); + __states.truncate(__states_len - 4); + __symbols.push((__start, __Symbol::Ntsimple__equation(__nt), __end)); + 18 + } + 59 => { + // simple_equation* = => ActionFn(43); + let __start = __symbols.last().map(|s| s.2.clone()).unwrap_or_default(); + let __end = __lookahead_start.cloned().unwrap_or_else(|| __start.clone()); + let __nt = super::__action43::<>(input, &__start, &__end); + let __states_len = __states.len(); + __states.truncate(__states_len - 0); + __symbols.push((__start, __Symbol::Ntsimple__equation_2a(__nt), __end)); + 19 + } + 60 => { + // simple_equation* = simple_equation+ => ActionFn(44); + let __sym0 = __pop_Ntsimple__equation_2b(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action44::<>(input, __sym0); + let __states_len = __states.len(); + __states.truncate(__states_len - 1); + __symbols.push((__start, __Symbol::Ntsimple__equation_2a(__nt), __end)); + 19 + } + 61 => { + // simple_equation+ = simple_equation => ActionFn(53); + let __sym0 = __pop_Ntsimple__equation(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action53::<>(input, __sym0); + let __states_len = __states.len(); + __states.truncate(__states_len - 1); + __symbols.push((__start, __Symbol::Ntsimple__equation_2b(__nt), __end)); + 20 + } + 62 => { + // simple_equation+ = simple_equation+, simple_equation => ActionFn(54); + let __sym1 = __pop_Ntsimple__equation(__symbols); + let __sym0 = __pop_Ntsimple__equation_2b(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym1.2.clone(); + let __nt = super::__action54::<>(input, __sym0, __sym1); + let __states_len = __states.len(); + __states.truncate(__states_len - 2); + __symbols.push((__start, __Symbol::Ntsimple__equation_2b(__nt), __end)); + 20 + } + 63 => { + // string_literal = r#"\"[^\"\\\\]*\""# => ActionFn(5); + let __sym0 = __pop_Termr_23_22_5c_22_5b_5e_5c_22_5c_5c_5c_5c_5d_2a_5c_22_22_23(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action5::<>(input, __sym0); + let __states_len = __states.len(); + __states.truncate(__states_len - 1); + __symbols.push((__start, __Symbol::Ntstring__literal(__nt), __end)); + 21 + } + 64 => { + // string_literal? = string_literal => ActionFn(35); + let __sym0 = __pop_Ntstring__literal(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action35::<>(input, __sym0); + let __states_len = __states.len(); + __states.truncate(__states_len - 1); + __symbols.push((__start, __Symbol::Ntstring__literal_3f(__nt), __end)); + 22 + } + 65 => { + // string_literal? = => ActionFn(36); + let __start = __symbols.last().map(|s| s.2.clone()).unwrap_or_default(); + let __end = __lookahead_start.cloned().unwrap_or_else(|| __start.clone()); + let __nt = super::__action36::<>(input, &__start, &__end); + let __states_len = __states.len(); + __states.truncate(__states_len - 0); + __symbols.push((__start, __Symbol::Ntstring__literal_3f(__nt), __end)); + 22 + } + 66 => { + // term = integer => ActionFn(29); + let __sym0 = __pop_Ntinteger(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action29::<>(input, __sym0); + let __states_len = __states.len(); + __states.truncate(__states_len - 1); + __symbols.push((__start, __Symbol::Ntterm(__nt), __end)); + 23 + } + 67 => { + // term = float => ActionFn(30); + let __sym0 = __pop_Ntfloat(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action30::<>(input, __sym0); + let __states_len = __states.len(); + __states.truncate(__states_len - 1); + __symbols.push((__start, __Symbol::Ntterm(__nt), __end)); + 23 + } + 68 => { + // term = identifier => ActionFn(31); + let __sym0 = __pop_Ntidentifier(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action31::<>(input, __sym0); + let __states_len = __states.len(); + __states.truncate(__states_len - 1); + __symbols.push((__start, __Symbol::Ntterm(__nt), __end)); + 23 + } + 69 => { + // term = "der", "(", expr, ")" => ActionFn(32); + let __sym3 = __pop_Term_22_29_22(__symbols); + let __sym2 = __pop_Ntexpr(__symbols); + let __sym1 = __pop_Term_22_28_22(__symbols); + let __sym0 = __pop_Term_22der_22(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym3.2.clone(); + let __nt = super::__action32::<>(input, __sym0, __sym1, __sym2, __sym3); + let __states_len = __states.len(); + __states.truncate(__states_len - 4); + __symbols.push((__start, __Symbol::Ntterm(__nt), __end)); + 23 + } + 70 => { + // term = "abs", "(", expr, ")" => ActionFn(33); + let __sym3 = __pop_Term_22_29_22(__symbols); + let __sym2 = __pop_Ntexpr(__symbols); + let __sym1 = __pop_Term_22_28_22(__symbols); + let __sym0 = __pop_Term_22abs_22(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym3.2.clone(); + let __nt = super::__action33::<>(input, __sym0, __sym1, __sym2, __sym3); + let __states_len = __states.len(); + __states.truncate(__states_len - 4); + __symbols.push((__start, __Symbol::Ntterm(__nt), __end)); + 23 + } + 71 => { + // term = "(", expr, ")" => ActionFn(34); + let __sym2 = __pop_Term_22_29_22(__symbols); + let __sym1 = __pop_Ntexpr(__symbols); + let __sym0 = __pop_Term_22_28_22(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym2.2.clone(); + let __nt = super::__action34::<>(input, __sym0, __sym1, __sym2); + let __states_len = __states.len(); + __states.truncate(__states_len - 3); + __symbols.push((__start, __Symbol::Ntterm(__nt), __end)); + 23 + } + 72 => { + // units_declaration = "(", "unit", "=", string_literal, ")" => ActionFn(10); + let __sym4 = __pop_Term_22_29_22(__symbols); + let __sym3 = __pop_Ntstring__literal(__symbols); + let __sym2 = __pop_Term_22_3d_22(__symbols); + let __sym1 = __pop_Term_22unit_22(__symbols); + let __sym0 = __pop_Term_22_28_22(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym4.2.clone(); + let __nt = super::__action10::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4); + let __states_len = __states.len(); + __states.truncate(__states_len - 5); + __symbols.push((__start, __Symbol::Ntunits__declaration(__nt), __end)); + 24 + } + 73 => { + // units_declaration? = units_declaration => ActionFn(39); + let __sym0 = __pop_Ntunits__declaration(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action39::<>(input, __sym0); + let __states_len = __states.len(); + __states.truncate(__states_len - 1); + __symbols.push((__start, __Symbol::Ntunits__declaration_3f(__nt), __end)); + 25 + } + 74 => { + // units_declaration? = => ActionFn(40); + let __start = __symbols.last().map(|s| s.2.clone()).unwrap_or_default(); + let __end = __lookahead_start.cloned().unwrap_or_else(|| __start.clone()); + let __nt = super::__action40::<>(input, &__start, &__end); + let __states_len = __states.len(); + __states.truncate(__states_len - 0); + __symbols.push((__start, __Symbol::Ntunits__declaration_3f(__nt), __end)); + 25 + } + 75 => { + // value_declaration = "=", expr => ActionFn(9); + let __sym1 = __pop_Ntexpr(__symbols); + let __sym0 = __pop_Term_22_3d_22(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym1.2.clone(); + let __nt = super::__action9::<>(input, __sym0, __sym1); + let __states_len = __states.len(); + __states.truncate(__states_len - 2); + __symbols.push((__start, __Symbol::Ntvalue__declaration(__nt), __end)); + 26 + } + 76 => { + // value_declaration? = value_declaration => ActionFn(37); + let __sym0 = __pop_Ntvalue__declaration(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action37::<>(input, __sym0); + let __states_len = __states.len(); + __states.truncate(__states_len - 1); + __symbols.push((__start, __Symbol::Ntvalue__declaration_3f(__nt), __end)); + 27 + } + 77 => { + // value_declaration? = => ActionFn(38); + let __start = __symbols.last().map(|s| s.2.clone()).unwrap_or_default(); + let __end = __lookahead_start.cloned().unwrap_or_else(|| __start.clone()); + let __nt = super::__action38::<>(input, &__start, &__end); + let __states_len = __states.len(); + __states.truncate(__states_len - 0); + __symbols.push((__start, __Symbol::Ntvalue__declaration_3f(__nt), __end)); + 27 + } + _ => panic!("invalid action code {}", __action) + }; + let __state = *__states.last().unwrap() as usize; + let __next_state = __GOTO[__state * 28 + __nonterminal] - 1; + __states.push(__next_state); + None + } + fn __pop_Term_22_28_22< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, &'input str, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Term_22_28_22(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Term_22_29_22< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, &'input str, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Term_22_29_22(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Term_22_2a_22< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, &'input str, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Term_22_2a_22(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Term_22_2b_22< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, &'input str, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Term_22_2b_22(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Term_22_2c_22< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, &'input str, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Term_22_2c_22(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Term_22_2d_22< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, &'input str, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Term_22_2d_22(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Term_22_2f_22< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, &'input str, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Term_22_2f_22(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Term_22_3b_22< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, &'input str, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Term_22_3b_22(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Term_22_3d_22< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, &'input str, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Term_22_3d_22(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Term_22_5e_22< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, &'input str, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Term_22_5e_22(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Term_22abs_22< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, &'input str, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Term_22abs_22(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Term_22connect_22< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, &'input str, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Term_22connect_22(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Term_22constant_22< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, &'input str, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Term_22constant_22(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Term_22der_22< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, &'input str, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Term_22der_22(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Term_22discrete_22< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, &'input str, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Term_22discrete_22(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Term_22end_22< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, &'input str, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Term_22end_22(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Term_22equation_22< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, &'input str, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Term_22equation_22(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Term_22flow_22< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, &'input str, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Term_22flow_22(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Term_22input_22< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, &'input str, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Term_22input_22(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Term_22model_22< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, &'input str, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Term_22model_22(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Term_22output_22< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, &'input str, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Term_22output_22(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Term_22parameter_22< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, &'input str, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Term_22parameter_22(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Term_22stream_22< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, &'input str, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Term_22stream_22(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Term_22unit_22< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, &'input str, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Term_22unit_22(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Termr_23_22_5c_22_5b_5e_5c_22_5c_5c_5c_5c_5d_2a_5c_22_22_23< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, &'input str, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Termr_23_22_5c_22_5b_5e_5c_22_5c_5c_5c_5c_5d_2a_5c_22_22_23(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Termr_23_22_5b_2b_2d_5d_3f_5c_5cd_2b_22_23< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, &'input str, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Termr_23_22_5b_2b_2d_5d_3f_5c_5cd_2b_22_23(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Termr_23_22_5b_2b_2d_5d_3f_5c_5cd_2b_5c_5c_2e_5c_5cd_2a_28_5beE_5d_5b_2d_2b_5d_3f_5c_5cd_2b_29_3f_22_23< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, &'input str, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Termr_23_22_5b_2b_2d_5d_3f_5c_5cd_2b_5c_5c_2e_5c_5cd_2a_28_5beE_5d_5b_2d_2b_5d_3f_5c_5cd_2b_29_3f_22_23(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Termr_23_22_5ba_2dzA_2dZ___5d_5ba_2dzA_2dZ__0_2d9_5d_2a_22_23< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, &'input str, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Termr_23_22_5ba_2dzA_2dZ___5d_5ba_2dzA_2dZ__0_2d9_5d_2a_22_23(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Termerror< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, __lalrpop_util::ErrorRecovery, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Termerror(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Nt____float< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, f64, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Nt____float(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Nt____identifier< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, String, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Nt____identifier(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Nt____integer< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, i64, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Nt____integer(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Nt____model< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, ModelicaModel, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Nt____model(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Ntcomponent__declaration< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, Component, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Ntcomponent__declaration(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Ntcomponent__declaration_2a< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, ::std::vec::Vec, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Ntcomponent__declaration_2a(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Ntcomponent__declaration_2b< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, ::std::vec::Vec, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Ntcomponent__declaration_2b(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Ntcomponent__prefix< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, ComponentPrefix, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Ntcomponent__prefix(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Ntcomponent__prefix_3f< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, ::std::option::Option, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Ntcomponent__prefix_3f(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Ntconnect__clause< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, Connection, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Ntconnect__clause(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Ntconnect__clause_2a< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, ::std::vec::Vec, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Ntconnect__clause_2a(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Ntconnect__clause_2b< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, ::std::vec::Vec, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Ntconnect__clause_2b(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Ntexpr< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, Expr, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Ntexpr(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Ntfactor< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, Expr, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Ntfactor(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Ntfloat< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, f64, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Ntfloat(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Ntidentifier< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, String, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Ntidentifier(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Ntinteger< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, i64, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Ntinteger(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Ntmodel< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, ModelicaModel, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Ntmodel(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Ntsimple__equation< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, SimpleEquation, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Ntsimple__equation(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Ntsimple__equation_2a< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, ::std::vec::Vec, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Ntsimple__equation_2a(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Ntsimple__equation_2b< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, ::std::vec::Vec, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Ntsimple__equation_2b(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Ntstring__literal< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, String, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Ntstring__literal(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Ntstring__literal_3f< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, ::std::option::Option, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Ntstring__literal_3f(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Ntterm< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, Expr, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Ntterm(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Ntunits__declaration< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, String, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Ntunits__declaration(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Ntunits__declaration_3f< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, ::std::option::Option, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Ntunits__declaration_3f(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Ntvalue__declaration< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, Expr, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Ntvalue__declaration(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Ntvalue__declaration_3f< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, ::std::option::Option, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Ntvalue__declaration_3f(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } +} +pub use self::__parse__identifier::parse_identifier; + +mod __parse__integer { + #![allow(non_snake_case, non_camel_case_types, unused_mut, unused_variables, unused_imports)] + + use std::str::FromStr; + use ast::{ModelicaModel,Component, ComponentPrefix, Connection, + SimpleEquation, Expr, BinOperator}; + extern crate lalrpop_util as __lalrpop_util; + #[allow(dead_code)] + pub enum __Symbol<'input> { + Term_22_28_22(&'input str), + Term_22_29_22(&'input str), + Term_22_2a_22(&'input str), + Term_22_2b_22(&'input str), + Term_22_2c_22(&'input str), + Term_22_2d_22(&'input str), + Term_22_2f_22(&'input str), + Term_22_3b_22(&'input str), + Term_22_3d_22(&'input str), + Term_22_5e_22(&'input str), + Term_22abs_22(&'input str), + Term_22connect_22(&'input str), + Term_22constant_22(&'input str), + Term_22der_22(&'input str), + Term_22discrete_22(&'input str), + Term_22end_22(&'input str), + Term_22equation_22(&'input str), + Term_22flow_22(&'input str), + Term_22input_22(&'input str), + Term_22model_22(&'input str), + Term_22output_22(&'input str), + Term_22parameter_22(&'input str), + Term_22stream_22(&'input str), + Term_22unit_22(&'input str), + Termr_23_22_5c_22_5b_5e_5c_22_5c_5c_5c_5c_5d_2a_5c_22_22_23(&'input str), + Termr_23_22_5b_2b_2d_5d_3f_5c_5cd_2b_22_23(&'input str), + Termr_23_22_5b_2b_2d_5d_3f_5c_5cd_2b_5c_5c_2e_5c_5cd_2a_28_5beE_5d_5b_2d_2b_5d_3f_5c_5cd_2b_29_3f_22_23(&'input str), + Termr_23_22_5ba_2dzA_2dZ___5d_5ba_2dzA_2dZ__0_2d9_5d_2a_22_23(&'input str), + Termerror(__lalrpop_util::ErrorRecovery), + Nt____float(f64), + Nt____identifier(String), + Nt____integer(i64), + Nt____model(ModelicaModel), + Ntcomponent__declaration(Component), + Ntcomponent__declaration_2a(::std::vec::Vec), + Ntcomponent__declaration_2b(::std::vec::Vec), + Ntcomponent__prefix(ComponentPrefix), + Ntcomponent__prefix_3f(::std::option::Option), + Ntconnect__clause(Connection), + Ntconnect__clause_2a(::std::vec::Vec), + Ntconnect__clause_2b(::std::vec::Vec), + Ntexpr(Expr), + Ntfactor(Expr), + Ntfloat(f64), + Ntidentifier(String), + Ntinteger(i64), + Ntmodel(ModelicaModel), + Ntsimple__equation(SimpleEquation), + Ntsimple__equation_2a(::std::vec::Vec), + Ntsimple__equation_2b(::std::vec::Vec), + Ntstring__literal(String), + Ntstring__literal_3f(::std::option::Option), + Ntterm(Expr), + Ntunits__declaration(String), + Ntunits__declaration_3f(::std::option::Option), + Ntvalue__declaration(Expr), + Ntvalue__declaration_3f(::std::option::Option), + } + const __ACTION: &'static [i32] = &[ + // State 0 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 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, + // State 2 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + ]; + const __EOF_ACTION: &'static [i32] = &[ + 0, + -3, + -49, + ]; + const __GOTO: &'static [i32] = &[ + // State 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, + // 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, + // State 2 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + ]; + pub fn parse_integer< + 'input, + >( + input: &'input str, + ) -> Result> + { + let mut __tokens = super::__intern_token::__Matcher::new(input); + let mut __states = vec![0_i32]; + let mut __symbols = vec![]; + let mut __integer; + let mut __lookahead; + let mut __last_location = Default::default(); + '__shift: loop { + __lookahead = match __tokens.next() { + Some(Ok(v)) => v, + None => break '__shift, + Some(Err(e)) => return Err(e), + }; + __last_location = __lookahead.2.clone(); + __integer = match __lookahead.1 { + (0, _) if true => 0, + (1, _) if true => 1, + (2, _) if true => 2, + (3, _) if true => 3, + (4, _) if true => 4, + (5, _) if true => 5, + (6, _) if true => 6, + (7, _) if true => 7, + (8, _) if true => 8, + (9, _) if true => 9, + (10, _) if true => 10, + (11, _) if true => 11, + (12, _) if true => 12, + (13, _) if true => 13, + (14, _) if true => 14, + (15, _) if true => 15, + (16, _) if true => 16, + (17, _) if true => 17, + (18, _) if true => 18, + (19, _) if true => 19, + (20, _) if true => 20, + (21, _) if true => 21, + (22, _) if true => 22, + (23, _) if true => 23, + (24, _) if true => 24, + (25, _) if true => 25, + (26, _) if true => 26, + (27, _) if true => 27, + _ => { + return Err(__lalrpop_util::ParseError::UnrecognizedToken { + token: Some(__lookahead), + expected: vec![], + }); + } + }; + '__inner: loop { + let __state = *__states.last().unwrap() as usize; + let __action = __ACTION[__state * 29 + __integer]; + if __action > 0 { + let __symbol = match __integer { + 0 => match __lookahead.1 { + (0, __tok0) => __Symbol::Term_22_28_22(__tok0), + _ => unreachable!(), + }, + 1 => match __lookahead.1 { + (1, __tok0) => __Symbol::Term_22_29_22(__tok0), + _ => unreachable!(), + }, + 2 => match __lookahead.1 { + (2, __tok0) => __Symbol::Term_22_2a_22(__tok0), + _ => unreachable!(), + }, + 3 => match __lookahead.1 { + (3, __tok0) => __Symbol::Term_22_2b_22(__tok0), + _ => unreachable!(), + }, + 4 => match __lookahead.1 { + (4, __tok0) => __Symbol::Term_22_2c_22(__tok0), + _ => unreachable!(), + }, + 5 => match __lookahead.1 { + (5, __tok0) => __Symbol::Term_22_2d_22(__tok0), + _ => unreachable!(), + }, + 6 => match __lookahead.1 { + (6, __tok0) => __Symbol::Term_22_2f_22(__tok0), + _ => unreachable!(), + }, + 7 => match __lookahead.1 { + (7, __tok0) => __Symbol::Term_22_3b_22(__tok0), + _ => unreachable!(), + }, + 8 => match __lookahead.1 { + (8, __tok0) => __Symbol::Term_22_3d_22(__tok0), + _ => unreachable!(), + }, + 9 => match __lookahead.1 { + (9, __tok0) => __Symbol::Term_22_5e_22(__tok0), + _ => unreachable!(), + }, + 10 => match __lookahead.1 { + (10, __tok0) => __Symbol::Term_22abs_22(__tok0), + _ => unreachable!(), + }, + 11 => match __lookahead.1 { + (11, __tok0) => __Symbol::Term_22connect_22(__tok0), + _ => unreachable!(), + }, + 12 => match __lookahead.1 { + (12, __tok0) => __Symbol::Term_22constant_22(__tok0), + _ => unreachable!(), + }, + 13 => match __lookahead.1 { + (13, __tok0) => __Symbol::Term_22der_22(__tok0), + _ => unreachable!(), + }, + 14 => match __lookahead.1 { + (14, __tok0) => __Symbol::Term_22discrete_22(__tok0), + _ => unreachable!(), + }, + 15 => match __lookahead.1 { + (15, __tok0) => __Symbol::Term_22end_22(__tok0), + _ => unreachable!(), + }, + 16 => match __lookahead.1 { + (16, __tok0) => __Symbol::Term_22equation_22(__tok0), + _ => unreachable!(), + }, + 17 => match __lookahead.1 { + (17, __tok0) => __Symbol::Term_22flow_22(__tok0), + _ => unreachable!(), + }, + 18 => match __lookahead.1 { + (18, __tok0) => __Symbol::Term_22input_22(__tok0), + _ => unreachable!(), + }, + 19 => match __lookahead.1 { + (19, __tok0) => __Symbol::Term_22model_22(__tok0), + _ => unreachable!(), + }, + 20 => match __lookahead.1 { + (20, __tok0) => __Symbol::Term_22output_22(__tok0), + _ => unreachable!(), + }, + 21 => match __lookahead.1 { + (21, __tok0) => __Symbol::Term_22parameter_22(__tok0), + _ => unreachable!(), + }, + 22 => match __lookahead.1 { + (22, __tok0) => __Symbol::Term_22stream_22(__tok0), + _ => unreachable!(), + }, + 23 => match __lookahead.1 { + (23, __tok0) => __Symbol::Term_22unit_22(__tok0), + _ => unreachable!(), + }, + 24 => match __lookahead.1 { + (24, __tok0) => __Symbol::Termr_23_22_5c_22_5b_5e_5c_22_5c_5c_5c_5c_5d_2a_5c_22_22_23(__tok0), + _ => unreachable!(), + }, + 25 => match __lookahead.1 { + (25, __tok0) => __Symbol::Termr_23_22_5b_2b_2d_5d_3f_5c_5cd_2b_22_23(__tok0), + _ => unreachable!(), + }, + 26 => match __lookahead.1 { + (26, __tok0) => __Symbol::Termr_23_22_5b_2b_2d_5d_3f_5c_5cd_2b_5c_5c_2e_5c_5cd_2a_28_5beE_5d_5b_2d_2b_5d_3f_5c_5cd_2b_29_3f_22_23(__tok0), + _ => unreachable!(), + }, + 27 => match __lookahead.1 { + (27, __tok0) => __Symbol::Termr_23_22_5ba_2dzA_2dZ___5d_5ba_2dzA_2dZ__0_2d9_5d_2a_22_23(__tok0), + _ => unreachable!(), + }, + _ => unreachable!(), + }; + __states.push(__action - 1); + __symbols.push((__lookahead.0, __symbol, __lookahead.2)); + continue '__shift; + } else if __action < 0 { + if let Some(r) = __reduce(input, __action, Some(&__lookahead.0), &mut __states, &mut __symbols, ::std::marker::PhantomData::<()>) { + return r; + } + } else { + return Err(__lalrpop_util::ParseError::UnrecognizedToken { + token: Some(__lookahead), + expected: vec![], + }); + } + } + } + loop { + let __state = *__states.last().unwrap() as usize; + let __action = __EOF_ACTION[__state]; + if __action < 0 { + if let Some(r) = __reduce(input, __action, None, &mut __states, &mut __symbols, ::std::marker::PhantomData::<()>) { + return r; + } + } else { + let __error = __lalrpop_util::ParseError::UnrecognizedToken { + token: None, + expected: vec![], + }; + return Err(__error); + } + } + } + pub fn __reduce< + 'input, + >( + input: &'input str, + __action: i32, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<()>, + ) -> Option>> + { + let __nonterminal = match -__action { + 1 => { + // __float = float => ActionFn(2); + let __sym0 = __pop_Ntfloat(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action2::<>(input, __sym0); + let __states_len = __states.len(); + __states.truncate(__states_len - 1); + __symbols.push((__start, __Symbol::Nt____float(__nt), __end)); + 0 + } + 2 => { + // __identifier = identifier => ActionFn(0); + let __sym0 = __pop_Ntidentifier(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action0::<>(input, __sym0); + let __states_len = __states.len(); + __states.truncate(__states_len - 1); + __symbols.push((__start, __Symbol::Nt____identifier(__nt), __end)); + 1 + } + 3 => { + // __integer = integer => ActionFn(1); + let __sym0 = __pop_Ntinteger(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action1::<>(input, __sym0); + return Some(Ok(__nt)); + } + 4 => { + // __model = model => ActionFn(3); + let __sym0 = __pop_Ntmodel(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action3::<>(input, __sym0); + let __states_len = __states.len(); + __states.truncate(__states_len - 1); + __symbols.push((__start, __Symbol::Nt____model(__nt), __end)); + 3 + } + 5 => { + // component_declaration = component_prefix, identifier, identifier, units_declaration, value_declaration, string_literal, ";" => ActionFn(83); + let __sym6 = __pop_Term_22_3b_22(__symbols); + let __sym5 = __pop_Ntstring__literal(__symbols); + let __sym4 = __pop_Ntvalue__declaration(__symbols); + let __sym3 = __pop_Ntunits__declaration(__symbols); + let __sym2 = __pop_Ntidentifier(__symbols); + let __sym1 = __pop_Ntidentifier(__symbols); + let __sym0 = __pop_Ntcomponent__prefix(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym6.2.clone(); + let __nt = super::__action83::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6); + let __states_len = __states.len(); + __states.truncate(__states_len - 7); + __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); + 4 + } + 6 => { + // component_declaration = component_prefix, identifier, identifier, units_declaration, string_literal, ";" => ActionFn(84); + let __sym5 = __pop_Term_22_3b_22(__symbols); + let __sym4 = __pop_Ntstring__literal(__symbols); + let __sym3 = __pop_Ntunits__declaration(__symbols); + let __sym2 = __pop_Ntidentifier(__symbols); + let __sym1 = __pop_Ntidentifier(__symbols); + let __sym0 = __pop_Ntcomponent__prefix(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym5.2.clone(); + let __nt = super::__action84::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5); + let __states_len = __states.len(); + __states.truncate(__states_len - 6); + __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); + 4 + } + 7 => { + // component_declaration = component_prefix, identifier, identifier, value_declaration, string_literal, ";" => ActionFn(85); + let __sym5 = __pop_Term_22_3b_22(__symbols); + let __sym4 = __pop_Ntstring__literal(__symbols); + let __sym3 = __pop_Ntvalue__declaration(__symbols); + let __sym2 = __pop_Ntidentifier(__symbols); + let __sym1 = __pop_Ntidentifier(__symbols); + let __sym0 = __pop_Ntcomponent__prefix(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym5.2.clone(); + let __nt = super::__action85::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5); + let __states_len = __states.len(); + __states.truncate(__states_len - 6); + __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); + 4 + } + 8 => { + // component_declaration = component_prefix, identifier, identifier, string_literal, ";" => ActionFn(86); + let __sym4 = __pop_Term_22_3b_22(__symbols); + let __sym3 = __pop_Ntstring__literal(__symbols); + let __sym2 = __pop_Ntidentifier(__symbols); + let __sym1 = __pop_Ntidentifier(__symbols); + let __sym0 = __pop_Ntcomponent__prefix(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym4.2.clone(); + let __nt = super::__action86::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4); + let __states_len = __states.len(); + __states.truncate(__states_len - 5); + __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); + 4 + } + 9 => { + // component_declaration = component_prefix, identifier, identifier, units_declaration, value_declaration, ";" => ActionFn(87); + let __sym5 = __pop_Term_22_3b_22(__symbols); + let __sym4 = __pop_Ntvalue__declaration(__symbols); + let __sym3 = __pop_Ntunits__declaration(__symbols); + let __sym2 = __pop_Ntidentifier(__symbols); + let __sym1 = __pop_Ntidentifier(__symbols); + let __sym0 = __pop_Ntcomponent__prefix(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym5.2.clone(); + let __nt = super::__action87::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5); + let __states_len = __states.len(); + __states.truncate(__states_len - 6); + __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); + 4 + } + 10 => { + // component_declaration = component_prefix, identifier, identifier, units_declaration, ";" => ActionFn(88); + let __sym4 = __pop_Term_22_3b_22(__symbols); + let __sym3 = __pop_Ntunits__declaration(__symbols); + let __sym2 = __pop_Ntidentifier(__symbols); + let __sym1 = __pop_Ntidentifier(__symbols); + let __sym0 = __pop_Ntcomponent__prefix(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym4.2.clone(); + let __nt = super::__action88::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4); + let __states_len = __states.len(); + __states.truncate(__states_len - 5); + __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); + 4 + } + 11 => { + // component_declaration = component_prefix, identifier, identifier, value_declaration, ";" => ActionFn(89); + let __sym4 = __pop_Term_22_3b_22(__symbols); + let __sym3 = __pop_Ntvalue__declaration(__symbols); + let __sym2 = __pop_Ntidentifier(__symbols); + let __sym1 = __pop_Ntidentifier(__symbols); + let __sym0 = __pop_Ntcomponent__prefix(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym4.2.clone(); + let __nt = super::__action89::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4); + let __states_len = __states.len(); + __states.truncate(__states_len - 5); + __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); + 4 + } + 12 => { + // component_declaration = component_prefix, identifier, identifier, ";" => ActionFn(90); + let __sym3 = __pop_Term_22_3b_22(__symbols); + let __sym2 = __pop_Ntidentifier(__symbols); + let __sym1 = __pop_Ntidentifier(__symbols); + let __sym0 = __pop_Ntcomponent__prefix(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym3.2.clone(); + let __nt = super::__action90::<>(input, __sym0, __sym1, __sym2, __sym3); + let __states_len = __states.len(); + __states.truncate(__states_len - 4); + __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); + 4 + } + 13 => { + // component_declaration = identifier, identifier, units_declaration, value_declaration, string_literal, ";" => ActionFn(91); + let __sym5 = __pop_Term_22_3b_22(__symbols); + let __sym4 = __pop_Ntstring__literal(__symbols); + let __sym3 = __pop_Ntvalue__declaration(__symbols); + let __sym2 = __pop_Ntunits__declaration(__symbols); + let __sym1 = __pop_Ntidentifier(__symbols); + let __sym0 = __pop_Ntidentifier(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym5.2.clone(); + let __nt = super::__action91::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5); + let __states_len = __states.len(); + __states.truncate(__states_len - 6); + __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); + 4 + } + 14 => { + // component_declaration = identifier, identifier, units_declaration, string_literal, ";" => ActionFn(92); + let __sym4 = __pop_Term_22_3b_22(__symbols); + let __sym3 = __pop_Ntstring__literal(__symbols); + let __sym2 = __pop_Ntunits__declaration(__symbols); + let __sym1 = __pop_Ntidentifier(__symbols); + let __sym0 = __pop_Ntidentifier(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym4.2.clone(); + let __nt = super::__action92::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4); + let __states_len = __states.len(); + __states.truncate(__states_len - 5); + __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); + 4 + } + 15 => { + // component_declaration = identifier, identifier, value_declaration, string_literal, ";" => ActionFn(93); + let __sym4 = __pop_Term_22_3b_22(__symbols); + let __sym3 = __pop_Ntstring__literal(__symbols); + let __sym2 = __pop_Ntvalue__declaration(__symbols); + let __sym1 = __pop_Ntidentifier(__symbols); + let __sym0 = __pop_Ntidentifier(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym4.2.clone(); + let __nt = super::__action93::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4); + let __states_len = __states.len(); + __states.truncate(__states_len - 5); + __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); + 4 + } + 16 => { + // component_declaration = identifier, identifier, string_literal, ";" => ActionFn(94); + let __sym3 = __pop_Term_22_3b_22(__symbols); + let __sym2 = __pop_Ntstring__literal(__symbols); + let __sym1 = __pop_Ntidentifier(__symbols); + let __sym0 = __pop_Ntidentifier(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym3.2.clone(); + let __nt = super::__action94::<>(input, __sym0, __sym1, __sym2, __sym3); + let __states_len = __states.len(); + __states.truncate(__states_len - 4); + __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); + 4 + } + 17 => { + // component_declaration = identifier, identifier, units_declaration, value_declaration, ";" => ActionFn(95); + let __sym4 = __pop_Term_22_3b_22(__symbols); + let __sym3 = __pop_Ntvalue__declaration(__symbols); + let __sym2 = __pop_Ntunits__declaration(__symbols); + let __sym1 = __pop_Ntidentifier(__symbols); + let __sym0 = __pop_Ntidentifier(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym4.2.clone(); + let __nt = super::__action95::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4); + let __states_len = __states.len(); + __states.truncate(__states_len - 5); + __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); + 4 + } + 18 => { + // component_declaration = identifier, identifier, units_declaration, ";" => ActionFn(96); + let __sym3 = __pop_Term_22_3b_22(__symbols); + let __sym2 = __pop_Ntunits__declaration(__symbols); + let __sym1 = __pop_Ntidentifier(__symbols); + let __sym0 = __pop_Ntidentifier(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym3.2.clone(); + let __nt = super::__action96::<>(input, __sym0, __sym1, __sym2, __sym3); + let __states_len = __states.len(); + __states.truncate(__states_len - 4); + __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); + 4 + } + 19 => { + // component_declaration = identifier, identifier, value_declaration, ";" => ActionFn(97); + let __sym3 = __pop_Term_22_3b_22(__symbols); + let __sym2 = __pop_Ntvalue__declaration(__symbols); + let __sym1 = __pop_Ntidentifier(__symbols); + let __sym0 = __pop_Ntidentifier(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym3.2.clone(); + let __nt = super::__action97::<>(input, __sym0, __sym1, __sym2, __sym3); + let __states_len = __states.len(); + __states.truncate(__states_len - 4); + __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); + 4 + } + 20 => { + // component_declaration = identifier, identifier, ";" => ActionFn(98); + let __sym2 = __pop_Term_22_3b_22(__symbols); + let __sym1 = __pop_Ntidentifier(__symbols); + let __sym0 = __pop_Ntidentifier(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym2.2.clone(); + let __nt = super::__action98::<>(input, __sym0, __sym1, __sym2); + let __states_len = __states.len(); + __states.truncate(__states_len - 3); + __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); + 4 + } + 21 => { + // component_declaration* = => ActionFn(47); + let __start = __symbols.last().map(|s| s.2.clone()).unwrap_or_default(); + let __end = __lookahead_start.cloned().unwrap_or_else(|| __start.clone()); + let __nt = super::__action47::<>(input, &__start, &__end); + let __states_len = __states.len(); + __states.truncate(__states_len - 0); + __symbols.push((__start, __Symbol::Ntcomponent__declaration_2a(__nt), __end)); + 5 + } + 22 => { + // component_declaration* = component_declaration+ => ActionFn(48); + let __sym0 = __pop_Ntcomponent__declaration_2b(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action48::<>(input, __sym0); + let __states_len = __states.len(); + __states.truncate(__states_len - 1); + __symbols.push((__start, __Symbol::Ntcomponent__declaration_2a(__nt), __end)); + 5 + } + 23 => { + // component_declaration+ = component_declaration => ActionFn(49); + let __sym0 = __pop_Ntcomponent__declaration(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action49::<>(input, __sym0); + let __states_len = __states.len(); + __states.truncate(__states_len - 1); + __symbols.push((__start, __Symbol::Ntcomponent__declaration_2b(__nt), __end)); + 6 + } + 24 => { + // component_declaration+ = component_declaration+, component_declaration => ActionFn(50); + let __sym1 = __pop_Ntcomponent__declaration(__symbols); + let __sym0 = __pop_Ntcomponent__declaration_2b(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym1.2.clone(); + let __nt = super::__action50::<>(input, __sym0, __sym1); + let __states_len = __states.len(); + __states.truncate(__states_len - 2); + __symbols.push((__start, __Symbol::Ntcomponent__declaration_2b(__nt), __end)); + 6 + } + 25 => { + // component_prefix = "flow" => ActionFn(12); + let __sym0 = __pop_Term_22flow_22(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action12::<>(input, __sym0); + let __states_len = __states.len(); + __states.truncate(__states_len - 1); + __symbols.push((__start, __Symbol::Ntcomponent__prefix(__nt), __end)); + 7 + } + 26 => { + // component_prefix = "stream" => ActionFn(13); + let __sym0 = __pop_Term_22stream_22(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action13::<>(input, __sym0); + let __states_len = __states.len(); + __states.truncate(__states_len - 1); + __symbols.push((__start, __Symbol::Ntcomponent__prefix(__nt), __end)); + 7 + } + 27 => { + // component_prefix = "input" => ActionFn(14); + let __sym0 = __pop_Term_22input_22(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action14::<>(input, __sym0); + let __states_len = __states.len(); + __states.truncate(__states_len - 1); + __symbols.push((__start, __Symbol::Ntcomponent__prefix(__nt), __end)); + 7 + } + 28 => { + // component_prefix = "output" => ActionFn(15); + let __sym0 = __pop_Term_22output_22(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action15::<>(input, __sym0); + let __states_len = __states.len(); + __states.truncate(__states_len - 1); + __symbols.push((__start, __Symbol::Ntcomponent__prefix(__nt), __end)); + 7 + } + 29 => { + // component_prefix = "discrete" => ActionFn(16); + let __sym0 = __pop_Term_22discrete_22(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action16::<>(input, __sym0); + let __states_len = __states.len(); + __states.truncate(__states_len - 1); + __symbols.push((__start, __Symbol::Ntcomponent__prefix(__nt), __end)); + 7 + } + 30 => { + // component_prefix = "parameter" => ActionFn(17); + let __sym0 = __pop_Term_22parameter_22(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action17::<>(input, __sym0); + let __states_len = __states.len(); + __states.truncate(__states_len - 1); + __symbols.push((__start, __Symbol::Ntcomponent__prefix(__nt), __end)); + 7 + } + 31 => { + // component_prefix = "constant" => ActionFn(18); + let __sym0 = __pop_Term_22constant_22(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action18::<>(input, __sym0); + let __states_len = __states.len(); + __states.truncate(__states_len - 1); + __symbols.push((__start, __Symbol::Ntcomponent__prefix(__nt), __end)); + 7 + } + 32 => { + // component_prefix? = component_prefix => ActionFn(41); + let __sym0 = __pop_Ntcomponent__prefix(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action41::<>(input, __sym0); + let __states_len = __states.len(); + __states.truncate(__states_len - 1); + __symbols.push((__start, __Symbol::Ntcomponent__prefix_3f(__nt), __end)); + 8 + } + 33 => { + // component_prefix? = => ActionFn(42); + let __start = __symbols.last().map(|s| s.2.clone()).unwrap_or_default(); + let __end = __lookahead_start.cloned().unwrap_or_else(|| __start.clone()); + let __nt = super::__action42::<>(input, &__start, &__end); + let __states_len = __states.len(); + __states.truncate(__states_len - 0); + __symbols.push((__start, __Symbol::Ntcomponent__prefix_3f(__nt), __end)); + 8 + } + 34 => { + // connect_clause = "connect", "(", identifier, ",", identifier, ")", ";" => ActionFn(20); + let __sym6 = __pop_Term_22_3b_22(__symbols); + let __sym5 = __pop_Term_22_29_22(__symbols); + let __sym4 = __pop_Ntidentifier(__symbols); + let __sym3 = __pop_Term_22_2c_22(__symbols); + let __sym2 = __pop_Ntidentifier(__symbols); + let __sym1 = __pop_Term_22_28_22(__symbols); + let __sym0 = __pop_Term_22connect_22(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym6.2.clone(); + let __nt = super::__action20::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6); + let __states_len = __states.len(); + __states.truncate(__states_len - 7); + __symbols.push((__start, __Symbol::Ntconnect__clause(__nt), __end)); + 9 + } + 35 => { + // connect_clause* = => ActionFn(45); + let __start = __symbols.last().map(|s| s.2.clone()).unwrap_or_default(); + let __end = __lookahead_start.cloned().unwrap_or_else(|| __start.clone()); + let __nt = super::__action45::<>(input, &__start, &__end); + let __states_len = __states.len(); + __states.truncate(__states_len - 0); + __symbols.push((__start, __Symbol::Ntconnect__clause_2a(__nt), __end)); + 10 + } + 36 => { + // connect_clause* = connect_clause+ => ActionFn(46); + let __sym0 = __pop_Ntconnect__clause_2b(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action46::<>(input, __sym0); + let __states_len = __states.len(); + __states.truncate(__states_len - 1); + __symbols.push((__start, __Symbol::Ntconnect__clause_2a(__nt), __end)); + 10 + } + 37 => { + // connect_clause+ = connect_clause => ActionFn(51); + let __sym0 = __pop_Ntconnect__clause(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action51::<>(input, __sym0); + let __states_len = __states.len(); + __states.truncate(__states_len - 1); + __symbols.push((__start, __Symbol::Ntconnect__clause_2b(__nt), __end)); + 11 + } + 38 => { + // connect_clause+ = connect_clause+, connect_clause => ActionFn(52); + let __sym1 = __pop_Ntconnect__clause(__symbols); + let __sym0 = __pop_Ntconnect__clause_2b(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym1.2.clone(); + let __nt = super::__action52::<>(input, __sym0, __sym1); + let __states_len = __states.len(); + __states.truncate(__states_len - 2); + __symbols.push((__start, __Symbol::Ntconnect__clause_2b(__nt), __end)); + 11 + } + 39 => { + // expr = expr, "+", factor => ActionFn(21); + let __sym2 = __pop_Ntfactor(__symbols); + let __sym1 = __pop_Term_22_2b_22(__symbols); + let __sym0 = __pop_Ntexpr(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym2.2.clone(); + let __nt = super::__action21::<>(input, __sym0, __sym1, __sym2); + let __states_len = __states.len(); + __states.truncate(__states_len - 3); + __symbols.push((__start, __Symbol::Ntexpr(__nt), __end)); + 12 + } + 40 => { + // expr = expr, "-", factor => ActionFn(22); + let __sym2 = __pop_Ntfactor(__symbols); + let __sym1 = __pop_Term_22_2d_22(__symbols); + let __sym0 = __pop_Ntexpr(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym2.2.clone(); + let __nt = super::__action22::<>(input, __sym0, __sym1, __sym2); + let __states_len = __states.len(); + __states.truncate(__states_len - 3); + __symbols.push((__start, __Symbol::Ntexpr(__nt), __end)); + 12 + } + 41 => { + // expr = factor => ActionFn(23); + let __sym0 = __pop_Ntfactor(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action23::<>(input, __sym0); + let __states_len = __states.len(); + __states.truncate(__states_len - 1); + __symbols.push((__start, __Symbol::Ntexpr(__nt), __end)); + 12 + } + 42 => { + // factor = factor, "*", term => ActionFn(24); + let __sym2 = __pop_Ntterm(__symbols); + let __sym1 = __pop_Term_22_2a_22(__symbols); + let __sym0 = __pop_Ntfactor(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym2.2.clone(); + let __nt = super::__action24::<>(input, __sym0, __sym1, __sym2); + let __states_len = __states.len(); + __states.truncate(__states_len - 3); + __symbols.push((__start, __Symbol::Ntfactor(__nt), __end)); + 13 + } + 43 => { + // factor = factor, "/", term => ActionFn(25); + let __sym2 = __pop_Ntterm(__symbols); + let __sym1 = __pop_Term_22_2f_22(__symbols); + let __sym0 = __pop_Ntfactor(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym2.2.clone(); + let __nt = super::__action25::<>(input, __sym0, __sym1, __sym2); + let __states_len = __states.len(); + __states.truncate(__states_len - 3); + __symbols.push((__start, __Symbol::Ntfactor(__nt), __end)); + 13 + } + 44 => { + // factor = factor, "^", term => ActionFn(26); + let __sym2 = __pop_Ntterm(__symbols); + let __sym1 = __pop_Term_22_5e_22(__symbols); + let __sym0 = __pop_Ntfactor(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym2.2.clone(); + let __nt = super::__action26::<>(input, __sym0, __sym1, __sym2); + let __states_len = __states.len(); + __states.truncate(__states_len - 3); + __symbols.push((__start, __Symbol::Ntfactor(__nt), __end)); + 13 + } + 45 => { + // factor = "-", term => ActionFn(27); + let __sym1 = __pop_Ntterm(__symbols); + let __sym0 = __pop_Term_22_2d_22(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym1.2.clone(); + let __nt = super::__action27::<>(input, __sym0, __sym1); + let __states_len = __states.len(); + __states.truncate(__states_len - 2); + __symbols.push((__start, __Symbol::Ntfactor(__nt), __end)); + 13 + } + 46 => { + // factor = term => ActionFn(28); + let __sym0 = __pop_Ntterm(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action28::<>(input, __sym0); + let __states_len = __states.len(); + __states.truncate(__states_len - 1); + __symbols.push((__start, __Symbol::Ntfactor(__nt), __end)); + 13 + } + 47 => { + // float = r#"[+-]?\\d+\\.\\d*([eE][-+]?\\d+)?"# => ActionFn(7); + let __sym0 = __pop_Termr_23_22_5b_2b_2d_5d_3f_5c_5cd_2b_5c_5c_2e_5c_5cd_2a_28_5beE_5d_5b_2d_2b_5d_3f_5c_5cd_2b_29_3f_22_23(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action7::<>(input, __sym0); + let __states_len = __states.len(); + __states.truncate(__states_len - 1); + __symbols.push((__start, __Symbol::Ntfloat(__nt), __end)); + 14 + } + 48 => { + // identifier = r#"[a-zA-Z_][a-zA-Z_0-9]*"# => ActionFn(4); + let __sym0 = __pop_Termr_23_22_5ba_2dzA_2dZ___5d_5ba_2dzA_2dZ__0_2d9_5d_2a_22_23(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action4::<>(input, __sym0); + let __states_len = __states.len(); + __states.truncate(__states_len - 1); + __symbols.push((__start, __Symbol::Ntidentifier(__nt), __end)); + 15 + } + 49 => { + // integer = r#"[+-]?\\d+"# => ActionFn(6); + let __sym0 = __pop_Termr_23_22_5b_2b_2d_5d_3f_5c_5cd_2b_22_23(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action6::<>(input, __sym0); + let __states_len = __states.len(); + __states.truncate(__states_len - 1); + __symbols.push((__start, __Symbol::Ntinteger(__nt), __end)); + 16 + } + 50 => { + // model = "model", identifier, "equation", "end", identifier, ";" => ActionFn(63); + let __sym5 = __pop_Term_22_3b_22(__symbols); + let __sym4 = __pop_Ntidentifier(__symbols); + let __sym3 = __pop_Term_22end_22(__symbols); + let __sym2 = __pop_Term_22equation_22(__symbols); + let __sym1 = __pop_Ntidentifier(__symbols); + let __sym0 = __pop_Term_22model_22(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym5.2.clone(); + let __nt = super::__action63::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5); + let __states_len = __states.len(); + __states.truncate(__states_len - 6); + __symbols.push((__start, __Symbol::Ntmodel(__nt), __end)); + 17 + } + 51 => { + // model = "model", identifier, "equation", simple_equation+, "end", identifier, ";" => ActionFn(64); + let __sym6 = __pop_Term_22_3b_22(__symbols); + let __sym5 = __pop_Ntidentifier(__symbols); + let __sym4 = __pop_Term_22end_22(__symbols); + let __sym3 = __pop_Ntsimple__equation_2b(__symbols); + let __sym2 = __pop_Term_22equation_22(__symbols); + let __sym1 = __pop_Ntidentifier(__symbols); + let __sym0 = __pop_Term_22model_22(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym6.2.clone(); + let __nt = super::__action64::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6); + let __states_len = __states.len(); + __states.truncate(__states_len - 7); + __symbols.push((__start, __Symbol::Ntmodel(__nt), __end)); + 17 + } + 52 => { + // model = "model", identifier, "equation", connect_clause+, "end", identifier, ";" => ActionFn(65); + let __sym6 = __pop_Term_22_3b_22(__symbols); + let __sym5 = __pop_Ntidentifier(__symbols); + let __sym4 = __pop_Term_22end_22(__symbols); + let __sym3 = __pop_Ntconnect__clause_2b(__symbols); + let __sym2 = __pop_Term_22equation_22(__symbols); + let __sym1 = __pop_Ntidentifier(__symbols); + let __sym0 = __pop_Term_22model_22(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym6.2.clone(); + let __nt = super::__action65::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6); + let __states_len = __states.len(); + __states.truncate(__states_len - 7); + __symbols.push((__start, __Symbol::Ntmodel(__nt), __end)); + 17 + } + 53 => { + // model = "model", identifier, "equation", connect_clause+, simple_equation+, "end", identifier, ";" => ActionFn(66); + let __sym7 = __pop_Term_22_3b_22(__symbols); + let __sym6 = __pop_Ntidentifier(__symbols); + let __sym5 = __pop_Term_22end_22(__symbols); + let __sym4 = __pop_Ntsimple__equation_2b(__symbols); + let __sym3 = __pop_Ntconnect__clause_2b(__symbols); + let __sym2 = __pop_Term_22equation_22(__symbols); + let __sym1 = __pop_Ntidentifier(__symbols); + let __sym0 = __pop_Term_22model_22(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym7.2.clone(); + let __nt = super::__action66::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7); + let __states_len = __states.len(); + __states.truncate(__states_len - 8); + __symbols.push((__start, __Symbol::Ntmodel(__nt), __end)); + 17 + } + 54 => { + // model = "model", identifier, component_declaration+, "equation", "end", identifier, ";" => ActionFn(67); + let __sym6 = __pop_Term_22_3b_22(__symbols); + let __sym5 = __pop_Ntidentifier(__symbols); + let __sym4 = __pop_Term_22end_22(__symbols); + let __sym3 = __pop_Term_22equation_22(__symbols); + let __sym2 = __pop_Ntcomponent__declaration_2b(__symbols); + let __sym1 = __pop_Ntidentifier(__symbols); + let __sym0 = __pop_Term_22model_22(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym6.2.clone(); + let __nt = super::__action67::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6); + let __states_len = __states.len(); + __states.truncate(__states_len - 7); + __symbols.push((__start, __Symbol::Ntmodel(__nt), __end)); + 17 + } + 55 => { + // model = "model", identifier, component_declaration+, "equation", simple_equation+, "end", identifier, ";" => ActionFn(68); + let __sym7 = __pop_Term_22_3b_22(__symbols); + let __sym6 = __pop_Ntidentifier(__symbols); + let __sym5 = __pop_Term_22end_22(__symbols); + let __sym4 = __pop_Ntsimple__equation_2b(__symbols); + let __sym3 = __pop_Term_22equation_22(__symbols); + let __sym2 = __pop_Ntcomponent__declaration_2b(__symbols); + let __sym1 = __pop_Ntidentifier(__symbols); + let __sym0 = __pop_Term_22model_22(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym7.2.clone(); + let __nt = super::__action68::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7); + let __states_len = __states.len(); + __states.truncate(__states_len - 8); + __symbols.push((__start, __Symbol::Ntmodel(__nt), __end)); + 17 + } + 56 => { + // model = "model", identifier, component_declaration+, "equation", connect_clause+, "end", identifier, ";" => ActionFn(69); + let __sym7 = __pop_Term_22_3b_22(__symbols); + let __sym6 = __pop_Ntidentifier(__symbols); + let __sym5 = __pop_Term_22end_22(__symbols); + let __sym4 = __pop_Ntconnect__clause_2b(__symbols); + let __sym3 = __pop_Term_22equation_22(__symbols); + let __sym2 = __pop_Ntcomponent__declaration_2b(__symbols); + let __sym1 = __pop_Ntidentifier(__symbols); + let __sym0 = __pop_Term_22model_22(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym7.2.clone(); + let __nt = super::__action69::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7); + let __states_len = __states.len(); + __states.truncate(__states_len - 8); + __symbols.push((__start, __Symbol::Ntmodel(__nt), __end)); + 17 + } + 57 => { + // model = "model", identifier, component_declaration+, "equation", connect_clause+, simple_equation+, "end", identifier, ";" => ActionFn(70); + let __sym8 = __pop_Term_22_3b_22(__symbols); + let __sym7 = __pop_Ntidentifier(__symbols); + let __sym6 = __pop_Term_22end_22(__symbols); + let __sym5 = __pop_Ntsimple__equation_2b(__symbols); + let __sym4 = __pop_Ntconnect__clause_2b(__symbols); + let __sym3 = __pop_Term_22equation_22(__symbols); + let __sym2 = __pop_Ntcomponent__declaration_2b(__symbols); + let __sym1 = __pop_Ntidentifier(__symbols); + let __sym0 = __pop_Term_22model_22(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym8.2.clone(); + let __nt = super::__action70::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7, __sym8); + let __states_len = __states.len(); + __states.truncate(__states_len - 9); + __symbols.push((__start, __Symbol::Ntmodel(__nt), __end)); + 17 + } + 58 => { + // simple_equation = expr, "=", expr, ";" => ActionFn(19); + let __sym3 = __pop_Term_22_3b_22(__symbols); + let __sym2 = __pop_Ntexpr(__symbols); + let __sym1 = __pop_Term_22_3d_22(__symbols); + let __sym0 = __pop_Ntexpr(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym3.2.clone(); + let __nt = super::__action19::<>(input, __sym0, __sym1, __sym2, __sym3); + let __states_len = __states.len(); + __states.truncate(__states_len - 4); + __symbols.push((__start, __Symbol::Ntsimple__equation(__nt), __end)); + 18 + } + 59 => { + // simple_equation* = => ActionFn(43); + let __start = __symbols.last().map(|s| s.2.clone()).unwrap_or_default(); + let __end = __lookahead_start.cloned().unwrap_or_else(|| __start.clone()); + let __nt = super::__action43::<>(input, &__start, &__end); + let __states_len = __states.len(); + __states.truncate(__states_len - 0); + __symbols.push((__start, __Symbol::Ntsimple__equation_2a(__nt), __end)); + 19 + } + 60 => { + // simple_equation* = simple_equation+ => ActionFn(44); + let __sym0 = __pop_Ntsimple__equation_2b(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action44::<>(input, __sym0); + let __states_len = __states.len(); + __states.truncate(__states_len - 1); + __symbols.push((__start, __Symbol::Ntsimple__equation_2a(__nt), __end)); + 19 + } + 61 => { + // simple_equation+ = simple_equation => ActionFn(53); + let __sym0 = __pop_Ntsimple__equation(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action53::<>(input, __sym0); + let __states_len = __states.len(); + __states.truncate(__states_len - 1); + __symbols.push((__start, __Symbol::Ntsimple__equation_2b(__nt), __end)); + 20 + } + 62 => { + // simple_equation+ = simple_equation+, simple_equation => ActionFn(54); + let __sym1 = __pop_Ntsimple__equation(__symbols); + let __sym0 = __pop_Ntsimple__equation_2b(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym1.2.clone(); + let __nt = super::__action54::<>(input, __sym0, __sym1); + let __states_len = __states.len(); + __states.truncate(__states_len - 2); + __symbols.push((__start, __Symbol::Ntsimple__equation_2b(__nt), __end)); + 20 + } + 63 => { + // string_literal = r#"\"[^\"\\\\]*\""# => ActionFn(5); + let __sym0 = __pop_Termr_23_22_5c_22_5b_5e_5c_22_5c_5c_5c_5c_5d_2a_5c_22_22_23(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action5::<>(input, __sym0); + let __states_len = __states.len(); + __states.truncate(__states_len - 1); + __symbols.push((__start, __Symbol::Ntstring__literal(__nt), __end)); + 21 + } + 64 => { + // string_literal? = string_literal => ActionFn(35); + let __sym0 = __pop_Ntstring__literal(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action35::<>(input, __sym0); + let __states_len = __states.len(); + __states.truncate(__states_len - 1); + __symbols.push((__start, __Symbol::Ntstring__literal_3f(__nt), __end)); + 22 + } + 65 => { + // string_literal? = => ActionFn(36); + let __start = __symbols.last().map(|s| s.2.clone()).unwrap_or_default(); + let __end = __lookahead_start.cloned().unwrap_or_else(|| __start.clone()); + let __nt = super::__action36::<>(input, &__start, &__end); + let __states_len = __states.len(); + __states.truncate(__states_len - 0); + __symbols.push((__start, __Symbol::Ntstring__literal_3f(__nt), __end)); + 22 + } + 66 => { + // term = integer => ActionFn(29); + let __sym0 = __pop_Ntinteger(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action29::<>(input, __sym0); + let __states_len = __states.len(); + __states.truncate(__states_len - 1); + __symbols.push((__start, __Symbol::Ntterm(__nt), __end)); + 23 + } + 67 => { + // term = float => ActionFn(30); + let __sym0 = __pop_Ntfloat(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action30::<>(input, __sym0); + let __states_len = __states.len(); + __states.truncate(__states_len - 1); + __symbols.push((__start, __Symbol::Ntterm(__nt), __end)); + 23 + } + 68 => { + // term = identifier => ActionFn(31); + let __sym0 = __pop_Ntidentifier(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action31::<>(input, __sym0); + let __states_len = __states.len(); + __states.truncate(__states_len - 1); + __symbols.push((__start, __Symbol::Ntterm(__nt), __end)); + 23 + } + 69 => { + // term = "der", "(", expr, ")" => ActionFn(32); + let __sym3 = __pop_Term_22_29_22(__symbols); + let __sym2 = __pop_Ntexpr(__symbols); + let __sym1 = __pop_Term_22_28_22(__symbols); + let __sym0 = __pop_Term_22der_22(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym3.2.clone(); + let __nt = super::__action32::<>(input, __sym0, __sym1, __sym2, __sym3); + let __states_len = __states.len(); + __states.truncate(__states_len - 4); + __symbols.push((__start, __Symbol::Ntterm(__nt), __end)); + 23 + } + 70 => { + // term = "abs", "(", expr, ")" => ActionFn(33); + let __sym3 = __pop_Term_22_29_22(__symbols); + let __sym2 = __pop_Ntexpr(__symbols); + let __sym1 = __pop_Term_22_28_22(__symbols); + let __sym0 = __pop_Term_22abs_22(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym3.2.clone(); + let __nt = super::__action33::<>(input, __sym0, __sym1, __sym2, __sym3); + let __states_len = __states.len(); + __states.truncate(__states_len - 4); + __symbols.push((__start, __Symbol::Ntterm(__nt), __end)); + 23 + } + 71 => { + // term = "(", expr, ")" => ActionFn(34); + let __sym2 = __pop_Term_22_29_22(__symbols); + let __sym1 = __pop_Ntexpr(__symbols); + let __sym0 = __pop_Term_22_28_22(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym2.2.clone(); + let __nt = super::__action34::<>(input, __sym0, __sym1, __sym2); + let __states_len = __states.len(); + __states.truncate(__states_len - 3); + __symbols.push((__start, __Symbol::Ntterm(__nt), __end)); + 23 + } + 72 => { + // units_declaration = "(", "unit", "=", string_literal, ")" => ActionFn(10); + let __sym4 = __pop_Term_22_29_22(__symbols); + let __sym3 = __pop_Ntstring__literal(__symbols); + let __sym2 = __pop_Term_22_3d_22(__symbols); + let __sym1 = __pop_Term_22unit_22(__symbols); + let __sym0 = __pop_Term_22_28_22(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym4.2.clone(); + let __nt = super::__action10::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4); + let __states_len = __states.len(); + __states.truncate(__states_len - 5); + __symbols.push((__start, __Symbol::Ntunits__declaration(__nt), __end)); + 24 + } + 73 => { + // units_declaration? = units_declaration => ActionFn(39); + let __sym0 = __pop_Ntunits__declaration(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action39::<>(input, __sym0); + let __states_len = __states.len(); + __states.truncate(__states_len - 1); + __symbols.push((__start, __Symbol::Ntunits__declaration_3f(__nt), __end)); + 25 + } + 74 => { + // units_declaration? = => ActionFn(40); + let __start = __symbols.last().map(|s| s.2.clone()).unwrap_or_default(); + let __end = __lookahead_start.cloned().unwrap_or_else(|| __start.clone()); + let __nt = super::__action40::<>(input, &__start, &__end); + let __states_len = __states.len(); + __states.truncate(__states_len - 0); + __symbols.push((__start, __Symbol::Ntunits__declaration_3f(__nt), __end)); + 25 + } + 75 => { + // value_declaration = "=", expr => ActionFn(9); + let __sym1 = __pop_Ntexpr(__symbols); + let __sym0 = __pop_Term_22_3d_22(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym1.2.clone(); + let __nt = super::__action9::<>(input, __sym0, __sym1); + let __states_len = __states.len(); + __states.truncate(__states_len - 2); + __symbols.push((__start, __Symbol::Ntvalue__declaration(__nt), __end)); + 26 + } + 76 => { + // value_declaration? = value_declaration => ActionFn(37); + let __sym0 = __pop_Ntvalue__declaration(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action37::<>(input, __sym0); + let __states_len = __states.len(); + __states.truncate(__states_len - 1); + __symbols.push((__start, __Symbol::Ntvalue__declaration_3f(__nt), __end)); + 27 + } + 77 => { + // value_declaration? = => ActionFn(38); + let __start = __symbols.last().map(|s| s.2.clone()).unwrap_or_default(); + let __end = __lookahead_start.cloned().unwrap_or_else(|| __start.clone()); + let __nt = super::__action38::<>(input, &__start, &__end); + let __states_len = __states.len(); + __states.truncate(__states_len - 0); + __symbols.push((__start, __Symbol::Ntvalue__declaration_3f(__nt), __end)); + 27 + } + _ => panic!("invalid action code {}", __action) + }; + let __state = *__states.last().unwrap() as usize; + let __next_state = __GOTO[__state * 28 + __nonterminal] - 1; + __states.push(__next_state); + None + } + fn __pop_Term_22_28_22< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, &'input str, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Term_22_28_22(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Term_22_29_22< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, &'input str, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Term_22_29_22(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Term_22_2a_22< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, &'input str, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Term_22_2a_22(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Term_22_2b_22< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, &'input str, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Term_22_2b_22(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Term_22_2c_22< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, &'input str, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Term_22_2c_22(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Term_22_2d_22< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, &'input str, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Term_22_2d_22(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Term_22_2f_22< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, &'input str, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Term_22_2f_22(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Term_22_3b_22< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, &'input str, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Term_22_3b_22(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Term_22_3d_22< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, &'input str, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Term_22_3d_22(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Term_22_5e_22< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, &'input str, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Term_22_5e_22(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Term_22abs_22< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, &'input str, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Term_22abs_22(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Term_22connect_22< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, &'input str, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Term_22connect_22(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Term_22constant_22< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, &'input str, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Term_22constant_22(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Term_22der_22< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, &'input str, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Term_22der_22(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Term_22discrete_22< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, &'input str, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Term_22discrete_22(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Term_22end_22< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, &'input str, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Term_22end_22(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Term_22equation_22< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, &'input str, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Term_22equation_22(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Term_22flow_22< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, &'input str, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Term_22flow_22(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Term_22input_22< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, &'input str, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Term_22input_22(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Term_22model_22< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, &'input str, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Term_22model_22(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Term_22output_22< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, &'input str, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Term_22output_22(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Term_22parameter_22< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, &'input str, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Term_22parameter_22(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Term_22stream_22< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, &'input str, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Term_22stream_22(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Term_22unit_22< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, &'input str, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Term_22unit_22(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Termr_23_22_5c_22_5b_5e_5c_22_5c_5c_5c_5c_5d_2a_5c_22_22_23< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, &'input str, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Termr_23_22_5c_22_5b_5e_5c_22_5c_5c_5c_5c_5d_2a_5c_22_22_23(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Termr_23_22_5b_2b_2d_5d_3f_5c_5cd_2b_22_23< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, &'input str, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Termr_23_22_5b_2b_2d_5d_3f_5c_5cd_2b_22_23(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Termr_23_22_5b_2b_2d_5d_3f_5c_5cd_2b_5c_5c_2e_5c_5cd_2a_28_5beE_5d_5b_2d_2b_5d_3f_5c_5cd_2b_29_3f_22_23< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, &'input str, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Termr_23_22_5b_2b_2d_5d_3f_5c_5cd_2b_5c_5c_2e_5c_5cd_2a_28_5beE_5d_5b_2d_2b_5d_3f_5c_5cd_2b_29_3f_22_23(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Termr_23_22_5ba_2dzA_2dZ___5d_5ba_2dzA_2dZ__0_2d9_5d_2a_22_23< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, &'input str, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Termr_23_22_5ba_2dzA_2dZ___5d_5ba_2dzA_2dZ__0_2d9_5d_2a_22_23(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Termerror< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, __lalrpop_util::ErrorRecovery, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Termerror(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Nt____float< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, f64, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Nt____float(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Nt____identifier< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, String, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Nt____identifier(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Nt____integer< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, i64, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Nt____integer(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Nt____model< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, ModelicaModel, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Nt____model(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Ntcomponent__declaration< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, Component, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Ntcomponent__declaration(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Ntcomponent__declaration_2a< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, ::std::vec::Vec, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Ntcomponent__declaration_2a(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Ntcomponent__declaration_2b< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, ::std::vec::Vec, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Ntcomponent__declaration_2b(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Ntcomponent__prefix< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, ComponentPrefix, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Ntcomponent__prefix(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Ntcomponent__prefix_3f< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, ::std::option::Option, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Ntcomponent__prefix_3f(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Ntconnect__clause< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, Connection, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Ntconnect__clause(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Ntconnect__clause_2a< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, ::std::vec::Vec, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Ntconnect__clause_2a(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Ntconnect__clause_2b< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, ::std::vec::Vec, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Ntconnect__clause_2b(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Ntexpr< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, Expr, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Ntexpr(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Ntfactor< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, Expr, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Ntfactor(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Ntfloat< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, f64, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Ntfloat(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Ntidentifier< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, String, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Ntidentifier(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Ntinteger< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, i64, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Ntinteger(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Ntmodel< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, ModelicaModel, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Ntmodel(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Ntsimple__equation< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, SimpleEquation, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Ntsimple__equation(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Ntsimple__equation_2a< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, ::std::vec::Vec, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Ntsimple__equation_2a(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Ntsimple__equation_2b< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, ::std::vec::Vec, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Ntsimple__equation_2b(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Ntstring__literal< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, String, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Ntstring__literal(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Ntstring__literal_3f< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, ::std::option::Option, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Ntstring__literal_3f(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Ntterm< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, Expr, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Ntterm(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Ntunits__declaration< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, String, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Ntunits__declaration(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Ntunits__declaration_3f< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, ::std::option::Option, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Ntunits__declaration_3f(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Ntvalue__declaration< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, Expr, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Ntvalue__declaration(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Ntvalue__declaration_3f< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, ::std::option::Option, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Ntvalue__declaration_3f(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } +} +pub use self::__parse__integer::parse_integer; + +mod __parse__model { + #![allow(non_snake_case, non_camel_case_types, unused_mut, unused_variables, unused_imports)] + + use std::str::FromStr; + use ast::{ModelicaModel,Component, ComponentPrefix, Connection, + SimpleEquation, Expr, BinOperator}; + extern crate lalrpop_util as __lalrpop_util; + #[allow(dead_code)] + pub enum __Symbol<'input> { + Term_22_28_22(&'input str), + Term_22_29_22(&'input str), + Term_22_2a_22(&'input str), + Term_22_2b_22(&'input str), + Term_22_2c_22(&'input str), + Term_22_2d_22(&'input str), + Term_22_2f_22(&'input str), + Term_22_3b_22(&'input str), + Term_22_3d_22(&'input str), + Term_22_5e_22(&'input str), + Term_22abs_22(&'input str), + Term_22connect_22(&'input str), + Term_22constant_22(&'input str), + Term_22der_22(&'input str), + Term_22discrete_22(&'input str), + Term_22end_22(&'input str), + Term_22equation_22(&'input str), + Term_22flow_22(&'input str), + Term_22input_22(&'input str), + Term_22model_22(&'input str), + Term_22output_22(&'input str), + Term_22parameter_22(&'input str), + Term_22stream_22(&'input str), + Term_22unit_22(&'input str), + Termr_23_22_5c_22_5b_5e_5c_22_5c_5c_5c_5c_5d_2a_5c_22_22_23(&'input str), + Termr_23_22_5b_2b_2d_5d_3f_5c_5cd_2b_22_23(&'input str), + Termr_23_22_5b_2b_2d_5d_3f_5c_5cd_2b_5c_5c_2e_5c_5cd_2a_28_5beE_5d_5b_2d_2b_5d_3f_5c_5cd_2b_29_3f_22_23(&'input str), + Termr_23_22_5ba_2dzA_2dZ___5d_5ba_2dzA_2dZ__0_2d9_5d_2a_22_23(&'input str), + Termerror(__lalrpop_util::ErrorRecovery), + Nt____float(f64), + Nt____identifier(String), + Nt____integer(i64), + Nt____model(ModelicaModel), + Ntcomponent__declaration(Component), + Ntcomponent__declaration_2a(::std::vec::Vec), + Ntcomponent__declaration_2b(::std::vec::Vec), + Ntcomponent__prefix(ComponentPrefix), + Ntcomponent__prefix_3f(::std::option::Option), + Ntconnect__clause(Connection), + Ntconnect__clause_2a(::std::vec::Vec), + Ntconnect__clause_2b(::std::vec::Vec), + Ntexpr(Expr), + Ntfactor(Expr), + Ntfloat(f64), + Ntidentifier(String), + Ntinteger(i64), + Ntmodel(ModelicaModel), + Ntsimple__equation(SimpleEquation), + Ntsimple__equation_2a(::std::vec::Vec), + Ntsimple__equation_2b(::std::vec::Vec), + Ntstring__literal(String), + Ntstring__literal_3f(::std::option::Option), + Ntterm(Expr), + Ntunits__declaration(String), + Ntunits__declaration_3f(::std::option::Option), + Ntvalue__declaration(Expr), + Ntvalue__declaration_3f(::std::option::Option), + } + const __ACTION: &'static [i32] = &[ + // State 0 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 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, + // State 2 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, + // State 3 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 0, 12, 13, 14, 0, 15, 16, 17, 0, 0, 0, 0, 18, 0, + // State 4 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -48, 0, -48, 0, -48, -48, -48, 0, -48, -48, -48, 0, 0, 0, 0, -48, 0, + // State 5 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -23, 0, -23, 0, -23, -23, -23, 0, -23, -23, -23, 0, 0, 0, 0, -23, 0, + // State 6 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 0, 20, 13, 14, 0, 15, 16, 17, 0, 0, 0, 0, 18, 0, + // State 7 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 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, 23, 0, + // State 9 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -31, 0, + // State 10 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -29, 0, + // State 11 + 34, 0, 0, 0, 0, 35, 0, 0, 0, 0, 36, 37, 0, 38, 0, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 41, 42, 0, + // State 12 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -25, 0, + // State 13 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -27, 0, + // State 14 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -28, 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, -30, 0, + // State 16 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -26, 0, + // State 17 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -48, 0, + // State 18 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -24, 0, -24, 0, -24, -24, -24, 0, -24, -24, -24, 0, 0, 0, 0, -24, 0, + // State 19 + 34, 0, 0, 0, 0, 35, 0, 0, 0, 0, 36, 37, 0, 38, 0, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 41, 42, 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, 23, 0, + // State 21 + 50, 0, 0, 0, 0, 0, 0, 51, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 0, 0, 0, 0, + // State 22 + -48, 0, 0, 0, 0, 0, 0, -48, -48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -48, 0, 0, 0, 0, + // State 23 + -37, 0, 0, 0, 0, -37, 0, 0, 0, 0, -37, -37, 0, -37, 0, -37, 0, 0, 0, 0, 0, 0, 0, 0, 0, -37, -37, -37, 0, + // State 24 + 34, 0, 0, 0, 0, 35, 0, 0, 0, 0, 36, 37, 0, 38, 0, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 41, 42, 0, + // State 25 + 0, 0, 0, 57, 0, 58, 0, 0, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 26 + 0, 0, 60, -41, 0, -41, 61, 0, -41, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 27 + 0, 0, -67, -67, 0, -67, -67, 0, -67, -67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 28 + 0, 0, -68, -68, 0, -68, -68, 0, -68, -68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 29 + 0, 0, -66, -66, 0, -66, -66, 0, -66, -66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 30 + -61, 0, 0, 0, 0, -61, 0, 0, 0, 0, -61, 0, 0, -61, 0, -61, 0, 0, 0, 0, 0, 0, 0, 0, 0, -61, -61, -61, 0, + // State 31 + 34, 0, 0, 0, 0, 35, 0, 0, 0, 0, 36, 0, 0, 38, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 41, 42, 0, + // State 32 + 0, 0, -46, -46, 0, -46, -46, 0, -46, -46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 33 + 71, 0, 0, 0, 0, 72, 0, 0, 0, 0, 73, 0, 0, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 76, 77, 0, + // State 34 + 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 41, 42, 0, + // State 35 + 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, + // State 36 + 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, + // State 37 + 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, + // State 38 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 0, + // State 39 + 0, 0, -49, -49, 0, -49, -49, 0, -49, -49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 40 + 0, 0, -47, -47, 0, -47, -47, 0, -47, -47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 41 + 0, 0, -48, -48, 0, -48, -48, 0, -48, -48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 42 + 34, 0, 0, 0, 0, 35, 0, 0, 0, 0, 36, 37, 0, 38, 0, 85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 41, 42, 0, + // State 43 + 34, 0, 0, 0, 0, 35, 0, 0, 0, 0, 36, 0, 0, 38, 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 41, 42, 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, 83, 0, + // State 45 + 50, 0, 0, 0, 0, 0, 0, 91, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 0, 0, 0, 0, + // State 46 + 0, 0, 0, 0, 0, 0, 0, 92, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 47 + 0, 0, 0, 0, 0, 0, 0, 95, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 0, 0, 0, 0, + // State 48 + 0, 0, 0, 0, 0, 0, 0, 97, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 0, 0, 0, 0, + // State 49 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 98, 0, 0, 0, 0, 0, + // State 50 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -20, 0, -20, 0, -20, -20, -20, 0, -20, -20, -20, 0, 0, 0, 0, -20, 0, + // State 51 + 105, 0, 0, 0, 0, 106, 0, 0, 0, 0, 107, 0, 0, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109, 110, 111, 0, + // State 52 + 0, 0, 0, 0, 0, 0, 0, -63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 53 + -38, 0, 0, 0, 0, -38, 0, 0, 0, 0, -38, -38, 0, -38, 0, -38, 0, 0, 0, 0, 0, 0, 0, 0, 0, -38, -38, -38, 0, + // State 54 + 34, 0, 0, 0, 0, 35, 0, 0, 0, 0, 36, 0, 0, 38, 0, 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 41, 42, 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, 83, 0, + // State 56 + 34, 0, 0, 0, 0, 35, 0, 0, 0, 0, 36, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 41, 42, 0, + // State 57 + 34, 0, 0, 0, 0, 35, 0, 0, 0, 0, 36, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 41, 42, 0, + // State 58 + 122, 0, 0, 0, 0, 123, 0, 0, 0, 0, 124, 0, 0, 125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 126, 127, 128, 0, + // State 59 + 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 41, 42, 0, + // State 60 + 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 41, 42, 0, + // State 61 + 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 41, 42, 0, + // State 62 + -62, 0, 0, 0, 0, -62, 0, 0, 0, 0, -62, 0, 0, -62, 0, -62, 0, 0, 0, 0, 0, 0, 0, 0, 0, -62, -62, -62, 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, 83, 0, + // State 64 + 0, 133, 0, 134, 0, 135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 65 + 0, -41, 136, -41, 0, -41, 137, 0, 0, 138, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 66 + 0, -67, -67, -67, 0, -67, -67, 0, 0, -67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 67 + 0, -68, -68, -68, 0, -68, -68, 0, 0, -68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 68 + 0, -66, -66, -66, 0, -66, -66, 0, 0, -66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 69 + 0, -46, -46, -46, 0, -46, -46, 0, 0, -46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 70 + 71, 0, 0, 0, 0, 72, 0, 0, 0, 0, 73, 0, 0, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 76, 77, 0, + // State 71 + 71, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 0, 0, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 76, 77, 0, + // State 72 + 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, + // State 73 + 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, + // State 74 + 0, -49, -49, -49, 0, -49, -49, 0, 0, -49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 75 + 0, -47, -47, -47, 0, -47, -47, 0, 0, -47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 76 + 0, -48, -48, -48, 0, -48, -48, 0, 0, -48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 77 + 0, 0, -45, -45, 0, -45, -45, 0, -45, -45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 78 + 71, 0, 0, 0, 0, 72, 0, 0, 0, 0, 73, 0, 0, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 76, 77, 0, + // State 79 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 145, 0, + // State 80 + 71, 0, 0, 0, 0, 72, 0, 0, 0, 0, 73, 0, 0, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 76, 77, 0, + // State 81 + 0, 0, 0, 0, 0, 0, 0, 147, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 82 + 0, 0, 0, 0, 0, 0, 0, -48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 83 + 34, 0, 0, 0, 0, 35, 0, 0, 0, 0, 36, 0, 0, 38, 0, 148, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 41, 42, 0, + // State 84 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 0, + // State 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, 83, 0, + // State 86 + 0, 0, 0, 0, 0, 0, 0, 151, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 87 + 0, 0, 0, 0, 0, 0, 0, 152, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 88 + 0, 0, 0, 0, 0, 0, 0, 155, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 0, 0, 0, 0, + // State 89 + 0, 0, 0, 0, 0, 0, 0, 157, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 0, 0, 0, 0, + // State 90 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -12, 0, -12, 0, -12, -12, -12, 0, -12, -12, -12, 0, 0, 0, 0, -12, 0, + // State 91 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -16, 0, -16, 0, -16, -16, -16, 0, -16, -16, -16, 0, 0, 0, 0, -16, 0, + // State 92 + 0, 0, 0, 0, 0, 0, 0, 158, 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, 160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 0, 0, 0, 0, + // State 94 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -18, 0, -18, 0, -18, -18, -18, 0, -18, -18, -18, 0, 0, 0, 0, -18, 0, + // State 95 + 0, 0, 0, 0, 0, 0, 0, 161, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 96 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -19, 0, -19, 0, -19, -19, -19, 0, -19, -19, -19, 0, 0, 0, 0, -19, 0, + // State 97 + 0, 0, 0, 0, 0, 0, 0, 0, 162, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 98 + 0, 0, 0, 163, 0, 164, 0, -75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -75, 0, 0, 0, 0, + // State 99 + 0, 0, 165, -41, 0, -41, 166, -41, 0, 167, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -41, 0, 0, 0, 0, + // State 100 + 0, 0, -67, -67, 0, -67, -67, -67, 0, -67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -67, 0, 0, 0, 0, + // State 101 + 0, 0, -68, -68, 0, -68, -68, -68, 0, -68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -68, 0, 0, 0, 0, + // State 102 + 0, 0, -66, -66, 0, -66, -66, -66, 0, -66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -66, 0, 0, 0, 0, + // State 103 + 0, 0, -46, -46, 0, -46, -46, -46, 0, -46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -46, 0, 0, 0, 0, + // State 104 + 71, 0, 0, 0, 0, 72, 0, 0, 0, 0, 73, 0, 0, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 76, 77, 0, + // State 105 + 105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 107, 0, 0, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109, 110, 111, 0, + // State 106 + 170, 0, 0, 0, 0, 0, 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 + 171, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 108 + 0, 0, -49, -49, 0, -49, -49, -49, 0, -49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -49, 0, 0, 0, 0, + // State 109 + 0, 0, -47, -47, 0, -47, -47, -47, 0, -47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -47, 0, 0, 0, 0, + // State 110 + 0, 0, -48, -48, 0, -48, -48, -48, 0, -48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -48, 0, 0, 0, 0, + // State 111 + 0, 0, 0, 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, + // State 112 + 0, 0, 0, 0, 0, 0, 0, 173, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 113 + 0, 0, 60, -39, 0, -39, 61, 0, -39, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 114 + 0, 0, 60, -40, 0, -40, 61, 0, -40, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 115 + 0, 0, 0, 174, 0, 175, 0, 176, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 116 + 0, 0, 177, -41, 0, -41, 178, -41, 0, 179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 117 + 0, 0, -67, -67, 0, -67, -67, -67, 0, -67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 118 + 0, 0, -68, -68, 0, -68, -68, -68, 0, -68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 119 + 0, 0, -66, -66, 0, -66, -66, -66, 0, -66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 120 + 0, 0, -46, -46, 0, -46, -46, -46, 0, -46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 121 + 71, 0, 0, 0, 0, 72, 0, 0, 0, 0, 73, 0, 0, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 76, 77, 0, + // State 122 + 122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 124, 0, 0, 125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 126, 127, 128, 0, + // State 123 + 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 124 + 183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 125 + 0, 0, -49, -49, 0, -49, -49, -49, 0, -49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 126 + 0, 0, -47, -47, 0, -47, -47, -47, 0, -47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 127 + 0, 0, -48, -48, 0, -48, -48, -48, 0, -48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 128 + 0, 0, -42, -42, 0, -42, -42, 0, -42, -42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 129 + 0, 0, -43, -43, 0, -43, -43, 0, -43, -43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 130 + 0, 0, -44, -44, 0, -44, -44, 0, -44, -44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 131 + 0, 0, 0, 0, 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 132 + 0, 0, -71, -71, 0, -71, -71, 0, -71, -71, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 133 + 71, 0, 0, 0, 0, 72, 0, 0, 0, 0, 73, 0, 0, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 76, 77, 0, + // State 134 + 71, 0, 0, 0, 0, 72, 0, 0, 0, 0, 73, 0, 0, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 76, 77, 0, + // State 135 + 71, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 0, 0, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 76, 77, 0, + // State 136 + 71, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 0, 0, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 76, 77, 0, + // State 137 + 71, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 0, 0, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 76, 77, 0, + // State 138 + 0, 190, 0, 134, 0, 135, 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, -45, -45, -45, 0, -45, -45, 0, 0, -45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 140 + 71, 0, 0, 0, 0, 72, 0, 0, 0, 0, 73, 0, 0, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 76, 77, 0, + // State 141 + 71, 0, 0, 0, 0, 72, 0, 0, 0, 0, 73, 0, 0, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 76, 77, 0, + // State 142 + 0, 193, 0, 134, 0, 135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 143 + 0, 0, 0, 0, 194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 144 + 0, 0, 0, 0, -48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 145 + 0, 195, 0, 134, 0, 135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 146 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 147 + 0, 0, 0, 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, + // State 148 + 0, 0, 0, 0, 0, 0, 0, 197, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 149 + 0, 0, 0, 0, 0, 0, 0, 198, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // 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, + // State 151 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -8, 0, -8, 0, -8, -8, -8, 0, -8, -8, -8, 0, 0, 0, 0, -8, 0, + // State 152 + 0, 0, 0, 0, 0, 0, 0, 199, 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, 201, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 0, 0, 0, 0, + // State 154 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -10, 0, -10, 0, -10, -10, -10, 0, -10, -10, -10, 0, 0, 0, 0, -10, 0, + // State 155 + 0, 0, 0, 0, 0, 0, 0, 202, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 156 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -11, 0, -11, 0, -11, -11, -11, 0, -11, -11, -11, 0, 0, 0, 0, -11, 0, + // State 157 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -14, 0, -14, 0, -14, -14, -14, 0, -14, -14, -14, 0, 0, 0, 0, -14, 0, + // State 158 + 0, 0, 0, 0, 0, 0, 0, 203, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 159 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -17, 0, -17, 0, -17, -17, -17, 0, -17, -17, -17, 0, 0, 0, 0, -17, 0, + // State 160 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -15, 0, -15, 0, -15, -15, -15, 0, -15, -15, -15, 0, 0, 0, 0, -15, 0, + // State 161 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 205, 0, 0, 0, 0, + // State 162 + 105, 0, 0, 0, 0, 106, 0, 0, 0, 0, 107, 0, 0, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109, 110, 111, 0, + // State 163 + 105, 0, 0, 0, 0, 106, 0, 0, 0, 0, 107, 0, 0, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109, 110, 111, 0, + // State 164 + 105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 107, 0, 0, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109, 110, 111, 0, + // State 165 + 105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 107, 0, 0, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109, 110, 111, 0, + // State 166 + 105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 107, 0, 0, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109, 110, 111, 0, + // State 167 + 0, 211, 0, 134, 0, 135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 168 + 0, 0, -45, -45, 0, -45, -45, -45, 0, -45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -45, 0, 0, 0, 0, + // State 169 + 71, 0, 0, 0, 0, 72, 0, 0, 0, 0, 73, 0, 0, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 76, 77, 0, + // State 170 + 71, 0, 0, 0, 0, 72, 0, 0, 0, 0, 73, 0, 0, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 76, 77, 0, + // State 171 + 0, 0, 0, 0, 0, 0, 0, 214, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 172 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 173 + 122, 0, 0, 0, 0, 123, 0, 0, 0, 0, 124, 0, 0, 125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 126, 127, 128, 0, + // State 174 + 122, 0, 0, 0, 0, 123, 0, 0, 0, 0, 124, 0, 0, 125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 126, 127, 128, 0, + // State 175 + -58, 0, 0, 0, 0, -58, 0, 0, 0, 0, -58, 0, 0, -58, 0, -58, 0, 0, 0, 0, 0, 0, 0, 0, 0, -58, -58, -58, 0, + // State 176 + 122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 124, 0, 0, 125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 126, 127, 128, 0, + // State 177 + 122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 124, 0, 0, 125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 126, 127, 128, 0, + // State 178 + 122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 124, 0, 0, 125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 126, 127, 128, 0, + // State 179 + 0, 220, 0, 134, 0, 135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 180 + 0, 0, -45, -45, 0, -45, -45, -45, 0, -45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 181 + 71, 0, 0, 0, 0, 72, 0, 0, 0, 0, 73, 0, 0, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 76, 77, 0, + // State 182 + 71, 0, 0, 0, 0, 72, 0, 0, 0, 0, 73, 0, 0, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 76, 77, 0, + // State 183 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 184 + 0, -39, 136, -39, 0, -39, 137, 0, 0, 138, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 185 + 0, -40, 136, -40, 0, -40, 137, 0, 0, 138, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 186 + 0, -42, -42, -42, 0, -42, -42, 0, 0, -42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 187 + 0, -43, -43, -43, 0, -43, -43, 0, 0, -43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 188 + 0, -44, -44, -44, 0, -44, -44, 0, 0, -44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 189 + 0, -71, -71, -71, 0, -71, -71, 0, 0, -71, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 190 + 0, 223, 0, 134, 0, 135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 191 + 0, 224, 0, 134, 0, 135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 192 + 0, 0, -70, -70, 0, -70, -70, 0, -70, -70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 193 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 226, 0, + // State 194 + 0, 0, -69, -69, 0, -69, -69, 0, -69, -69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 195 + 0, 0, 0, 0, 0, 0, 0, 227, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 196 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 197 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 198 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -6, 0, -6, 0, -6, -6, -6, 0, -6, -6, -6, 0, 0, 0, 0, -6, 0, + // State 199 + 0, 0, 0, 0, 0, 0, 0, 228, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 200 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -9, 0, -9, 0, -9, -9, -9, 0, -9, -9, -9, 0, 0, 0, 0, -9, 0, + // State 201 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -7, 0, -7, 0, -7, -7, -7, 0, -7, -7, -7, 0, 0, 0, 0, -7, 0, + // State 202 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -13, 0, -13, 0, -13, -13, -13, 0, -13, -13, -13, 0, 0, 0, 0, -13, 0, + // State 203 + 0, 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 204 + 0, -63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 205 + 0, 0, 165, -39, 0, -39, 166, -39, 0, 167, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -39, 0, 0, 0, 0, + // State 206 + 0, 0, 165, -40, 0, -40, 166, -40, 0, 167, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -40, 0, 0, 0, 0, + // State 207 + 0, 0, -42, -42, 0, -42, -42, -42, 0, -42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -42, 0, 0, 0, 0, + // State 208 + 0, 0, -43, -43, 0, -43, -43, -43, 0, -43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -43, 0, 0, 0, 0, + // State 209 + 0, 0, -44, -44, 0, -44, -44, -44, 0, -44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -44, 0, 0, 0, 0, + // State 210 + 0, 0, -71, -71, 0, -71, -71, -71, 0, -71, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -71, 0, 0, 0, 0, + // State 211 + 0, 230, 0, 134, 0, 135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 212 + 0, 231, 0, 134, 0, 135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 213 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 214 + 0, 0, 177, -39, 0, -39, 178, -39, 0, 179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 215 + 0, 0, 177, -40, 0, -40, 178, -40, 0, 179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 216 + 0, 0, -42, -42, 0, -42, -42, -42, 0, -42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 217 + 0, 0, -43, -43, 0, -43, -43, -43, 0, -43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 218 + 0, 0, -44, -44, 0, -44, -44, -44, 0, -44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 219 + 0, 0, -71, -71, 0, -71, -71, -71, 0, -71, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 220 + 0, 232, 0, 134, 0, 135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 221 + 0, 233, 0, 134, 0, 135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 222 + 0, -70, -70, -70, 0, -70, -70, 0, 0, -70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 223 + 0, -69, -69, -69, 0, -69, -69, 0, 0, -69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 224 + 0, 234, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 225 + 0, -48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 226 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 227 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -5, 0, -5, 0, -5, -5, -5, 0, -5, -5, -5, 0, 0, 0, 0, -5, 0, + // State 228 + 0, 0, 0, 0, 0, 0, 0, -72, -72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -72, 0, 0, 0, 0, + // State 229 + 0, 0, -70, -70, 0, -70, -70, -70, 0, -70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -70, 0, 0, 0, 0, + // State 230 + 0, 0, -69, -69, 0, -69, -69, -69, 0, -69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -69, 0, 0, 0, 0, + // State 231 + 0, 0, -70, -70, 0, -70, -70, -70, 0, -70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 232 + 0, 0, -69, -69, 0, -69, -69, -69, 0, -69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 233 + 0, 0, 0, 0, 0, 0, 0, 235, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 234 + -34, 0, 0, 0, 0, -34, 0, 0, 0, 0, -34, -34, 0, -34, 0, -34, 0, 0, 0, 0, 0, 0, 0, 0, 0, -34, -34, -34, 0, + ]; + const __EOF_ACTION: &'static [i32] = &[ + 0, + -4, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -50, + 0, + 0, + 0, + -54, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -52, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -51, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -56, + -55, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -53, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -57, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + ]; + const __GOTO: &'static [i32] = &[ + // State 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, + // 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, + // State 2 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 3 + 0, 0, 0, 0, 6, 0, 7, 8, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 4 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // 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, + // State 6 + 0, 0, 0, 0, 19, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 7 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 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, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 9 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 10 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 11 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 25, 26, 27, 28, 29, 30, 0, 31, 0, 32, 0, 0, 33, 0, 0, 0, 0, + // State 12 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 13 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 14 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // 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, + // State 16 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 17 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // 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, + // State 19 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 43, 26, 27, 28, 29, 30, 0, 31, 0, 44, 0, 0, 33, 0, 0, 0, 0, + // State 20 + 0, 0, 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, + // State 21 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 0, 0, 48, 0, 49, 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, + // 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, + // State 24 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 54, 0, 0, 26, 27, 28, 29, 30, 0, 31, 0, 55, 0, 0, 33, 0, 0, 0, 0, + // State 25 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 26 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // 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, + // State 28 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // 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, + // 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, + // State 31 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 27, 28, 29, 30, 0, 63, 0, 0, 0, 0, 33, 0, 0, 0, 0, + // State 32 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 33 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65, 66, 67, 68, 69, 0, 0, 0, 0, 0, 0, 70, 0, 0, 0, 0, + // State 34 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 29, 30, 0, 0, 0, 0, 0, 0, 78, 0, 0, 0, 0, + // State 35 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // 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, + // State 37 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 38 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 39 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 40 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // 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, + // State 42 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 54, 0, 0, 26, 27, 28, 29, 30, 0, 31, 0, 84, 0, 0, 33, 0, 0, 0, 0, + // State 43 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 27, 28, 29, 30, 0, 63, 0, 0, 0, 0, 33, 0, 0, 0, 0, + // State 44 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 45 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 0, 0, 89, 0, 90, 0, + // State 46 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 47 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 93, 0, 0, 0, 0, 94, 0, + // State 48 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 0, 0, 0, 0, 0, 0, + // State 49 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // 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, + // State 51 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 99, 100, 101, 102, 103, 0, 0, 0, 0, 0, 0, 104, 0, 0, 0, 0, + // State 52 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 53 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 54 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 27, 28, 29, 30, 0, 63, 0, 0, 0, 0, 33, 0, 0, 0, 0, + // State 55 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 113, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 56 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 114, 28, 29, 30, 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, + // State 57 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 115, 28, 29, 30, 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, + // State 58 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 116, 117, 118, 119, 120, 0, 0, 0, 0, 0, 0, 121, 0, 0, 0, 0, + // State 59 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 29, 30, 0, 0, 0, 0, 0, 0, 129, 0, 0, 0, 0, + // State 60 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 29, 30, 0, 0, 0, 0, 0, 0, 130, 0, 0, 0, 0, + // State 61 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 29, 30, 0, 0, 0, 0, 0, 0, 131, 0, 0, 0, 0, + // State 62 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 63 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 132, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 64 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // 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, + // State 66 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 67 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 68 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 69 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 70 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 139, 66, 67, 68, 69, 0, 0, 0, 0, 0, 0, 70, 0, 0, 0, 0, + // State 71 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 68, 69, 0, 0, 0, 0, 0, 0, 140, 0, 0, 0, 0, + // State 72 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 73 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 74 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 75 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 76 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 77 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 78 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 143, 66, 67, 68, 69, 0, 0, 0, 0, 0, 0, 70, 0, 0, 0, 0, + // State 79 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 80 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 146, 66, 67, 68, 69, 0, 0, 0, 0, 0, 0, 70, 0, 0, 0, 0, + // State 81 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 82 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 83 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 27, 28, 29, 30, 0, 63, 0, 0, 0, 0, 33, 0, 0, 0, 0, + // State 84 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 85 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 150, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 86 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 87 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 88 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 153, 0, 0, 0, 0, 154, 0, + // State 89 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 156, 0, 0, 0, 0, 0, 0, + // State 90 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // 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, + // State 92 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 93 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 159, 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, + // State 95 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 96 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 97 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // 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, + // 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, + // State 100 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 101 + 0, 0, 0, 0, 0, 0, 0, 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, + // State 103 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 104 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 168, 66, 67, 68, 69, 0, 0, 0, 0, 0, 0, 70, 0, 0, 0, 0, + // State 105 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 101, 102, 103, 0, 0, 0, 0, 0, 0, 169, 0, 0, 0, 0, + // State 106 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // 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, + // 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, + // State 109 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 110 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 111 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 112 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 113 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // 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, + // State 115 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 116 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 117 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 118 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 119 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 120 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 121 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, 66, 67, 68, 69, 0, 0, 0, 0, 0, 0, 70, 0, 0, 0, 0, + // State 122 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 118, 119, 120, 0, 0, 0, 0, 0, 0, 181, 0, 0, 0, 0, + // State 123 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // 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, + // State 125 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // 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, + // State 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, + // State 128 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // 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, + // 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, + // 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, + // State 132 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 133 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 185, 67, 68, 69, 0, 0, 0, 0, 0, 0, 70, 0, 0, 0, 0, + // State 134 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 186, 67, 68, 69, 0, 0, 0, 0, 0, 0, 70, 0, 0, 0, 0, + // State 135 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 68, 69, 0, 0, 0, 0, 0, 0, 187, 0, 0, 0, 0, + // State 136 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 68, 69, 0, 0, 0, 0, 0, 0, 188, 0, 0, 0, 0, + // State 137 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 68, 69, 0, 0, 0, 0, 0, 0, 189, 0, 0, 0, 0, + // State 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, + // State 139 + 0, 0, 0, 0, 0, 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, 0, 191, 66, 67, 68, 69, 0, 0, 0, 0, 0, 0, 70, 0, 0, 0, 0, + // State 141 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 192, 66, 67, 68, 69, 0, 0, 0, 0, 0, 0, 70, 0, 0, 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, + // State 143 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 144 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, + // State 146 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 147 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 148 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 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, + // 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, + // State 151 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 152 + 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 200, 0, 0, 0, 0, 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, + // State 155 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 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, + // 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, + // State 158 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 159 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, + // State 161 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 204, 0, 0, 0, 0, 0, 0, + // State 162 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 206, 101, 102, 103, 0, 0, 0, 0, 0, 0, 104, 0, 0, 0, 0, + // State 163 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 207, 101, 102, 103, 0, 0, 0, 0, 0, 0, 104, 0, 0, 0, 0, + // State 164 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 101, 102, 103, 0, 0, 0, 0, 0, 0, 208, 0, 0, 0, 0, + // State 165 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 101, 102, 103, 0, 0, 0, 0, 0, 0, 209, 0, 0, 0, 0, + // State 166 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 101, 102, 103, 0, 0, 0, 0, 0, 0, 210, 0, 0, 0, 0, + // State 167 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 168 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 169 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 212, 66, 67, 68, 69, 0, 0, 0, 0, 0, 0, 70, 0, 0, 0, 0, + // State 170 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 213, 66, 67, 68, 69, 0, 0, 0, 0, 0, 0, 70, 0, 0, 0, 0, + // State 171 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 172 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 173 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 215, 118, 119, 120, 0, 0, 0, 0, 0, 0, 121, 0, 0, 0, 0, + // State 174 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 216, 118, 119, 120, 0, 0, 0, 0, 0, 0, 121, 0, 0, 0, 0, + // State 175 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 176 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 118, 119, 120, 0, 0, 0, 0, 0, 0, 217, 0, 0, 0, 0, + // State 177 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 118, 119, 120, 0, 0, 0, 0, 0, 0, 218, 0, 0, 0, 0, + // State 178 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 118, 119, 120, 0, 0, 0, 0, 0, 0, 219, 0, 0, 0, 0, + // State 179 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 180 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 181 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 221, 66, 67, 68, 69, 0, 0, 0, 0, 0, 0, 70, 0, 0, 0, 0, + // State 182 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 222, 66, 67, 68, 69, 0, 0, 0, 0, 0, 0, 70, 0, 0, 0, 0, + // State 183 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 184 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 185 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 186 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 187 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 188 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 189 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 190 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 191 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 192 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 193 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 225, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 194 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 195 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 196 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 197 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 198 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 199 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 200 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 201 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 202 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 203 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 204 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 205 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 206 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 207 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 208 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 209 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 210 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 211 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 212 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 213 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 214 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 215 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 216 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 217 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 218 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 219 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 220 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 221 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 222 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 223 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 224 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 225 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 226 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 227 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 228 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 229 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 230 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 231 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 232 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 233 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // State 234 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + ]; + pub fn parse_model< + 'input, + >( + input: &'input str, + ) -> Result> + { + let mut __tokens = super::__intern_token::__Matcher::new(input); + let mut __states = vec![0_i32]; + let mut __symbols = vec![]; + let mut __integer; + let mut __lookahead; + let mut __last_location = Default::default(); + '__shift: loop { + __lookahead = match __tokens.next() { + Some(Ok(v)) => v, + None => break '__shift, + Some(Err(e)) => return Err(e), + }; + __last_location = __lookahead.2.clone(); + __integer = match __lookahead.1 { + (0, _) if true => 0, + (1, _) if true => 1, + (2, _) if true => 2, + (3, _) if true => 3, + (4, _) if true => 4, + (5, _) if true => 5, + (6, _) if true => 6, + (7, _) if true => 7, + (8, _) if true => 8, + (9, _) if true => 9, + (10, _) if true => 10, + (11, _) if true => 11, + (12, _) if true => 12, + (13, _) if true => 13, + (14, _) if true => 14, + (15, _) if true => 15, + (16, _) if true => 16, + (17, _) if true => 17, + (18, _) if true => 18, + (19, _) if true => 19, + (20, _) if true => 20, + (21, _) if true => 21, + (22, _) if true => 22, + (23, _) if true => 23, + (24, _) if true => 24, + (25, _) if true => 25, + (26, _) if true => 26, + (27, _) if true => 27, + _ => { + return Err(__lalrpop_util::ParseError::UnrecognizedToken { + token: Some(__lookahead), + expected: vec![], + }); + } + }; + '__inner: loop { + let __state = *__states.last().unwrap() as usize; + let __action = __ACTION[__state * 29 + __integer]; + if __action > 0 { + let __symbol = match __integer { + 0 => match __lookahead.1 { + (0, __tok0) => __Symbol::Term_22_28_22(__tok0), + _ => unreachable!(), + }, + 1 => match __lookahead.1 { + (1, __tok0) => __Symbol::Term_22_29_22(__tok0), + _ => unreachable!(), + }, + 2 => match __lookahead.1 { + (2, __tok0) => __Symbol::Term_22_2a_22(__tok0), + _ => unreachable!(), + }, + 3 => match __lookahead.1 { + (3, __tok0) => __Symbol::Term_22_2b_22(__tok0), + _ => unreachable!(), + }, + 4 => match __lookahead.1 { + (4, __tok0) => __Symbol::Term_22_2c_22(__tok0), + _ => unreachable!(), + }, + 5 => match __lookahead.1 { + (5, __tok0) => __Symbol::Term_22_2d_22(__tok0), + _ => unreachable!(), + }, + 6 => match __lookahead.1 { + (6, __tok0) => __Symbol::Term_22_2f_22(__tok0), + _ => unreachable!(), + }, + 7 => match __lookahead.1 { + (7, __tok0) => __Symbol::Term_22_3b_22(__tok0), + _ => unreachable!(), + }, + 8 => match __lookahead.1 { + (8, __tok0) => __Symbol::Term_22_3d_22(__tok0), + _ => unreachable!(), + }, + 9 => match __lookahead.1 { + (9, __tok0) => __Symbol::Term_22_5e_22(__tok0), + _ => unreachable!(), + }, + 10 => match __lookahead.1 { + (10, __tok0) => __Symbol::Term_22abs_22(__tok0), + _ => unreachable!(), + }, + 11 => match __lookahead.1 { + (11, __tok0) => __Symbol::Term_22connect_22(__tok0), + _ => unreachable!(), + }, + 12 => match __lookahead.1 { + (12, __tok0) => __Symbol::Term_22constant_22(__tok0), + _ => unreachable!(), + }, + 13 => match __lookahead.1 { + (13, __tok0) => __Symbol::Term_22der_22(__tok0), + _ => unreachable!(), + }, + 14 => match __lookahead.1 { + (14, __tok0) => __Symbol::Term_22discrete_22(__tok0), + _ => unreachable!(), + }, + 15 => match __lookahead.1 { + (15, __tok0) => __Symbol::Term_22end_22(__tok0), + _ => unreachable!(), + }, + 16 => match __lookahead.1 { + (16, __tok0) => __Symbol::Term_22equation_22(__tok0), + _ => unreachable!(), + }, + 17 => match __lookahead.1 { + (17, __tok0) => __Symbol::Term_22flow_22(__tok0), + _ => unreachable!(), + }, + 18 => match __lookahead.1 { + (18, __tok0) => __Symbol::Term_22input_22(__tok0), + _ => unreachable!(), + }, + 19 => match __lookahead.1 { + (19, __tok0) => __Symbol::Term_22model_22(__tok0), + _ => unreachable!(), + }, + 20 => match __lookahead.1 { + (20, __tok0) => __Symbol::Term_22output_22(__tok0), + _ => unreachable!(), + }, + 21 => match __lookahead.1 { + (21, __tok0) => __Symbol::Term_22parameter_22(__tok0), + _ => unreachable!(), + }, + 22 => match __lookahead.1 { + (22, __tok0) => __Symbol::Term_22stream_22(__tok0), + _ => unreachable!(), + }, + 23 => match __lookahead.1 { + (23, __tok0) => __Symbol::Term_22unit_22(__tok0), + _ => unreachable!(), + }, + 24 => match __lookahead.1 { + (24, __tok0) => __Symbol::Termr_23_22_5c_22_5b_5e_5c_22_5c_5c_5c_5c_5d_2a_5c_22_22_23(__tok0), + _ => unreachable!(), + }, + 25 => match __lookahead.1 { + (25, __tok0) => __Symbol::Termr_23_22_5b_2b_2d_5d_3f_5c_5cd_2b_22_23(__tok0), + _ => unreachable!(), + }, + 26 => match __lookahead.1 { + (26, __tok0) => __Symbol::Termr_23_22_5b_2b_2d_5d_3f_5c_5cd_2b_5c_5c_2e_5c_5cd_2a_28_5beE_5d_5b_2d_2b_5d_3f_5c_5cd_2b_29_3f_22_23(__tok0), + _ => unreachable!(), + }, + 27 => match __lookahead.1 { + (27, __tok0) => __Symbol::Termr_23_22_5ba_2dzA_2dZ___5d_5ba_2dzA_2dZ__0_2d9_5d_2a_22_23(__tok0), + _ => unreachable!(), + }, + _ => unreachable!(), + }; + __states.push(__action - 1); + __symbols.push((__lookahead.0, __symbol, __lookahead.2)); + continue '__shift; + } else if __action < 0 { + if let Some(r) = __reduce(input, __action, Some(&__lookahead.0), &mut __states, &mut __symbols, ::std::marker::PhantomData::<()>) { + return r; + } + } else { + return Err(__lalrpop_util::ParseError::UnrecognizedToken { + token: Some(__lookahead), + expected: vec![], + }); + } + } + } + loop { + let __state = *__states.last().unwrap() as usize; + let __action = __EOF_ACTION[__state]; + if __action < 0 { + if let Some(r) = __reduce(input, __action, None, &mut __states, &mut __symbols, ::std::marker::PhantomData::<()>) { + return r; + } + } else { + let __error = __lalrpop_util::ParseError::UnrecognizedToken { + token: None, + expected: vec![], + }; + return Err(__error); + } + } + } + pub fn __reduce< + 'input, + >( + input: &'input str, + __action: i32, + __lookahead_start: Option<&usize>, + __states: &mut ::std::vec::Vec, + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, + _: ::std::marker::PhantomData<()>, + ) -> Option>> + { + let __nonterminal = match -__action { + 1 => { + // __float = float => ActionFn(2); + let __sym0 = __pop_Ntfloat(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action2::<>(input, __sym0); + let __states_len = __states.len(); + __states.truncate(__states_len - 1); + __symbols.push((__start, __Symbol::Nt____float(__nt), __end)); + 0 + } + 2 => { + // __identifier = identifier => ActionFn(0); + let __sym0 = __pop_Ntidentifier(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action0::<>(input, __sym0); + let __states_len = __states.len(); + __states.truncate(__states_len - 1); + __symbols.push((__start, __Symbol::Nt____identifier(__nt), __end)); + 1 + } + 3 => { + // __integer = integer => ActionFn(1); + let __sym0 = __pop_Ntinteger(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action1::<>(input, __sym0); + let __states_len = __states.len(); + __states.truncate(__states_len - 1); + __symbols.push((__start, __Symbol::Nt____integer(__nt), __end)); + 2 + } + 4 => { + // __model = model => ActionFn(3); + let __sym0 = __pop_Ntmodel(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action3::<>(input, __sym0); + return Some(Ok(__nt)); + } + 5 => { + // component_declaration = component_prefix, identifier, identifier, units_declaration, value_declaration, string_literal, ";" => ActionFn(83); + let __sym6 = __pop_Term_22_3b_22(__symbols); + let __sym5 = __pop_Ntstring__literal(__symbols); + let __sym4 = __pop_Ntvalue__declaration(__symbols); + let __sym3 = __pop_Ntunits__declaration(__symbols); + let __sym2 = __pop_Ntidentifier(__symbols); + let __sym1 = __pop_Ntidentifier(__symbols); + let __sym0 = __pop_Ntcomponent__prefix(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym6.2.clone(); + let __nt = super::__action83::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6); + let __states_len = __states.len(); + __states.truncate(__states_len - 7); + __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); + 4 + } + 6 => { + // component_declaration = component_prefix, identifier, identifier, units_declaration, string_literal, ";" => ActionFn(84); + let __sym5 = __pop_Term_22_3b_22(__symbols); + let __sym4 = __pop_Ntstring__literal(__symbols); + let __sym3 = __pop_Ntunits__declaration(__symbols); + let __sym2 = __pop_Ntidentifier(__symbols); + let __sym1 = __pop_Ntidentifier(__symbols); + let __sym0 = __pop_Ntcomponent__prefix(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym5.2.clone(); + let __nt = super::__action84::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5); + let __states_len = __states.len(); + __states.truncate(__states_len - 6); + __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); + 4 + } + 7 => { + // component_declaration = component_prefix, identifier, identifier, value_declaration, string_literal, ";" => ActionFn(85); + let __sym5 = __pop_Term_22_3b_22(__symbols); + let __sym4 = __pop_Ntstring__literal(__symbols); + let __sym3 = __pop_Ntvalue__declaration(__symbols); + let __sym2 = __pop_Ntidentifier(__symbols); + let __sym1 = __pop_Ntidentifier(__symbols); + let __sym0 = __pop_Ntcomponent__prefix(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym5.2.clone(); + let __nt = super::__action85::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5); + let __states_len = __states.len(); + __states.truncate(__states_len - 6); + __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); + 4 + } + 8 => { + // component_declaration = component_prefix, identifier, identifier, string_literal, ";" => ActionFn(86); + let __sym4 = __pop_Term_22_3b_22(__symbols); + let __sym3 = __pop_Ntstring__literal(__symbols); + let __sym2 = __pop_Ntidentifier(__symbols); + let __sym1 = __pop_Ntidentifier(__symbols); + let __sym0 = __pop_Ntcomponent__prefix(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym4.2.clone(); + let __nt = super::__action86::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4); + let __states_len = __states.len(); + __states.truncate(__states_len - 5); + __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); + 4 + } + 9 => { + // component_declaration = component_prefix, identifier, identifier, units_declaration, value_declaration, ";" => ActionFn(87); + let __sym5 = __pop_Term_22_3b_22(__symbols); + let __sym4 = __pop_Ntvalue__declaration(__symbols); + let __sym3 = __pop_Ntunits__declaration(__symbols); + let __sym2 = __pop_Ntidentifier(__symbols); + let __sym1 = __pop_Ntidentifier(__symbols); + let __sym0 = __pop_Ntcomponent__prefix(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym5.2.clone(); + let __nt = super::__action87::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5); + let __states_len = __states.len(); + __states.truncate(__states_len - 6); + __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); + 4 + } + 10 => { + // component_declaration = component_prefix, identifier, identifier, units_declaration, ";" => ActionFn(88); + let __sym4 = __pop_Term_22_3b_22(__symbols); + let __sym3 = __pop_Ntunits__declaration(__symbols); + let __sym2 = __pop_Ntidentifier(__symbols); + let __sym1 = __pop_Ntidentifier(__symbols); + let __sym0 = __pop_Ntcomponent__prefix(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym4.2.clone(); + let __nt = super::__action88::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4); + let __states_len = __states.len(); + __states.truncate(__states_len - 5); + __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); + 4 + } + 11 => { + // component_declaration = component_prefix, identifier, identifier, value_declaration, ";" => ActionFn(89); + let __sym4 = __pop_Term_22_3b_22(__symbols); + let __sym3 = __pop_Ntvalue__declaration(__symbols); + let __sym2 = __pop_Ntidentifier(__symbols); + let __sym1 = __pop_Ntidentifier(__symbols); + let __sym0 = __pop_Ntcomponent__prefix(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym4.2.clone(); + let __nt = super::__action89::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4); + let __states_len = __states.len(); + __states.truncate(__states_len - 5); + __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); + 4 + } + 12 => { + // component_declaration = component_prefix, identifier, identifier, ";" => ActionFn(90); + let __sym3 = __pop_Term_22_3b_22(__symbols); + let __sym2 = __pop_Ntidentifier(__symbols); + let __sym1 = __pop_Ntidentifier(__symbols); + let __sym0 = __pop_Ntcomponent__prefix(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym3.2.clone(); + let __nt = super::__action90::<>(input, __sym0, __sym1, __sym2, __sym3); + let __states_len = __states.len(); + __states.truncate(__states_len - 4); + __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); + 4 + } + 13 => { + // component_declaration = identifier, identifier, units_declaration, value_declaration, string_literal, ";" => ActionFn(91); + let __sym5 = __pop_Term_22_3b_22(__symbols); + let __sym4 = __pop_Ntstring__literal(__symbols); + let __sym3 = __pop_Ntvalue__declaration(__symbols); + let __sym2 = __pop_Ntunits__declaration(__symbols); + let __sym1 = __pop_Ntidentifier(__symbols); + let __sym0 = __pop_Ntidentifier(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym5.2.clone(); + let __nt = super::__action91::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5); + let __states_len = __states.len(); + __states.truncate(__states_len - 6); + __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); + 4 + } + 14 => { + // component_declaration = identifier, identifier, units_declaration, string_literal, ";" => ActionFn(92); + let __sym4 = __pop_Term_22_3b_22(__symbols); + let __sym3 = __pop_Ntstring__literal(__symbols); + let __sym2 = __pop_Ntunits__declaration(__symbols); + let __sym1 = __pop_Ntidentifier(__symbols); + let __sym0 = __pop_Ntidentifier(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym4.2.clone(); + let __nt = super::__action92::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4); + let __states_len = __states.len(); + __states.truncate(__states_len - 5); + __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); + 4 + } + 15 => { + // component_declaration = identifier, identifier, value_declaration, string_literal, ";" => ActionFn(93); + let __sym4 = __pop_Term_22_3b_22(__symbols); + let __sym3 = __pop_Ntstring__literal(__symbols); + let __sym2 = __pop_Ntvalue__declaration(__symbols); + let __sym1 = __pop_Ntidentifier(__symbols); + let __sym0 = __pop_Ntidentifier(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym4.2.clone(); + let __nt = super::__action93::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4); + let __states_len = __states.len(); + __states.truncate(__states_len - 5); + __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); + 4 + } + 16 => { + // component_declaration = identifier, identifier, string_literal, ";" => ActionFn(94); + let __sym3 = __pop_Term_22_3b_22(__symbols); + let __sym2 = __pop_Ntstring__literal(__symbols); + let __sym1 = __pop_Ntidentifier(__symbols); + let __sym0 = __pop_Ntidentifier(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym3.2.clone(); + let __nt = super::__action94::<>(input, __sym0, __sym1, __sym2, __sym3); + let __states_len = __states.len(); + __states.truncate(__states_len - 4); + __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); + 4 + } + 17 => { + // component_declaration = identifier, identifier, units_declaration, value_declaration, ";" => ActionFn(95); + let __sym4 = __pop_Term_22_3b_22(__symbols); + let __sym3 = __pop_Ntvalue__declaration(__symbols); + let __sym2 = __pop_Ntunits__declaration(__symbols); + let __sym1 = __pop_Ntidentifier(__symbols); + let __sym0 = __pop_Ntidentifier(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym4.2.clone(); + let __nt = super::__action95::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4); + let __states_len = __states.len(); + __states.truncate(__states_len - 5); + __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); + 4 + } + 18 => { + // component_declaration = identifier, identifier, units_declaration, ";" => ActionFn(96); + let __sym3 = __pop_Term_22_3b_22(__symbols); + let __sym2 = __pop_Ntunits__declaration(__symbols); + let __sym1 = __pop_Ntidentifier(__symbols); + let __sym0 = __pop_Ntidentifier(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym3.2.clone(); + let __nt = super::__action96::<>(input, __sym0, __sym1, __sym2, __sym3); + let __states_len = __states.len(); + __states.truncate(__states_len - 4); + __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); + 4 + } + 19 => { + // component_declaration = identifier, identifier, value_declaration, ";" => ActionFn(97); + let __sym3 = __pop_Term_22_3b_22(__symbols); + let __sym2 = __pop_Ntvalue__declaration(__symbols); + let __sym1 = __pop_Ntidentifier(__symbols); + let __sym0 = __pop_Ntidentifier(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym3.2.clone(); + let __nt = super::__action97::<>(input, __sym0, __sym1, __sym2, __sym3); + let __states_len = __states.len(); + __states.truncate(__states_len - 4); + __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); + 4 + } + 20 => { + // component_declaration = identifier, identifier, ";" => ActionFn(98); + let __sym2 = __pop_Term_22_3b_22(__symbols); + let __sym1 = __pop_Ntidentifier(__symbols); + let __sym0 = __pop_Ntidentifier(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym2.2.clone(); + let __nt = super::__action98::<>(input, __sym0, __sym1, __sym2); + let __states_len = __states.len(); + __states.truncate(__states_len - 3); + __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); + 4 + } + 21 => { + // component_declaration* = => ActionFn(47); + let __start = __symbols.last().map(|s| s.2.clone()).unwrap_or_default(); + let __end = __lookahead_start.cloned().unwrap_or_else(|| __start.clone()); + let __nt = super::__action47::<>(input, &__start, &__end); + let __states_len = __states.len(); + __states.truncate(__states_len - 0); + __symbols.push((__start, __Symbol::Ntcomponent__declaration_2a(__nt), __end)); + 5 + } + 22 => { + // component_declaration* = component_declaration+ => ActionFn(48); + let __sym0 = __pop_Ntcomponent__declaration_2b(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action48::<>(input, __sym0); + let __states_len = __states.len(); + __states.truncate(__states_len - 1); + __symbols.push((__start, __Symbol::Ntcomponent__declaration_2a(__nt), __end)); + 5 + } + 23 => { + // component_declaration+ = component_declaration => ActionFn(49); + let __sym0 = __pop_Ntcomponent__declaration(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action49::<>(input, __sym0); + let __states_len = __states.len(); + __states.truncate(__states_len - 1); + __symbols.push((__start, __Symbol::Ntcomponent__declaration_2b(__nt), __end)); + 6 + } + 24 => { + // component_declaration+ = component_declaration+, component_declaration => ActionFn(50); + let __sym1 = __pop_Ntcomponent__declaration(__symbols); + let __sym0 = __pop_Ntcomponent__declaration_2b(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym1.2.clone(); + let __nt = super::__action50::<>(input, __sym0, __sym1); + let __states_len = __states.len(); + __states.truncate(__states_len - 2); + __symbols.push((__start, __Symbol::Ntcomponent__declaration_2b(__nt), __end)); + 6 + } + 25 => { + // component_prefix = "flow" => ActionFn(12); + let __sym0 = __pop_Term_22flow_22(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action12::<>(input, __sym0); + let __states_len = __states.len(); + __states.truncate(__states_len - 1); + __symbols.push((__start, __Symbol::Ntcomponent__prefix(__nt), __end)); + 7 + } + 26 => { + // component_prefix = "stream" => ActionFn(13); + let __sym0 = __pop_Term_22stream_22(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action13::<>(input, __sym0); + let __states_len = __states.len(); + __states.truncate(__states_len - 1); + __symbols.push((__start, __Symbol::Ntcomponent__prefix(__nt), __end)); + 7 + } + 27 => { + // component_prefix = "input" => ActionFn(14); + let __sym0 = __pop_Term_22input_22(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action14::<>(input, __sym0); + let __states_len = __states.len(); + __states.truncate(__states_len - 1); + __symbols.push((__start, __Symbol::Ntcomponent__prefix(__nt), __end)); + 7 + } + 28 => { + // component_prefix = "output" => ActionFn(15); + let __sym0 = __pop_Term_22output_22(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action15::<>(input, __sym0); + let __states_len = __states.len(); + __states.truncate(__states_len - 1); + __symbols.push((__start, __Symbol::Ntcomponent__prefix(__nt), __end)); + 7 + } + 29 => { + // component_prefix = "discrete" => ActionFn(16); + let __sym0 = __pop_Term_22discrete_22(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action16::<>(input, __sym0); + let __states_len = __states.len(); + __states.truncate(__states_len - 1); + __symbols.push((__start, __Symbol::Ntcomponent__prefix(__nt), __end)); + 7 + } + 30 => { + // component_prefix = "parameter" => ActionFn(17); + let __sym0 = __pop_Term_22parameter_22(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action17::<>(input, __sym0); + let __states_len = __states.len(); + __states.truncate(__states_len - 1); + __symbols.push((__start, __Symbol::Ntcomponent__prefix(__nt), __end)); + 7 + } + 31 => { + // component_prefix = "constant" => ActionFn(18); + let __sym0 = __pop_Term_22constant_22(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action18::<>(input, __sym0); + let __states_len = __states.len(); + __states.truncate(__states_len - 1); + __symbols.push((__start, __Symbol::Ntcomponent__prefix(__nt), __end)); + 7 + } + 32 => { + // component_prefix? = component_prefix => ActionFn(41); + let __sym0 = __pop_Ntcomponent__prefix(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action41::<>(input, __sym0); + let __states_len = __states.len(); + __states.truncate(__states_len - 1); + __symbols.push((__start, __Symbol::Ntcomponent__prefix_3f(__nt), __end)); + 8 + } + 33 => { + // component_prefix? = => ActionFn(42); + let __start = __symbols.last().map(|s| s.2.clone()).unwrap_or_default(); + let __end = __lookahead_start.cloned().unwrap_or_else(|| __start.clone()); + let __nt = super::__action42::<>(input, &__start, &__end); + let __states_len = __states.len(); + __states.truncate(__states_len - 0); + __symbols.push((__start, __Symbol::Ntcomponent__prefix_3f(__nt), __end)); + 8 + } + 34 => { + // connect_clause = "connect", "(", identifier, ",", identifier, ")", ";" => ActionFn(20); + let __sym6 = __pop_Term_22_3b_22(__symbols); + let __sym5 = __pop_Term_22_29_22(__symbols); + let __sym4 = __pop_Ntidentifier(__symbols); + let __sym3 = __pop_Term_22_2c_22(__symbols); + let __sym2 = __pop_Ntidentifier(__symbols); + let __sym1 = __pop_Term_22_28_22(__symbols); + let __sym0 = __pop_Term_22connect_22(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym6.2.clone(); + let __nt = super::__action20::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6); + let __states_len = __states.len(); + __states.truncate(__states_len - 7); + __symbols.push((__start, __Symbol::Ntconnect__clause(__nt), __end)); + 9 + } + 35 => { + // connect_clause* = => ActionFn(45); + let __start = __symbols.last().map(|s| s.2.clone()).unwrap_or_default(); + let __end = __lookahead_start.cloned().unwrap_or_else(|| __start.clone()); + let __nt = super::__action45::<>(input, &__start, &__end); + let __states_len = __states.len(); + __states.truncate(__states_len - 0); + __symbols.push((__start, __Symbol::Ntconnect__clause_2a(__nt), __end)); + 10 + } + 36 => { + // connect_clause* = connect_clause+ => ActionFn(46); + let __sym0 = __pop_Ntconnect__clause_2b(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action46::<>(input, __sym0); + let __states_len = __states.len(); + __states.truncate(__states_len - 1); + __symbols.push((__start, __Symbol::Ntconnect__clause_2a(__nt), __end)); + 10 + } + 37 => { + // connect_clause+ = connect_clause => ActionFn(51); + let __sym0 = __pop_Ntconnect__clause(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action51::<>(input, __sym0); + let __states_len = __states.len(); + __states.truncate(__states_len - 1); + __symbols.push((__start, __Symbol::Ntconnect__clause_2b(__nt), __end)); + 11 + } + 38 => { + // connect_clause+ = connect_clause+, connect_clause => ActionFn(52); + let __sym1 = __pop_Ntconnect__clause(__symbols); + let __sym0 = __pop_Ntconnect__clause_2b(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym1.2.clone(); + let __nt = super::__action52::<>(input, __sym0, __sym1); + let __states_len = __states.len(); + __states.truncate(__states_len - 2); + __symbols.push((__start, __Symbol::Ntconnect__clause_2b(__nt), __end)); + 11 + } + 39 => { + // expr = expr, "+", factor => ActionFn(21); + let __sym2 = __pop_Ntfactor(__symbols); + let __sym1 = __pop_Term_22_2b_22(__symbols); + let __sym0 = __pop_Ntexpr(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym2.2.clone(); + let __nt = super::__action21::<>(input, __sym0, __sym1, __sym2); + let __states_len = __states.len(); + __states.truncate(__states_len - 3); + __symbols.push((__start, __Symbol::Ntexpr(__nt), __end)); + 12 + } + 40 => { + // expr = expr, "-", factor => ActionFn(22); + let __sym2 = __pop_Ntfactor(__symbols); + let __sym1 = __pop_Term_22_2d_22(__symbols); + let __sym0 = __pop_Ntexpr(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym2.2.clone(); + let __nt = super::__action22::<>(input, __sym0, __sym1, __sym2); + let __states_len = __states.len(); + __states.truncate(__states_len - 3); + __symbols.push((__start, __Symbol::Ntexpr(__nt), __end)); + 12 + } + 41 => { + // expr = factor => ActionFn(23); + let __sym0 = __pop_Ntfactor(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action23::<>(input, __sym0); + let __states_len = __states.len(); + __states.truncate(__states_len - 1); + __symbols.push((__start, __Symbol::Ntexpr(__nt), __end)); + 12 + } + 42 => { + // factor = factor, "*", term => ActionFn(24); + let __sym2 = __pop_Ntterm(__symbols); + let __sym1 = __pop_Term_22_2a_22(__symbols); + let __sym0 = __pop_Ntfactor(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym2.2.clone(); + let __nt = super::__action24::<>(input, __sym0, __sym1, __sym2); + let __states_len = __states.len(); + __states.truncate(__states_len - 3); + __symbols.push((__start, __Symbol::Ntfactor(__nt), __end)); + 13 + } + 43 => { + // factor = factor, "/", term => ActionFn(25); + let __sym2 = __pop_Ntterm(__symbols); + let __sym1 = __pop_Term_22_2f_22(__symbols); + let __sym0 = __pop_Ntfactor(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym2.2.clone(); + let __nt = super::__action25::<>(input, __sym0, __sym1, __sym2); + let __states_len = __states.len(); + __states.truncate(__states_len - 3); + __symbols.push((__start, __Symbol::Ntfactor(__nt), __end)); + 13 + } + 44 => { + // factor = factor, "^", term => ActionFn(26); + let __sym2 = __pop_Ntterm(__symbols); + let __sym1 = __pop_Term_22_5e_22(__symbols); + let __sym0 = __pop_Ntfactor(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym2.2.clone(); + let __nt = super::__action26::<>(input, __sym0, __sym1, __sym2); + let __states_len = __states.len(); + __states.truncate(__states_len - 3); + __symbols.push((__start, __Symbol::Ntfactor(__nt), __end)); + 13 + } + 45 => { + // factor = "-", term => ActionFn(27); + let __sym1 = __pop_Ntterm(__symbols); + let __sym0 = __pop_Term_22_2d_22(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym1.2.clone(); + let __nt = super::__action27::<>(input, __sym0, __sym1); + let __states_len = __states.len(); + __states.truncate(__states_len - 2); + __symbols.push((__start, __Symbol::Ntfactor(__nt), __end)); + 13 + } + 46 => { + // factor = term => ActionFn(28); + let __sym0 = __pop_Ntterm(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action28::<>(input, __sym0); + let __states_len = __states.len(); + __states.truncate(__states_len - 1); + __symbols.push((__start, __Symbol::Ntfactor(__nt), __end)); + 13 + } + 47 => { + // float = r#"[+-]?\\d+\\.\\d*([eE][-+]?\\d+)?"# => ActionFn(7); + let __sym0 = __pop_Termr_23_22_5b_2b_2d_5d_3f_5c_5cd_2b_5c_5c_2e_5c_5cd_2a_28_5beE_5d_5b_2d_2b_5d_3f_5c_5cd_2b_29_3f_22_23(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action7::<>(input, __sym0); + let __states_len = __states.len(); + __states.truncate(__states_len - 1); + __symbols.push((__start, __Symbol::Ntfloat(__nt), __end)); + 14 + } + 48 => { + // identifier = r#"[a-zA-Z_][a-zA-Z_0-9]*"# => ActionFn(4); + let __sym0 = __pop_Termr_23_22_5ba_2dzA_2dZ___5d_5ba_2dzA_2dZ__0_2d9_5d_2a_22_23(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action4::<>(input, __sym0); + let __states_len = __states.len(); + __states.truncate(__states_len - 1); + __symbols.push((__start, __Symbol::Ntidentifier(__nt), __end)); + 15 + } + 49 => { + // integer = r#"[+-]?\\d+"# => ActionFn(6); + let __sym0 = __pop_Termr_23_22_5b_2b_2d_5d_3f_5c_5cd_2b_22_23(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action6::<>(input, __sym0); + let __states_len = __states.len(); + __states.truncate(__states_len - 1); + __symbols.push((__start, __Symbol::Ntinteger(__nt), __end)); + 16 + } + 50 => { + // model = "model", identifier, "equation", "end", identifier, ";" => ActionFn(63); + let __sym5 = __pop_Term_22_3b_22(__symbols); + let __sym4 = __pop_Ntidentifier(__symbols); + let __sym3 = __pop_Term_22end_22(__symbols); + let __sym2 = __pop_Term_22equation_22(__symbols); + let __sym1 = __pop_Ntidentifier(__symbols); + let __sym0 = __pop_Term_22model_22(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym5.2.clone(); + let __nt = super::__action63::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5); + let __states_len = __states.len(); + __states.truncate(__states_len - 6); + __symbols.push((__start, __Symbol::Ntmodel(__nt), __end)); + 17 + } + 51 => { + // model = "model", identifier, "equation", simple_equation+, "end", identifier, ";" => ActionFn(64); + let __sym6 = __pop_Term_22_3b_22(__symbols); + let __sym5 = __pop_Ntidentifier(__symbols); + let __sym4 = __pop_Term_22end_22(__symbols); + let __sym3 = __pop_Ntsimple__equation_2b(__symbols); + let __sym2 = __pop_Term_22equation_22(__symbols); + let __sym1 = __pop_Ntidentifier(__symbols); + let __sym0 = __pop_Term_22model_22(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym6.2.clone(); + let __nt = super::__action64::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6); + let __states_len = __states.len(); + __states.truncate(__states_len - 7); + __symbols.push((__start, __Symbol::Ntmodel(__nt), __end)); + 17 + } + 52 => { + // model = "model", identifier, "equation", connect_clause+, "end", identifier, ";" => ActionFn(65); + let __sym6 = __pop_Term_22_3b_22(__symbols); + let __sym5 = __pop_Ntidentifier(__symbols); + let __sym4 = __pop_Term_22end_22(__symbols); + let __sym3 = __pop_Ntconnect__clause_2b(__symbols); + let __sym2 = __pop_Term_22equation_22(__symbols); + let __sym1 = __pop_Ntidentifier(__symbols); + let __sym0 = __pop_Term_22model_22(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym6.2.clone(); + let __nt = super::__action65::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6); + let __states_len = __states.len(); + __states.truncate(__states_len - 7); + __symbols.push((__start, __Symbol::Ntmodel(__nt), __end)); + 17 + } + 53 => { + // model = "model", identifier, "equation", connect_clause+, simple_equation+, "end", identifier, ";" => ActionFn(66); + let __sym7 = __pop_Term_22_3b_22(__symbols); + let __sym6 = __pop_Ntidentifier(__symbols); + let __sym5 = __pop_Term_22end_22(__symbols); + let __sym4 = __pop_Ntsimple__equation_2b(__symbols); + let __sym3 = __pop_Ntconnect__clause_2b(__symbols); + let __sym2 = __pop_Term_22equation_22(__symbols); + let __sym1 = __pop_Ntidentifier(__symbols); + let __sym0 = __pop_Term_22model_22(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym7.2.clone(); + let __nt = super::__action66::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7); + let __states_len = __states.len(); + __states.truncate(__states_len - 8); + __symbols.push((__start, __Symbol::Ntmodel(__nt), __end)); + 17 + } + 54 => { + // model = "model", identifier, component_declaration+, "equation", "end", identifier, ";" => ActionFn(67); + let __sym6 = __pop_Term_22_3b_22(__symbols); + let __sym5 = __pop_Ntidentifier(__symbols); + let __sym4 = __pop_Term_22end_22(__symbols); + let __sym3 = __pop_Term_22equation_22(__symbols); + let __sym2 = __pop_Ntcomponent__declaration_2b(__symbols); + let __sym1 = __pop_Ntidentifier(__symbols); + let __sym0 = __pop_Term_22model_22(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym6.2.clone(); + let __nt = super::__action67::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6); + let __states_len = __states.len(); + __states.truncate(__states_len - 7); + __symbols.push((__start, __Symbol::Ntmodel(__nt), __end)); + 17 + } + 55 => { + // model = "model", identifier, component_declaration+, "equation", simple_equation+, "end", identifier, ";" => ActionFn(68); + let __sym7 = __pop_Term_22_3b_22(__symbols); + let __sym6 = __pop_Ntidentifier(__symbols); + let __sym5 = __pop_Term_22end_22(__symbols); + let __sym4 = __pop_Ntsimple__equation_2b(__symbols); + let __sym3 = __pop_Term_22equation_22(__symbols); + let __sym2 = __pop_Ntcomponent__declaration_2b(__symbols); + let __sym1 = __pop_Ntidentifier(__symbols); + let __sym0 = __pop_Term_22model_22(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym7.2.clone(); + let __nt = super::__action68::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7); + let __states_len = __states.len(); + __states.truncate(__states_len - 8); + __symbols.push((__start, __Symbol::Ntmodel(__nt), __end)); + 17 + } + 56 => { + // model = "model", identifier, component_declaration+, "equation", connect_clause+, "end", identifier, ";" => ActionFn(69); + let __sym7 = __pop_Term_22_3b_22(__symbols); + let __sym6 = __pop_Ntidentifier(__symbols); + let __sym5 = __pop_Term_22end_22(__symbols); + let __sym4 = __pop_Ntconnect__clause_2b(__symbols); + let __sym3 = __pop_Term_22equation_22(__symbols); + let __sym2 = __pop_Ntcomponent__declaration_2b(__symbols); + let __sym1 = __pop_Ntidentifier(__symbols); + let __sym0 = __pop_Term_22model_22(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym7.2.clone(); + let __nt = super::__action69::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7); + let __states_len = __states.len(); + __states.truncate(__states_len - 8); + __symbols.push((__start, __Symbol::Ntmodel(__nt), __end)); + 17 + } + 57 => { + // model = "model", identifier, component_declaration+, "equation", connect_clause+, simple_equation+, "end", identifier, ";" => ActionFn(70); + let __sym8 = __pop_Term_22_3b_22(__symbols); + let __sym7 = __pop_Ntidentifier(__symbols); + let __sym6 = __pop_Term_22end_22(__symbols); + let __sym5 = __pop_Ntsimple__equation_2b(__symbols); + let __sym4 = __pop_Ntconnect__clause_2b(__symbols); + let __sym3 = __pop_Term_22equation_22(__symbols); + let __sym2 = __pop_Ntcomponent__declaration_2b(__symbols); + let __sym1 = __pop_Ntidentifier(__symbols); + let __sym0 = __pop_Term_22model_22(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym8.2.clone(); + let __nt = super::__action70::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7, __sym8); + let __states_len = __states.len(); + __states.truncate(__states_len - 9); + __symbols.push((__start, __Symbol::Ntmodel(__nt), __end)); + 17 + } + 58 => { + // simple_equation = expr, "=", expr, ";" => ActionFn(19); + let __sym3 = __pop_Term_22_3b_22(__symbols); + let __sym2 = __pop_Ntexpr(__symbols); + let __sym1 = __pop_Term_22_3d_22(__symbols); + let __sym0 = __pop_Ntexpr(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym3.2.clone(); + let __nt = super::__action19::<>(input, __sym0, __sym1, __sym2, __sym3); + let __states_len = __states.len(); + __states.truncate(__states_len - 4); + __symbols.push((__start, __Symbol::Ntsimple__equation(__nt), __end)); + 18 + } + 59 => { + // simple_equation* = => ActionFn(43); + let __start = __symbols.last().map(|s| s.2.clone()).unwrap_or_default(); + let __end = __lookahead_start.cloned().unwrap_or_else(|| __start.clone()); + let __nt = super::__action43::<>(input, &__start, &__end); + let __states_len = __states.len(); + __states.truncate(__states_len - 0); + __symbols.push((__start, __Symbol::Ntsimple__equation_2a(__nt), __end)); + 19 + } + 60 => { + // simple_equation* = simple_equation+ => ActionFn(44); + let __sym0 = __pop_Ntsimple__equation_2b(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action44::<>(input, __sym0); + let __states_len = __states.len(); + __states.truncate(__states_len - 1); + __symbols.push((__start, __Symbol::Ntsimple__equation_2a(__nt), __end)); + 19 + } + 61 => { + // simple_equation+ = simple_equation => ActionFn(53); + let __sym0 = __pop_Ntsimple__equation(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action53::<>(input, __sym0); + let __states_len = __states.len(); + __states.truncate(__states_len - 1); + __symbols.push((__start, __Symbol::Ntsimple__equation_2b(__nt), __end)); + 20 + } + 62 => { + // simple_equation+ = simple_equation+, simple_equation => ActionFn(54); + let __sym1 = __pop_Ntsimple__equation(__symbols); + let __sym0 = __pop_Ntsimple__equation_2b(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym1.2.clone(); + let __nt = super::__action54::<>(input, __sym0, __sym1); + let __states_len = __states.len(); + __states.truncate(__states_len - 2); + __symbols.push((__start, __Symbol::Ntsimple__equation_2b(__nt), __end)); + 20 + } + 63 => { + // string_literal = r#"\"[^\"\\\\]*\""# => ActionFn(5); + let __sym0 = __pop_Termr_23_22_5c_22_5b_5e_5c_22_5c_5c_5c_5c_5d_2a_5c_22_22_23(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action5::<>(input, __sym0); + let __states_len = __states.len(); + __states.truncate(__states_len - 1); + __symbols.push((__start, __Symbol::Ntstring__literal(__nt), __end)); + 21 + } + 64 => { + // string_literal? = string_literal => ActionFn(35); + let __sym0 = __pop_Ntstring__literal(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action35::<>(input, __sym0); + let __states_len = __states.len(); + __states.truncate(__states_len - 1); + __symbols.push((__start, __Symbol::Ntstring__literal_3f(__nt), __end)); + 22 + } + 65 => { + // string_literal? = => ActionFn(36); + let __start = __symbols.last().map(|s| s.2.clone()).unwrap_or_default(); + let __end = __lookahead_start.cloned().unwrap_or_else(|| __start.clone()); + let __nt = super::__action36::<>(input, &__start, &__end); + let __states_len = __states.len(); + __states.truncate(__states_len - 0); + __symbols.push((__start, __Symbol::Ntstring__literal_3f(__nt), __end)); + 22 + } + 66 => { + // term = integer => ActionFn(29); + let __sym0 = __pop_Ntinteger(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action29::<>(input, __sym0); + let __states_len = __states.len(); + __states.truncate(__states_len - 1); + __symbols.push((__start, __Symbol::Ntterm(__nt), __end)); + 23 + } + 67 => { + // term = float => ActionFn(30); + let __sym0 = __pop_Ntfloat(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action30::<>(input, __sym0); + let __states_len = __states.len(); + __states.truncate(__states_len - 1); + __symbols.push((__start, __Symbol::Ntterm(__nt), __end)); + 23 + } + 68 => { + // term = identifier => ActionFn(31); + let __sym0 = __pop_Ntidentifier(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action31::<>(input, __sym0); + let __states_len = __states.len(); + __states.truncate(__states_len - 1); + __symbols.push((__start, __Symbol::Ntterm(__nt), __end)); + 23 + } + 69 => { + // term = "der", "(", expr, ")" => ActionFn(32); + let __sym3 = __pop_Term_22_29_22(__symbols); + let __sym2 = __pop_Ntexpr(__symbols); + let __sym1 = __pop_Term_22_28_22(__symbols); + let __sym0 = __pop_Term_22der_22(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym3.2.clone(); + let __nt = super::__action32::<>(input, __sym0, __sym1, __sym2, __sym3); + let __states_len = __states.len(); + __states.truncate(__states_len - 4); + __symbols.push((__start, __Symbol::Ntterm(__nt), __end)); + 23 + } + 70 => { + // term = "abs", "(", expr, ")" => ActionFn(33); + let __sym3 = __pop_Term_22_29_22(__symbols); + let __sym2 = __pop_Ntexpr(__symbols); + let __sym1 = __pop_Term_22_28_22(__symbols); + let __sym0 = __pop_Term_22abs_22(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym3.2.clone(); + let __nt = super::__action33::<>(input, __sym0, __sym1, __sym2, __sym3); + let __states_len = __states.len(); + __states.truncate(__states_len - 4); + __symbols.push((__start, __Symbol::Ntterm(__nt), __end)); + 23 + } + 71 => { + // term = "(", expr, ")" => ActionFn(34); + let __sym2 = __pop_Term_22_29_22(__symbols); + let __sym1 = __pop_Ntexpr(__symbols); + let __sym0 = __pop_Term_22_28_22(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym2.2.clone(); + let __nt = super::__action34::<>(input, __sym0, __sym1, __sym2); + let __states_len = __states.len(); + __states.truncate(__states_len - 3); + __symbols.push((__start, __Symbol::Ntterm(__nt), __end)); + 23 + } + 72 => { + // units_declaration = "(", "unit", "=", string_literal, ")" => ActionFn(10); + let __sym4 = __pop_Term_22_29_22(__symbols); + let __sym3 = __pop_Ntstring__literal(__symbols); + let __sym2 = __pop_Term_22_3d_22(__symbols); + let __sym1 = __pop_Term_22unit_22(__symbols); + let __sym0 = __pop_Term_22_28_22(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym4.2.clone(); + let __nt = super::__action10::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4); + let __states_len = __states.len(); + __states.truncate(__states_len - 5); + __symbols.push((__start, __Symbol::Ntunits__declaration(__nt), __end)); + 24 + } + 73 => { + // units_declaration? = units_declaration => ActionFn(39); + let __sym0 = __pop_Ntunits__declaration(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action39::<>(input, __sym0); + let __states_len = __states.len(); + __states.truncate(__states_len - 1); + __symbols.push((__start, __Symbol::Ntunits__declaration_3f(__nt), __end)); + 25 + } + 74 => { + // units_declaration? = => ActionFn(40); + let __start = __symbols.last().map(|s| s.2.clone()).unwrap_or_default(); + let __end = __lookahead_start.cloned().unwrap_or_else(|| __start.clone()); + let __nt = super::__action40::<>(input, &__start, &__end); + let __states_len = __states.len(); + __states.truncate(__states_len - 0); + __symbols.push((__start, __Symbol::Ntunits__declaration_3f(__nt), __end)); + 25 + } + 75 => { + // value_declaration = "=", expr => ActionFn(9); + let __sym1 = __pop_Ntexpr(__symbols); + let __sym0 = __pop_Term_22_3d_22(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym1.2.clone(); + let __nt = super::__action9::<>(input, __sym0, __sym1); + let __states_len = __states.len(); + __states.truncate(__states_len - 2); + __symbols.push((__start, __Symbol::Ntvalue__declaration(__nt), __end)); + 26 + } + 76 => { + // value_declaration? = value_declaration => ActionFn(37); + let __sym0 = __pop_Ntvalue__declaration(__symbols); + let __start = __sym0.0.clone(); + let __end = __sym0.2.clone(); + let __nt = super::__action37::<>(input, __sym0); + let __states_len = __states.len(); + __states.truncate(__states_len - 1); + __symbols.push((__start, __Symbol::Ntvalue__declaration_3f(__nt), __end)); + 27 + } + 77 => { + // value_declaration? = => ActionFn(38); + let __start = __symbols.last().map(|s| s.2.clone()).unwrap_or_default(); + let __end = __lookahead_start.cloned().unwrap_or_else(|| __start.clone()); + let __nt = super::__action38::<>(input, &__start, &__end); + let __states_len = __states.len(); + __states.truncate(__states_len - 0); + __symbols.push((__start, __Symbol::Ntvalue__declaration_3f(__nt), __end)); + 27 + } + _ => panic!("invalid action code {}", __action) + }; + let __state = *__states.last().unwrap() as usize; + let __next_state = __GOTO[__state * 28 + __nonterminal] - 1; + __states.push(__next_state); + None + } + fn __pop_Term_22_28_22< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, &'input str, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Term_22_28_22(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Term_22_29_22< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, &'input str, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Term_22_29_22(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Term_22_2a_22< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, &'input str, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Term_22_2a_22(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Term_22_2b_22< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, &'input str, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Term_22_2b_22(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Term_22_2c_22< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, &'input str, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Term_22_2c_22(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Term_22_2d_22< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, &'input str, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Term_22_2d_22(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Term_22_2f_22< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, &'input str, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Term_22_2f_22(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Term_22_3b_22< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, &'input str, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Term_22_3b_22(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Term_22_3d_22< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, &'input str, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Term_22_3d_22(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Term_22_5e_22< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, &'input str, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Term_22_5e_22(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Term_22abs_22< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, &'input str, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Term_22abs_22(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Term_22connect_22< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, &'input str, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Term_22connect_22(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Term_22constant_22< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, &'input str, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Term_22constant_22(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Term_22der_22< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, &'input str, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Term_22der_22(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Term_22discrete_22< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, &'input str, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Term_22discrete_22(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Term_22end_22< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, &'input str, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Term_22end_22(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Term_22equation_22< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, &'input str, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Term_22equation_22(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Term_22flow_22< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, &'input str, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Term_22flow_22(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Term_22input_22< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, &'input str, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Term_22input_22(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Term_22model_22< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, &'input str, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Term_22model_22(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Term_22output_22< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, &'input str, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Term_22output_22(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Term_22parameter_22< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, &'input str, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Term_22parameter_22(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Term_22stream_22< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, &'input str, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Term_22stream_22(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Term_22unit_22< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, &'input str, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Term_22unit_22(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Termr_23_22_5c_22_5b_5e_5c_22_5c_5c_5c_5c_5d_2a_5c_22_22_23< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, &'input str, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Termr_23_22_5c_22_5b_5e_5c_22_5c_5c_5c_5c_5d_2a_5c_22_22_23(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Termr_23_22_5b_2b_2d_5d_3f_5c_5cd_2b_22_23< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, &'input str, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Termr_23_22_5b_2b_2d_5d_3f_5c_5cd_2b_22_23(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Termr_23_22_5b_2b_2d_5d_3f_5c_5cd_2b_5c_5c_2e_5c_5cd_2a_28_5beE_5d_5b_2d_2b_5d_3f_5c_5cd_2b_29_3f_22_23< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, &'input str, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Termr_23_22_5b_2b_2d_5d_3f_5c_5cd_2b_5c_5c_2e_5c_5cd_2a_28_5beE_5d_5b_2d_2b_5d_3f_5c_5cd_2b_29_3f_22_23(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Termr_23_22_5ba_2dzA_2dZ___5d_5ba_2dzA_2dZ__0_2d9_5d_2a_22_23< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, &'input str, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Termr_23_22_5ba_2dzA_2dZ___5d_5ba_2dzA_2dZ__0_2d9_5d_2a_22_23(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Termerror< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, __lalrpop_util::ErrorRecovery, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Termerror(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Nt____float< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, f64, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Nt____float(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Nt____identifier< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, String, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Nt____identifier(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Nt____integer< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, i64, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Nt____integer(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Nt____model< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, ModelicaModel, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Nt____model(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Ntcomponent__declaration< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, Component, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Ntcomponent__declaration(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Ntcomponent__declaration_2a< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, ::std::vec::Vec, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Ntcomponent__declaration_2a(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Ntcomponent__declaration_2b< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, ::std::vec::Vec, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Ntcomponent__declaration_2b(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Ntcomponent__prefix< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, ComponentPrefix, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Ntcomponent__prefix(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Ntcomponent__prefix_3f< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, ::std::option::Option, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Ntcomponent__prefix_3f(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Ntconnect__clause< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, Connection, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Ntconnect__clause(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Ntconnect__clause_2a< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, ::std::vec::Vec, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Ntconnect__clause_2a(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Ntconnect__clause_2b< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, ::std::vec::Vec, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Ntconnect__clause_2b(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Ntexpr< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, Expr, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Ntexpr(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Ntfactor< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, Expr, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Ntfactor(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Ntfloat< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, f64, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Ntfloat(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Ntidentifier< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, String, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Ntidentifier(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Ntinteger< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, i64, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Ntinteger(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Ntmodel< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, ModelicaModel, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Ntmodel(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Ntsimple__equation< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, SimpleEquation, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Ntsimple__equation(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Ntsimple__equation_2a< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, ::std::vec::Vec, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Ntsimple__equation_2a(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Ntsimple__equation_2b< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, ::std::vec::Vec, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Ntsimple__equation_2b(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Ntstring__literal< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, String, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Ntstring__literal(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Ntstring__literal_3f< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, ::std::option::Option, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Ntstring__literal_3f(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Ntterm< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, Expr, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Ntterm(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Ntunits__declaration< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, String, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Ntunits__declaration(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Ntunits__declaration_3f< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, ::std::option::Option, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Ntunits__declaration_3f(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Ntvalue__declaration< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, Expr, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Ntvalue__declaration(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } + fn __pop_Ntvalue__declaration_3f< + 'input, + >( + __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> + ) -> (usize, ::std::option::Option, usize) { + match __symbols.pop().unwrap() { + (__l, __Symbol::Ntvalue__declaration_3f(__v), __r) => (__l, __v, __r), + _ => panic!("symbol type mismatch") + } + } +} +pub use self::__parse__model::parse_model; +mod __intern_token { + extern crate lalrpop_util as __lalrpop_util; + pub struct __Matcher<'input> { + text: &'input str, + consumed: usize, + } + + fn __tokenize(text: &str) -> Option<(usize, usize)> { + let mut __chars = text.char_indices(); + let mut __current_match: Option<(usize, usize)> = None; + let mut __current_state: usize = 0; + loop { + match __current_state { + 0 => { + let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; + match __ch as u32 { + 34 => /* '\"' */ { + __current_state = 1; + continue; + } + 40 => /* '(' */ { + __current_match = Some((0, __index + 1)); + __current_state = 2; + continue; + } + 41 => /* ')' */ { + __current_match = Some((1, __index + 1)); + __current_state = 3; + continue; + } + 42 => /* '*' */ { + __current_match = Some((2, __index + 1)); + __current_state = 4; + continue; + } + 43 => /* '+' */ { + __current_match = Some((3, __index + 1)); + __current_state = 5; + continue; + } + 44 => /* ',' */ { + __current_match = Some((4, __index + 1)); + __current_state = 6; + continue; + } + 45 => /* '-' */ { + __current_match = Some((5, __index + 1)); + __current_state = 7; + continue; + } + 47 => /* '/' */ { + __current_match = Some((6, __index + 1)); + __current_state = 8; + continue; + } + 48 ... 57 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 59 => /* ';' */ { + __current_match = Some((7, __index + 1)); + __current_state = 10; + continue; + } + 61 => /* '=' */ { + __current_match = Some((8, __index + 1)); + __current_state = 11; + continue; + } + 65 ... 90 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 12; + continue; + } + 94 => /* '^' */ { + __current_match = Some((9, __index + 1)); + __current_state = 13; + continue; + } + 95 => /* '_' */ { + __current_match = Some((27, __index + 1)); + __current_state = 12; + continue; + } + 97 => /* 'a' */ { + __current_match = Some((27, __index + 1)); + __current_state = 14; + continue; + } + 98 => /* 'b' */ { + __current_match = Some((27, __index + 1)); + __current_state = 12; + continue; + } + 99 => /* 'c' */ { + __current_match = Some((27, __index + 1)); + __current_state = 15; + continue; + } + 100 => /* 'd' */ { + __current_match = Some((27, __index + 1)); + __current_state = 16; + continue; + } + 101 => /* 'e' */ { + __current_match = Some((27, __index + 1)); + __current_state = 17; + continue; + } + 102 => /* 'f' */ { + __current_match = Some((27, __index + 1)); + __current_state = 18; + continue; + } + 103 ... 104 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 12; + continue; + } + 105 => /* 'i' */ { + __current_match = Some((27, __index + 1)); + __current_state = 19; + continue; + } + 106 ... 108 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 12; + continue; + } + 109 => /* 'm' */ { + __current_match = Some((27, __index + 1)); + __current_state = 20; + continue; + } + 110 => /* 'n' */ { + __current_match = Some((27, __index + 1)); + __current_state = 12; + continue; + } + 111 => /* 'o' */ { + __current_match = Some((27, __index + 1)); + __current_state = 21; + continue; + } + 112 => /* 'p' */ { + __current_match = Some((27, __index + 1)); + __current_state = 22; + continue; + } + 113 ... 114 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 12; + continue; + } + 115 => /* 's' */ { + __current_match = Some((27, __index + 1)); + __current_state = 23; + continue; + } + 116 => /* 't' */ { + __current_match = Some((27, __index + 1)); + __current_state = 12; + continue; + } + 117 => /* 'u' */ { + __current_match = Some((27, __index + 1)); + __current_state = 24; + continue; + } + 118 ... 122 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 12; + continue; + } + 1632 ... 1641 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 1776 ... 1785 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 1984 ... 1993 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 2406 ... 2415 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 2534 ... 2543 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 2662 ... 2671 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 2790 ... 2799 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 2918 ... 2927 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 3046 ... 3055 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 3174 ... 3183 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 3302 ... 3311 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 3430 ... 3439 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 3558 ... 3567 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 3664 ... 3673 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 3792 ... 3801 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 3872 ... 3881 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 4160 ... 4169 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 4240 ... 4249 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 6112 ... 6121 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 6160 ... 6169 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 6470 ... 6479 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 6608 ... 6617 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 6784 ... 6793 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 6800 ... 6809 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 6992 ... 7001 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 7088 ... 7097 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 7232 ... 7241 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 7248 ... 7257 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 42528 ... 42537 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 43216 ... 43225 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 43264 ... 43273 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 43472 ... 43481 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 43504 ... 43513 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 43600 ... 43609 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 44016 ... 44025 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 65296 ... 65305 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 66720 ... 66729 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 69734 ... 69743 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 69872 ... 69881 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 69942 ... 69951 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 70096 ... 70105 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 70384 ... 70393 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 70864 ... 70873 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 71248 ... 71257 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 71360 ... 71369 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 71472 ... 71481 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 71904 ... 71913 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 92768 ... 92777 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 93008 ... 93017 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 120782 ... 120831 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + _ => { + return __current_match; + } + } + } + 1 => { + let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; + match __ch as u32 { + 0 ... 33 => { + __current_state = 26; + continue; + } + 34 => /* '\"' */ { + __current_match = Some((24, __index + 1)); + __current_state = 27; + continue; + } + 35 ... 91 => { + __current_state = 26; + continue; + } + 93 ... 1114111 => { + __current_state = 26; + continue; + } + _ => { + return __current_match; + } + } + } + 2 => { + let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; + match __ch as u32 { + _ => { + return __current_match; + } + } + } + 3 => { + let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; + match __ch as u32 { + _ => { + return __current_match; + } + } + } + 4 => { + let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; + match __ch as u32 { + _ => { + return __current_match; + } + } + } + 5 => { + let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; + match __ch as u32 { + 48 ... 57 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 1632 ... 1641 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 1776 ... 1785 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 1984 ... 1993 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 2406 ... 2415 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 2534 ... 2543 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 2662 ... 2671 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 2790 ... 2799 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 2918 ... 2927 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 3046 ... 3055 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 3174 ... 3183 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 3302 ... 3311 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 3430 ... 3439 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 3558 ... 3567 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 3664 ... 3673 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 3792 ... 3801 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 3872 ... 3881 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 4160 ... 4169 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 4240 ... 4249 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 6112 ... 6121 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 6160 ... 6169 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 6470 ... 6479 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 6608 ... 6617 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 6784 ... 6793 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 6800 ... 6809 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 6992 ... 7001 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 7088 ... 7097 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 7232 ... 7241 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 7248 ... 7257 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 42528 ... 42537 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 43216 ... 43225 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 43264 ... 43273 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 43472 ... 43481 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 43504 ... 43513 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 43600 ... 43609 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 44016 ... 44025 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 65296 ... 65305 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 66720 ... 66729 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 69734 ... 69743 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 69872 ... 69881 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 69942 ... 69951 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 70096 ... 70105 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 70384 ... 70393 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 70864 ... 70873 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 71248 ... 71257 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 71360 ... 71369 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 71472 ... 71481 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 71904 ... 71913 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 92768 ... 92777 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 93008 ... 93017 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 120782 ... 120831 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + _ => { + return __current_match; + } + } + } + 6 => { + let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; + match __ch as u32 { + _ => { + return __current_match; + } + } + } + 7 => { + let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; + match __ch as u32 { + 48 ... 57 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 1632 ... 1641 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 1776 ... 1785 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 1984 ... 1993 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 2406 ... 2415 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 2534 ... 2543 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 2662 ... 2671 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 2790 ... 2799 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 2918 ... 2927 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 3046 ... 3055 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 3174 ... 3183 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 3302 ... 3311 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 3430 ... 3439 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 3558 ... 3567 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 3664 ... 3673 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 3792 ... 3801 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 3872 ... 3881 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 4160 ... 4169 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 4240 ... 4249 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 6112 ... 6121 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 6160 ... 6169 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 6470 ... 6479 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 6608 ... 6617 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 6784 ... 6793 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 6800 ... 6809 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 6992 ... 7001 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 7088 ... 7097 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 7232 ... 7241 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 7248 ... 7257 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 42528 ... 42537 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 43216 ... 43225 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 43264 ... 43273 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 43472 ... 43481 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 43504 ... 43513 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 43600 ... 43609 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 44016 ... 44025 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 65296 ... 65305 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 66720 ... 66729 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 69734 ... 69743 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 69872 ... 69881 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 69942 ... 69951 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 70096 ... 70105 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 70384 ... 70393 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 70864 ... 70873 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 71248 ... 71257 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 71360 ... 71369 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 71472 ... 71481 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 71904 ... 71913 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 92768 ... 92777 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 93008 ... 93017 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 120782 ... 120831 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + _ => { + return __current_match; + } + } + } + 8 => { + let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; + match __ch as u32 { + _ => { + return __current_match; + } + } + } + 9 => { + let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; + match __ch as u32 { + 46 => /* '.' */ { + __current_match = Some((26, __index + 1)); + __current_state = 28; + continue; + } + 48 ... 57 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 1632 ... 1641 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 1776 ... 1785 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 1984 ... 1993 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 2406 ... 2415 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 2534 ... 2543 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 2662 ... 2671 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 2790 ... 2799 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 2918 ... 2927 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 3046 ... 3055 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 3174 ... 3183 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 3302 ... 3311 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 3430 ... 3439 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 3558 ... 3567 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 3664 ... 3673 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 3792 ... 3801 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 3872 ... 3881 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 4160 ... 4169 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 4240 ... 4249 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 6112 ... 6121 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 6160 ... 6169 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 6470 ... 6479 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 6608 ... 6617 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 6784 ... 6793 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 6800 ... 6809 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 6992 ... 7001 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 7088 ... 7097 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 7232 ... 7241 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 7248 ... 7257 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 42528 ... 42537 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 43216 ... 43225 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 43264 ... 43273 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 43472 ... 43481 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 43504 ... 43513 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 43600 ... 43609 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 44016 ... 44025 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 65296 ... 65305 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 66720 ... 66729 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 69734 ... 69743 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 69872 ... 69881 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 69942 ... 69951 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 70096 ... 70105 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 70384 ... 70393 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 70864 ... 70873 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 71248 ... 71257 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 71360 ... 71369 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 71472 ... 71481 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 71904 ... 71913 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 92768 ... 92777 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 93008 ... 93017 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + 120782 ... 120831 => { + __current_match = Some((25, __index + __ch.len_utf8())); + __current_state = 9; + continue; + } + _ => { + return __current_match; + } + } + } + 10 => { + let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; + match __ch as u32 { + _ => { + return __current_match; + } + } + } + 11 => { + let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; + match __ch as u32 { + _ => { + return __current_match; + } + } + } + 12 => { + let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; + match __ch as u32 { + 48 ... 57 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 65 ... 90 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 95 => /* '_' */ { + __current_match = Some((27, __index + 1)); + __current_state = 29; + continue; + } + 97 ... 122 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + _ => { + return __current_match; + } + } + } + 13 => { + let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; + match __ch as u32 { + _ => { + return __current_match; + } + } + } + 14 => { + let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; + match __ch as u32 { + 48 ... 57 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 65 ... 90 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 95 => /* '_' */ { + __current_match = Some((27, __index + 1)); + __current_state = 29; + continue; + } + 97 => /* 'a' */ { + __current_match = Some((27, __index + 1)); + __current_state = 29; + continue; + } + 98 => /* 'b' */ { + __current_match = Some((27, __index + 1)); + __current_state = 30; + continue; + } + 99 ... 122 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + _ => { + return __current_match; + } + } + } + 15 => { + let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; + match __ch as u32 { + 48 ... 57 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 65 ... 90 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 95 => /* '_' */ { + __current_match = Some((27, __index + 1)); + __current_state = 29; + continue; + } + 97 ... 110 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 111 => /* 'o' */ { + __current_match = Some((27, __index + 1)); + __current_state = 31; + continue; + } + 112 ... 122 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + _ => { + return __current_match; + } + } + } + 16 => { + let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; + match __ch as u32 { + 48 ... 57 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 65 ... 90 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 95 => /* '_' */ { + __current_match = Some((27, __index + 1)); + __current_state = 29; + continue; + } + 97 ... 100 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 101 => /* 'e' */ { + __current_match = Some((27, __index + 1)); + __current_state = 32; + continue; + } + 102 ... 104 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 105 => /* 'i' */ { + __current_match = Some((27, __index + 1)); + __current_state = 33; + continue; + } + 106 ... 122 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + _ => { + return __current_match; + } + } + } + 17 => { + let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; + match __ch as u32 { + 48 ... 57 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 65 ... 90 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 95 => /* '_' */ { + __current_match = Some((27, __index + 1)); + __current_state = 29; + continue; + } + 97 ... 109 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 110 => /* 'n' */ { + __current_match = Some((27, __index + 1)); + __current_state = 34; + continue; + } + 111 ... 112 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 113 => /* 'q' */ { + __current_match = Some((27, __index + 1)); + __current_state = 35; + continue; + } + 114 ... 122 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + _ => { + return __current_match; + } + } + } + 18 => { + let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; + match __ch as u32 { + 48 ... 57 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 65 ... 90 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 95 => /* '_' */ { + __current_match = Some((27, __index + 1)); + __current_state = 29; + continue; + } + 97 ... 107 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 108 => /* 'l' */ { + __current_match = Some((27, __index + 1)); + __current_state = 36; + continue; + } + 109 ... 122 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + _ => { + return __current_match; + } + } + } + 19 => { + let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; + match __ch as u32 { + 48 ... 57 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 65 ... 90 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 95 => /* '_' */ { + __current_match = Some((27, __index + 1)); + __current_state = 29; + continue; + } + 97 ... 109 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 110 => /* 'n' */ { + __current_match = Some((27, __index + 1)); + __current_state = 37; + continue; + } + 111 ... 122 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + _ => { + return __current_match; + } + } + } + 20 => { + let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; + match __ch as u32 { + 48 ... 57 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 65 ... 90 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 95 => /* '_' */ { + __current_match = Some((27, __index + 1)); + __current_state = 29; + continue; + } + 97 ... 110 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 111 => /* 'o' */ { + __current_match = Some((27, __index + 1)); + __current_state = 38; + continue; + } + 112 ... 122 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + _ => { + return __current_match; + } + } + } + 21 => { + let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; + match __ch as u32 { + 48 ... 57 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 65 ... 90 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 95 => /* '_' */ { + __current_match = Some((27, __index + 1)); + __current_state = 29; + continue; + } + 97 ... 116 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 117 => /* 'u' */ { + __current_match = Some((27, __index + 1)); + __current_state = 39; + continue; + } + 118 ... 122 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + _ => { + return __current_match; + } + } + } + 22 => { + let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; + match __ch as u32 { + 48 ... 57 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 65 ... 90 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 95 => /* '_' */ { + __current_match = Some((27, __index + 1)); + __current_state = 29; + continue; + } + 97 => /* 'a' */ { + __current_match = Some((27, __index + 1)); + __current_state = 40; + continue; + } + 98 ... 122 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + _ => { + return __current_match; + } + } + } + 23 => { + let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; + match __ch as u32 { + 48 ... 57 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 65 ... 90 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 95 => /* '_' */ { + __current_match = Some((27, __index + 1)); + __current_state = 29; + continue; + } + 97 ... 115 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 116 => /* 't' */ { + __current_match = Some((27, __index + 1)); + __current_state = 41; + continue; + } + 117 ... 122 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + _ => { + return __current_match; + } + } + } + 24 => { + let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; + match __ch as u32 { + 48 ... 57 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 65 ... 90 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 95 => /* '_' */ { + __current_match = Some((27, __index + 1)); + __current_state = 29; + continue; + } + 97 ... 109 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 110 => /* 'n' */ { + __current_match = Some((27, __index + 1)); + __current_state = 42; + continue; + } + 111 ... 122 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + _ => { + return __current_match; + } + } + } + 25 => { + let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; + match __ch as u32 { + _ => { + return __current_match; + } + } + } + 26 => { + let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; + match __ch as u32 { + 0 ... 33 => { + __current_state = 26; + continue; + } + 34 => /* '\"' */ { + __current_match = Some((24, __index + 1)); + __current_state = 27; + continue; + } + 35 ... 91 => { + __current_state = 26; + continue; + } + 93 ... 1114111 => { + __current_state = 26; + continue; + } + _ => { + return __current_match; + } + } + } + 27 => { + let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; + match __ch as u32 { + _ => { + return __current_match; + } + } + } + 28 => { + let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; + match __ch as u32 { + 48 ... 57 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 28; + continue; + } + 69 => /* 'E' */ { + __current_state = 43; + continue; + } + 101 => /* 'e' */ { + __current_state = 43; + continue; + } + 1632 ... 1641 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 28; + continue; + } + 1776 ... 1785 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 28; + continue; + } + 1984 ... 1993 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 28; + continue; + } + 2406 ... 2415 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 28; + continue; + } + 2534 ... 2543 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 28; + continue; + } + 2662 ... 2671 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 28; + continue; + } + 2790 ... 2799 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 28; + continue; + } + 2918 ... 2927 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 28; + continue; + } + 3046 ... 3055 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 28; + continue; + } + 3174 ... 3183 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 28; + continue; + } + 3302 ... 3311 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 28; + continue; + } + 3430 ... 3439 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 28; + continue; + } + 3558 ... 3567 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 28; + continue; + } + 3664 ... 3673 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 28; + continue; + } + 3792 ... 3801 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 28; + continue; + } + 3872 ... 3881 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 28; + continue; + } + 4160 ... 4169 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 28; + continue; + } + 4240 ... 4249 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 28; + continue; + } + 6112 ... 6121 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 28; + continue; + } + 6160 ... 6169 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 28; + continue; + } + 6470 ... 6479 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 28; + continue; + } + 6608 ... 6617 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 28; + continue; + } + 6784 ... 6793 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 28; + continue; + } + 6800 ... 6809 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 28; + continue; + } + 6992 ... 7001 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 28; + continue; + } + 7088 ... 7097 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 28; + continue; + } + 7232 ... 7241 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 28; + continue; + } + 7248 ... 7257 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 28; + continue; + } + 42528 ... 42537 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 28; + continue; + } + 43216 ... 43225 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 28; + continue; + } + 43264 ... 43273 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 28; + continue; + } + 43472 ... 43481 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 28; + continue; + } + 43504 ... 43513 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 28; + continue; + } + 43600 ... 43609 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 28; + continue; + } + 44016 ... 44025 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 28; + continue; + } + 65296 ... 65305 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 28; + continue; + } + 66720 ... 66729 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 28; + continue; + } + 69734 ... 69743 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 28; + continue; + } + 69872 ... 69881 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 28; + continue; + } + 69942 ... 69951 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 28; + continue; + } + 70096 ... 70105 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 28; + continue; + } + 70384 ... 70393 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 28; + continue; + } + 70864 ... 70873 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 28; + continue; + } + 71248 ... 71257 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 28; + continue; + } + 71360 ... 71369 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 28; + continue; + } + 71472 ... 71481 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 28; + continue; + } + 71904 ... 71913 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 28; + continue; + } + 92768 ... 92777 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 28; + continue; + } + 93008 ... 93017 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 28; + continue; + } + 120782 ... 120831 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 28; + continue; + } + _ => { + return __current_match; + } + } + } + 29 => { + let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; + match __ch as u32 { + 48 ... 57 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 65 ... 90 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 95 => /* '_' */ { + __current_match = Some((27, __index + 1)); + __current_state = 29; + continue; + } + 97 ... 122 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + _ => { + return __current_match; + } + } + } + 30 => { + let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; + match __ch as u32 { + 48 ... 57 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 65 ... 90 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 95 => /* '_' */ { + __current_match = Some((27, __index + 1)); + __current_state = 29; + continue; + } + 97 ... 114 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 115 => /* 's' */ { + __current_match = Some((10, __index + 1)); + __current_state = 44; + continue; + } + 116 ... 122 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + _ => { + return __current_match; + } + } + } + 31 => { + let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; + match __ch as u32 { + 48 ... 57 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 65 ... 90 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 95 => /* '_' */ { + __current_match = Some((27, __index + 1)); + __current_state = 29; + continue; + } + 97 ... 109 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 110 => /* 'n' */ { + __current_match = Some((27, __index + 1)); + __current_state = 45; + continue; + } + 111 ... 122 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + _ => { + return __current_match; + } + } + } + 32 => { + let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; + match __ch as u32 { + 48 ... 57 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 65 ... 90 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 95 => /* '_' */ { + __current_match = Some((27, __index + 1)); + __current_state = 29; + continue; + } + 97 ... 113 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 114 => /* 'r' */ { + __current_match = Some((13, __index + 1)); + __current_state = 46; + continue; + } + 115 ... 122 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + _ => { + return __current_match; + } + } + } + 33 => { + let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; + match __ch as u32 { + 48 ... 57 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 65 ... 90 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 95 => /* '_' */ { + __current_match = Some((27, __index + 1)); + __current_state = 29; + continue; + } + 97 ... 114 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 115 => /* 's' */ { + __current_match = Some((27, __index + 1)); + __current_state = 47; + continue; + } + 116 ... 122 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + _ => { + return __current_match; + } + } + } + 34 => { + let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; + match __ch as u32 { + 48 ... 57 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 65 ... 90 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 95 => /* '_' */ { + __current_match = Some((27, __index + 1)); + __current_state = 29; + continue; + } + 97 ... 99 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 100 => /* 'd' */ { + __current_match = Some((15, __index + 1)); + __current_state = 48; + continue; + } + 101 ... 122 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + _ => { + return __current_match; + } + } + } + 35 => { + let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; + match __ch as u32 { + 48 ... 57 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 65 ... 90 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 95 => /* '_' */ { + __current_match = Some((27, __index + 1)); + __current_state = 29; + continue; + } + 97 ... 116 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 117 => /* 'u' */ { + __current_match = Some((27, __index + 1)); + __current_state = 49; + continue; + } + 118 ... 122 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + _ => { + return __current_match; + } + } + } + 36 => { + let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; + match __ch as u32 { + 48 ... 57 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 65 ... 90 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 95 => /* '_' */ { + __current_match = Some((27, __index + 1)); + __current_state = 29; + continue; + } + 97 ... 110 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 111 => /* 'o' */ { + __current_match = Some((27, __index + 1)); + __current_state = 50; + continue; + } + 112 ... 122 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + _ => { + return __current_match; + } + } + } + 37 => { + let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; + match __ch as u32 { + 48 ... 57 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 65 ... 90 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 95 => /* '_' */ { + __current_match = Some((27, __index + 1)); + __current_state = 29; + continue; + } + 97 ... 111 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 112 => /* 'p' */ { + __current_match = Some((27, __index + 1)); + __current_state = 51; + continue; + } + 113 ... 122 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + _ => { + return __current_match; + } + } + } + 38 => { + let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; + match __ch as u32 { + 48 ... 57 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 65 ... 90 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 95 => /* '_' */ { + __current_match = Some((27, __index + 1)); + __current_state = 29; + continue; + } + 97 ... 99 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 100 => /* 'd' */ { + __current_match = Some((27, __index + 1)); + __current_state = 52; + continue; + } + 101 ... 122 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + _ => { + return __current_match; + } + } + } + 39 => { + let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; + match __ch as u32 { + 48 ... 57 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 65 ... 90 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 95 => /* '_' */ { + __current_match = Some((27, __index + 1)); + __current_state = 29; + continue; + } + 97 ... 115 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 116 => /* 't' */ { + __current_match = Some((27, __index + 1)); + __current_state = 53; + continue; + } + 117 ... 122 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + _ => { + return __current_match; + } + } + } + 40 => { + let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; + match __ch as u32 { + 48 ... 57 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 65 ... 90 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 95 => /* '_' */ { + __current_match = Some((27, __index + 1)); + __current_state = 29; + continue; + } + 97 ... 113 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 114 => /* 'r' */ { + __current_match = Some((27, __index + 1)); + __current_state = 54; + continue; + } + 115 ... 122 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + _ => { + return __current_match; + } + } + } + 41 => { + let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; + match __ch as u32 { + 48 ... 57 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 65 ... 90 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 95 => /* '_' */ { + __current_match = Some((27, __index + 1)); + __current_state = 29; + continue; + } + 97 ... 113 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 114 => /* 'r' */ { + __current_match = Some((27, __index + 1)); + __current_state = 55; + continue; + } + 115 ... 122 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + _ => { + return __current_match; + } + } + } + 42 => { + let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; + match __ch as u32 { + 48 ... 57 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 65 ... 90 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 95 => /* '_' */ { + __current_match = Some((27, __index + 1)); + __current_state = 29; + continue; + } + 97 ... 104 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 105 => /* 'i' */ { + __current_match = Some((27, __index + 1)); + __current_state = 56; + continue; + } + 106 ... 122 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + _ => { + return __current_match; + } + } + } + 43 => { + let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; + match __ch as u32 { + 43 => /* '+' */ { + __current_state = 57; + continue; + } + 45 => /* '-' */ { + __current_state = 57; + continue; + } + 48 ... 57 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 1632 ... 1641 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 1776 ... 1785 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 1984 ... 1993 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 2406 ... 2415 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 2534 ... 2543 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 2662 ... 2671 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 2790 ... 2799 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 2918 ... 2927 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 3046 ... 3055 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 3174 ... 3183 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 3302 ... 3311 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 3430 ... 3439 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 3558 ... 3567 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 3664 ... 3673 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 3792 ... 3801 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 3872 ... 3881 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 4160 ... 4169 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 4240 ... 4249 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 6112 ... 6121 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 6160 ... 6169 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 6470 ... 6479 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 6608 ... 6617 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 6784 ... 6793 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 6800 ... 6809 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 6992 ... 7001 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 7088 ... 7097 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 7232 ... 7241 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 7248 ... 7257 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 42528 ... 42537 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 43216 ... 43225 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 43264 ... 43273 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 43472 ... 43481 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 43504 ... 43513 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 43600 ... 43609 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 44016 ... 44025 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 65296 ... 65305 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 66720 ... 66729 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 69734 ... 69743 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 69872 ... 69881 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 69942 ... 69951 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 70096 ... 70105 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 70384 ... 70393 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 70864 ... 70873 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 71248 ... 71257 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 71360 ... 71369 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 71472 ... 71481 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 71904 ... 71913 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 92768 ... 92777 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 93008 ... 93017 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 120782 ... 120831 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + _ => { + return __current_match; + } + } + } + 44 => { + let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; + match __ch as u32 { + 48 ... 57 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 65 ... 90 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 95 => /* '_' */ { + __current_match = Some((27, __index + 1)); + __current_state = 29; + continue; + } + 97 ... 122 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + _ => { + return __current_match; + } + } + } + 45 => { + let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; + match __ch as u32 { + 48 ... 57 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 65 ... 90 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 95 => /* '_' */ { + __current_match = Some((27, __index + 1)); + __current_state = 29; + continue; + } + 97 ... 109 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 110 => /* 'n' */ { + __current_match = Some((27, __index + 1)); + __current_state = 59; + continue; + } + 111 ... 114 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 115 => /* 's' */ { + __current_match = Some((27, __index + 1)); + __current_state = 60; + continue; + } + 116 ... 122 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + _ => { + return __current_match; + } + } + } + 46 => { + let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; + match __ch as u32 { + 48 ... 57 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 65 ... 90 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 95 => /* '_' */ { + __current_match = Some((27, __index + 1)); + __current_state = 29; + continue; + } + 97 ... 122 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + _ => { + return __current_match; + } + } + } + 47 => { + let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; + match __ch as u32 { + 48 ... 57 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 65 ... 90 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 95 => /* '_' */ { + __current_match = Some((27, __index + 1)); + __current_state = 29; + continue; + } + 97 ... 98 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 99 => /* 'c' */ { + __current_match = Some((27, __index + 1)); + __current_state = 61; + continue; + } + 100 ... 122 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + _ => { + return __current_match; + } + } + } + 48 => { + let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; + match __ch as u32 { + 48 ... 57 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 65 ... 90 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 95 => /* '_' */ { + __current_match = Some((27, __index + 1)); + __current_state = 29; + continue; + } + 97 ... 122 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + _ => { + return __current_match; + } + } + } + 49 => { + let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; + match __ch as u32 { + 48 ... 57 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 65 ... 90 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 95 => /* '_' */ { + __current_match = Some((27, __index + 1)); + __current_state = 29; + continue; + } + 97 => /* 'a' */ { + __current_match = Some((27, __index + 1)); + __current_state = 62; + continue; + } + 98 ... 122 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + _ => { + return __current_match; + } + } + } + 50 => { + let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; + match __ch as u32 { + 48 ... 57 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 65 ... 90 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 95 => /* '_' */ { + __current_match = Some((27, __index + 1)); + __current_state = 29; + continue; + } + 97 ... 118 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 119 => /* 'w' */ { + __current_match = Some((17, __index + 1)); + __current_state = 63; + continue; + } + 120 ... 122 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + _ => { + return __current_match; + } + } + } + 51 => { + let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; + match __ch as u32 { + 48 ... 57 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 65 ... 90 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 95 => /* '_' */ { + __current_match = Some((27, __index + 1)); + __current_state = 29; + continue; + } + 97 ... 116 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 117 => /* 'u' */ { + __current_match = Some((27, __index + 1)); + __current_state = 64; + continue; + } + 118 ... 122 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + _ => { + return __current_match; + } + } + } + 52 => { + let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; + match __ch as u32 { + 48 ... 57 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 65 ... 90 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 95 => /* '_' */ { + __current_match = Some((27, __index + 1)); + __current_state = 29; + continue; + } + 97 ... 100 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 101 => /* 'e' */ { + __current_match = Some((27, __index + 1)); + __current_state = 65; + continue; + } + 102 ... 122 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + _ => { + return __current_match; + } + } + } + 53 => { + let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; + match __ch as u32 { + 48 ... 57 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 65 ... 90 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 95 => /* '_' */ { + __current_match = Some((27, __index + 1)); + __current_state = 29; + continue; + } + 97 ... 111 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 112 => /* 'p' */ { + __current_match = Some((27, __index + 1)); + __current_state = 66; + continue; + } + 113 ... 122 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + _ => { + return __current_match; + } + } + } + 54 => { + let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; + match __ch as u32 { + 48 ... 57 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 65 ... 90 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 95 => /* '_' */ { + __current_match = Some((27, __index + 1)); + __current_state = 29; + continue; + } + 97 => /* 'a' */ { + __current_match = Some((27, __index + 1)); + __current_state = 67; + continue; + } + 98 ... 122 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + _ => { + return __current_match; + } + } + } + 55 => { + let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; + match __ch as u32 { + 48 ... 57 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 65 ... 90 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 95 => /* '_' */ { + __current_match = Some((27, __index + 1)); + __current_state = 29; + continue; + } + 97 ... 100 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 101 => /* 'e' */ { + __current_match = Some((27, __index + 1)); + __current_state = 68; + continue; + } + 102 ... 122 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + _ => { + return __current_match; + } + } + } + 56 => { + let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; + match __ch as u32 { + 48 ... 57 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 65 ... 90 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 95 => /* '_' */ { + __current_match = Some((27, __index + 1)); + __current_state = 29; + continue; + } + 97 ... 115 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 116 => /* 't' */ { + __current_match = Some((23, __index + 1)); + __current_state = 69; + continue; + } + 117 ... 122 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + _ => { + return __current_match; + } + } + } + 57 => { + let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; + match __ch as u32 { + 48 ... 57 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 1632 ... 1641 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 1776 ... 1785 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 1984 ... 1993 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 2406 ... 2415 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 2534 ... 2543 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 2662 ... 2671 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 2790 ... 2799 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 2918 ... 2927 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 3046 ... 3055 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 3174 ... 3183 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 3302 ... 3311 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 3430 ... 3439 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 3558 ... 3567 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 3664 ... 3673 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 3792 ... 3801 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 3872 ... 3881 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 4160 ... 4169 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 4240 ... 4249 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 6112 ... 6121 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 6160 ... 6169 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 6470 ... 6479 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 6608 ... 6617 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 6784 ... 6793 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 6800 ... 6809 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 6992 ... 7001 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 7088 ... 7097 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 7232 ... 7241 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 7248 ... 7257 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 42528 ... 42537 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 43216 ... 43225 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 43264 ... 43273 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 43472 ... 43481 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 43504 ... 43513 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 43600 ... 43609 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 44016 ... 44025 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 65296 ... 65305 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 66720 ... 66729 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 69734 ... 69743 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 69872 ... 69881 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 69942 ... 69951 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 70096 ... 70105 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 70384 ... 70393 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 70864 ... 70873 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 71248 ... 71257 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 71360 ... 71369 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 71472 ... 71481 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 71904 ... 71913 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 92768 ... 92777 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 93008 ... 93017 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 120782 ... 120831 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + _ => { + return __current_match; + } + } + } + 58 => { + let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; + match __ch as u32 { + 48 ... 57 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 1632 ... 1641 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 1776 ... 1785 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 1984 ... 1993 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 2406 ... 2415 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 2534 ... 2543 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 2662 ... 2671 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 2790 ... 2799 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 2918 ... 2927 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 3046 ... 3055 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 3174 ... 3183 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 3302 ... 3311 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 3430 ... 3439 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 3558 ... 3567 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 3664 ... 3673 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 3792 ... 3801 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 3872 ... 3881 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 4160 ... 4169 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 4240 ... 4249 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 6112 ... 6121 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 6160 ... 6169 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 6470 ... 6479 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 6608 ... 6617 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 6784 ... 6793 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 6800 ... 6809 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 6992 ... 7001 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 7088 ... 7097 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 7232 ... 7241 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 7248 ... 7257 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 42528 ... 42537 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 43216 ... 43225 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 43264 ... 43273 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 43472 ... 43481 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 43504 ... 43513 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 43600 ... 43609 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 44016 ... 44025 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 65296 ... 65305 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 66720 ... 66729 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 69734 ... 69743 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 69872 ... 69881 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 69942 ... 69951 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 70096 ... 70105 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 70384 ... 70393 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 70864 ... 70873 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 71248 ... 71257 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 71360 ... 71369 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 71472 ... 71481 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 71904 ... 71913 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 92768 ... 92777 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 93008 ... 93017 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + 120782 ... 120831 => { + __current_match = Some((26, __index + __ch.len_utf8())); + __current_state = 58; + continue; + } + _ => { + return __current_match; + } + } + } + 59 => { + let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; + match __ch as u32 { + 48 ... 57 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 65 ... 90 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 95 => /* '_' */ { + __current_match = Some((27, __index + 1)); + __current_state = 29; + continue; + } + 97 ... 100 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 101 => /* 'e' */ { + __current_match = Some((27, __index + 1)); + __current_state = 70; + continue; + } + 102 ... 122 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + _ => { + return __current_match; + } + } + } + 60 => { + let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; + match __ch as u32 { + 48 ... 57 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 65 ... 90 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 95 => /* '_' */ { + __current_match = Some((27, __index + 1)); + __current_state = 29; + continue; + } + 97 ... 115 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 116 => /* 't' */ { + __current_match = Some((27, __index + 1)); + __current_state = 71; + continue; + } + 117 ... 122 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + _ => { + return __current_match; + } + } + } + 61 => { + let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; + match __ch as u32 { + 48 ... 57 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 65 ... 90 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 95 => /* '_' */ { + __current_match = Some((27, __index + 1)); + __current_state = 29; + continue; + } + 97 ... 113 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 114 => /* 'r' */ { + __current_match = Some((27, __index + 1)); + __current_state = 72; + continue; + } + 115 ... 122 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + _ => { + return __current_match; + } + } + } + 62 => { + let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; + match __ch as u32 { + 48 ... 57 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 65 ... 90 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 95 => /* '_' */ { + __current_match = Some((27, __index + 1)); + __current_state = 29; + continue; + } + 97 ... 115 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 116 => /* 't' */ { + __current_match = Some((27, __index + 1)); + __current_state = 73; + continue; + } + 117 ... 122 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + _ => { + return __current_match; + } + } + } + 63 => { + let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; + match __ch as u32 { + 48 ... 57 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 65 ... 90 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 95 => /* '_' */ { + __current_match = Some((27, __index + 1)); + __current_state = 29; + continue; + } + 97 ... 122 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + _ => { + return __current_match; + } + } + } + 64 => { + let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; + match __ch as u32 { + 48 ... 57 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 65 ... 90 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 95 => /* '_' */ { + __current_match = Some((27, __index + 1)); + __current_state = 29; + continue; + } + 97 ... 115 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 116 => /* 't' */ { + __current_match = Some((18, __index + 1)); + __current_state = 74; + continue; + } + 117 ... 122 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + _ => { + return __current_match; + } + } + } + 65 => { + let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; + match __ch as u32 { + 48 ... 57 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 65 ... 90 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 95 => /* '_' */ { + __current_match = Some((27, __index + 1)); + __current_state = 29; + continue; + } + 97 ... 107 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 108 => /* 'l' */ { + __current_match = Some((19, __index + 1)); + __current_state = 75; + continue; + } + 109 ... 122 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + _ => { + return __current_match; + } + } + } + 66 => { + let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; + match __ch as u32 { + 48 ... 57 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 65 ... 90 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 95 => /* '_' */ { + __current_match = Some((27, __index + 1)); + __current_state = 29; + continue; + } + 97 ... 116 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 117 => /* 'u' */ { + __current_match = Some((27, __index + 1)); + __current_state = 76; + continue; + } + 118 ... 122 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + _ => { + return __current_match; + } + } + } + 67 => { + let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; + match __ch as u32 { + 48 ... 57 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 65 ... 90 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 95 => /* '_' */ { + __current_match = Some((27, __index + 1)); + __current_state = 29; + continue; + } + 97 ... 108 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 109 => /* 'm' */ { + __current_match = Some((27, __index + 1)); + __current_state = 77; + continue; + } + 110 ... 122 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + _ => { + return __current_match; + } + } + } + 68 => { + let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; + match __ch as u32 { + 48 ... 57 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 65 ... 90 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 95 => /* '_' */ { + __current_match = Some((27, __index + 1)); + __current_state = 29; + continue; + } + 97 => /* 'a' */ { + __current_match = Some((27, __index + 1)); + __current_state = 78; + continue; + } + 98 ... 122 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + _ => { + return __current_match; + } + } + } + 69 => { + let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; + match __ch as u32 { + 48 ... 57 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 65 ... 90 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 95 => /* '_' */ { + __current_match = Some((27, __index + 1)); + __current_state = 29; + continue; + } + 97 ... 122 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + _ => { + return __current_match; + } + } + } + 70 => { + let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; + match __ch as u32 { + 48 ... 57 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 65 ... 90 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 95 => /* '_' */ { + __current_match = Some((27, __index + 1)); + __current_state = 29; + continue; + } + 97 ... 98 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 99 => /* 'c' */ { + __current_match = Some((27, __index + 1)); + __current_state = 79; + continue; + } + 100 ... 122 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + _ => { + return __current_match; + } + } + } + 71 => { + let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; + match __ch as u32 { + 48 ... 57 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 65 ... 90 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 95 => /* '_' */ { + __current_match = Some((27, __index + 1)); + __current_state = 29; + continue; + } + 97 => /* 'a' */ { + __current_match = Some((27, __index + 1)); + __current_state = 80; + continue; + } + 98 ... 122 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + _ => { + return __current_match; + } + } + } + 72 => { + let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; + match __ch as u32 { + 48 ... 57 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 65 ... 90 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 95 => /* '_' */ { + __current_match = Some((27, __index + 1)); + __current_state = 29; + continue; + } + 97 ... 100 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 101 => /* 'e' */ { + __current_match = Some((27, __index + 1)); + __current_state = 81; + continue; + } + 102 ... 122 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + _ => { + return __current_match; + } + } + } + 73 => { + let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; + match __ch as u32 { + 48 ... 57 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 65 ... 90 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 95 => /* '_' */ { + __current_match = Some((27, __index + 1)); + __current_state = 29; + continue; + } + 97 ... 104 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 105 => /* 'i' */ { + __current_match = Some((27, __index + 1)); + __current_state = 82; + continue; + } + 106 ... 122 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + _ => { + return __current_match; + } + } + } + 74 => { + let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; + match __ch as u32 { + 48 ... 57 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 65 ... 90 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 95 => /* '_' */ { + __current_match = Some((27, __index + 1)); + __current_state = 29; + continue; + } + 97 ... 122 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + _ => { + return __current_match; + } + } + } + 75 => { + let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; + match __ch as u32 { + 48 ... 57 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 65 ... 90 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 95 => /* '_' */ { + __current_match = Some((27, __index + 1)); + __current_state = 29; + continue; + } + 97 ... 122 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + _ => { + return __current_match; + } + } + } + 76 => { + let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; + match __ch as u32 { + 48 ... 57 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 65 ... 90 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 95 => /* '_' */ { + __current_match = Some((27, __index + 1)); + __current_state = 29; + continue; + } + 97 ... 115 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 116 => /* 't' */ { + __current_match = Some((20, __index + 1)); + __current_state = 83; + continue; + } + 117 ... 122 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + _ => { + return __current_match; + } + } + } + 77 => { + let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; + match __ch as u32 { + 48 ... 57 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 65 ... 90 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 95 => /* '_' */ { + __current_match = Some((27, __index + 1)); + __current_state = 29; + continue; + } + 97 ... 100 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 101 => /* 'e' */ { + __current_match = Some((27, __index + 1)); + __current_state = 84; + continue; + } + 102 ... 122 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + _ => { + return __current_match; + } + } + } + 78 => { + let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; + match __ch as u32 { + 48 ... 57 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 65 ... 90 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 95 => /* '_' */ { + __current_match = Some((27, __index + 1)); + __current_state = 29; + continue; + } + 97 ... 108 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 109 => /* 'm' */ { + __current_match = Some((22, __index + 1)); + __current_state = 85; + continue; + } + 110 ... 122 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + _ => { + return __current_match; + } + } + } + 79 => { + let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; + match __ch as u32 { + 48 ... 57 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 65 ... 90 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 95 => /* '_' */ { + __current_match = Some((27, __index + 1)); + __current_state = 29; + continue; + } + 97 ... 115 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 116 => /* 't' */ { + __current_match = Some((11, __index + 1)); + __current_state = 86; + continue; + } + 117 ... 122 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + _ => { + return __current_match; + } + } + } + 80 => { + let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; + match __ch as u32 { + 48 ... 57 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 65 ... 90 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 95 => /* '_' */ { + __current_match = Some((27, __index + 1)); + __current_state = 29; + continue; + } + 97 ... 109 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 110 => /* 'n' */ { + __current_match = Some((27, __index + 1)); + __current_state = 87; + continue; + } + 111 ... 122 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + _ => { + return __current_match; + } + } + } + 81 => { + let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; + match __ch as u32 { + 48 ... 57 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 65 ... 90 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 95 => /* '_' */ { + __current_match = Some((27, __index + 1)); + __current_state = 29; + continue; + } + 97 ... 115 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 116 => /* 't' */ { + __current_match = Some((27, __index + 1)); + __current_state = 88; + continue; + } + 117 ... 122 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + _ => { + return __current_match; + } + } + } + 82 => { + let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; + match __ch as u32 { + 48 ... 57 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 65 ... 90 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 95 => /* '_' */ { + __current_match = Some((27, __index + 1)); + __current_state = 29; + continue; + } + 97 ... 110 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 111 => /* 'o' */ { + __current_match = Some((27, __index + 1)); + __current_state = 89; + continue; + } + 112 ... 122 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + _ => { + return __current_match; + } + } + } + 83 => { + let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; + match __ch as u32 { + 48 ... 57 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 65 ... 90 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 95 => /* '_' */ { + __current_match = Some((27, __index + 1)); + __current_state = 29; + continue; + } + 97 ... 122 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + _ => { + return __current_match; + } + } + } + 84 => { + let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; + match __ch as u32 { + 48 ... 57 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 65 ... 90 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 95 => /* '_' */ { + __current_match = Some((27, __index + 1)); + __current_state = 29; + continue; + } + 97 ... 115 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 116 => /* 't' */ { + __current_match = Some((27, __index + 1)); + __current_state = 90; + continue; + } + 117 ... 122 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + _ => { + return __current_match; + } + } + } + 85 => { + let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; + match __ch as u32 { + 48 ... 57 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 65 ... 90 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 95 => /* '_' */ { + __current_match = Some((27, __index + 1)); + __current_state = 29; + continue; + } + 97 ... 122 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + _ => { + return __current_match; + } + } + } + 86 => { + let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; + match __ch as u32 { + 48 ... 57 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 65 ... 90 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 95 => /* '_' */ { + __current_match = Some((27, __index + 1)); + __current_state = 29; + continue; + } + 97 ... 122 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + _ => { + return __current_match; + } + } + } + 87 => { + let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; + match __ch as u32 { + 48 ... 57 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 65 ... 90 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 95 => /* '_' */ { + __current_match = Some((27, __index + 1)); + __current_state = 29; + continue; + } + 97 ... 115 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 116 => /* 't' */ { + __current_match = Some((12, __index + 1)); + __current_state = 91; + continue; + } + 117 ... 122 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + _ => { + return __current_match; + } + } + } + 88 => { + let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; + match __ch as u32 { + 48 ... 57 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 65 ... 90 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 95 => /* '_' */ { + __current_match = Some((27, __index + 1)); + __current_state = 29; + continue; + } + 97 ... 100 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 101 => /* 'e' */ { + __current_match = Some((14, __index + 1)); + __current_state = 92; + continue; + } + 102 ... 122 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + _ => { + return __current_match; + } + } + } + 89 => { + let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; + match __ch as u32 { + 48 ... 57 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 65 ... 90 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 95 => /* '_' */ { + __current_match = Some((27, __index + 1)); + __current_state = 29; + continue; + } + 97 ... 109 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 110 => /* 'n' */ { + __current_match = Some((16, __index + 1)); + __current_state = 93; + continue; + } + 111 ... 122 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + _ => { + return __current_match; + } + } + } + 90 => { + let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; + match __ch as u32 { + 48 ... 57 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 65 ... 90 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 95 => /* '_' */ { + __current_match = Some((27, __index + 1)); + __current_state = 29; + continue; + } + 97 ... 100 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 101 => /* 'e' */ { + __current_match = Some((27, __index + 1)); + __current_state = 94; + continue; + } + 102 ... 122 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + _ => { + return __current_match; + } + } + } + 91 => { + let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; + match __ch as u32 { + 48 ... 57 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 65 ... 90 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 95 => /* '_' */ { + __current_match = Some((27, __index + 1)); + __current_state = 29; + continue; + } + 97 ... 122 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + _ => { + return __current_match; + } + } + } + 92 => { + let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; + match __ch as u32 { + 48 ... 57 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 65 ... 90 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 95 => /* '_' */ { + __current_match = Some((27, __index + 1)); + __current_state = 29; + continue; + } + 97 ... 122 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + _ => { + return __current_match; + } + } + } + 93 => { + let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; + match __ch as u32 { + 48 ... 57 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 65 ... 90 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 95 => /* '_' */ { + __current_match = Some((27, __index + 1)); + __current_state = 29; + continue; + } + 97 ... 122 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + _ => { + return __current_match; + } + } + } + 94 => { + let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; + match __ch as u32 { + 48 ... 57 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 65 ... 90 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 95 => /* '_' */ { + __current_match = Some((27, __index + 1)); + __current_state = 29; + continue; + } + 97 ... 113 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 114 => /* 'r' */ { + __current_match = Some((21, __index + 1)); + __current_state = 95; + continue; + } + 115 ... 122 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + _ => { + return __current_match; + } + } + } + 95 => { + let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; + match __ch as u32 { + 48 ... 57 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 65 ... 90 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + 95 => /* '_' */ { + __current_match = Some((27, __index + 1)); + __current_state = 29; + continue; + } + 97 ... 122 => { + __current_match = Some((27, __index + __ch.len_utf8())); + __current_state = 29; + continue; + } + _ => { + return __current_match; + } + } + } + _ => { panic!("invalid state {}", __current_state); } + } + } + } + + impl<'input> __Matcher<'input> { + pub fn new(s: &'input str) -> __Matcher<'input> { + __Matcher { text: s, consumed: 0 } + } + } + + impl<'input> Iterator for __Matcher<'input> { + type Item = Result<(usize, (usize, &'input str), usize), __lalrpop_util::ParseError>; + + fn next(&mut self) -> Option { + let __text = self.text.trim_left(); + let __whitespace = self.text.len() - __text.len(); + let __start_offset = self.consumed + __whitespace; + if __text.is_empty() { + self.text = __text; + self.consumed = __start_offset; + None + } else { + match __tokenize(__text) { + Some((__index, __length)) => { + let __result = &__text[..__length]; + let __remaining = &__text[__length..]; + let __end_offset = __start_offset + __length; + self.text = __remaining; + self.consumed = __end_offset; + Some(Ok((__start_offset, (__index, __result), __end_offset))) + } + None => { + Some(Err(__lalrpop_util::ParseError::InvalidToken { location: __start_offset })) + } + } + } + } + } +} + +#[allow(unused_variables)] +pub fn __action0< + 'input, +>( + input: &'input str, + (_, __0, _): (usize, String, usize), +) -> String +{ + (__0) +} + +#[allow(unused_variables)] +pub fn __action1< + 'input, +>( + input: &'input str, + (_, __0, _): (usize, i64, usize), +) -> i64 +{ + (__0) +} + +#[allow(unused_variables)] +pub fn __action2< + 'input, +>( + input: &'input str, + (_, __0, _): (usize, f64, usize), +) -> f64 +{ + (__0) +} + +#[allow(unused_variables)] +pub fn __action3< + 'input, +>( + input: &'input str, + (_, __0, _): (usize, ModelicaModel, usize), +) -> ModelicaModel +{ + (__0) +} + +#[allow(unused_variables)] +pub fn __action4< + 'input, +>( + input: &'input str, + (_, __0, _): (usize, &'input str, usize), +) -> String +{ + __0.to_string() +} + +#[allow(unused_variables)] +pub fn __action5< + 'input, +>( + input: &'input str, + (_, __0, _): (usize, &'input str, usize), +) -> String +{ + __0.to_string() +} + +#[allow(unused_variables)] +pub fn __action6< + 'input, +>( + input: &'input str, + (_, __0, _): (usize, &'input str, usize), +) -> i64 +{ + i64::from_str(__0).unwrap() +} + +#[allow(unused_variables)] +pub fn __action7< + 'input, +>( + input: &'input str, + (_, __0, _): (usize, &'input str, usize), +) -> f64 +{ + f64::from_str(__0).unwrap() +} + +#[allow(unused_variables)] +pub fn __action8< + 'input, +>( + input: &'input str, + (_, _, _): (usize, &'input str, usize), + (_, n, _): (usize, String, usize), + (_, cd, _): (usize, ::std::vec::Vec, usize), + (_, _, _): (usize, &'input str, usize), + (_, cc, _): (usize, ::std::vec::Vec, usize), + (_, se, _): (usize, ::std::vec::Vec, usize), + (_, _, _): (usize, &'input str, usize), + (_, _, _): (usize, String, usize), + (_, _, _): (usize, &'input str, usize), +) -> ModelicaModel +{ + ModelicaModel { name:n, components: cd, connections: cc, equations: se, extends: vec![] } +} + +#[allow(unused_variables)] +pub fn __action9< + 'input, +>( + input: &'input str, + (_, _, _): (usize, &'input str, usize), + (_, value, _): (usize, Expr, usize), +) -> Expr +{ + value +} + +#[allow(unused_variables)] +pub fn __action10< + 'input, +>( + input: &'input str, + (_, _, _): (usize, &'input str, usize), + (_, _, _): (usize, &'input str, usize), + (_, _, _): (usize, &'input str, usize), + (_, units, _): (usize, String, usize), + (_, _, _): (usize, &'input str, usize), +) -> String +{ + units +} + +#[allow(unused_variables)] +pub fn __action11< + 'input, +>( + input: &'input str, + (_, prefix, _): (usize, ::std::option::Option, usize), + (_, specifier, _): (usize, String, usize), + (_, name, _): (usize, String, usize), + (_, units, _): (usize, ::std::option::Option, usize), + (_, value, _): (usize, ::std::option::Option, usize), + (_, desc, _): (usize, ::std::option::Option, usize), + (_, _, _): (usize, &'input str, usize), +) -> Component +{ + Component { prefix:prefix, specifier:specifier, name:name, description:desc, value:value, units:units } +} + +#[allow(unused_variables)] +pub fn __action12< + 'input, +>( + input: &'input str, + (_, __0, _): (usize, &'input str, usize), +) -> ComponentPrefix +{ + ComponentPrefix::Flow +} + +#[allow(unused_variables)] +pub fn __action13< + 'input, +>( + input: &'input str, + (_, __0, _): (usize, &'input str, usize), +) -> ComponentPrefix +{ + ComponentPrefix::Stream +} + +#[allow(unused_variables)] +pub fn __action14< + 'input, +>( + input: &'input str, + (_, __0, _): (usize, &'input str, usize), +) -> ComponentPrefix +{ + ComponentPrefix::Input +} + +#[allow(unused_variables)] +pub fn __action15< + 'input, +>( + input: &'input str, + (_, __0, _): (usize, &'input str, usize), +) -> ComponentPrefix +{ + ComponentPrefix::Output +} + +#[allow(unused_variables)] +pub fn __action16< + 'input, +>( + input: &'input str, + (_, __0, _): (usize, &'input str, usize), +) -> ComponentPrefix +{ + ComponentPrefix::Discrete +} + +#[allow(unused_variables)] +pub fn __action17< + 'input, +>( + input: &'input str, + (_, __0, _): (usize, &'input str, usize), +) -> ComponentPrefix +{ + ComponentPrefix::Parameter +} + +#[allow(unused_variables)] +pub fn __action18< + 'input, +>( + input: &'input str, + (_, __0, _): (usize, &'input str, usize), +) -> ComponentPrefix +{ + ComponentPrefix::Constant +} + +#[allow(unused_variables)] +pub fn __action19< + 'input, +>( + input: &'input str, + (_, lhs, _): (usize, Expr, usize), + (_, _, _): (usize, &'input str, usize), + (_, rhs, _): (usize, Expr, usize), + (_, _, _): (usize, &'input str, usize), +) -> SimpleEquation +{ + SimpleEquation {lhs:lhs, rhs:rhs} +} + +#[allow(unused_variables)] +pub fn __action20< + 'input, +>( + input: &'input str, + (_, _, _): (usize, &'input str, usize), + (_, _, _): (usize, &'input str, usize), + (_, a, _): (usize, String, usize), + (_, _, _): (usize, &'input str, usize), + (_, b, _): (usize, String, usize), + (_, _, _): (usize, &'input str, usize), + (_, _, _): (usize, &'input str, usize), +) -> Connection +{ + Connection { a: a.to_string(), b: b.to_string()} +} + +#[allow(unused_variables)] +pub fn __action21< + 'input, +>( + input: &'input str, + (_, lhs, _): (usize, Expr, usize), + (_, _, _): (usize, &'input str, usize), + (_, rhs, _): (usize, Expr, usize), +) -> Expr +{ + Expr::BinExpr(BinOperator::Add, Box::new(lhs), Box::new(rhs)) +} + +#[allow(unused_variables)] +pub fn __action22< + 'input, +>( + input: &'input str, + (_, lhs, _): (usize, Expr, usize), + (_, _, _): (usize, &'input str, usize), + (_, rhs, _): (usize, Expr, usize), +) -> Expr +{ + Expr::BinExpr(BinOperator::Subtract, Box::new(lhs), Box::new(rhs)) +} + +#[allow(unused_variables)] +pub fn __action23< + 'input, +>( + input: &'input str, + (_, __0, _): (usize, Expr, usize), +) -> Expr +{ + (__0) +} + +#[allow(unused_variables)] +pub fn __action24< + 'input, +>( + input: &'input str, + (_, lhs, _): (usize, Expr, usize), + (_, _, _): (usize, &'input str, usize), + (_, rhs, _): (usize, Expr, usize), +) -> Expr +{ + Expr::BinExpr(BinOperator::Multiply, Box::new(lhs), Box::new(rhs)) +} + +#[allow(unused_variables)] +pub fn __action25< + 'input, +>( + input: &'input str, + (_, lhs, _): (usize, Expr, usize), + (_, _, _): (usize, &'input str, usize), + (_, rhs, _): (usize, Expr, usize), +) -> Expr +{ + Expr::BinExpr(BinOperator::Divide, Box::new(lhs), Box::new(rhs)) +} + +#[allow(unused_variables)] +pub fn __action26< + 'input, +>( + input: &'input str, + (_, lhs, _): (usize, Expr, usize), + (_, _, _): (usize, &'input str, usize), + (_, rhs, _): (usize, Expr, usize), +) -> Expr +{ + Expr::BinExpr(BinOperator::Divide, Box::new(lhs), Box::new(rhs)) +} + +#[allow(unused_variables)] +pub fn __action27< + 'input, +>( + input: &'input str, + (_, _, _): (usize, &'input str, usize), + (_, t, _): (usize, Expr, usize), +) -> Expr +{ + Expr::BinExpr(BinOperator::Multiply, Box::new(Expr::Integer(-1)), Box::new(t)) +} + +#[allow(unused_variables)] +pub fn __action28< + 'input, +>( + input: &'input str, + (_, __0, _): (usize, Expr, usize), +) -> Expr +{ + (__0) +} + +#[allow(unused_variables)] +pub fn __action29< + 'input, +>( + input: &'input str, + (_, __0, _): (usize, i64, usize), +) -> Expr +{ + Expr::Integer(__0) +} + +#[allow(unused_variables)] +pub fn __action30< + 'input, +>( + input: &'input str, + (_, __0, _): (usize, f64, usize), +) -> Expr +{ + Expr::Float(__0) +} + +#[allow(unused_variables)] +pub fn __action31< + 'input, +>( + input: &'input str, + (_, __0, _): (usize, String, usize), +) -> Expr +{ + Expr::Ident(__0) +} + +#[allow(unused_variables)] +pub fn __action32< + 'input, +>( + input: &'input str, + (_, _, _): (usize, &'input str, usize), + (_, _, _): (usize, &'input str, usize), + (_, e, _): (usize, Expr, usize), + (_, _, _): (usize, &'input str, usize), +) -> Expr +{ + Expr::Der(Box::new(e)) +} + +#[allow(unused_variables)] +pub fn __action33< + 'input, +>( + input: &'input str, + (_, _, _): (usize, &'input str, usize), + (_, _, _): (usize, &'input str, usize), + (_, e, _): (usize, Expr, usize), + (_, _, _): (usize, &'input str, usize), +) -> Expr +{ + Expr::Abs(Box::new(e)) +} + +#[allow(unused_variables)] +pub fn __action34< + 'input, +>( + input: &'input str, + (_, _, _): (usize, &'input str, usize), + (_, e, _): (usize, Expr, usize), + (_, _, _): (usize, &'input str, usize), +) -> Expr +{ + e +} + +#[allow(unused_variables)] +pub fn __action35< + 'input, +>( + input: &'input str, + (_, __0, _): (usize, String, usize), +) -> ::std::option::Option +{ + Some(__0) +} + +#[allow(unused_variables)] +pub fn __action36< + 'input, +>( + input: &'input str, + __lookbehind: &usize, + __lookahead: &usize, +) -> ::std::option::Option +{ + None +} + +#[allow(unused_variables)] +pub fn __action37< + 'input, +>( + input: &'input str, + (_, __0, _): (usize, Expr, usize), +) -> ::std::option::Option +{ + Some(__0) +} + +#[allow(unused_variables)] +pub fn __action38< + 'input, +>( + input: &'input str, + __lookbehind: &usize, + __lookahead: &usize, +) -> ::std::option::Option +{ + None +} + +#[allow(unused_variables)] +pub fn __action39< + 'input, +>( + input: &'input str, + (_, __0, _): (usize, String, usize), +) -> ::std::option::Option +{ + Some(__0) +} + +#[allow(unused_variables)] +pub fn __action40< + 'input, +>( + input: &'input str, + __lookbehind: &usize, + __lookahead: &usize, +) -> ::std::option::Option +{ + None +} + +#[allow(unused_variables)] +pub fn __action41< + 'input, +>( + input: &'input str, + (_, __0, _): (usize, ComponentPrefix, usize), +) -> ::std::option::Option +{ + Some(__0) +} + +#[allow(unused_variables)] +pub fn __action42< + 'input, +>( + input: &'input str, + __lookbehind: &usize, + __lookahead: &usize, +) -> ::std::option::Option +{ + None +} + +#[allow(unused_variables)] +pub fn __action43< + 'input, +>( + input: &'input str, + __lookbehind: &usize, + __lookahead: &usize, +) -> ::std::vec::Vec +{ + vec![] +} + +#[allow(unused_variables)] +pub fn __action44< + 'input, +>( + input: &'input str, + (_, v, _): (usize, ::std::vec::Vec, usize), +) -> ::std::vec::Vec +{ + v +} + +#[allow(unused_variables)] +pub fn __action45< + 'input, +>( + input: &'input str, + __lookbehind: &usize, + __lookahead: &usize, +) -> ::std::vec::Vec +{ + vec![] +} + +#[allow(unused_variables)] +pub fn __action46< + 'input, +>( + input: &'input str, + (_, v, _): (usize, ::std::vec::Vec, usize), +) -> ::std::vec::Vec +{ + v +} + +#[allow(unused_variables)] +pub fn __action47< + 'input, +>( + input: &'input str, + __lookbehind: &usize, + __lookahead: &usize, +) -> ::std::vec::Vec +{ + vec![] +} + +#[allow(unused_variables)] +pub fn __action48< + 'input, +>( + input: &'input str, + (_, v, _): (usize, ::std::vec::Vec, usize), +) -> ::std::vec::Vec +{ + v +} + +#[allow(unused_variables)] +pub fn __action49< + 'input, +>( + input: &'input str, + (_, __0, _): (usize, Component, usize), +) -> ::std::vec::Vec +{ + vec![__0] +} + +#[allow(unused_variables)] +pub fn __action50< + 'input, +>( + input: &'input str, + (_, v, _): (usize, ::std::vec::Vec, usize), + (_, e, _): (usize, Component, usize), +) -> ::std::vec::Vec +{ + { let mut v = v; v.push(e); v } +} + +#[allow(unused_variables)] +pub fn __action51< + 'input, +>( + input: &'input str, + (_, __0, _): (usize, Connection, usize), +) -> ::std::vec::Vec +{ + vec![__0] +} + +#[allow(unused_variables)] +pub fn __action52< + 'input, +>( + input: &'input str, + (_, v, _): (usize, ::std::vec::Vec, usize), + (_, e, _): (usize, Connection, usize), +) -> ::std::vec::Vec +{ + { let mut v = v; v.push(e); v } +} + +#[allow(unused_variables)] +pub fn __action53< + 'input, +>( + input: &'input str, + (_, __0, _): (usize, SimpleEquation, usize), +) -> ::std::vec::Vec +{ + vec![__0] +} + +#[allow(unused_variables)] +pub fn __action54< + 'input, +>( + input: &'input str, + (_, v, _): (usize, ::std::vec::Vec, usize), + (_, e, _): (usize, SimpleEquation, usize), +) -> ::std::vec::Vec +{ + { let mut v = v; v.push(e); v } +} + +#[allow(unused_variables)] +pub fn __action55< + 'input, +>( + input: &'input str, + __0: (usize, &'input str, usize), + __1: (usize, String, usize), + __2: (usize, &'input str, usize), + __3: (usize, ::std::vec::Vec, usize), + __4: (usize, ::std::vec::Vec, usize), + __5: (usize, &'input str, usize), + __6: (usize, String, usize), + __7: (usize, &'input str, usize), +) -> ModelicaModel +{ + let __start0 = __1.2.clone(); + let __end0 = __2.0.clone(); + let __temp0 = __action47( + input, + &__start0, + &__end0, + ); + let __temp0 = (__start0, __temp0, __end0); + __action8( + input, + __0, + __1, + __temp0, + __2, + __3, + __4, + __5, + __6, + __7, + ) +} + +#[allow(unused_variables)] +pub fn __action56< + 'input, +>( + input: &'input str, + __0: (usize, &'input str, usize), + __1: (usize, String, usize), + __2: (usize, ::std::vec::Vec, usize), + __3: (usize, &'input str, usize), + __4: (usize, ::std::vec::Vec, usize), + __5: (usize, ::std::vec::Vec, usize), + __6: (usize, &'input str, usize), + __7: (usize, String, usize), + __8: (usize, &'input str, usize), +) -> ModelicaModel +{ + let __start0 = __2.0.clone(); + let __end0 = __2.2.clone(); + let __temp0 = __action48( + input, + __2, + ); + let __temp0 = (__start0, __temp0, __end0); + __action8( + input, + __0, + __1, + __temp0, + __3, + __4, + __5, + __6, + __7, + __8, + ) +} + +#[allow(unused_variables)] +pub fn __action57< + 'input, +>( + input: &'input str, + __0: (usize, ComponentPrefix, usize), + __1: (usize, String, usize), + __2: (usize, String, usize), + __3: (usize, ::std::option::Option, usize), + __4: (usize, ::std::option::Option, usize), + __5: (usize, ::std::option::Option, usize), + __6: (usize, &'input str, usize), +) -> Component +{ + let __start0 = __0.0.clone(); + let __end0 = __0.2.clone(); + let __temp0 = __action41( + input, + __0, + ); + let __temp0 = (__start0, __temp0, __end0); + __action11( + input, + __temp0, + __1, + __2, + __3, + __4, + __5, + __6, + ) +} + +#[allow(unused_variables)] +pub fn __action58< + 'input, +>( + input: &'input str, + __0: (usize, String, usize), + __1: (usize, String, usize), + __2: (usize, ::std::option::Option, usize), + __3: (usize, ::std::option::Option, usize), + __4: (usize, ::std::option::Option, usize), + __5: (usize, &'input str, usize), +) -> Component +{ + let __start0 = __0.0.clone(); + let __end0 = __0.0.clone(); + let __temp0 = __action42( + input, + &__start0, + &__end0, + ); + let __temp0 = (__start0, __temp0, __end0); + __action11( + input, + __temp0, + __0, + __1, + __2, + __3, + __4, + __5, + ) +} + +#[allow(unused_variables)] +pub fn __action59< + 'input, +>( + input: &'input str, + __0: (usize, &'input str, usize), + __1: (usize, String, usize), + __2: (usize, &'input str, usize), + __3: (usize, ::std::vec::Vec, usize), + __4: (usize, &'input str, usize), + __5: (usize, String, usize), + __6: (usize, &'input str, usize), +) -> ModelicaModel +{ + let __start0 = __2.2.clone(); + let __end0 = __3.0.clone(); + let __temp0 = __action45( + input, + &__start0, + &__end0, + ); + let __temp0 = (__start0, __temp0, __end0); + __action55( + input, + __0, + __1, + __2, + __temp0, + __3, + __4, + __5, + __6, + ) +} + +#[allow(unused_variables)] +pub fn __action60< + 'input, +>( + input: &'input str, + __0: (usize, &'input str, usize), + __1: (usize, String, usize), + __2: (usize, &'input str, usize), + __3: (usize, ::std::vec::Vec, usize), + __4: (usize, ::std::vec::Vec, usize), + __5: (usize, &'input str, usize), + __6: (usize, String, usize), + __7: (usize, &'input str, usize), +) -> ModelicaModel +{ + let __start0 = __3.0.clone(); + let __end0 = __3.2.clone(); + let __temp0 = __action46( + input, + __3, + ); + let __temp0 = (__start0, __temp0, __end0); + __action55( + input, + __0, + __1, + __2, + __temp0, + __4, + __5, + __6, + __7, + ) +} + +#[allow(unused_variables)] +pub fn __action61< + 'input, +>( + input: &'input str, + __0: (usize, &'input str, usize), + __1: (usize, String, usize), + __2: (usize, ::std::vec::Vec, usize), + __3: (usize, &'input str, usize), + __4: (usize, ::std::vec::Vec, usize), + __5: (usize, &'input str, usize), + __6: (usize, String, usize), + __7: (usize, &'input str, usize), +) -> ModelicaModel +{ + let __start0 = __3.2.clone(); + let __end0 = __4.0.clone(); + let __temp0 = __action45( + input, + &__start0, + &__end0, + ); + let __temp0 = (__start0, __temp0, __end0); + __action56( + input, + __0, + __1, + __2, + __3, + __temp0, + __4, + __5, + __6, + __7, + ) +} + +#[allow(unused_variables)] +pub fn __action62< + 'input, +>( + input: &'input str, + __0: (usize, &'input str, usize), + __1: (usize, String, usize), + __2: (usize, ::std::vec::Vec, usize), + __3: (usize, &'input str, usize), + __4: (usize, ::std::vec::Vec, usize), + __5: (usize, ::std::vec::Vec, usize), + __6: (usize, &'input str, usize), + __7: (usize, String, usize), + __8: (usize, &'input str, usize), +) -> ModelicaModel +{ + let __start0 = __4.0.clone(); + let __end0 = __4.2.clone(); + let __temp0 = __action46( + input, + __4, + ); + let __temp0 = (__start0, __temp0, __end0); + __action56( + input, + __0, + __1, + __2, + __3, + __temp0, + __5, + __6, + __7, + __8, + ) +} + +#[allow(unused_variables)] +pub fn __action63< + 'input, +>( + input: &'input str, + __0: (usize, &'input str, usize), + __1: (usize, String, usize), + __2: (usize, &'input str, usize), + __3: (usize, &'input str, usize), + __4: (usize, String, usize), + __5: (usize, &'input str, usize), +) -> ModelicaModel +{ + let __start0 = __2.2.clone(); + let __end0 = __3.0.clone(); + let __temp0 = __action43( + input, + &__start0, + &__end0, + ); + let __temp0 = (__start0, __temp0, __end0); + __action59( + input, + __0, + __1, + __2, + __temp0, + __3, + __4, + __5, + ) +} + +#[allow(unused_variables)] +pub fn __action64< + 'input, +>( + input: &'input str, + __0: (usize, &'input str, usize), + __1: (usize, String, usize), + __2: (usize, &'input str, usize), + __3: (usize, ::std::vec::Vec, usize), + __4: (usize, &'input str, usize), + __5: (usize, String, usize), + __6: (usize, &'input str, usize), +) -> ModelicaModel +{ + let __start0 = __3.0.clone(); + let __end0 = __3.2.clone(); + let __temp0 = __action44( + input, + __3, + ); + let __temp0 = (__start0, __temp0, __end0); + __action59( + input, + __0, + __1, + __2, + __temp0, + __4, + __5, + __6, + ) +} + +#[allow(unused_variables)] +pub fn __action65< + 'input, +>( + input: &'input str, + __0: (usize, &'input str, usize), + __1: (usize, String, usize), + __2: (usize, &'input str, usize), + __3: (usize, ::std::vec::Vec, usize), + __4: (usize, &'input str, usize), + __5: (usize, String, usize), + __6: (usize, &'input str, usize), +) -> ModelicaModel +{ + let __start0 = __3.2.clone(); + let __end0 = __4.0.clone(); + let __temp0 = __action43( + input, + &__start0, + &__end0, + ); + let __temp0 = (__start0, __temp0, __end0); + __action60( + input, + __0, + __1, + __2, + __3, + __temp0, + __4, + __5, + __6, + ) +} + +#[allow(unused_variables)] +pub fn __action66< + 'input, +>( + input: &'input str, + __0: (usize, &'input str, usize), + __1: (usize, String, usize), + __2: (usize, &'input str, usize), + __3: (usize, ::std::vec::Vec, usize), + __4: (usize, ::std::vec::Vec, usize), + __5: (usize, &'input str, usize), + __6: (usize, String, usize), + __7: (usize, &'input str, usize), +) -> ModelicaModel +{ + let __start0 = __4.0.clone(); + let __end0 = __4.2.clone(); + let __temp0 = __action44( + input, + __4, + ); + let __temp0 = (__start0, __temp0, __end0); + __action60( + input, + __0, + __1, + __2, + __3, + __temp0, + __5, + __6, + __7, + ) +} + +#[allow(unused_variables)] +pub fn __action67< + 'input, +>( + input: &'input str, + __0: (usize, &'input str, usize), + __1: (usize, String, usize), + __2: (usize, ::std::vec::Vec, usize), + __3: (usize, &'input str, usize), + __4: (usize, &'input str, usize), + __5: (usize, String, usize), + __6: (usize, &'input str, usize), +) -> ModelicaModel +{ + let __start0 = __3.2.clone(); + let __end0 = __4.0.clone(); + let __temp0 = __action43( + input, + &__start0, + &__end0, + ); + let __temp0 = (__start0, __temp0, __end0); + __action61( + input, + __0, + __1, + __2, + __3, + __temp0, + __4, + __5, + __6, + ) +} + +#[allow(unused_variables)] +pub fn __action68< + 'input, +>( + input: &'input str, + __0: (usize, &'input str, usize), + __1: (usize, String, usize), + __2: (usize, ::std::vec::Vec, usize), + __3: (usize, &'input str, usize), + __4: (usize, ::std::vec::Vec, usize), + __5: (usize, &'input str, usize), + __6: (usize, String, usize), + __7: (usize, &'input str, usize), +) -> ModelicaModel +{ + let __start0 = __4.0.clone(); + let __end0 = __4.2.clone(); + let __temp0 = __action44( + input, + __4, + ); + let __temp0 = (__start0, __temp0, __end0); + __action61( + input, + __0, + __1, + __2, + __3, + __temp0, + __5, + __6, + __7, + ) +} + +#[allow(unused_variables)] +pub fn __action69< + 'input, +>( + input: &'input str, + __0: (usize, &'input str, usize), + __1: (usize, String, usize), + __2: (usize, ::std::vec::Vec, usize), + __3: (usize, &'input str, usize), + __4: (usize, ::std::vec::Vec, usize), + __5: (usize, &'input str, usize), + __6: (usize, String, usize), + __7: (usize, &'input str, usize), +) -> ModelicaModel +{ + let __start0 = __4.2.clone(); + let __end0 = __5.0.clone(); + let __temp0 = __action43( + input, + &__start0, + &__end0, + ); + let __temp0 = (__start0, __temp0, __end0); + __action62( + input, + __0, + __1, + __2, + __3, + __4, + __temp0, + __5, + __6, + __7, + ) +} + +#[allow(unused_variables)] +pub fn __action70< + 'input, +>( + input: &'input str, + __0: (usize, &'input str, usize), + __1: (usize, String, usize), + __2: (usize, ::std::vec::Vec, usize), + __3: (usize, &'input str, usize), + __4: (usize, ::std::vec::Vec, usize), + __5: (usize, ::std::vec::Vec, usize), + __6: (usize, &'input str, usize), + __7: (usize, String, usize), + __8: (usize, &'input str, usize), +) -> ModelicaModel +{ + let __start0 = __5.0.clone(); + let __end0 = __5.2.clone(); + let __temp0 = __action44( + input, + __5, + ); + let __temp0 = (__start0, __temp0, __end0); + __action62( + input, + __0, + __1, + __2, + __3, + __4, + __temp0, + __6, + __7, + __8, + ) +} + +#[allow(unused_variables)] +pub fn __action71< + 'input, +>( + input: &'input str, + __0: (usize, ComponentPrefix, usize), + __1: (usize, String, usize), + __2: (usize, String, usize), + __3: (usize, ::std::option::Option, usize), + __4: (usize, ::std::option::Option, usize), + __5: (usize, String, usize), + __6: (usize, &'input str, usize), +) -> Component +{ + let __start0 = __5.0.clone(); + let __end0 = __5.2.clone(); + let __temp0 = __action35( + input, + __5, + ); + let __temp0 = (__start0, __temp0, __end0); + __action57( + input, + __0, + __1, + __2, + __3, + __4, + __temp0, + __6, + ) +} + +#[allow(unused_variables)] +pub fn __action72< + 'input, +>( + input: &'input str, + __0: (usize, ComponentPrefix, usize), + __1: (usize, String, usize), + __2: (usize, String, usize), + __3: (usize, ::std::option::Option, usize), + __4: (usize, ::std::option::Option, usize), + __5: (usize, &'input str, usize), +) -> Component +{ + let __start0 = __4.2.clone(); + let __end0 = __5.0.clone(); + let __temp0 = __action36( + input, + &__start0, + &__end0, + ); + let __temp0 = (__start0, __temp0, __end0); + __action57( + input, + __0, + __1, + __2, + __3, + __4, + __temp0, + __5, + ) +} + +#[allow(unused_variables)] +pub fn __action73< + 'input, +>( + input: &'input str, + __0: (usize, String, usize), + __1: (usize, String, usize), + __2: (usize, ::std::option::Option, usize), + __3: (usize, ::std::option::Option, usize), + __4: (usize, String, usize), + __5: (usize, &'input str, usize), +) -> Component +{ + let __start0 = __4.0.clone(); + let __end0 = __4.2.clone(); + let __temp0 = __action35( + input, + __4, + ); + let __temp0 = (__start0, __temp0, __end0); + __action58( + input, + __0, + __1, + __2, + __3, + __temp0, + __5, + ) +} + +#[allow(unused_variables)] +pub fn __action74< + 'input, +>( + input: &'input str, + __0: (usize, String, usize), + __1: (usize, String, usize), + __2: (usize, ::std::option::Option, usize), + __3: (usize, ::std::option::Option, usize), + __4: (usize, &'input str, usize), +) -> Component +{ + let __start0 = __3.2.clone(); + let __end0 = __4.0.clone(); + let __temp0 = __action36( + input, + &__start0, + &__end0, + ); + let __temp0 = (__start0, __temp0, __end0); + __action58( + input, + __0, + __1, + __2, + __3, + __temp0, + __4, + ) +} + +#[allow(unused_variables)] +pub fn __action75< + 'input, +>( + input: &'input str, + __0: (usize, ComponentPrefix, usize), + __1: (usize, String, usize), + __2: (usize, String, usize), + __3: (usize, String, usize), + __4: (usize, ::std::option::Option, usize), + __5: (usize, String, usize), + __6: (usize, &'input str, usize), +) -> Component +{ + let __start0 = __3.0.clone(); + let __end0 = __3.2.clone(); + let __temp0 = __action39( + input, + __3, + ); + let __temp0 = (__start0, __temp0, __end0); + __action71( + input, + __0, + __1, + __2, + __temp0, + __4, + __5, + __6, + ) +} + +#[allow(unused_variables)] +pub fn __action76< + 'input, +>( + input: &'input str, + __0: (usize, ComponentPrefix, usize), + __1: (usize, String, usize), + __2: (usize, String, usize), + __3: (usize, ::std::option::Option, usize), + __4: (usize, String, usize), + __5: (usize, &'input str, usize), +) -> Component +{ + let __start0 = __2.2.clone(); + let __end0 = __3.0.clone(); + let __temp0 = __action40( + input, + &__start0, + &__end0, + ); + let __temp0 = (__start0, __temp0, __end0); + __action71( + input, + __0, + __1, + __2, + __temp0, + __3, + __4, + __5, + ) +} + +#[allow(unused_variables)] +pub fn __action77< + 'input, +>( + input: &'input str, + __0: (usize, ComponentPrefix, usize), + __1: (usize, String, usize), + __2: (usize, String, usize), + __3: (usize, String, usize), + __4: (usize, ::std::option::Option, usize), + __5: (usize, &'input str, usize), +) -> Component +{ + let __start0 = __3.0.clone(); + let __end0 = __3.2.clone(); + let __temp0 = __action39( + input, + __3, + ); + let __temp0 = (__start0, __temp0, __end0); + __action72( + input, + __0, + __1, + __2, + __temp0, + __4, + __5, + ) +} + +#[allow(unused_variables)] +pub fn __action78< + 'input, +>( + input: &'input str, + __0: (usize, ComponentPrefix, usize), + __1: (usize, String, usize), + __2: (usize, String, usize), + __3: (usize, ::std::option::Option, usize), + __4: (usize, &'input str, usize), +) -> Component +{ + let __start0 = __2.2.clone(); + let __end0 = __3.0.clone(); + let __temp0 = __action40( + input, + &__start0, + &__end0, + ); + let __temp0 = (__start0, __temp0, __end0); + __action72( + input, + __0, + __1, + __2, + __temp0, + __3, + __4, + ) +} + +#[allow(unused_variables)] +pub fn __action79< + 'input, +>( + input: &'input str, + __0: (usize, String, usize), + __1: (usize, String, usize), + __2: (usize, String, usize), + __3: (usize, ::std::option::Option, usize), + __4: (usize, String, usize), + __5: (usize, &'input str, usize), +) -> Component +{ + let __start0 = __2.0.clone(); + let __end0 = __2.2.clone(); + let __temp0 = __action39( + input, + __2, + ); + let __temp0 = (__start0, __temp0, __end0); + __action73( + input, + __0, + __1, + __temp0, + __3, + __4, + __5, + ) +} + +#[allow(unused_variables)] +pub fn __action80< + 'input, +>( + input: &'input str, + __0: (usize, String, usize), + __1: (usize, String, usize), + __2: (usize, ::std::option::Option, usize), + __3: (usize, String, usize), + __4: (usize, &'input str, usize), +) -> Component +{ + let __start0 = __1.2.clone(); + let __end0 = __2.0.clone(); + let __temp0 = __action40( + input, + &__start0, + &__end0, + ); + let __temp0 = (__start0, __temp0, __end0); + __action73( + input, + __0, + __1, + __temp0, + __2, + __3, + __4, + ) +} + +#[allow(unused_variables)] +pub fn __action81< + 'input, +>( + input: &'input str, + __0: (usize, String, usize), + __1: (usize, String, usize), + __2: (usize, String, usize), + __3: (usize, ::std::option::Option, usize), + __4: (usize, &'input str, usize), +) -> Component +{ + let __start0 = __2.0.clone(); + let __end0 = __2.2.clone(); + let __temp0 = __action39( + input, + __2, + ); + let __temp0 = (__start0, __temp0, __end0); + __action74( + input, + __0, + __1, + __temp0, + __3, + __4, + ) +} + +#[allow(unused_variables)] +pub fn __action82< + 'input, +>( + input: &'input str, + __0: (usize, String, usize), + __1: (usize, String, usize), + __2: (usize, ::std::option::Option, usize), + __3: (usize, &'input str, usize), +) -> Component +{ + let __start0 = __1.2.clone(); + let __end0 = __2.0.clone(); + let __temp0 = __action40( + input, + &__start0, + &__end0, + ); + let __temp0 = (__start0, __temp0, __end0); + __action74( + input, + __0, + __1, + __temp0, + __2, + __3, + ) +} + +#[allow(unused_variables)] +pub fn __action83< + 'input, +>( + input: &'input str, + __0: (usize, ComponentPrefix, usize), + __1: (usize, String, usize), + __2: (usize, String, usize), + __3: (usize, String, usize), + __4: (usize, Expr, usize), + __5: (usize, String, usize), + __6: (usize, &'input str, usize), +) -> Component +{ + let __start0 = __4.0.clone(); + let __end0 = __4.2.clone(); + let __temp0 = __action37( + input, + __4, + ); + let __temp0 = (__start0, __temp0, __end0); + __action75( + input, + __0, + __1, + __2, + __3, + __temp0, + __5, + __6, + ) +} + +#[allow(unused_variables)] +pub fn __action84< + 'input, +>( + input: &'input str, + __0: (usize, ComponentPrefix, usize), + __1: (usize, String, usize), + __2: (usize, String, usize), + __3: (usize, String, usize), + __4: (usize, String, usize), + __5: (usize, &'input str, usize), +) -> Component +{ + let __start0 = __3.2.clone(); + let __end0 = __4.0.clone(); + let __temp0 = __action38( + input, + &__start0, + &__end0, + ); + let __temp0 = (__start0, __temp0, __end0); + __action75( + input, + __0, + __1, + __2, + __3, + __temp0, + __4, + __5, + ) +} + +#[allow(unused_variables)] +pub fn __action85< + 'input, +>( + input: &'input str, + __0: (usize, ComponentPrefix, usize), + __1: (usize, String, usize), + __2: (usize, String, usize), + __3: (usize, Expr, usize), + __4: (usize, String, usize), + __5: (usize, &'input str, usize), +) -> Component +{ + let __start0 = __3.0.clone(); + let __end0 = __3.2.clone(); + let __temp0 = __action37( + input, + __3, + ); + let __temp0 = (__start0, __temp0, __end0); + __action76( + input, + __0, + __1, + __2, + __temp0, + __4, + __5, + ) +} + +#[allow(unused_variables)] +pub fn __action86< + 'input, +>( + input: &'input str, + __0: (usize, ComponentPrefix, usize), + __1: (usize, String, usize), + __2: (usize, String, usize), + __3: (usize, String, usize), + __4: (usize, &'input str, usize), +) -> Component +{ + let __start0 = __2.2.clone(); + let __end0 = __3.0.clone(); + let __temp0 = __action38( + input, + &__start0, + &__end0, + ); + let __temp0 = (__start0, __temp0, __end0); + __action76( + input, + __0, + __1, + __2, + __temp0, + __3, + __4, + ) +} + +#[allow(unused_variables)] +pub fn __action87< + 'input, +>( + input: &'input str, + __0: (usize, ComponentPrefix, usize), + __1: (usize, String, usize), + __2: (usize, String, usize), + __3: (usize, String, usize), + __4: (usize, Expr, usize), + __5: (usize, &'input str, usize), +) -> Component +{ + let __start0 = __4.0.clone(); + let __end0 = __4.2.clone(); + let __temp0 = __action37( + input, + __4, + ); + let __temp0 = (__start0, __temp0, __end0); + __action77( + input, + __0, + __1, + __2, + __3, + __temp0, + __5, + ) +} + +#[allow(unused_variables)] +pub fn __action88< + 'input, +>( + input: &'input str, + __0: (usize, ComponentPrefix, usize), + __1: (usize, String, usize), + __2: (usize, String, usize), + __3: (usize, String, usize), + __4: (usize, &'input str, usize), +) -> Component +{ + let __start0 = __3.2.clone(); + let __end0 = __4.0.clone(); + let __temp0 = __action38( + input, + &__start0, + &__end0, + ); + let __temp0 = (__start0, __temp0, __end0); + __action77( + input, + __0, + __1, + __2, + __3, + __temp0, + __4, + ) +} + +#[allow(unused_variables)] +pub fn __action89< + 'input, +>( + input: &'input str, + __0: (usize, ComponentPrefix, usize), + __1: (usize, String, usize), + __2: (usize, String, usize), + __3: (usize, Expr, usize), + __4: (usize, &'input str, usize), +) -> Component +{ + let __start0 = __3.0.clone(); + let __end0 = __3.2.clone(); + let __temp0 = __action37( + input, + __3, + ); + let __temp0 = (__start0, __temp0, __end0); + __action78( + input, + __0, + __1, + __2, + __temp0, + __4, + ) +} + +#[allow(unused_variables)] +pub fn __action90< + 'input, +>( + input: &'input str, + __0: (usize, ComponentPrefix, usize), + __1: (usize, String, usize), + __2: (usize, String, usize), + __3: (usize, &'input str, usize), +) -> Component +{ + let __start0 = __2.2.clone(); + let __end0 = __3.0.clone(); + let __temp0 = __action38( + input, + &__start0, + &__end0, + ); + let __temp0 = (__start0, __temp0, __end0); + __action78( + input, + __0, + __1, + __2, + __temp0, + __3, + ) +} + +#[allow(unused_variables)] +pub fn __action91< + 'input, +>( + input: &'input str, + __0: (usize, String, usize), + __1: (usize, String, usize), + __2: (usize, String, usize), + __3: (usize, Expr, usize), + __4: (usize, String, usize), + __5: (usize, &'input str, usize), +) -> Component +{ + let __start0 = __3.0.clone(); + let __end0 = __3.2.clone(); + let __temp0 = __action37( + input, + __3, + ); + let __temp0 = (__start0, __temp0, __end0); + __action79( + input, + __0, + __1, + __2, + __temp0, + __4, + __5, + ) +} + +#[allow(unused_variables)] +pub fn __action92< + 'input, +>( + input: &'input str, + __0: (usize, String, usize), + __1: (usize, String, usize), + __2: (usize, String, usize), + __3: (usize, String, usize), + __4: (usize, &'input str, usize), +) -> Component +{ + let __start0 = __2.2.clone(); + let __end0 = __3.0.clone(); + let __temp0 = __action38( + input, + &__start0, + &__end0, + ); + let __temp0 = (__start0, __temp0, __end0); + __action79( + input, + __0, + __1, + __2, + __temp0, + __3, + __4, + ) +} + +#[allow(unused_variables)] +pub fn __action93< + 'input, +>( + input: &'input str, + __0: (usize, String, usize), + __1: (usize, String, usize), + __2: (usize, Expr, usize), + __3: (usize, String, usize), + __4: (usize, &'input str, usize), +) -> Component +{ + let __start0 = __2.0.clone(); + let __end0 = __2.2.clone(); + let __temp0 = __action37( + input, + __2, + ); + let __temp0 = (__start0, __temp0, __end0); + __action80( + input, + __0, + __1, + __temp0, + __3, + __4, + ) +} + +#[allow(unused_variables)] +pub fn __action94< + 'input, +>( + input: &'input str, + __0: (usize, String, usize), + __1: (usize, String, usize), + __2: (usize, String, usize), + __3: (usize, &'input str, usize), +) -> Component +{ + let __start0 = __1.2.clone(); + let __end0 = __2.0.clone(); + let __temp0 = __action38( + input, + &__start0, + &__end0, + ); + let __temp0 = (__start0, __temp0, __end0); + __action80( + input, + __0, + __1, + __temp0, + __2, + __3, + ) +} + +#[allow(unused_variables)] +pub fn __action95< + 'input, +>( + input: &'input str, + __0: (usize, String, usize), + __1: (usize, String, usize), + __2: (usize, String, usize), + __3: (usize, Expr, usize), + __4: (usize, &'input str, usize), +) -> Component +{ + let __start0 = __3.0.clone(); + let __end0 = __3.2.clone(); + let __temp0 = __action37( + input, + __3, + ); + let __temp0 = (__start0, __temp0, __end0); + __action81( + input, + __0, + __1, + __2, + __temp0, + __4, + ) +} + +#[allow(unused_variables)] +pub fn __action96< + 'input, +>( + input: &'input str, + __0: (usize, String, usize), + __1: (usize, String, usize), + __2: (usize, String, usize), + __3: (usize, &'input str, usize), +) -> Component +{ + let __start0 = __2.2.clone(); + let __end0 = __3.0.clone(); + let __temp0 = __action38( + input, + &__start0, + &__end0, + ); + let __temp0 = (__start0, __temp0, __end0); + __action81( + input, + __0, + __1, + __2, + __temp0, + __3, + ) +} + +#[allow(unused_variables)] +pub fn __action97< + 'input, +>( + input: &'input str, + __0: (usize, String, usize), + __1: (usize, String, usize), + __2: (usize, Expr, usize), + __3: (usize, &'input str, usize), +) -> Component +{ + let __start0 = __2.0.clone(); + let __end0 = __2.2.clone(); + let __temp0 = __action37( + input, + __2, + ); + let __temp0 = (__start0, __temp0, __end0); + __action82( + input, + __0, + __1, + __temp0, + __3, + ) +} + +#[allow(unused_variables)] +pub fn __action98< + 'input, +>( + input: &'input str, + __0: (usize, String, usize), + __1: (usize, String, usize), + __2: (usize, &'input str, usize), +) -> Component +{ + let __start0 = __1.2.clone(); + let __end0 = __2.0.clone(); + let __temp0 = __action38( + input, + &__start0, + &__end0, + ); + let __temp0 = (__start0, __temp0, __end0); + __action82( + input, + __0, + __1, + __temp0, + __2, + ) +} + +pub trait __ToTriple<'input, > { + type Error; + fn to_triple(value: Self) -> Result<(usize,(usize, &'input str),usize),Self::Error>; +} + +impl<'input, > __ToTriple<'input, > for (usize, (usize, &'input str), usize) { + type Error = (); + fn to_triple(value: Self) -> Result<(usize,(usize, &'input str),usize),()> { + Ok(value) + } +} +impl<'input, > __ToTriple<'input, > for Result<(usize, (usize, &'input str), usize),()> { + type Error = (); + fn to_triple(value: Self) -> Result<(usize,(usize, &'input str),usize),()> { + value + } +} diff --git a/modelica-parser-lalrpop/tests/ast.rs b/modelica-parser-lalrpop/tests/ast.rs new file mode 100644 index 0000000..f9047cb --- /dev/null +++ b/modelica-parser-lalrpop/tests/ast.rs @@ -0,0 +1,56 @@ + +extern crate modelica_parser; + +use std::collections::HashSet; +use std::iter::FromIterator; +use modelica_parser::ast::*; + +fn set_eq(a: Vec, b: Vec) -> bool { + let set_a: HashSet = HashSet::from_iter(a); + let set_b: HashSet = HashSet::from_iter(b); + return set_a == set_b; +} + +#[test] +fn test_expr_identifiers() { + use modelica_parser::ast::Expr::*; + + assert!(set_eq( + vec![], + Integer(0).identifiers())); + assert!(set_eq( + vec!["x".to_string()], + Ident("x".to_string()).identifiers())); + assert!(set_eq( + vec!["x".to_string(), "y".to_string(), "z".to_string()], + BinExpr(BinOperator::Add, + Box::new(Abs(Box::new(Ident("z".to_string())))), + Box::new(BinExpr(BinOperator::Add, + Box::new(Abs(Box::new(Ident("x".to_string())))), + Box::new(Abs(Box::new(Ident("y".to_string()))))))).identifiers())); + assert!(set_eq( + vec!["z".to_string()], + BinExpr(BinOperator::Add, + Box::new(Ident("z".to_string())), + Box::new(Ident("z".to_string()))).identifiers())); +} + +#[test] +fn test_eqn_identifiers() { + use modelica_parser::ast::Expr::*; + + assert!(set_eq( + vec![], + SimpleEquation{ + lhs: Integer(0), + rhs: Integer(0), + }.identifiers())); + assert!(set_eq( + vec!["z".to_string()], + SimpleEquation{ + lhs: Ident("z".to_string()), + rhs: BinExpr(BinOperator::Add, + Box::new(Ident("z".to_string())), + Box::new(Ident("z".to_string()))), + }.identifiers())); +} diff --git a/modelica-parser-lalrpop/tests/parser.rs b/modelica-parser-lalrpop/tests/parser.rs new file mode 100644 index 0000000..f5f493a --- /dev/null +++ b/modelica-parser-lalrpop/tests/parser.rs @@ -0,0 +1,40 @@ + +extern crate modelica_parser; + +use modelica_parser::parser::{parse_integer, parse_float, parse_model}; + +#[test] +fn test_lexical() { + assert_eq!(&format!("{:?}", parse_integer("+123").unwrap()), + "123"); + assert_eq!(&format!("{:?}", parse_integer("-9").unwrap()), + "-9"); + assert_eq!(&format!("{:?}", parse_float("-1.0e0").unwrap()), + "-1"); + assert_eq!(&format!("{:?}", parse_float("123.456").unwrap()), + "123.456"); +} + +#[test] +fn test_parse() { + let example1 = +r#"model MinimalModel + Real x; +equation + x = 1; +end MinimalModel; +"#; + assert_eq!(&format!("{:?}", parse_model(example1).unwrap()), example1); + + let example2 = +r#"model MinimalModel + parameter Real a; + Real b; +equation + connect(a, b); + a = 1; + b = ((abs(a) + 2) / 4); +end MinimalModel; +"#; + assert_eq!(&format!("{:?}", parse_model(example2).unwrap()), example2); +} diff --git a/src/bin/mt-tool.rs b/src/bin/mt-tool.rs index 8ef2464..95a8938 100644 --- a/src/bin/mt-tool.rs +++ b/src/bin/mt-tool.rs @@ -2,10 +2,11 @@ extern crate modelthing; extern crate rustc_serialize; extern crate getopts; +extern crate modelica_parser; -use modelthing::modelica_parser; use modelthing::transpile_scheme::TranspileScheme; use modelthing::transpile_js::TranspileJS; +use modelthing::modelica_model::ModelicaModelExt; use getopts::Options; use std::env; use std::io::Read; @@ -25,13 +26,13 @@ fn parse_modelica_files(paths: Vec) { } let time_stamp = Instant::now(); - let result = modelica_parser::parse_model(&s); + let result = modelica_parser::parser::parse_model(&s); let elapsed = time_stamp.elapsed(); let elapsed = elapsed.as_secs() as f64 + elapsed.subsec_nanos() as f64 / 1000_000_000.0; match result { Ok(_) => println!("Input `{}` ({}s): OK", input, elapsed), - Err(err) => println!("Input `{}` ({}sec): ERROR\n{}", input, elapsed, modelthing::pp_parseerror(&s, err)), + Err(err) => println!("Input `{}` ({}sec): ERROR\n{}", input, elapsed, modelica_parser::pp_parseerror(&s, err)), } } } diff --git a/src/build.rs b/src/build.rs deleted file mode 100644 index 23c7d3f..0000000 --- a/src/build.rs +++ /dev/null @@ -1,5 +0,0 @@ -extern crate lalrpop; - -fn main() { - lalrpop::process_root().unwrap(); -} diff --git a/src/lib.rs b/src/lib.rs index 7020a9b..7c3bb8b 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -3,11 +3,9 @@ extern crate log; extern crate toml; -extern crate colored; -extern crate lalrpop_util; +extern crate modelica_parser; -pub mod modelica_parser; -pub mod modelica_ast; +pub mod modelica_model; pub mod transpile_scheme; pub mod transpile_js; @@ -16,9 +14,6 @@ use std::fs; use std::io::Read; use std::fs::File; -use lalrpop_util::ParseError; -use colored::*; - #[derive(Debug, PartialEq)] pub struct ModelMetadata { pub name_en: String, @@ -47,7 +42,7 @@ pub struct ModelVar { #[derive(Debug, PartialEq)] pub struct ModelEntry { - pub ast: modelica_ast::ModelicaModel, + pub ast: modelica_parser::ast::ModelicaModel, pub metadata: ModelMetadata, pub markdown: String, } @@ -93,7 +88,7 @@ pub fn load_model_entry(p: &Path) -> Result { let ast = { let mut s = String::new(); try!(File::open(p.join("model.modelica")).and_then(|mut f| f.read_to_string(&mut s)).map_err(|e| e.to_string())); - try!(modelica_parser::parse_model(&s).map_err(|e| format!("{:?}", e))) + try!(modelica_parser::parser::parse_model(&s).map_err(|e| format!("{:?}", e))) }; let metadata = { @@ -127,58 +122,3 @@ pub fn search_models(p: &Path) -> Vec { vec![] } } - -fn pp_segment(raw: &str, start: usize, end: usize) -> String { - let mut line_start = 0; - let mut num = 0; - let mut ret = String::new(); - for line in raw.lines() { - num += 1; - let line_end = line_start + line.len(); - if (line_start <= start) && (start < line_end) { - ret += &format!(" {}\n{:>3} {} {}{}{}\n {} {}{}\n", - "|".blue().bold(), - num.to_string().blue().bold(), - "|".blue().bold(), - raw[line_start..start].normal(), - raw[start..end].red().bold(), - if end < line_end { - raw[end..line_end].normal() - } else { - "".normal() - }, - "|".blue().bold(), - std::iter::repeat(" ").take(start - line_start).collect::(), - std::iter::repeat("^").take(end - start).collect::().red().bold()); - } - line_start += line.len() + 1; - if line_start > end { break }; - } - ret -} - -pub fn pp_parseerror(raw: &str, pe: ParseError) -> String { - match pe { - ParseError::InvalidToken{location} => { - format!("{} invalid token starting at:\n{}", - "parse error:".red().bold(), - pp_segment(raw, location, location+1)) }, - ParseError::UnrecognizedToken{token: Some((start, (_, tok), end)), expected} => { - format!("{} unrecognized token '{}' (expected one of {:?}):\n{}", - "parse error:".red().bold(), - tok, - expected, - pp_segment(raw, start, end)) }, - ParseError::UnrecognizedToken{token: None, expected} => { - format!("{} premature end-of-file (expected one of {:?})", - "parse error:".red().bold(), - expected) }, - ParseError::ExtraToken{token: (start, (_, tok), end)} => { - format!("{} unexpected extra token '{}':\n{}", - "parse error:".red().bold(), - tok, - pp_segment(raw, start, end)) }, - _ => { - format!("{} {:?}", "parse error:".red().bold(), pe) }, - } -} diff --git a/src/modelica_ast.rs b/src/modelica_ast.rs deleted file mode 100644 index f6d32b8..0000000 --- a/src/modelica_ast.rs +++ /dev/null @@ -1,407 +0,0 @@ - -use std::clone::Clone; -use std::fmt::{Debug, Formatter, Error}; -use std::collections::HashMap; -use std::collections::HashSet; - -#[derive(Clone, PartialEq)] -pub struct ModelicaModel { - pub name: String, - pub components: Vec, - pub equations: Vec, - pub connections: Vec, - pub extends: Vec, -} - -#[derive(Copy, Clone, PartialEq)] -pub enum ComponentPrefix { - // incomplete: eg, can be parameter and input - Flow, - Stream, - Input, - Output, - Discrete, - Parameter, - Constant, -} - -#[derive(Clone, PartialEq)] -pub struct Component { - pub prefix: Option, - pub specifier: String, - pub name: String, - pub value: Option, - pub units: Option, - pub description: Option, -} - -#[derive(Clone, PartialEq)] -pub struct Connection { - pub a: String, - pub b: String, -} - -#[derive(Clone, PartialEq)] -pub struct SimpleEquation { - pub lhs: Expr, - pub rhs: Expr, -} - -#[derive(Clone, PartialEq)] -pub enum Expr { - Integer(i64), - Float(f64), - Ident(String), - Der(Box), - Abs(Box), - BinExpr(BinOperator, Box, Box), -} - -#[derive(Copy, Clone, PartialEq)] -pub enum BinOperator { - Multiply, - Divide, - Add, - Subtract, -} - -//// Helpers - -impl ModelicaModel { - - pub fn get_constant_vars(&self) -> HashMap> { - let mut binds = HashMap::new(); - // XXX: actually implement this... - for c in &self.components { - match c.prefix { - Some(ComponentPrefix::Constant) => { binds.insert(c.name.clone(), Some(Expr::Integer(123))); }, - Some(ComponentPrefix::Parameter) => { binds.insert(c.name.clone(), Some(Expr::Float(4.56))); }, - _ => (), - } - } - binds - } - - // This crude function finds "unbound" variables: those which are not constants, parameters, or - // the sole element on the LHS of an equation. - // Bugs: - // if a var is on LHS and RHS of same equation - pub fn get_free_vars(&self) -> Vec { - // Start with components, and remove constants and parameters - let vars = self.components.iter().filter(|v| match v.prefix { - Some(ComponentPrefix::Constant) | Some(ComponentPrefix::Parameter) => false, - _ => true, - }); - - // Remove LHS (bound) vars - let mut outputs = vec![]; - for eq in self.equations.iter() { - // TODO: - if let Expr::Ident(ref symb) = eq.lhs { - outputs.push(symb.to_string()); - } - } - let vars = vars.filter(|v| !outputs.contains(&v.name)); - - vars.map(|c| c.name.clone()).collect() - } - - // V variables - // Q constants (become kwargs) - // P bound vars (independent, inputs/passed, become like constants) - // M unknowns (dependent, outputs) - // N' total equations - // N equations with unknowns - // - // TODO: allow passing in Q - pub fn solve_for(&self, indep_vars: Vec, dep_vars: Vec) -> Result { - let constants = self.get_constant_vars(); - let mut all_vars: HashSet = HashSet::new(); - for eqn in &self.equations { - all_vars.extend(eqn.identifiers()); - } - - // check that all dep and indep are in equations - let mut passed_vars = indep_vars.clone(); - passed_vars.extend(dep_vars.clone()); - for var in passed_vars { - if !all_vars.contains(&var) { - return Err(format!("Variable not found in equations: {}", var)); - } - } - - // check that V = Q + P + M - if all_vars.len() != (constants.len() + indep_vars.len() + dep_vars.len()) { - return Err(format!("Variable counts don't add up (V={} Q={} P={} M={})", - all_vars.len(), - constants.len(), - indep_vars.len(), - dep_vars.len())); - } - - // check that all constants are bound and simple - for (name, value) in &constants { - match *value { - None => return Err(format!("UnderSpecifiedConstant: {}", name)), - Some(Expr::Integer(_)) | Some(Expr::Float(_)) => (), // Ok, - Some(_) => return Err(format!("NaiveImplementation: can't handle constant: {}", name)), - } - } - - // check that there is a depdendent variable in each equation - for eqn in &self.equations { - if intersect_strings(&dep_vars, &eqn.identifiers()).len() == 0 { - return Err("NaiveImplementation/OverConstrained: at least one equation is missing a dependent variable".to_string()); - } - } - - // check N >= M - if self.equations.len() < dep_vars.len() { - return Err("UnderConstrained: more dependent variables than equations".to_string()); - } - - println!("Soliving for {:?} in terms of params {:?} and constants {:?}, with {} equations", - dep_vars, indep_vars, constants, self.equations.len()); - - let mut unsolved_eqns = self.equations.clone(); - let mut solved: Vec = vec![]; - let mut unsolved_vars = dep_vars.clone(); - while unsolved_eqns.len() > 0 { - let next_i = unsolved_eqns - .iter() - .position(|ref x| intersect_strings(&unsolved_vars, &x.identifiers()).len() == 1); - let eqn = match next_i { - None => { return Err("NaiveImplementation (or poor equation selection?)".to_string()); }, - Some(i) => unsolved_eqns.remove(i), - }; - let ref var = intersect_strings(&unsolved_vars, &eqn.identifiers())[0]; - let eqn = eqn.rebalance_for(var.to_string()).expect("rebalance for success"); - solved.push(eqn); - let var_i = unsolved_vars.iter().position(|ref x| x == &var).unwrap(); - unsolved_vars.remove(var_i); - }; - - // TODO: sort output equations by LHS - Ok(ModelicaModel{ - name: self.name.clone(), - components: self.components.clone(), - connections: vec![], - equations: solved, - extends: vec![], - }) - } -} - -fn union_strings(a: &Vec, b: &Vec) -> Vec { - let mut u = a.clone(); - for e in b { - if !(u.contains(&e)) { - u.push(e.clone()); - } - } - u -} - -fn intersect_strings(a: &Vec, b: &Vec) -> Vec { - let mut both = vec![]; - for e in a { - if b.contains(&e) { - both.push(e.clone()); - } - } - both -} - -impl Expr { - - // Order is undefined - // TODO: should return a HashSet, not a Vec - pub fn identifiers(&self) -> Vec { - use self::Expr::*; - match *self { - Integer(_) | Float(_) => vec![], - Ident(ref s) => vec![s.clone()], - Der(ref e) | Abs(ref e) => e.identifiers(), - BinExpr(_, ref e1, ref e2) => { - union_strings(&e1.identifiers(), &e2.identifiers()) - }, - } - } - - pub fn contains(&self, ident: &str) -> bool{ - self.identifiers().contains(&ident.to_string()) - } -} - -impl SimpleEquation { - - // Order is undefined - pub fn identifiers(&self) -> Vec { - union_strings(&self.lhs.identifiers(), &self.rhs.identifiers()) - } - - pub fn contains(&self, ident: &str) -> bool{ - let s = &ident.to_string(); - self.lhs.identifiers().contains(s) || self.rhs.identifiers().contains(s) - } - - pub fn rebalance_for(&self, ident: String) -> Result { - let lvars = self.lhs.identifiers(); - let rvars = self.rhs.identifiers(); - - let ret = match (lvars.contains(&ident), rvars.contains(&ident)) { - (true, true) => Err("SymbolicError: NaiveImplementation".to_string()), - (false, false) => Err("SymbolicError: VariableNotFound".to_string()), - (true, false) => self.simplify_lhs(&ident), - (false, true) => - SimpleEquation{lhs: self.rhs.clone(), - rhs: self.lhs.clone()}.simplify_lhs(&ident), - }; - match ret { - Ok(eqn) => { - if eqn.rhs.contains(&ident) { - Err("SymbolicError: NaiveImplementation".to_string()) - } else { - Ok(eqn) - }}, - Err(_) => ret, - } - } - - pub fn simplify_lhs(&self, ident: &str) -> Result { - use self::Expr::*; - use self::BinOperator::*; - match self.lhs { - Ident(ref s) if s == ident => Ok((*self).clone()), - Ident(_) | Integer(_) | Float(_) => - Err("SymbolicError: InternalError: expected var on LHS".to_string()), - Der(_) | Abs(_) => - Err("SymbolicError: NaiveImplementation: can't simplify der() or abs()".to_string()), - // TODO: create a macro for the below... - BinExpr(Multiply, ref a, ref b) if a.contains(ident) => { - SimpleEquation{ - lhs: *a.clone(), - rhs: BinExpr(Divide, Box::new(self.rhs.clone()), b.clone())}.simplify_lhs(&ident) }, - BinExpr(Multiply, ref a, ref b) if b.contains(ident) => { - SimpleEquation{ - lhs: *b.clone(), - rhs: BinExpr(Divide, Box::new(self.rhs.clone()), a.clone())}.simplify_lhs(&ident) }, - BinExpr(Divide, ref a, ref b) if a.contains(ident) => { - SimpleEquation{ - lhs: *a.clone(), - rhs: BinExpr(Multiply, Box::new(self.rhs.clone()), b.clone())}.simplify_lhs(&ident) }, - BinExpr(Divide, ref a, ref b) if b.contains(ident) => { - SimpleEquation{ - lhs: *b.clone(), - rhs: BinExpr(Divide, a.clone(), Box::new(self.rhs.clone()))}.simplify_lhs(&ident) }, - BinExpr(Add, ref a, ref b) if a.contains(ident) => { - SimpleEquation{ - lhs: *a.clone(), - rhs: BinExpr(Subtract, Box::new(self.rhs.clone()), b.clone())}.simplify_lhs(&ident) }, - BinExpr(Add, ref a, ref b) if b.contains(ident) => { - SimpleEquation{ - lhs: *b.clone(), - rhs: BinExpr(Subtract, Box::new(self.rhs.clone()), a.clone())}.simplify_lhs(&ident) }, - BinExpr(Subtract, ref a, ref b) if a.contains(ident) => { - SimpleEquation{ - lhs: *a.clone(), - rhs: BinExpr(Add, Box::new(self.rhs.clone()), b.clone())}.simplify_lhs(&ident) }, - BinExpr(Subtract, ref a, ref b) if b.contains(ident) => { - SimpleEquation{ - lhs: *b.clone(), - rhs: BinExpr(Subtract, a.clone(), Box::new(self.rhs.clone()))}.simplify_lhs(&ident) }, - BinExpr(_, _, _) => Err("SymbolicError: NotImplemented BinOperator (or else couldn't find var...)".to_string()), - // in case we add opers: _ => Err("NotImplemented".to_string()), - } - } -} - - -//// Debug Implementations - -impl Debug for ModelicaModel { - fn fmt(&self, fmt: &mut Formatter) -> Result<(), Error> { - try!(write!(fmt, "model {}\n", self.name)); - for e in self.extends.iter() { - try!(write!(fmt, " extends {};\n", e)); - } - for v in self.components.iter() { - try!(write!(fmt, " {:?};\n", v)); - } - try!(write!(fmt, "equation\n")); - for c in self.connections.iter() { - try!(write!(fmt, " {:?};\n", c)); - } - for e in self.equations.iter() { - try!(write!(fmt, " {:?};\n", e)); - } - write!(fmt, "end {};\n", self.name) - } -} - -impl Debug for ComponentPrefix { - fn fmt(&self, fmt: &mut Formatter) -> Result<(), Error> { - use self::ComponentPrefix::*; - write!(fmt, "{}", - match *self { - Flow => "flow", - Stream => "stream", - Input => "input", - Output => "output", - Discrete => "discrete", - Parameter => "parameter", - Constant => "constant", - }) - } -} - -impl Debug for Component { - fn fmt(&self, fmt: &mut Formatter) -> Result<(), Error> { - write!(fmt, "{}{} {}", - match self.prefix { - Some(p) => format!("{:?} ", p), - None => "".to_string(), - }, - self.specifier, - self.name, - ) - } -} - -impl Debug for Connection { - fn fmt(&self, fmt: &mut Formatter) -> Result<(), Error> { - write!(fmt, "connect({}, {})", self.a, self.b) - } -} - -impl Debug for SimpleEquation { - fn fmt(&self, fmt: &mut Formatter) -> Result<(), Error> { - write!(fmt, "{:?} = {:?}", self.lhs, self.rhs) - } -} - -impl Debug for Expr { - fn fmt(&self, fmt: &mut Formatter) -> Result<(), Error> { - use self::Expr::*; - match *self { - Integer(e) => write!(fmt, "{}", e), - Float(e) => write!(fmt, "{}", e), - Ident(ref e) => write!(fmt, "{}", e), - Der(ref e) => write!(fmt, "der({:?})", e), - Abs(ref e) => write!(fmt, "abs({:?})", e), - BinExpr(op, ref l, ref r) => write!(fmt, "({:?} {:?} {:?})", l, op, r), - } - } -} - -impl Debug for BinOperator { - fn fmt(&self, fmt: &mut Formatter) -> Result<(), Error> { - use self::BinOperator::*; - match *self { - Multiply => write!(fmt, "*"), - Divide => write!(fmt, "/"), - Add => write!(fmt, "+"), - Subtract => write!(fmt, "-"), - } - } -} diff --git a/src/modelica_model.rs b/src/modelica_model.rs new file mode 100644 index 0000000..bcc00b1 --- /dev/null +++ b/src/modelica_model.rs @@ -0,0 +1,231 @@ + +extern crate modelica_parser; + +use std::clone::Clone; +use std::collections::HashMap; +use std::collections::HashSet; + +use self::modelica_parser::ast::*; + + +//// Helpers + +pub trait ModelicaModelExt { + fn get_constant_vars(&self) -> HashMap>; + fn get_free_vars(&self) -> Vec; + fn solve_for(&self, indep_vars: Vec, dep_vars: Vec) -> Result; +} + +impl ModelicaModelExt for ModelicaModel { + + fn get_constant_vars(&self) -> HashMap> { + let mut binds = HashMap::new(); + // XXX: actually implement this... + for c in &self.components { + match c.prefix { + Some(ComponentPrefix::Constant) => { binds.insert(c.name.clone(), Some(Expr::Integer(123))); }, + Some(ComponentPrefix::Parameter) => { binds.insert(c.name.clone(), Some(Expr::Float(4.56))); }, + _ => (), + } + } + binds + } + + // This crude function finds "unbound" variables: those which are not constants, parameters, or + // the sole element on the LHS of an equation. + // Bugs: + // if a var is on LHS and RHS of same equation + fn get_free_vars(&self) -> Vec { + // Start with components, and remove constants and parameters + let vars = self.components.iter().filter(|v| match v.prefix { + Some(ComponentPrefix::Constant) | Some(ComponentPrefix::Parameter) => false, + _ => true, + }); + + // Remove LHS (bound) vars + let mut outputs = vec![]; + for eq in self.equations.iter() { + // TODO: + if let Expr::Ident(ref symb) = eq.lhs { + outputs.push(symb.to_string()); + } + } + let vars = vars.filter(|v| !outputs.contains(&v.name)); + + vars.map(|c| c.name.clone()).collect() + } + + // V variables + // Q constants (become kwargs) + // P bound vars (independent, inputs/passed, become like constants) + // M unknowns (dependent, outputs) + // N' total equations + // N equations with unknowns + // + // TODO: allow passing in Q + fn solve_for(&self, indep_vars: Vec, dep_vars: Vec) -> Result { + let constants = self.get_constant_vars(); + let mut all_vars: HashSet = HashSet::new(); + for eqn in &self.equations { + all_vars.extend(eqn.identifiers()); + } + + // check that all dep and indep are in equations + let mut passed_vars = indep_vars.clone(); + passed_vars.extend(dep_vars.clone()); + for var in passed_vars { + if !all_vars.contains(&var) { + return Err(format!("Variable not found in equations: {}", var)); + } + } + + // check that V = Q + P + M + if all_vars.len() != (constants.len() + indep_vars.len() + dep_vars.len()) { + return Err(format!("Variable counts don't add up (V={} Q={} P={} M={})", + all_vars.len(), + constants.len(), + indep_vars.len(), + dep_vars.len())); + } + + // check that all constants are bound and simple + for (name, value) in &constants { + match *value { + None => return Err(format!("UnderSpecifiedConstant: {}", name)), + Some(Expr::Integer(_)) | Some(Expr::Float(_)) => (), // Ok, + Some(_) => return Err(format!("NaiveImplementation: can't handle constant: {}", name)), + } + } + + // check that there is a depdendent variable in each equation + for eqn in &self.equations { + if intersect_strings(&dep_vars, &eqn.identifiers()).len() == 0 { + return Err("NaiveImplementation/OverConstrained: at least one equation is missing a dependent variable".to_string()); + } + } + + // check N >= M + if self.equations.len() < dep_vars.len() { + return Err("UnderConstrained: more dependent variables than equations".to_string()); + } + + println!("Soliving for {:?} in terms of params {:?} and constants {:?}, with {} equations", + dep_vars, indep_vars, constants, self.equations.len()); + + let mut unsolved_eqns = self.equations.clone(); + let mut solved: Vec = vec![]; + let mut unsolved_vars = dep_vars.clone(); + while unsolved_eqns.len() > 0 { + let next_i = unsolved_eqns + .iter() + .position(|ref x| intersect_strings(&unsolved_vars, &x.identifiers()).len() == 1); + let eqn = match next_i { + None => { return Err("NaiveImplementation (or poor equation selection?)".to_string()); }, + Some(i) => unsolved_eqns.remove(i), + }; + let ref var = intersect_strings(&unsolved_vars, &eqn.identifiers())[0]; + let eqn = eqn.rebalance_for(var.to_string()).expect("rebalance for success"); + solved.push(eqn); + let var_i = unsolved_vars.iter().position(|ref x| x == &var).unwrap(); + unsolved_vars.remove(var_i); + }; + + // TODO: sort output equations by LHS + Ok(ModelicaModel{ + name: self.name.clone(), + components: self.components.clone(), + connections: vec![], + equations: solved, + extends: vec![], + }) + } +} + +fn intersect_strings(a: &Vec, b: &Vec) -> Vec { + let mut both = vec![]; + for e in a { + if b.contains(&e) { + both.push(e.clone()); + } + } + both +} + +pub trait SimpleEquationExt { + fn rebalance_for(&self, ident: String) -> Result; + fn simplify_lhs(&self, ident: &str) -> Result; +} + +impl SimpleEquationExt for SimpleEquation { + + fn rebalance_for(&self, ident: String) -> Result { + let lvars = self.lhs.identifiers(); + let rvars = self.rhs.identifiers(); + + let ret = match (lvars.contains(&ident), rvars.contains(&ident)) { + (true, true) => Err("SymbolicError: NaiveImplementation".to_string()), + (false, false) => Err("SymbolicError: VariableNotFound".to_string()), + (true, false) => self.simplify_lhs(&ident), + (false, true) => + SimpleEquation{lhs: self.rhs.clone(), + rhs: self.lhs.clone()}.simplify_lhs(&ident), + }; + match ret { + Ok(eqn) => { + if eqn.rhs.contains(&ident) { + Err("SymbolicError: NaiveImplementation".to_string()) + } else { + Ok(eqn) + }}, + Err(_) => ret, + } + } + + fn simplify_lhs(&self, ident: &str) -> Result { + use modelica_parser::ast::Expr::*; + use modelica_parser::ast::BinOperator::*; + match self.lhs { + Ident(ref s) if s == ident => Ok((*self).clone()), + Ident(_) | Integer(_) | Float(_) => + Err("SymbolicError: InternalError: expected var on LHS".to_string()), + Der(_) | Abs(_) => + Err("SymbolicError: NaiveImplementation: can't simplify der() or abs()".to_string()), + // TODO: create a macro for the below... + BinExpr(Multiply, ref a, ref b) if a.contains(ident) => { + SimpleEquation{ + lhs: *a.clone(), + rhs: BinExpr(Divide, Box::new(self.rhs.clone()), b.clone())}.simplify_lhs(&ident) }, + BinExpr(Multiply, ref a, ref b) if b.contains(ident) => { + SimpleEquation{ + lhs: *b.clone(), + rhs: BinExpr(Divide, Box::new(self.rhs.clone()), a.clone())}.simplify_lhs(&ident) }, + BinExpr(Divide, ref a, ref b) if a.contains(ident) => { + SimpleEquation{ + lhs: *a.clone(), + rhs: BinExpr(Multiply, Box::new(self.rhs.clone()), b.clone())}.simplify_lhs(&ident) }, + BinExpr(Divide, ref a, ref b) if b.contains(ident) => { + SimpleEquation{ + lhs: *b.clone(), + rhs: BinExpr(Divide, a.clone(), Box::new(self.rhs.clone()))}.simplify_lhs(&ident) }, + BinExpr(Add, ref a, ref b) if a.contains(ident) => { + SimpleEquation{ + lhs: *a.clone(), + rhs: BinExpr(Subtract, Box::new(self.rhs.clone()), b.clone())}.simplify_lhs(&ident) }, + BinExpr(Add, ref a, ref b) if b.contains(ident) => { + SimpleEquation{ + lhs: *b.clone(), + rhs: BinExpr(Subtract, Box::new(self.rhs.clone()), a.clone())}.simplify_lhs(&ident) }, + BinExpr(Subtract, ref a, ref b) if a.contains(ident) => { + SimpleEquation{ + lhs: *a.clone(), + rhs: BinExpr(Add, Box::new(self.rhs.clone()), b.clone())}.simplify_lhs(&ident) }, + BinExpr(Subtract, ref a, ref b) if b.contains(ident) => { + SimpleEquation{ + lhs: *b.clone(), + rhs: BinExpr(Subtract, a.clone(), Box::new(self.rhs.clone()))}.simplify_lhs(&ident) }, + BinExpr(_, _, _) => Err("SymbolicError: NotImplemented BinOperator (or else couldn't find var...)".to_string()), + // in case we add opers: _ => Err("NotImplemented".to_string()), + } + } +} + diff --git a/src/modelica_parser.lalrpop b/src/modelica_parser.lalrpop deleted file mode 100644 index f5d7958..0000000 --- a/src/modelica_parser.lalrpop +++ /dev/null @@ -1,97 +0,0 @@ -use std::str::FromStr; -use modelica_ast::{ModelicaModel,Component, ComponentPrefix, Connection, - SimpleEquation, Expr, BinOperator}; - -// This is an incomplete, non-standards-compliant, minimum-viable parser - -grammar; - -// Lexical Tokens - -pub identifier: String = { - r"[a-zA-Z_][a-zA-Z_0-9]*" => <>.to_string(), -}; - -string_literal: String = { - r#""[^"\\]*""# => <>.to_string(), - // => &s[1..s.len()-1], -}; - -pub integer: i64 = { - r"[+-]?\d+" => i64::from_str(<>).unwrap(), -}; - -pub float: f64 = { - r"[+-]?\d+\.\d*([eE][-+]?\d+)?" => f64::from_str(<>).unwrap(), -}; - - -// Grammar - -pub model: ModelicaModel = { - "model" "equation" "end" identifier ";" => - ModelicaModel { name:n, components: cd, connections: cc, equations: se, extends: vec![] }, -}; - -value_declaration: Expr = { - "=" => value -}; - -units_declaration: String = { - "(" "unit" "=" ")" => units -}; - -component_declaration: Component = { - ";" => - Component { prefix:prefix, specifier:specifier, name:name, description:desc, value:value, units:units }, -}; - -component_prefix: ComponentPrefix = { - "flow" => ComponentPrefix::Flow, - "stream" => ComponentPrefix::Stream, - "input" => ComponentPrefix::Input, - "output" => ComponentPrefix::Output, - "discrete" => ComponentPrefix::Discrete, - "parameter" => ComponentPrefix::Parameter, - "constant" => ComponentPrefix::Constant, -}; - -simple_equation: SimpleEquation = { - "=" ";" => SimpleEquation {lhs:lhs, rhs:rhs}, -}; - -connect_clause: Connection = { - "connect" "(" "," ")" ";" => - Connection { a: a.to_string(), b: b.to_string()}, -}; - -// This weird expr/factor/term hierarchy is for binary operator precedence -expr: Expr = { - "+" => - Expr::BinExpr(BinOperator::Add, Box::new(lhs), Box::new(rhs)), - "-" => - Expr::BinExpr(BinOperator::Subtract, Box::new(lhs), Box::new(rhs)), - factor, -}; - -factor: Expr = { - "*" => - Expr::BinExpr(BinOperator::Multiply, Box::new(lhs), Box::new(rhs)), - "/" => - Expr::BinExpr(BinOperator::Divide, Box::new(lhs), Box::new(rhs)), - "^" => - Expr::BinExpr(BinOperator::Divide, Box::new(lhs), Box::new(rhs)), - "-" => - Expr::BinExpr(BinOperator::Multiply, Box::new(Expr::Integer(-1)), Box::new(t)), - term, -}; - -term: Expr = { - integer => Expr::Integer(<>), - float => Expr::Float(<>), - identifier => Expr::Ident(<>), - "der" "(" ")" => Expr::Der(Box::new(e)), - "abs" "(" ")" => Expr::Abs(Box::new(e)), - "(" ")" => e, -}; - diff --git a/src/modelica_parser.lalrpop.full b/src/modelica_parser.lalrpop.full deleted file mode 100644 index d453bc7..0000000 --- a/src/modelica_parser.lalrpop.full +++ /dev/null @@ -1,171 +0,0 @@ -use std::str::FromStr; - -// Based on the Modelica 3.3r1 Spec - -grammar; - -//// B.1 Lexical Convetions - -//digit: = "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" -//q_ident = "’" ( q_char | s_escape ) { q_char | s_escape } "’" -//nondigit = "_" | letters "a" to "z" | letters "A" to "Z" -//s_char = any member of the Unicode character set (http://www.unicode.org; see Section 13.2.2 for storing as UTF-8 on files) except double-quote """, and backslash "\" -//q_char = nondigit | digit | "!" | "#" | "$" | "%" | "&" | "(" | ")" | "*" | "+" | "," | "-" | "." | "/" | ":" | ";" | "<" | ">" | "=" | "?" | "@" | "[" | "]" | "^" | "{" | "}" | "|" | "~" | " " -//s_escape = "\’" | "\"" | "\?" | "\\" | "\a" | "\b" | "\f" | "\n" | "\r" | "\t" | "\v" -// -//ident = nondigit { digit | nondigit } | q_ident -//string = """ { s_char | s_escape } """ -//unsigned_integer = digit { digit } -//unsigned_number = unsigned_integer [ "." [ unsigned_integer ] ] [ ( "e" | "E" ) [ "+" | "-" ] unsigned_integer ] - -IDENT: () = { - r"[a-zA-Z_][a-zA-Z_0-9]*", - // TODO: quoted identifier: "’" ... "’" -}; - -STRING: () = { - //"\"" r"[^\"^\\]*" "\"", - "\"" r"[^\\]*" "\"", // XXX: not \ and not " -}; - -UNSIGNED_INTEGER: () = { - r"\d+", -}; - -UNSIGNED_NUMBER: () = { - UNSIGNED_INTEGER, - r"\d+\.?\d*([eE][-+]?\d+)?", -}; - - -//// B.2 Grammar - -//// B.2.1 - -//stored_definition: -// [ within [ name ] ";" ] -// { [ final ] class_definition ";" } - -//// B.2.2 Class Definition - - -//// B.2.7 Expressions - -expression: () = { - simple_expression, - if expression then expression { elseif expression then expression } else expression -}; - -simple_expression: () = { - logical_expression [ ":" logical_expression [ ":" logical_expression ] ] -}; - -logical_expression: () = { - logical_term { or logical_term } -}; - -logical_term: () = { - logical_factor { and logical_factor } -}; - -logical_factor: () = { - [ not ] relation -}; - -relation: () = { - arithmetic_expression [ rel_op arithmetic_expression ] -}; - -rel_op: () = { - "<", "<=", ">", ">=", "==", "<>" -}; - -arithmetic_expression: () = { - [ add_op ] term { add_op term } -}; - -add_op: () = { - "+", "-", ".+", ".-" -}; - -term: () = { - factor { mul_op factor } -}; - -mul_op: () = { - "*", "/", ".*", "./" -}; - -factor: () = { - primary [ ("^" | ".^") primary ] -}; - -primary: () = { - UNSIGNED_NUMBER, - STRING, - false, - true, - ( name | der | initial ) function_call_args, - component_reference, - "(" output_expression_list ")", - "[" expression_list { ";" expression_list } "]", - "{" function_arguments "}", - end, -}; - -name: () = { - [ "." ] IDENT { "." IDENT } -}; - -component_reference: () = { - [ "." ] IDENT [ array_subscripts ] { "." IDENT [ array_subscripts ] } -}; - -function_call_args: () = { - "(" [ function_arguments ] ")", - function_arguments, - function_argument [ "," function_arguments | for for_indices ], - named_arguments, -}; - -named_arguments: () = { - named_argument [ "," named_arguments ] -}; - -named_argument: - IDENT "=" function_argument -}; - -function_argument: () = { - function name "(" [ named_arguments ] ")" | expression -}; - - -output_expression_list: - [ expression ] { "," [ expression ] } - -expression_list: () = { - expression { "," expression } -}; - -array_subscripts: () = { - "[" subscript { "," subscript } "]" - -}; - -subscript: () = { - ":" | expression - -}; - -comment: () = { - string_comment [ annotation ] -}; - -string_comment: () = { - [ STRING { "+" STRING } ] -}; - -annotation: () = { - annotation class_modification -}; diff --git a/src/modelica_parser.rs b/src/modelica_parser.rs deleted file mode 100644 index c7cca51..0000000 --- a/src/modelica_parser.rs +++ /dev/null @@ -1,15955 +0,0 @@ -use std::str::FromStr; -use modelica_ast::{ModelicaModel,Component, ComponentPrefix, Connection, - SimpleEquation, Expr, BinOperator}; -extern crate lalrpop_util as __lalrpop_util; - -mod __parse__float { - #![allow(non_snake_case, non_camel_case_types, unused_mut, unused_variables, unused_imports)] - - use std::str::FromStr; - use modelica_ast::{ModelicaModel,Component, ComponentPrefix, Connection, - SimpleEquation, Expr, BinOperator}; - extern crate lalrpop_util as __lalrpop_util; - #[allow(dead_code)] - pub enum __Symbol<'input> { - Term_22_28_22(&'input str), - Term_22_29_22(&'input str), - Term_22_2a_22(&'input str), - Term_22_2b_22(&'input str), - Term_22_2c_22(&'input str), - Term_22_2d_22(&'input str), - Term_22_2f_22(&'input str), - Term_22_3b_22(&'input str), - Term_22_3d_22(&'input str), - Term_22_5e_22(&'input str), - Term_22abs_22(&'input str), - Term_22connect_22(&'input str), - Term_22constant_22(&'input str), - Term_22der_22(&'input str), - Term_22discrete_22(&'input str), - Term_22end_22(&'input str), - Term_22equation_22(&'input str), - Term_22flow_22(&'input str), - Term_22input_22(&'input str), - Term_22model_22(&'input str), - Term_22output_22(&'input str), - Term_22parameter_22(&'input str), - Term_22stream_22(&'input str), - Term_22unit_22(&'input str), - Termr_23_22_5c_22_5b_5e_5c_22_5c_5c_5c_5c_5d_2a_5c_22_22_23(&'input str), - Termr_23_22_5b_2b_2d_5d_3f_5c_5cd_2b_22_23(&'input str), - Termr_23_22_5b_2b_2d_5d_3f_5c_5cd_2b_5c_5c_2e_5c_5cd_2a_28_5beE_5d_5b_2d_2b_5d_3f_5c_5cd_2b_29_3f_22_23(&'input str), - Termr_23_22_5ba_2dzA_2dZ___5d_5ba_2dzA_2dZ__0_2d9_5d_2a_22_23(&'input str), - Termerror(__lalrpop_util::ErrorRecovery), - Nt____float(f64), - Nt____identifier(String), - Nt____integer(i64), - Nt____model(ModelicaModel), - Ntcomponent__declaration(Component), - Ntcomponent__declaration_2a(::std::vec::Vec), - Ntcomponent__declaration_2b(::std::vec::Vec), - Ntcomponent__prefix(ComponentPrefix), - Ntcomponent__prefix_3f(::std::option::Option), - Ntconnect__clause(Connection), - Ntconnect__clause_2a(::std::vec::Vec), - Ntconnect__clause_2b(::std::vec::Vec), - Ntexpr(Expr), - Ntfactor(Expr), - Ntfloat(f64), - Ntidentifier(String), - Ntinteger(i64), - Ntmodel(ModelicaModel), - Ntsimple__equation(SimpleEquation), - Ntsimple__equation_2a(::std::vec::Vec), - Ntsimple__equation_2b(::std::vec::Vec), - Ntstring__literal(String), - Ntstring__literal_3f(::std::option::Option), - Ntterm(Expr), - Ntunits__declaration(String), - Ntunits__declaration_3f(::std::option::Option), - Ntvalue__declaration(Expr), - Ntvalue__declaration_3f(::std::option::Option), - } - const __ACTION: &'static [i32] = &[ - // State 0 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 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, - // State 2 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - ]; - const __EOF_ACTION: &'static [i32] = &[ - 0, - -1, - -47, - ]; - const __GOTO: &'static [i32] = &[ - // State 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, - // 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, - // State 2 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - ]; - pub fn parse_float< - 'input, - >( - input: &'input str, - ) -> Result> - { - let mut __tokens = super::__intern_token::__Matcher::new(input); - let mut __states = vec![0_i32]; - let mut __symbols = vec![]; - let mut __integer; - let mut __lookahead; - let mut __last_location = Default::default(); - '__shift: loop { - __lookahead = match __tokens.next() { - Some(Ok(v)) => v, - None => break '__shift, - Some(Err(e)) => return Err(e), - }; - __last_location = __lookahead.2.clone(); - __integer = match __lookahead.1 { - (0, _) if true => 0, - (1, _) if true => 1, - (2, _) if true => 2, - (3, _) if true => 3, - (4, _) if true => 4, - (5, _) if true => 5, - (6, _) if true => 6, - (7, _) if true => 7, - (8, _) if true => 8, - (9, _) if true => 9, - (10, _) if true => 10, - (11, _) if true => 11, - (12, _) if true => 12, - (13, _) if true => 13, - (14, _) if true => 14, - (15, _) if true => 15, - (16, _) if true => 16, - (17, _) if true => 17, - (18, _) if true => 18, - (19, _) if true => 19, - (20, _) if true => 20, - (21, _) if true => 21, - (22, _) if true => 22, - (23, _) if true => 23, - (24, _) if true => 24, - (25, _) if true => 25, - (26, _) if true => 26, - (27, _) if true => 27, - _ => { - return Err(__lalrpop_util::ParseError::UnrecognizedToken { - token: Some(__lookahead), - expected: vec![], - }); - } - }; - '__inner: loop { - let __state = *__states.last().unwrap() as usize; - let __action = __ACTION[__state * 29 + __integer]; - if __action > 0 { - let __symbol = match __integer { - 0 => match __lookahead.1 { - (0, __tok0) => __Symbol::Term_22_28_22(__tok0), - _ => unreachable!(), - }, - 1 => match __lookahead.1 { - (1, __tok0) => __Symbol::Term_22_29_22(__tok0), - _ => unreachable!(), - }, - 2 => match __lookahead.1 { - (2, __tok0) => __Symbol::Term_22_2a_22(__tok0), - _ => unreachable!(), - }, - 3 => match __lookahead.1 { - (3, __tok0) => __Symbol::Term_22_2b_22(__tok0), - _ => unreachable!(), - }, - 4 => match __lookahead.1 { - (4, __tok0) => __Symbol::Term_22_2c_22(__tok0), - _ => unreachable!(), - }, - 5 => match __lookahead.1 { - (5, __tok0) => __Symbol::Term_22_2d_22(__tok0), - _ => unreachable!(), - }, - 6 => match __lookahead.1 { - (6, __tok0) => __Symbol::Term_22_2f_22(__tok0), - _ => unreachable!(), - }, - 7 => match __lookahead.1 { - (7, __tok0) => __Symbol::Term_22_3b_22(__tok0), - _ => unreachable!(), - }, - 8 => match __lookahead.1 { - (8, __tok0) => __Symbol::Term_22_3d_22(__tok0), - _ => unreachable!(), - }, - 9 => match __lookahead.1 { - (9, __tok0) => __Symbol::Term_22_5e_22(__tok0), - _ => unreachable!(), - }, - 10 => match __lookahead.1 { - (10, __tok0) => __Symbol::Term_22abs_22(__tok0), - _ => unreachable!(), - }, - 11 => match __lookahead.1 { - (11, __tok0) => __Symbol::Term_22connect_22(__tok0), - _ => unreachable!(), - }, - 12 => match __lookahead.1 { - (12, __tok0) => __Symbol::Term_22constant_22(__tok0), - _ => unreachable!(), - }, - 13 => match __lookahead.1 { - (13, __tok0) => __Symbol::Term_22der_22(__tok0), - _ => unreachable!(), - }, - 14 => match __lookahead.1 { - (14, __tok0) => __Symbol::Term_22discrete_22(__tok0), - _ => unreachable!(), - }, - 15 => match __lookahead.1 { - (15, __tok0) => __Symbol::Term_22end_22(__tok0), - _ => unreachable!(), - }, - 16 => match __lookahead.1 { - (16, __tok0) => __Symbol::Term_22equation_22(__tok0), - _ => unreachable!(), - }, - 17 => match __lookahead.1 { - (17, __tok0) => __Symbol::Term_22flow_22(__tok0), - _ => unreachable!(), - }, - 18 => match __lookahead.1 { - (18, __tok0) => __Symbol::Term_22input_22(__tok0), - _ => unreachable!(), - }, - 19 => match __lookahead.1 { - (19, __tok0) => __Symbol::Term_22model_22(__tok0), - _ => unreachable!(), - }, - 20 => match __lookahead.1 { - (20, __tok0) => __Symbol::Term_22output_22(__tok0), - _ => unreachable!(), - }, - 21 => match __lookahead.1 { - (21, __tok0) => __Symbol::Term_22parameter_22(__tok0), - _ => unreachable!(), - }, - 22 => match __lookahead.1 { - (22, __tok0) => __Symbol::Term_22stream_22(__tok0), - _ => unreachable!(), - }, - 23 => match __lookahead.1 { - (23, __tok0) => __Symbol::Term_22unit_22(__tok0), - _ => unreachable!(), - }, - 24 => match __lookahead.1 { - (24, __tok0) => __Symbol::Termr_23_22_5c_22_5b_5e_5c_22_5c_5c_5c_5c_5d_2a_5c_22_22_23(__tok0), - _ => unreachable!(), - }, - 25 => match __lookahead.1 { - (25, __tok0) => __Symbol::Termr_23_22_5b_2b_2d_5d_3f_5c_5cd_2b_22_23(__tok0), - _ => unreachable!(), - }, - 26 => match __lookahead.1 { - (26, __tok0) => __Symbol::Termr_23_22_5b_2b_2d_5d_3f_5c_5cd_2b_5c_5c_2e_5c_5cd_2a_28_5beE_5d_5b_2d_2b_5d_3f_5c_5cd_2b_29_3f_22_23(__tok0), - _ => unreachable!(), - }, - 27 => match __lookahead.1 { - (27, __tok0) => __Symbol::Termr_23_22_5ba_2dzA_2dZ___5d_5ba_2dzA_2dZ__0_2d9_5d_2a_22_23(__tok0), - _ => unreachable!(), - }, - _ => unreachable!(), - }; - __states.push(__action - 1); - __symbols.push((__lookahead.0, __symbol, __lookahead.2)); - continue '__shift; - } else if __action < 0 { - if let Some(r) = __reduce(input, __action, Some(&__lookahead.0), &mut __states, &mut __symbols, ::std::marker::PhantomData::<()>) { - return r; - } - } else { - return Err(__lalrpop_util::ParseError::UnrecognizedToken { - token: Some(__lookahead), - expected: vec![], - }); - } - } - } - loop { - let __state = *__states.last().unwrap() as usize; - let __action = __EOF_ACTION[__state]; - if __action < 0 { - if let Some(r) = __reduce(input, __action, None, &mut __states, &mut __symbols, ::std::marker::PhantomData::<()>) { - return r; - } - } else { - let __error = __lalrpop_util::ParseError::UnrecognizedToken { - token: None, - expected: vec![], - }; - return Err(__error); - } - } - } - pub fn __reduce< - 'input, - >( - input: &'input str, - __action: i32, - __lookahead_start: Option<&usize>, - __states: &mut ::std::vec::Vec, - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, - _: ::std::marker::PhantomData<()>, - ) -> Option>> - { - let __nonterminal = match -__action { - 1 => { - // __float = float => ActionFn(2); - let __sym0 = __pop_Ntfloat(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action2::<>(input, __sym0); - return Some(Ok(__nt)); - } - 2 => { - // __identifier = identifier => ActionFn(0); - let __sym0 = __pop_Ntidentifier(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action0::<>(input, __sym0); - let __states_len = __states.len(); - __states.truncate(__states_len - 1); - __symbols.push((__start, __Symbol::Nt____identifier(__nt), __end)); - 1 - } - 3 => { - // __integer = integer => ActionFn(1); - let __sym0 = __pop_Ntinteger(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action1::<>(input, __sym0); - let __states_len = __states.len(); - __states.truncate(__states_len - 1); - __symbols.push((__start, __Symbol::Nt____integer(__nt), __end)); - 2 - } - 4 => { - // __model = model => ActionFn(3); - let __sym0 = __pop_Ntmodel(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action3::<>(input, __sym0); - let __states_len = __states.len(); - __states.truncate(__states_len - 1); - __symbols.push((__start, __Symbol::Nt____model(__nt), __end)); - 3 - } - 5 => { - // component_declaration = component_prefix, identifier, identifier, units_declaration, value_declaration, string_literal, ";" => ActionFn(83); - let __sym6 = __pop_Term_22_3b_22(__symbols); - let __sym5 = __pop_Ntstring__literal(__symbols); - let __sym4 = __pop_Ntvalue__declaration(__symbols); - let __sym3 = __pop_Ntunits__declaration(__symbols); - let __sym2 = __pop_Ntidentifier(__symbols); - let __sym1 = __pop_Ntidentifier(__symbols); - let __sym0 = __pop_Ntcomponent__prefix(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym6.2.clone(); - let __nt = super::__action83::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6); - let __states_len = __states.len(); - __states.truncate(__states_len - 7); - __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); - 4 - } - 6 => { - // component_declaration = component_prefix, identifier, identifier, units_declaration, string_literal, ";" => ActionFn(84); - let __sym5 = __pop_Term_22_3b_22(__symbols); - let __sym4 = __pop_Ntstring__literal(__symbols); - let __sym3 = __pop_Ntunits__declaration(__symbols); - let __sym2 = __pop_Ntidentifier(__symbols); - let __sym1 = __pop_Ntidentifier(__symbols); - let __sym0 = __pop_Ntcomponent__prefix(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym5.2.clone(); - let __nt = super::__action84::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5); - let __states_len = __states.len(); - __states.truncate(__states_len - 6); - __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); - 4 - } - 7 => { - // component_declaration = component_prefix, identifier, identifier, value_declaration, string_literal, ";" => ActionFn(85); - let __sym5 = __pop_Term_22_3b_22(__symbols); - let __sym4 = __pop_Ntstring__literal(__symbols); - let __sym3 = __pop_Ntvalue__declaration(__symbols); - let __sym2 = __pop_Ntidentifier(__symbols); - let __sym1 = __pop_Ntidentifier(__symbols); - let __sym0 = __pop_Ntcomponent__prefix(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym5.2.clone(); - let __nt = super::__action85::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5); - let __states_len = __states.len(); - __states.truncate(__states_len - 6); - __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); - 4 - } - 8 => { - // component_declaration = component_prefix, identifier, identifier, string_literal, ";" => ActionFn(86); - let __sym4 = __pop_Term_22_3b_22(__symbols); - let __sym3 = __pop_Ntstring__literal(__symbols); - let __sym2 = __pop_Ntidentifier(__symbols); - let __sym1 = __pop_Ntidentifier(__symbols); - let __sym0 = __pop_Ntcomponent__prefix(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym4.2.clone(); - let __nt = super::__action86::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4); - let __states_len = __states.len(); - __states.truncate(__states_len - 5); - __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); - 4 - } - 9 => { - // component_declaration = component_prefix, identifier, identifier, units_declaration, value_declaration, ";" => ActionFn(87); - let __sym5 = __pop_Term_22_3b_22(__symbols); - let __sym4 = __pop_Ntvalue__declaration(__symbols); - let __sym3 = __pop_Ntunits__declaration(__symbols); - let __sym2 = __pop_Ntidentifier(__symbols); - let __sym1 = __pop_Ntidentifier(__symbols); - let __sym0 = __pop_Ntcomponent__prefix(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym5.2.clone(); - let __nt = super::__action87::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5); - let __states_len = __states.len(); - __states.truncate(__states_len - 6); - __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); - 4 - } - 10 => { - // component_declaration = component_prefix, identifier, identifier, units_declaration, ";" => ActionFn(88); - let __sym4 = __pop_Term_22_3b_22(__symbols); - let __sym3 = __pop_Ntunits__declaration(__symbols); - let __sym2 = __pop_Ntidentifier(__symbols); - let __sym1 = __pop_Ntidentifier(__symbols); - let __sym0 = __pop_Ntcomponent__prefix(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym4.2.clone(); - let __nt = super::__action88::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4); - let __states_len = __states.len(); - __states.truncate(__states_len - 5); - __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); - 4 - } - 11 => { - // component_declaration = component_prefix, identifier, identifier, value_declaration, ";" => ActionFn(89); - let __sym4 = __pop_Term_22_3b_22(__symbols); - let __sym3 = __pop_Ntvalue__declaration(__symbols); - let __sym2 = __pop_Ntidentifier(__symbols); - let __sym1 = __pop_Ntidentifier(__symbols); - let __sym0 = __pop_Ntcomponent__prefix(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym4.2.clone(); - let __nt = super::__action89::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4); - let __states_len = __states.len(); - __states.truncate(__states_len - 5); - __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); - 4 - } - 12 => { - // component_declaration = component_prefix, identifier, identifier, ";" => ActionFn(90); - let __sym3 = __pop_Term_22_3b_22(__symbols); - let __sym2 = __pop_Ntidentifier(__symbols); - let __sym1 = __pop_Ntidentifier(__symbols); - let __sym0 = __pop_Ntcomponent__prefix(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym3.2.clone(); - let __nt = super::__action90::<>(input, __sym0, __sym1, __sym2, __sym3); - let __states_len = __states.len(); - __states.truncate(__states_len - 4); - __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); - 4 - } - 13 => { - // component_declaration = identifier, identifier, units_declaration, value_declaration, string_literal, ";" => ActionFn(91); - let __sym5 = __pop_Term_22_3b_22(__symbols); - let __sym4 = __pop_Ntstring__literal(__symbols); - let __sym3 = __pop_Ntvalue__declaration(__symbols); - let __sym2 = __pop_Ntunits__declaration(__symbols); - let __sym1 = __pop_Ntidentifier(__symbols); - let __sym0 = __pop_Ntidentifier(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym5.2.clone(); - let __nt = super::__action91::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5); - let __states_len = __states.len(); - __states.truncate(__states_len - 6); - __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); - 4 - } - 14 => { - // component_declaration = identifier, identifier, units_declaration, string_literal, ";" => ActionFn(92); - let __sym4 = __pop_Term_22_3b_22(__symbols); - let __sym3 = __pop_Ntstring__literal(__symbols); - let __sym2 = __pop_Ntunits__declaration(__symbols); - let __sym1 = __pop_Ntidentifier(__symbols); - let __sym0 = __pop_Ntidentifier(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym4.2.clone(); - let __nt = super::__action92::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4); - let __states_len = __states.len(); - __states.truncate(__states_len - 5); - __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); - 4 - } - 15 => { - // component_declaration = identifier, identifier, value_declaration, string_literal, ";" => ActionFn(93); - let __sym4 = __pop_Term_22_3b_22(__symbols); - let __sym3 = __pop_Ntstring__literal(__symbols); - let __sym2 = __pop_Ntvalue__declaration(__symbols); - let __sym1 = __pop_Ntidentifier(__symbols); - let __sym0 = __pop_Ntidentifier(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym4.2.clone(); - let __nt = super::__action93::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4); - let __states_len = __states.len(); - __states.truncate(__states_len - 5); - __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); - 4 - } - 16 => { - // component_declaration = identifier, identifier, string_literal, ";" => ActionFn(94); - let __sym3 = __pop_Term_22_3b_22(__symbols); - let __sym2 = __pop_Ntstring__literal(__symbols); - let __sym1 = __pop_Ntidentifier(__symbols); - let __sym0 = __pop_Ntidentifier(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym3.2.clone(); - let __nt = super::__action94::<>(input, __sym0, __sym1, __sym2, __sym3); - let __states_len = __states.len(); - __states.truncate(__states_len - 4); - __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); - 4 - } - 17 => { - // component_declaration = identifier, identifier, units_declaration, value_declaration, ";" => ActionFn(95); - let __sym4 = __pop_Term_22_3b_22(__symbols); - let __sym3 = __pop_Ntvalue__declaration(__symbols); - let __sym2 = __pop_Ntunits__declaration(__symbols); - let __sym1 = __pop_Ntidentifier(__symbols); - let __sym0 = __pop_Ntidentifier(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym4.2.clone(); - let __nt = super::__action95::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4); - let __states_len = __states.len(); - __states.truncate(__states_len - 5); - __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); - 4 - } - 18 => { - // component_declaration = identifier, identifier, units_declaration, ";" => ActionFn(96); - let __sym3 = __pop_Term_22_3b_22(__symbols); - let __sym2 = __pop_Ntunits__declaration(__symbols); - let __sym1 = __pop_Ntidentifier(__symbols); - let __sym0 = __pop_Ntidentifier(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym3.2.clone(); - let __nt = super::__action96::<>(input, __sym0, __sym1, __sym2, __sym3); - let __states_len = __states.len(); - __states.truncate(__states_len - 4); - __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); - 4 - } - 19 => { - // component_declaration = identifier, identifier, value_declaration, ";" => ActionFn(97); - let __sym3 = __pop_Term_22_3b_22(__symbols); - let __sym2 = __pop_Ntvalue__declaration(__symbols); - let __sym1 = __pop_Ntidentifier(__symbols); - let __sym0 = __pop_Ntidentifier(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym3.2.clone(); - let __nt = super::__action97::<>(input, __sym0, __sym1, __sym2, __sym3); - let __states_len = __states.len(); - __states.truncate(__states_len - 4); - __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); - 4 - } - 20 => { - // component_declaration = identifier, identifier, ";" => ActionFn(98); - let __sym2 = __pop_Term_22_3b_22(__symbols); - let __sym1 = __pop_Ntidentifier(__symbols); - let __sym0 = __pop_Ntidentifier(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym2.2.clone(); - let __nt = super::__action98::<>(input, __sym0, __sym1, __sym2); - let __states_len = __states.len(); - __states.truncate(__states_len - 3); - __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); - 4 - } - 21 => { - // component_declaration* = => ActionFn(47); - let __start = __symbols.last().map(|s| s.2.clone()).unwrap_or_default(); - let __end = __lookahead_start.cloned().unwrap_or_else(|| __start.clone()); - let __nt = super::__action47::<>(input, &__start, &__end); - let __states_len = __states.len(); - __states.truncate(__states_len - 0); - __symbols.push((__start, __Symbol::Ntcomponent__declaration_2a(__nt), __end)); - 5 - } - 22 => { - // component_declaration* = component_declaration+ => ActionFn(48); - let __sym0 = __pop_Ntcomponent__declaration_2b(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action48::<>(input, __sym0); - let __states_len = __states.len(); - __states.truncate(__states_len - 1); - __symbols.push((__start, __Symbol::Ntcomponent__declaration_2a(__nt), __end)); - 5 - } - 23 => { - // component_declaration+ = component_declaration => ActionFn(49); - let __sym0 = __pop_Ntcomponent__declaration(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action49::<>(input, __sym0); - let __states_len = __states.len(); - __states.truncate(__states_len - 1); - __symbols.push((__start, __Symbol::Ntcomponent__declaration_2b(__nt), __end)); - 6 - } - 24 => { - // component_declaration+ = component_declaration+, component_declaration => ActionFn(50); - let __sym1 = __pop_Ntcomponent__declaration(__symbols); - let __sym0 = __pop_Ntcomponent__declaration_2b(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym1.2.clone(); - let __nt = super::__action50::<>(input, __sym0, __sym1); - let __states_len = __states.len(); - __states.truncate(__states_len - 2); - __symbols.push((__start, __Symbol::Ntcomponent__declaration_2b(__nt), __end)); - 6 - } - 25 => { - // component_prefix = "flow" => ActionFn(12); - let __sym0 = __pop_Term_22flow_22(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action12::<>(input, __sym0); - let __states_len = __states.len(); - __states.truncate(__states_len - 1); - __symbols.push((__start, __Symbol::Ntcomponent__prefix(__nt), __end)); - 7 - } - 26 => { - // component_prefix = "stream" => ActionFn(13); - let __sym0 = __pop_Term_22stream_22(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action13::<>(input, __sym0); - let __states_len = __states.len(); - __states.truncate(__states_len - 1); - __symbols.push((__start, __Symbol::Ntcomponent__prefix(__nt), __end)); - 7 - } - 27 => { - // component_prefix = "input" => ActionFn(14); - let __sym0 = __pop_Term_22input_22(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action14::<>(input, __sym0); - let __states_len = __states.len(); - __states.truncate(__states_len - 1); - __symbols.push((__start, __Symbol::Ntcomponent__prefix(__nt), __end)); - 7 - } - 28 => { - // component_prefix = "output" => ActionFn(15); - let __sym0 = __pop_Term_22output_22(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action15::<>(input, __sym0); - let __states_len = __states.len(); - __states.truncate(__states_len - 1); - __symbols.push((__start, __Symbol::Ntcomponent__prefix(__nt), __end)); - 7 - } - 29 => { - // component_prefix = "discrete" => ActionFn(16); - let __sym0 = __pop_Term_22discrete_22(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action16::<>(input, __sym0); - let __states_len = __states.len(); - __states.truncate(__states_len - 1); - __symbols.push((__start, __Symbol::Ntcomponent__prefix(__nt), __end)); - 7 - } - 30 => { - // component_prefix = "parameter" => ActionFn(17); - let __sym0 = __pop_Term_22parameter_22(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action17::<>(input, __sym0); - let __states_len = __states.len(); - __states.truncate(__states_len - 1); - __symbols.push((__start, __Symbol::Ntcomponent__prefix(__nt), __end)); - 7 - } - 31 => { - // component_prefix = "constant" => ActionFn(18); - let __sym0 = __pop_Term_22constant_22(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action18::<>(input, __sym0); - let __states_len = __states.len(); - __states.truncate(__states_len - 1); - __symbols.push((__start, __Symbol::Ntcomponent__prefix(__nt), __end)); - 7 - } - 32 => { - // component_prefix? = component_prefix => ActionFn(41); - let __sym0 = __pop_Ntcomponent__prefix(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action41::<>(input, __sym0); - let __states_len = __states.len(); - __states.truncate(__states_len - 1); - __symbols.push((__start, __Symbol::Ntcomponent__prefix_3f(__nt), __end)); - 8 - } - 33 => { - // component_prefix? = => ActionFn(42); - let __start = __symbols.last().map(|s| s.2.clone()).unwrap_or_default(); - let __end = __lookahead_start.cloned().unwrap_or_else(|| __start.clone()); - let __nt = super::__action42::<>(input, &__start, &__end); - let __states_len = __states.len(); - __states.truncate(__states_len - 0); - __symbols.push((__start, __Symbol::Ntcomponent__prefix_3f(__nt), __end)); - 8 - } - 34 => { - // connect_clause = "connect", "(", identifier, ",", identifier, ")", ";" => ActionFn(20); - let __sym6 = __pop_Term_22_3b_22(__symbols); - let __sym5 = __pop_Term_22_29_22(__symbols); - let __sym4 = __pop_Ntidentifier(__symbols); - let __sym3 = __pop_Term_22_2c_22(__symbols); - let __sym2 = __pop_Ntidentifier(__symbols); - let __sym1 = __pop_Term_22_28_22(__symbols); - let __sym0 = __pop_Term_22connect_22(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym6.2.clone(); - let __nt = super::__action20::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6); - let __states_len = __states.len(); - __states.truncate(__states_len - 7); - __symbols.push((__start, __Symbol::Ntconnect__clause(__nt), __end)); - 9 - } - 35 => { - // connect_clause* = => ActionFn(45); - let __start = __symbols.last().map(|s| s.2.clone()).unwrap_or_default(); - let __end = __lookahead_start.cloned().unwrap_or_else(|| __start.clone()); - let __nt = super::__action45::<>(input, &__start, &__end); - let __states_len = __states.len(); - __states.truncate(__states_len - 0); - __symbols.push((__start, __Symbol::Ntconnect__clause_2a(__nt), __end)); - 10 - } - 36 => { - // connect_clause* = connect_clause+ => ActionFn(46); - let __sym0 = __pop_Ntconnect__clause_2b(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action46::<>(input, __sym0); - let __states_len = __states.len(); - __states.truncate(__states_len - 1); - __symbols.push((__start, __Symbol::Ntconnect__clause_2a(__nt), __end)); - 10 - } - 37 => { - // connect_clause+ = connect_clause => ActionFn(51); - let __sym0 = __pop_Ntconnect__clause(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action51::<>(input, __sym0); - let __states_len = __states.len(); - __states.truncate(__states_len - 1); - __symbols.push((__start, __Symbol::Ntconnect__clause_2b(__nt), __end)); - 11 - } - 38 => { - // connect_clause+ = connect_clause+, connect_clause => ActionFn(52); - let __sym1 = __pop_Ntconnect__clause(__symbols); - let __sym0 = __pop_Ntconnect__clause_2b(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym1.2.clone(); - let __nt = super::__action52::<>(input, __sym0, __sym1); - let __states_len = __states.len(); - __states.truncate(__states_len - 2); - __symbols.push((__start, __Symbol::Ntconnect__clause_2b(__nt), __end)); - 11 - } - 39 => { - // expr = expr, "+", factor => ActionFn(21); - let __sym2 = __pop_Ntfactor(__symbols); - let __sym1 = __pop_Term_22_2b_22(__symbols); - let __sym0 = __pop_Ntexpr(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym2.2.clone(); - let __nt = super::__action21::<>(input, __sym0, __sym1, __sym2); - let __states_len = __states.len(); - __states.truncate(__states_len - 3); - __symbols.push((__start, __Symbol::Ntexpr(__nt), __end)); - 12 - } - 40 => { - // expr = expr, "-", factor => ActionFn(22); - let __sym2 = __pop_Ntfactor(__symbols); - let __sym1 = __pop_Term_22_2d_22(__symbols); - let __sym0 = __pop_Ntexpr(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym2.2.clone(); - let __nt = super::__action22::<>(input, __sym0, __sym1, __sym2); - let __states_len = __states.len(); - __states.truncate(__states_len - 3); - __symbols.push((__start, __Symbol::Ntexpr(__nt), __end)); - 12 - } - 41 => { - // expr = factor => ActionFn(23); - let __sym0 = __pop_Ntfactor(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action23::<>(input, __sym0); - let __states_len = __states.len(); - __states.truncate(__states_len - 1); - __symbols.push((__start, __Symbol::Ntexpr(__nt), __end)); - 12 - } - 42 => { - // factor = factor, "*", term => ActionFn(24); - let __sym2 = __pop_Ntterm(__symbols); - let __sym1 = __pop_Term_22_2a_22(__symbols); - let __sym0 = __pop_Ntfactor(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym2.2.clone(); - let __nt = super::__action24::<>(input, __sym0, __sym1, __sym2); - let __states_len = __states.len(); - __states.truncate(__states_len - 3); - __symbols.push((__start, __Symbol::Ntfactor(__nt), __end)); - 13 - } - 43 => { - // factor = factor, "/", term => ActionFn(25); - let __sym2 = __pop_Ntterm(__symbols); - let __sym1 = __pop_Term_22_2f_22(__symbols); - let __sym0 = __pop_Ntfactor(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym2.2.clone(); - let __nt = super::__action25::<>(input, __sym0, __sym1, __sym2); - let __states_len = __states.len(); - __states.truncate(__states_len - 3); - __symbols.push((__start, __Symbol::Ntfactor(__nt), __end)); - 13 - } - 44 => { - // factor = factor, "^", term => ActionFn(26); - let __sym2 = __pop_Ntterm(__symbols); - let __sym1 = __pop_Term_22_5e_22(__symbols); - let __sym0 = __pop_Ntfactor(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym2.2.clone(); - let __nt = super::__action26::<>(input, __sym0, __sym1, __sym2); - let __states_len = __states.len(); - __states.truncate(__states_len - 3); - __symbols.push((__start, __Symbol::Ntfactor(__nt), __end)); - 13 - } - 45 => { - // factor = "-", term => ActionFn(27); - let __sym1 = __pop_Ntterm(__symbols); - let __sym0 = __pop_Term_22_2d_22(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym1.2.clone(); - let __nt = super::__action27::<>(input, __sym0, __sym1); - let __states_len = __states.len(); - __states.truncate(__states_len - 2); - __symbols.push((__start, __Symbol::Ntfactor(__nt), __end)); - 13 - } - 46 => { - // factor = term => ActionFn(28); - let __sym0 = __pop_Ntterm(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action28::<>(input, __sym0); - let __states_len = __states.len(); - __states.truncate(__states_len - 1); - __symbols.push((__start, __Symbol::Ntfactor(__nt), __end)); - 13 - } - 47 => { - // float = r#"[+-]?\\d+\\.\\d*([eE][-+]?\\d+)?"# => ActionFn(7); - let __sym0 = __pop_Termr_23_22_5b_2b_2d_5d_3f_5c_5cd_2b_5c_5c_2e_5c_5cd_2a_28_5beE_5d_5b_2d_2b_5d_3f_5c_5cd_2b_29_3f_22_23(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action7::<>(input, __sym0); - let __states_len = __states.len(); - __states.truncate(__states_len - 1); - __symbols.push((__start, __Symbol::Ntfloat(__nt), __end)); - 14 - } - 48 => { - // identifier = r#"[a-zA-Z_][a-zA-Z_0-9]*"# => ActionFn(4); - let __sym0 = __pop_Termr_23_22_5ba_2dzA_2dZ___5d_5ba_2dzA_2dZ__0_2d9_5d_2a_22_23(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action4::<>(input, __sym0); - let __states_len = __states.len(); - __states.truncate(__states_len - 1); - __symbols.push((__start, __Symbol::Ntidentifier(__nt), __end)); - 15 - } - 49 => { - // integer = r#"[+-]?\\d+"# => ActionFn(6); - let __sym0 = __pop_Termr_23_22_5b_2b_2d_5d_3f_5c_5cd_2b_22_23(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action6::<>(input, __sym0); - let __states_len = __states.len(); - __states.truncate(__states_len - 1); - __symbols.push((__start, __Symbol::Ntinteger(__nt), __end)); - 16 - } - 50 => { - // model = "model", identifier, "equation", "end", identifier, ";" => ActionFn(63); - let __sym5 = __pop_Term_22_3b_22(__symbols); - let __sym4 = __pop_Ntidentifier(__symbols); - let __sym3 = __pop_Term_22end_22(__symbols); - let __sym2 = __pop_Term_22equation_22(__symbols); - let __sym1 = __pop_Ntidentifier(__symbols); - let __sym0 = __pop_Term_22model_22(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym5.2.clone(); - let __nt = super::__action63::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5); - let __states_len = __states.len(); - __states.truncate(__states_len - 6); - __symbols.push((__start, __Symbol::Ntmodel(__nt), __end)); - 17 - } - 51 => { - // model = "model", identifier, "equation", simple_equation+, "end", identifier, ";" => ActionFn(64); - let __sym6 = __pop_Term_22_3b_22(__symbols); - let __sym5 = __pop_Ntidentifier(__symbols); - let __sym4 = __pop_Term_22end_22(__symbols); - let __sym3 = __pop_Ntsimple__equation_2b(__symbols); - let __sym2 = __pop_Term_22equation_22(__symbols); - let __sym1 = __pop_Ntidentifier(__symbols); - let __sym0 = __pop_Term_22model_22(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym6.2.clone(); - let __nt = super::__action64::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6); - let __states_len = __states.len(); - __states.truncate(__states_len - 7); - __symbols.push((__start, __Symbol::Ntmodel(__nt), __end)); - 17 - } - 52 => { - // model = "model", identifier, "equation", connect_clause+, "end", identifier, ";" => ActionFn(65); - let __sym6 = __pop_Term_22_3b_22(__symbols); - let __sym5 = __pop_Ntidentifier(__symbols); - let __sym4 = __pop_Term_22end_22(__symbols); - let __sym3 = __pop_Ntconnect__clause_2b(__symbols); - let __sym2 = __pop_Term_22equation_22(__symbols); - let __sym1 = __pop_Ntidentifier(__symbols); - let __sym0 = __pop_Term_22model_22(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym6.2.clone(); - let __nt = super::__action65::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6); - let __states_len = __states.len(); - __states.truncate(__states_len - 7); - __symbols.push((__start, __Symbol::Ntmodel(__nt), __end)); - 17 - } - 53 => { - // model = "model", identifier, "equation", connect_clause+, simple_equation+, "end", identifier, ";" => ActionFn(66); - let __sym7 = __pop_Term_22_3b_22(__symbols); - let __sym6 = __pop_Ntidentifier(__symbols); - let __sym5 = __pop_Term_22end_22(__symbols); - let __sym4 = __pop_Ntsimple__equation_2b(__symbols); - let __sym3 = __pop_Ntconnect__clause_2b(__symbols); - let __sym2 = __pop_Term_22equation_22(__symbols); - let __sym1 = __pop_Ntidentifier(__symbols); - let __sym0 = __pop_Term_22model_22(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym7.2.clone(); - let __nt = super::__action66::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7); - let __states_len = __states.len(); - __states.truncate(__states_len - 8); - __symbols.push((__start, __Symbol::Ntmodel(__nt), __end)); - 17 - } - 54 => { - // model = "model", identifier, component_declaration+, "equation", "end", identifier, ";" => ActionFn(67); - let __sym6 = __pop_Term_22_3b_22(__symbols); - let __sym5 = __pop_Ntidentifier(__symbols); - let __sym4 = __pop_Term_22end_22(__symbols); - let __sym3 = __pop_Term_22equation_22(__symbols); - let __sym2 = __pop_Ntcomponent__declaration_2b(__symbols); - let __sym1 = __pop_Ntidentifier(__symbols); - let __sym0 = __pop_Term_22model_22(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym6.2.clone(); - let __nt = super::__action67::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6); - let __states_len = __states.len(); - __states.truncate(__states_len - 7); - __symbols.push((__start, __Symbol::Ntmodel(__nt), __end)); - 17 - } - 55 => { - // model = "model", identifier, component_declaration+, "equation", simple_equation+, "end", identifier, ";" => ActionFn(68); - let __sym7 = __pop_Term_22_3b_22(__symbols); - let __sym6 = __pop_Ntidentifier(__symbols); - let __sym5 = __pop_Term_22end_22(__symbols); - let __sym4 = __pop_Ntsimple__equation_2b(__symbols); - let __sym3 = __pop_Term_22equation_22(__symbols); - let __sym2 = __pop_Ntcomponent__declaration_2b(__symbols); - let __sym1 = __pop_Ntidentifier(__symbols); - let __sym0 = __pop_Term_22model_22(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym7.2.clone(); - let __nt = super::__action68::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7); - let __states_len = __states.len(); - __states.truncate(__states_len - 8); - __symbols.push((__start, __Symbol::Ntmodel(__nt), __end)); - 17 - } - 56 => { - // model = "model", identifier, component_declaration+, "equation", connect_clause+, "end", identifier, ";" => ActionFn(69); - let __sym7 = __pop_Term_22_3b_22(__symbols); - let __sym6 = __pop_Ntidentifier(__symbols); - let __sym5 = __pop_Term_22end_22(__symbols); - let __sym4 = __pop_Ntconnect__clause_2b(__symbols); - let __sym3 = __pop_Term_22equation_22(__symbols); - let __sym2 = __pop_Ntcomponent__declaration_2b(__symbols); - let __sym1 = __pop_Ntidentifier(__symbols); - let __sym0 = __pop_Term_22model_22(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym7.2.clone(); - let __nt = super::__action69::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7); - let __states_len = __states.len(); - __states.truncate(__states_len - 8); - __symbols.push((__start, __Symbol::Ntmodel(__nt), __end)); - 17 - } - 57 => { - // model = "model", identifier, component_declaration+, "equation", connect_clause+, simple_equation+, "end", identifier, ";" => ActionFn(70); - let __sym8 = __pop_Term_22_3b_22(__symbols); - let __sym7 = __pop_Ntidentifier(__symbols); - let __sym6 = __pop_Term_22end_22(__symbols); - let __sym5 = __pop_Ntsimple__equation_2b(__symbols); - let __sym4 = __pop_Ntconnect__clause_2b(__symbols); - let __sym3 = __pop_Term_22equation_22(__symbols); - let __sym2 = __pop_Ntcomponent__declaration_2b(__symbols); - let __sym1 = __pop_Ntidentifier(__symbols); - let __sym0 = __pop_Term_22model_22(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym8.2.clone(); - let __nt = super::__action70::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7, __sym8); - let __states_len = __states.len(); - __states.truncate(__states_len - 9); - __symbols.push((__start, __Symbol::Ntmodel(__nt), __end)); - 17 - } - 58 => { - // simple_equation = expr, "=", expr, ";" => ActionFn(19); - let __sym3 = __pop_Term_22_3b_22(__symbols); - let __sym2 = __pop_Ntexpr(__symbols); - let __sym1 = __pop_Term_22_3d_22(__symbols); - let __sym0 = __pop_Ntexpr(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym3.2.clone(); - let __nt = super::__action19::<>(input, __sym0, __sym1, __sym2, __sym3); - let __states_len = __states.len(); - __states.truncate(__states_len - 4); - __symbols.push((__start, __Symbol::Ntsimple__equation(__nt), __end)); - 18 - } - 59 => { - // simple_equation* = => ActionFn(43); - let __start = __symbols.last().map(|s| s.2.clone()).unwrap_or_default(); - let __end = __lookahead_start.cloned().unwrap_or_else(|| __start.clone()); - let __nt = super::__action43::<>(input, &__start, &__end); - let __states_len = __states.len(); - __states.truncate(__states_len - 0); - __symbols.push((__start, __Symbol::Ntsimple__equation_2a(__nt), __end)); - 19 - } - 60 => { - // simple_equation* = simple_equation+ => ActionFn(44); - let __sym0 = __pop_Ntsimple__equation_2b(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action44::<>(input, __sym0); - let __states_len = __states.len(); - __states.truncate(__states_len - 1); - __symbols.push((__start, __Symbol::Ntsimple__equation_2a(__nt), __end)); - 19 - } - 61 => { - // simple_equation+ = simple_equation => ActionFn(53); - let __sym0 = __pop_Ntsimple__equation(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action53::<>(input, __sym0); - let __states_len = __states.len(); - __states.truncate(__states_len - 1); - __symbols.push((__start, __Symbol::Ntsimple__equation_2b(__nt), __end)); - 20 - } - 62 => { - // simple_equation+ = simple_equation+, simple_equation => ActionFn(54); - let __sym1 = __pop_Ntsimple__equation(__symbols); - let __sym0 = __pop_Ntsimple__equation_2b(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym1.2.clone(); - let __nt = super::__action54::<>(input, __sym0, __sym1); - let __states_len = __states.len(); - __states.truncate(__states_len - 2); - __symbols.push((__start, __Symbol::Ntsimple__equation_2b(__nt), __end)); - 20 - } - 63 => { - // string_literal = r#"\"[^\"\\\\]*\""# => ActionFn(5); - let __sym0 = __pop_Termr_23_22_5c_22_5b_5e_5c_22_5c_5c_5c_5c_5d_2a_5c_22_22_23(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action5::<>(input, __sym0); - let __states_len = __states.len(); - __states.truncate(__states_len - 1); - __symbols.push((__start, __Symbol::Ntstring__literal(__nt), __end)); - 21 - } - 64 => { - // string_literal? = string_literal => ActionFn(35); - let __sym0 = __pop_Ntstring__literal(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action35::<>(input, __sym0); - let __states_len = __states.len(); - __states.truncate(__states_len - 1); - __symbols.push((__start, __Symbol::Ntstring__literal_3f(__nt), __end)); - 22 - } - 65 => { - // string_literal? = => ActionFn(36); - let __start = __symbols.last().map(|s| s.2.clone()).unwrap_or_default(); - let __end = __lookahead_start.cloned().unwrap_or_else(|| __start.clone()); - let __nt = super::__action36::<>(input, &__start, &__end); - let __states_len = __states.len(); - __states.truncate(__states_len - 0); - __symbols.push((__start, __Symbol::Ntstring__literal_3f(__nt), __end)); - 22 - } - 66 => { - // term = integer => ActionFn(29); - let __sym0 = __pop_Ntinteger(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action29::<>(input, __sym0); - let __states_len = __states.len(); - __states.truncate(__states_len - 1); - __symbols.push((__start, __Symbol::Ntterm(__nt), __end)); - 23 - } - 67 => { - // term = float => ActionFn(30); - let __sym0 = __pop_Ntfloat(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action30::<>(input, __sym0); - let __states_len = __states.len(); - __states.truncate(__states_len - 1); - __symbols.push((__start, __Symbol::Ntterm(__nt), __end)); - 23 - } - 68 => { - // term = identifier => ActionFn(31); - let __sym0 = __pop_Ntidentifier(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action31::<>(input, __sym0); - let __states_len = __states.len(); - __states.truncate(__states_len - 1); - __symbols.push((__start, __Symbol::Ntterm(__nt), __end)); - 23 - } - 69 => { - // term = "der", "(", expr, ")" => ActionFn(32); - let __sym3 = __pop_Term_22_29_22(__symbols); - let __sym2 = __pop_Ntexpr(__symbols); - let __sym1 = __pop_Term_22_28_22(__symbols); - let __sym0 = __pop_Term_22der_22(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym3.2.clone(); - let __nt = super::__action32::<>(input, __sym0, __sym1, __sym2, __sym3); - let __states_len = __states.len(); - __states.truncate(__states_len - 4); - __symbols.push((__start, __Symbol::Ntterm(__nt), __end)); - 23 - } - 70 => { - // term = "abs", "(", expr, ")" => ActionFn(33); - let __sym3 = __pop_Term_22_29_22(__symbols); - let __sym2 = __pop_Ntexpr(__symbols); - let __sym1 = __pop_Term_22_28_22(__symbols); - let __sym0 = __pop_Term_22abs_22(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym3.2.clone(); - let __nt = super::__action33::<>(input, __sym0, __sym1, __sym2, __sym3); - let __states_len = __states.len(); - __states.truncate(__states_len - 4); - __symbols.push((__start, __Symbol::Ntterm(__nt), __end)); - 23 - } - 71 => { - // term = "(", expr, ")" => ActionFn(34); - let __sym2 = __pop_Term_22_29_22(__symbols); - let __sym1 = __pop_Ntexpr(__symbols); - let __sym0 = __pop_Term_22_28_22(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym2.2.clone(); - let __nt = super::__action34::<>(input, __sym0, __sym1, __sym2); - let __states_len = __states.len(); - __states.truncate(__states_len - 3); - __symbols.push((__start, __Symbol::Ntterm(__nt), __end)); - 23 - } - 72 => { - // units_declaration = "(", "unit", "=", string_literal, ")" => ActionFn(10); - let __sym4 = __pop_Term_22_29_22(__symbols); - let __sym3 = __pop_Ntstring__literal(__symbols); - let __sym2 = __pop_Term_22_3d_22(__symbols); - let __sym1 = __pop_Term_22unit_22(__symbols); - let __sym0 = __pop_Term_22_28_22(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym4.2.clone(); - let __nt = super::__action10::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4); - let __states_len = __states.len(); - __states.truncate(__states_len - 5); - __symbols.push((__start, __Symbol::Ntunits__declaration(__nt), __end)); - 24 - } - 73 => { - // units_declaration? = units_declaration => ActionFn(39); - let __sym0 = __pop_Ntunits__declaration(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action39::<>(input, __sym0); - let __states_len = __states.len(); - __states.truncate(__states_len - 1); - __symbols.push((__start, __Symbol::Ntunits__declaration_3f(__nt), __end)); - 25 - } - 74 => { - // units_declaration? = => ActionFn(40); - let __start = __symbols.last().map(|s| s.2.clone()).unwrap_or_default(); - let __end = __lookahead_start.cloned().unwrap_or_else(|| __start.clone()); - let __nt = super::__action40::<>(input, &__start, &__end); - let __states_len = __states.len(); - __states.truncate(__states_len - 0); - __symbols.push((__start, __Symbol::Ntunits__declaration_3f(__nt), __end)); - 25 - } - 75 => { - // value_declaration = "=", expr => ActionFn(9); - let __sym1 = __pop_Ntexpr(__symbols); - let __sym0 = __pop_Term_22_3d_22(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym1.2.clone(); - let __nt = super::__action9::<>(input, __sym0, __sym1); - let __states_len = __states.len(); - __states.truncate(__states_len - 2); - __symbols.push((__start, __Symbol::Ntvalue__declaration(__nt), __end)); - 26 - } - 76 => { - // value_declaration? = value_declaration => ActionFn(37); - let __sym0 = __pop_Ntvalue__declaration(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action37::<>(input, __sym0); - let __states_len = __states.len(); - __states.truncate(__states_len - 1); - __symbols.push((__start, __Symbol::Ntvalue__declaration_3f(__nt), __end)); - 27 - } - 77 => { - // value_declaration? = => ActionFn(38); - let __start = __symbols.last().map(|s| s.2.clone()).unwrap_or_default(); - let __end = __lookahead_start.cloned().unwrap_or_else(|| __start.clone()); - let __nt = super::__action38::<>(input, &__start, &__end); - let __states_len = __states.len(); - __states.truncate(__states_len - 0); - __symbols.push((__start, __Symbol::Ntvalue__declaration_3f(__nt), __end)); - 27 - } - _ => panic!("invalid action code {}", __action) - }; - let __state = *__states.last().unwrap() as usize; - let __next_state = __GOTO[__state * 28 + __nonterminal] - 1; - __states.push(__next_state); - None - } - fn __pop_Term_22_28_22< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, &'input str, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Term_22_28_22(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Term_22_29_22< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, &'input str, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Term_22_29_22(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Term_22_2a_22< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, &'input str, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Term_22_2a_22(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Term_22_2b_22< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, &'input str, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Term_22_2b_22(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Term_22_2c_22< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, &'input str, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Term_22_2c_22(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Term_22_2d_22< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, &'input str, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Term_22_2d_22(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Term_22_2f_22< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, &'input str, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Term_22_2f_22(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Term_22_3b_22< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, &'input str, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Term_22_3b_22(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Term_22_3d_22< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, &'input str, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Term_22_3d_22(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Term_22_5e_22< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, &'input str, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Term_22_5e_22(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Term_22abs_22< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, &'input str, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Term_22abs_22(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Term_22connect_22< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, &'input str, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Term_22connect_22(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Term_22constant_22< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, &'input str, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Term_22constant_22(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Term_22der_22< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, &'input str, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Term_22der_22(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Term_22discrete_22< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, &'input str, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Term_22discrete_22(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Term_22end_22< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, &'input str, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Term_22end_22(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Term_22equation_22< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, &'input str, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Term_22equation_22(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Term_22flow_22< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, &'input str, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Term_22flow_22(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Term_22input_22< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, &'input str, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Term_22input_22(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Term_22model_22< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, &'input str, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Term_22model_22(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Term_22output_22< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, &'input str, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Term_22output_22(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Term_22parameter_22< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, &'input str, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Term_22parameter_22(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Term_22stream_22< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, &'input str, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Term_22stream_22(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Term_22unit_22< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, &'input str, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Term_22unit_22(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Termr_23_22_5c_22_5b_5e_5c_22_5c_5c_5c_5c_5d_2a_5c_22_22_23< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, &'input str, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Termr_23_22_5c_22_5b_5e_5c_22_5c_5c_5c_5c_5d_2a_5c_22_22_23(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Termr_23_22_5b_2b_2d_5d_3f_5c_5cd_2b_22_23< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, &'input str, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Termr_23_22_5b_2b_2d_5d_3f_5c_5cd_2b_22_23(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Termr_23_22_5b_2b_2d_5d_3f_5c_5cd_2b_5c_5c_2e_5c_5cd_2a_28_5beE_5d_5b_2d_2b_5d_3f_5c_5cd_2b_29_3f_22_23< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, &'input str, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Termr_23_22_5b_2b_2d_5d_3f_5c_5cd_2b_5c_5c_2e_5c_5cd_2a_28_5beE_5d_5b_2d_2b_5d_3f_5c_5cd_2b_29_3f_22_23(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Termr_23_22_5ba_2dzA_2dZ___5d_5ba_2dzA_2dZ__0_2d9_5d_2a_22_23< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, &'input str, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Termr_23_22_5ba_2dzA_2dZ___5d_5ba_2dzA_2dZ__0_2d9_5d_2a_22_23(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Termerror< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, __lalrpop_util::ErrorRecovery, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Termerror(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Nt____float< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, f64, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Nt____float(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Nt____identifier< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, String, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Nt____identifier(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Nt____integer< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, i64, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Nt____integer(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Nt____model< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, ModelicaModel, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Nt____model(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Ntcomponent__declaration< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, Component, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Ntcomponent__declaration(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Ntcomponent__declaration_2a< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, ::std::vec::Vec, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Ntcomponent__declaration_2a(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Ntcomponent__declaration_2b< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, ::std::vec::Vec, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Ntcomponent__declaration_2b(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Ntcomponent__prefix< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, ComponentPrefix, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Ntcomponent__prefix(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Ntcomponent__prefix_3f< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, ::std::option::Option, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Ntcomponent__prefix_3f(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Ntconnect__clause< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, Connection, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Ntconnect__clause(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Ntconnect__clause_2a< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, ::std::vec::Vec, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Ntconnect__clause_2a(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Ntconnect__clause_2b< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, ::std::vec::Vec, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Ntconnect__clause_2b(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Ntexpr< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, Expr, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Ntexpr(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Ntfactor< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, Expr, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Ntfactor(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Ntfloat< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, f64, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Ntfloat(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Ntidentifier< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, String, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Ntidentifier(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Ntinteger< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, i64, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Ntinteger(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Ntmodel< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, ModelicaModel, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Ntmodel(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Ntsimple__equation< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, SimpleEquation, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Ntsimple__equation(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Ntsimple__equation_2a< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, ::std::vec::Vec, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Ntsimple__equation_2a(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Ntsimple__equation_2b< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, ::std::vec::Vec, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Ntsimple__equation_2b(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Ntstring__literal< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, String, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Ntstring__literal(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Ntstring__literal_3f< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, ::std::option::Option, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Ntstring__literal_3f(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Ntterm< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, Expr, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Ntterm(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Ntunits__declaration< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, String, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Ntunits__declaration(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Ntunits__declaration_3f< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, ::std::option::Option, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Ntunits__declaration_3f(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Ntvalue__declaration< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, Expr, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Ntvalue__declaration(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Ntvalue__declaration_3f< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, ::std::option::Option, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Ntvalue__declaration_3f(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } -} -pub use self::__parse__float::parse_float; - -mod __parse__identifier { - #![allow(non_snake_case, non_camel_case_types, unused_mut, unused_variables, unused_imports)] - - use std::str::FromStr; - use modelica_ast::{ModelicaModel,Component, ComponentPrefix, Connection, - SimpleEquation, Expr, BinOperator}; - extern crate lalrpop_util as __lalrpop_util; - #[allow(dead_code)] - pub enum __Symbol<'input> { - Term_22_28_22(&'input str), - Term_22_29_22(&'input str), - Term_22_2a_22(&'input str), - Term_22_2b_22(&'input str), - Term_22_2c_22(&'input str), - Term_22_2d_22(&'input str), - Term_22_2f_22(&'input str), - Term_22_3b_22(&'input str), - Term_22_3d_22(&'input str), - Term_22_5e_22(&'input str), - Term_22abs_22(&'input str), - Term_22connect_22(&'input str), - Term_22constant_22(&'input str), - Term_22der_22(&'input str), - Term_22discrete_22(&'input str), - Term_22end_22(&'input str), - Term_22equation_22(&'input str), - Term_22flow_22(&'input str), - Term_22input_22(&'input str), - Term_22model_22(&'input str), - Term_22output_22(&'input str), - Term_22parameter_22(&'input str), - Term_22stream_22(&'input str), - Term_22unit_22(&'input str), - Termr_23_22_5c_22_5b_5e_5c_22_5c_5c_5c_5c_5d_2a_5c_22_22_23(&'input str), - Termr_23_22_5b_2b_2d_5d_3f_5c_5cd_2b_22_23(&'input str), - Termr_23_22_5b_2b_2d_5d_3f_5c_5cd_2b_5c_5c_2e_5c_5cd_2a_28_5beE_5d_5b_2d_2b_5d_3f_5c_5cd_2b_29_3f_22_23(&'input str), - Termr_23_22_5ba_2dzA_2dZ___5d_5ba_2dzA_2dZ__0_2d9_5d_2a_22_23(&'input str), - Termerror(__lalrpop_util::ErrorRecovery), - Nt____float(f64), - Nt____identifier(String), - Nt____integer(i64), - Nt____model(ModelicaModel), - Ntcomponent__declaration(Component), - Ntcomponent__declaration_2a(::std::vec::Vec), - Ntcomponent__declaration_2b(::std::vec::Vec), - Ntcomponent__prefix(ComponentPrefix), - Ntcomponent__prefix_3f(::std::option::Option), - Ntconnect__clause(Connection), - Ntconnect__clause_2a(::std::vec::Vec), - Ntconnect__clause_2b(::std::vec::Vec), - Ntexpr(Expr), - Ntfactor(Expr), - Ntfloat(f64), - Ntidentifier(String), - Ntinteger(i64), - Ntmodel(ModelicaModel), - Ntsimple__equation(SimpleEquation), - Ntsimple__equation_2a(::std::vec::Vec), - Ntsimple__equation_2b(::std::vec::Vec), - Ntstring__literal(String), - Ntstring__literal_3f(::std::option::Option), - Ntterm(Expr), - Ntunits__declaration(String), - Ntunits__declaration_3f(::std::option::Option), - Ntvalue__declaration(Expr), - Ntvalue__declaration_3f(::std::option::Option), - } - const __ACTION: &'static [i32] = &[ - // State 0 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 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, - // State 2 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - ]; - const __EOF_ACTION: &'static [i32] = &[ - 0, - -2, - -48, - ]; - const __GOTO: &'static [i32] = &[ - // State 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, - // 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, - // State 2 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - ]; - pub fn parse_identifier< - 'input, - >( - input: &'input str, - ) -> Result> - { - let mut __tokens = super::__intern_token::__Matcher::new(input); - let mut __states = vec![0_i32]; - let mut __symbols = vec![]; - let mut __integer; - let mut __lookahead; - let mut __last_location = Default::default(); - '__shift: loop { - __lookahead = match __tokens.next() { - Some(Ok(v)) => v, - None => break '__shift, - Some(Err(e)) => return Err(e), - }; - __last_location = __lookahead.2.clone(); - __integer = match __lookahead.1 { - (0, _) if true => 0, - (1, _) if true => 1, - (2, _) if true => 2, - (3, _) if true => 3, - (4, _) if true => 4, - (5, _) if true => 5, - (6, _) if true => 6, - (7, _) if true => 7, - (8, _) if true => 8, - (9, _) if true => 9, - (10, _) if true => 10, - (11, _) if true => 11, - (12, _) if true => 12, - (13, _) if true => 13, - (14, _) if true => 14, - (15, _) if true => 15, - (16, _) if true => 16, - (17, _) if true => 17, - (18, _) if true => 18, - (19, _) if true => 19, - (20, _) if true => 20, - (21, _) if true => 21, - (22, _) if true => 22, - (23, _) if true => 23, - (24, _) if true => 24, - (25, _) if true => 25, - (26, _) if true => 26, - (27, _) if true => 27, - _ => { - return Err(__lalrpop_util::ParseError::UnrecognizedToken { - token: Some(__lookahead), - expected: vec![], - }); - } - }; - '__inner: loop { - let __state = *__states.last().unwrap() as usize; - let __action = __ACTION[__state * 29 + __integer]; - if __action > 0 { - let __symbol = match __integer { - 0 => match __lookahead.1 { - (0, __tok0) => __Symbol::Term_22_28_22(__tok0), - _ => unreachable!(), - }, - 1 => match __lookahead.1 { - (1, __tok0) => __Symbol::Term_22_29_22(__tok0), - _ => unreachable!(), - }, - 2 => match __lookahead.1 { - (2, __tok0) => __Symbol::Term_22_2a_22(__tok0), - _ => unreachable!(), - }, - 3 => match __lookahead.1 { - (3, __tok0) => __Symbol::Term_22_2b_22(__tok0), - _ => unreachable!(), - }, - 4 => match __lookahead.1 { - (4, __tok0) => __Symbol::Term_22_2c_22(__tok0), - _ => unreachable!(), - }, - 5 => match __lookahead.1 { - (5, __tok0) => __Symbol::Term_22_2d_22(__tok0), - _ => unreachable!(), - }, - 6 => match __lookahead.1 { - (6, __tok0) => __Symbol::Term_22_2f_22(__tok0), - _ => unreachable!(), - }, - 7 => match __lookahead.1 { - (7, __tok0) => __Symbol::Term_22_3b_22(__tok0), - _ => unreachable!(), - }, - 8 => match __lookahead.1 { - (8, __tok0) => __Symbol::Term_22_3d_22(__tok0), - _ => unreachable!(), - }, - 9 => match __lookahead.1 { - (9, __tok0) => __Symbol::Term_22_5e_22(__tok0), - _ => unreachable!(), - }, - 10 => match __lookahead.1 { - (10, __tok0) => __Symbol::Term_22abs_22(__tok0), - _ => unreachable!(), - }, - 11 => match __lookahead.1 { - (11, __tok0) => __Symbol::Term_22connect_22(__tok0), - _ => unreachable!(), - }, - 12 => match __lookahead.1 { - (12, __tok0) => __Symbol::Term_22constant_22(__tok0), - _ => unreachable!(), - }, - 13 => match __lookahead.1 { - (13, __tok0) => __Symbol::Term_22der_22(__tok0), - _ => unreachable!(), - }, - 14 => match __lookahead.1 { - (14, __tok0) => __Symbol::Term_22discrete_22(__tok0), - _ => unreachable!(), - }, - 15 => match __lookahead.1 { - (15, __tok0) => __Symbol::Term_22end_22(__tok0), - _ => unreachable!(), - }, - 16 => match __lookahead.1 { - (16, __tok0) => __Symbol::Term_22equation_22(__tok0), - _ => unreachable!(), - }, - 17 => match __lookahead.1 { - (17, __tok0) => __Symbol::Term_22flow_22(__tok0), - _ => unreachable!(), - }, - 18 => match __lookahead.1 { - (18, __tok0) => __Symbol::Term_22input_22(__tok0), - _ => unreachable!(), - }, - 19 => match __lookahead.1 { - (19, __tok0) => __Symbol::Term_22model_22(__tok0), - _ => unreachable!(), - }, - 20 => match __lookahead.1 { - (20, __tok0) => __Symbol::Term_22output_22(__tok0), - _ => unreachable!(), - }, - 21 => match __lookahead.1 { - (21, __tok0) => __Symbol::Term_22parameter_22(__tok0), - _ => unreachable!(), - }, - 22 => match __lookahead.1 { - (22, __tok0) => __Symbol::Term_22stream_22(__tok0), - _ => unreachable!(), - }, - 23 => match __lookahead.1 { - (23, __tok0) => __Symbol::Term_22unit_22(__tok0), - _ => unreachable!(), - }, - 24 => match __lookahead.1 { - (24, __tok0) => __Symbol::Termr_23_22_5c_22_5b_5e_5c_22_5c_5c_5c_5c_5d_2a_5c_22_22_23(__tok0), - _ => unreachable!(), - }, - 25 => match __lookahead.1 { - (25, __tok0) => __Symbol::Termr_23_22_5b_2b_2d_5d_3f_5c_5cd_2b_22_23(__tok0), - _ => unreachable!(), - }, - 26 => match __lookahead.1 { - (26, __tok0) => __Symbol::Termr_23_22_5b_2b_2d_5d_3f_5c_5cd_2b_5c_5c_2e_5c_5cd_2a_28_5beE_5d_5b_2d_2b_5d_3f_5c_5cd_2b_29_3f_22_23(__tok0), - _ => unreachable!(), - }, - 27 => match __lookahead.1 { - (27, __tok0) => __Symbol::Termr_23_22_5ba_2dzA_2dZ___5d_5ba_2dzA_2dZ__0_2d9_5d_2a_22_23(__tok0), - _ => unreachable!(), - }, - _ => unreachable!(), - }; - __states.push(__action - 1); - __symbols.push((__lookahead.0, __symbol, __lookahead.2)); - continue '__shift; - } else if __action < 0 { - if let Some(r) = __reduce(input, __action, Some(&__lookahead.0), &mut __states, &mut __symbols, ::std::marker::PhantomData::<()>) { - return r; - } - } else { - return Err(__lalrpop_util::ParseError::UnrecognizedToken { - token: Some(__lookahead), - expected: vec![], - }); - } - } - } - loop { - let __state = *__states.last().unwrap() as usize; - let __action = __EOF_ACTION[__state]; - if __action < 0 { - if let Some(r) = __reduce(input, __action, None, &mut __states, &mut __symbols, ::std::marker::PhantomData::<()>) { - return r; - } - } else { - let __error = __lalrpop_util::ParseError::UnrecognizedToken { - token: None, - expected: vec![], - }; - return Err(__error); - } - } - } - pub fn __reduce< - 'input, - >( - input: &'input str, - __action: i32, - __lookahead_start: Option<&usize>, - __states: &mut ::std::vec::Vec, - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, - _: ::std::marker::PhantomData<()>, - ) -> Option>> - { - let __nonterminal = match -__action { - 1 => { - // __float = float => ActionFn(2); - let __sym0 = __pop_Ntfloat(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action2::<>(input, __sym0); - let __states_len = __states.len(); - __states.truncate(__states_len - 1); - __symbols.push((__start, __Symbol::Nt____float(__nt), __end)); - 0 - } - 2 => { - // __identifier = identifier => ActionFn(0); - let __sym0 = __pop_Ntidentifier(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action0::<>(input, __sym0); - return Some(Ok(__nt)); - } - 3 => { - // __integer = integer => ActionFn(1); - let __sym0 = __pop_Ntinteger(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action1::<>(input, __sym0); - let __states_len = __states.len(); - __states.truncate(__states_len - 1); - __symbols.push((__start, __Symbol::Nt____integer(__nt), __end)); - 2 - } - 4 => { - // __model = model => ActionFn(3); - let __sym0 = __pop_Ntmodel(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action3::<>(input, __sym0); - let __states_len = __states.len(); - __states.truncate(__states_len - 1); - __symbols.push((__start, __Symbol::Nt____model(__nt), __end)); - 3 - } - 5 => { - // component_declaration = component_prefix, identifier, identifier, units_declaration, value_declaration, string_literal, ";" => ActionFn(83); - let __sym6 = __pop_Term_22_3b_22(__symbols); - let __sym5 = __pop_Ntstring__literal(__symbols); - let __sym4 = __pop_Ntvalue__declaration(__symbols); - let __sym3 = __pop_Ntunits__declaration(__symbols); - let __sym2 = __pop_Ntidentifier(__symbols); - let __sym1 = __pop_Ntidentifier(__symbols); - let __sym0 = __pop_Ntcomponent__prefix(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym6.2.clone(); - let __nt = super::__action83::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6); - let __states_len = __states.len(); - __states.truncate(__states_len - 7); - __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); - 4 - } - 6 => { - // component_declaration = component_prefix, identifier, identifier, units_declaration, string_literal, ";" => ActionFn(84); - let __sym5 = __pop_Term_22_3b_22(__symbols); - let __sym4 = __pop_Ntstring__literal(__symbols); - let __sym3 = __pop_Ntunits__declaration(__symbols); - let __sym2 = __pop_Ntidentifier(__symbols); - let __sym1 = __pop_Ntidentifier(__symbols); - let __sym0 = __pop_Ntcomponent__prefix(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym5.2.clone(); - let __nt = super::__action84::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5); - let __states_len = __states.len(); - __states.truncate(__states_len - 6); - __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); - 4 - } - 7 => { - // component_declaration = component_prefix, identifier, identifier, value_declaration, string_literal, ";" => ActionFn(85); - let __sym5 = __pop_Term_22_3b_22(__symbols); - let __sym4 = __pop_Ntstring__literal(__symbols); - let __sym3 = __pop_Ntvalue__declaration(__symbols); - let __sym2 = __pop_Ntidentifier(__symbols); - let __sym1 = __pop_Ntidentifier(__symbols); - let __sym0 = __pop_Ntcomponent__prefix(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym5.2.clone(); - let __nt = super::__action85::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5); - let __states_len = __states.len(); - __states.truncate(__states_len - 6); - __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); - 4 - } - 8 => { - // component_declaration = component_prefix, identifier, identifier, string_literal, ";" => ActionFn(86); - let __sym4 = __pop_Term_22_3b_22(__symbols); - let __sym3 = __pop_Ntstring__literal(__symbols); - let __sym2 = __pop_Ntidentifier(__symbols); - let __sym1 = __pop_Ntidentifier(__symbols); - let __sym0 = __pop_Ntcomponent__prefix(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym4.2.clone(); - let __nt = super::__action86::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4); - let __states_len = __states.len(); - __states.truncate(__states_len - 5); - __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); - 4 - } - 9 => { - // component_declaration = component_prefix, identifier, identifier, units_declaration, value_declaration, ";" => ActionFn(87); - let __sym5 = __pop_Term_22_3b_22(__symbols); - let __sym4 = __pop_Ntvalue__declaration(__symbols); - let __sym3 = __pop_Ntunits__declaration(__symbols); - let __sym2 = __pop_Ntidentifier(__symbols); - let __sym1 = __pop_Ntidentifier(__symbols); - let __sym0 = __pop_Ntcomponent__prefix(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym5.2.clone(); - let __nt = super::__action87::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5); - let __states_len = __states.len(); - __states.truncate(__states_len - 6); - __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); - 4 - } - 10 => { - // component_declaration = component_prefix, identifier, identifier, units_declaration, ";" => ActionFn(88); - let __sym4 = __pop_Term_22_3b_22(__symbols); - let __sym3 = __pop_Ntunits__declaration(__symbols); - let __sym2 = __pop_Ntidentifier(__symbols); - let __sym1 = __pop_Ntidentifier(__symbols); - let __sym0 = __pop_Ntcomponent__prefix(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym4.2.clone(); - let __nt = super::__action88::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4); - let __states_len = __states.len(); - __states.truncate(__states_len - 5); - __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); - 4 - } - 11 => { - // component_declaration = component_prefix, identifier, identifier, value_declaration, ";" => ActionFn(89); - let __sym4 = __pop_Term_22_3b_22(__symbols); - let __sym3 = __pop_Ntvalue__declaration(__symbols); - let __sym2 = __pop_Ntidentifier(__symbols); - let __sym1 = __pop_Ntidentifier(__symbols); - let __sym0 = __pop_Ntcomponent__prefix(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym4.2.clone(); - let __nt = super::__action89::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4); - let __states_len = __states.len(); - __states.truncate(__states_len - 5); - __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); - 4 - } - 12 => { - // component_declaration = component_prefix, identifier, identifier, ";" => ActionFn(90); - let __sym3 = __pop_Term_22_3b_22(__symbols); - let __sym2 = __pop_Ntidentifier(__symbols); - let __sym1 = __pop_Ntidentifier(__symbols); - let __sym0 = __pop_Ntcomponent__prefix(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym3.2.clone(); - let __nt = super::__action90::<>(input, __sym0, __sym1, __sym2, __sym3); - let __states_len = __states.len(); - __states.truncate(__states_len - 4); - __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); - 4 - } - 13 => { - // component_declaration = identifier, identifier, units_declaration, value_declaration, string_literal, ";" => ActionFn(91); - let __sym5 = __pop_Term_22_3b_22(__symbols); - let __sym4 = __pop_Ntstring__literal(__symbols); - let __sym3 = __pop_Ntvalue__declaration(__symbols); - let __sym2 = __pop_Ntunits__declaration(__symbols); - let __sym1 = __pop_Ntidentifier(__symbols); - let __sym0 = __pop_Ntidentifier(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym5.2.clone(); - let __nt = super::__action91::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5); - let __states_len = __states.len(); - __states.truncate(__states_len - 6); - __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); - 4 - } - 14 => { - // component_declaration = identifier, identifier, units_declaration, string_literal, ";" => ActionFn(92); - let __sym4 = __pop_Term_22_3b_22(__symbols); - let __sym3 = __pop_Ntstring__literal(__symbols); - let __sym2 = __pop_Ntunits__declaration(__symbols); - let __sym1 = __pop_Ntidentifier(__symbols); - let __sym0 = __pop_Ntidentifier(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym4.2.clone(); - let __nt = super::__action92::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4); - let __states_len = __states.len(); - __states.truncate(__states_len - 5); - __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); - 4 - } - 15 => { - // component_declaration = identifier, identifier, value_declaration, string_literal, ";" => ActionFn(93); - let __sym4 = __pop_Term_22_3b_22(__symbols); - let __sym3 = __pop_Ntstring__literal(__symbols); - let __sym2 = __pop_Ntvalue__declaration(__symbols); - let __sym1 = __pop_Ntidentifier(__symbols); - let __sym0 = __pop_Ntidentifier(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym4.2.clone(); - let __nt = super::__action93::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4); - let __states_len = __states.len(); - __states.truncate(__states_len - 5); - __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); - 4 - } - 16 => { - // component_declaration = identifier, identifier, string_literal, ";" => ActionFn(94); - let __sym3 = __pop_Term_22_3b_22(__symbols); - let __sym2 = __pop_Ntstring__literal(__symbols); - let __sym1 = __pop_Ntidentifier(__symbols); - let __sym0 = __pop_Ntidentifier(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym3.2.clone(); - let __nt = super::__action94::<>(input, __sym0, __sym1, __sym2, __sym3); - let __states_len = __states.len(); - __states.truncate(__states_len - 4); - __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); - 4 - } - 17 => { - // component_declaration = identifier, identifier, units_declaration, value_declaration, ";" => ActionFn(95); - let __sym4 = __pop_Term_22_3b_22(__symbols); - let __sym3 = __pop_Ntvalue__declaration(__symbols); - let __sym2 = __pop_Ntunits__declaration(__symbols); - let __sym1 = __pop_Ntidentifier(__symbols); - let __sym0 = __pop_Ntidentifier(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym4.2.clone(); - let __nt = super::__action95::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4); - let __states_len = __states.len(); - __states.truncate(__states_len - 5); - __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); - 4 - } - 18 => { - // component_declaration = identifier, identifier, units_declaration, ";" => ActionFn(96); - let __sym3 = __pop_Term_22_3b_22(__symbols); - let __sym2 = __pop_Ntunits__declaration(__symbols); - let __sym1 = __pop_Ntidentifier(__symbols); - let __sym0 = __pop_Ntidentifier(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym3.2.clone(); - let __nt = super::__action96::<>(input, __sym0, __sym1, __sym2, __sym3); - let __states_len = __states.len(); - __states.truncate(__states_len - 4); - __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); - 4 - } - 19 => { - // component_declaration = identifier, identifier, value_declaration, ";" => ActionFn(97); - let __sym3 = __pop_Term_22_3b_22(__symbols); - let __sym2 = __pop_Ntvalue__declaration(__symbols); - let __sym1 = __pop_Ntidentifier(__symbols); - let __sym0 = __pop_Ntidentifier(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym3.2.clone(); - let __nt = super::__action97::<>(input, __sym0, __sym1, __sym2, __sym3); - let __states_len = __states.len(); - __states.truncate(__states_len - 4); - __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); - 4 - } - 20 => { - // component_declaration = identifier, identifier, ";" => ActionFn(98); - let __sym2 = __pop_Term_22_3b_22(__symbols); - let __sym1 = __pop_Ntidentifier(__symbols); - let __sym0 = __pop_Ntidentifier(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym2.2.clone(); - let __nt = super::__action98::<>(input, __sym0, __sym1, __sym2); - let __states_len = __states.len(); - __states.truncate(__states_len - 3); - __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); - 4 - } - 21 => { - // component_declaration* = => ActionFn(47); - let __start = __symbols.last().map(|s| s.2.clone()).unwrap_or_default(); - let __end = __lookahead_start.cloned().unwrap_or_else(|| __start.clone()); - let __nt = super::__action47::<>(input, &__start, &__end); - let __states_len = __states.len(); - __states.truncate(__states_len - 0); - __symbols.push((__start, __Symbol::Ntcomponent__declaration_2a(__nt), __end)); - 5 - } - 22 => { - // component_declaration* = component_declaration+ => ActionFn(48); - let __sym0 = __pop_Ntcomponent__declaration_2b(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action48::<>(input, __sym0); - let __states_len = __states.len(); - __states.truncate(__states_len - 1); - __symbols.push((__start, __Symbol::Ntcomponent__declaration_2a(__nt), __end)); - 5 - } - 23 => { - // component_declaration+ = component_declaration => ActionFn(49); - let __sym0 = __pop_Ntcomponent__declaration(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action49::<>(input, __sym0); - let __states_len = __states.len(); - __states.truncate(__states_len - 1); - __symbols.push((__start, __Symbol::Ntcomponent__declaration_2b(__nt), __end)); - 6 - } - 24 => { - // component_declaration+ = component_declaration+, component_declaration => ActionFn(50); - let __sym1 = __pop_Ntcomponent__declaration(__symbols); - let __sym0 = __pop_Ntcomponent__declaration_2b(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym1.2.clone(); - let __nt = super::__action50::<>(input, __sym0, __sym1); - let __states_len = __states.len(); - __states.truncate(__states_len - 2); - __symbols.push((__start, __Symbol::Ntcomponent__declaration_2b(__nt), __end)); - 6 - } - 25 => { - // component_prefix = "flow" => ActionFn(12); - let __sym0 = __pop_Term_22flow_22(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action12::<>(input, __sym0); - let __states_len = __states.len(); - __states.truncate(__states_len - 1); - __symbols.push((__start, __Symbol::Ntcomponent__prefix(__nt), __end)); - 7 - } - 26 => { - // component_prefix = "stream" => ActionFn(13); - let __sym0 = __pop_Term_22stream_22(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action13::<>(input, __sym0); - let __states_len = __states.len(); - __states.truncate(__states_len - 1); - __symbols.push((__start, __Symbol::Ntcomponent__prefix(__nt), __end)); - 7 - } - 27 => { - // component_prefix = "input" => ActionFn(14); - let __sym0 = __pop_Term_22input_22(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action14::<>(input, __sym0); - let __states_len = __states.len(); - __states.truncate(__states_len - 1); - __symbols.push((__start, __Symbol::Ntcomponent__prefix(__nt), __end)); - 7 - } - 28 => { - // component_prefix = "output" => ActionFn(15); - let __sym0 = __pop_Term_22output_22(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action15::<>(input, __sym0); - let __states_len = __states.len(); - __states.truncate(__states_len - 1); - __symbols.push((__start, __Symbol::Ntcomponent__prefix(__nt), __end)); - 7 - } - 29 => { - // component_prefix = "discrete" => ActionFn(16); - let __sym0 = __pop_Term_22discrete_22(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action16::<>(input, __sym0); - let __states_len = __states.len(); - __states.truncate(__states_len - 1); - __symbols.push((__start, __Symbol::Ntcomponent__prefix(__nt), __end)); - 7 - } - 30 => { - // component_prefix = "parameter" => ActionFn(17); - let __sym0 = __pop_Term_22parameter_22(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action17::<>(input, __sym0); - let __states_len = __states.len(); - __states.truncate(__states_len - 1); - __symbols.push((__start, __Symbol::Ntcomponent__prefix(__nt), __end)); - 7 - } - 31 => { - // component_prefix = "constant" => ActionFn(18); - let __sym0 = __pop_Term_22constant_22(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action18::<>(input, __sym0); - let __states_len = __states.len(); - __states.truncate(__states_len - 1); - __symbols.push((__start, __Symbol::Ntcomponent__prefix(__nt), __end)); - 7 - } - 32 => { - // component_prefix? = component_prefix => ActionFn(41); - let __sym0 = __pop_Ntcomponent__prefix(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action41::<>(input, __sym0); - let __states_len = __states.len(); - __states.truncate(__states_len - 1); - __symbols.push((__start, __Symbol::Ntcomponent__prefix_3f(__nt), __end)); - 8 - } - 33 => { - // component_prefix? = => ActionFn(42); - let __start = __symbols.last().map(|s| s.2.clone()).unwrap_or_default(); - let __end = __lookahead_start.cloned().unwrap_or_else(|| __start.clone()); - let __nt = super::__action42::<>(input, &__start, &__end); - let __states_len = __states.len(); - __states.truncate(__states_len - 0); - __symbols.push((__start, __Symbol::Ntcomponent__prefix_3f(__nt), __end)); - 8 - } - 34 => { - // connect_clause = "connect", "(", identifier, ",", identifier, ")", ";" => ActionFn(20); - let __sym6 = __pop_Term_22_3b_22(__symbols); - let __sym5 = __pop_Term_22_29_22(__symbols); - let __sym4 = __pop_Ntidentifier(__symbols); - let __sym3 = __pop_Term_22_2c_22(__symbols); - let __sym2 = __pop_Ntidentifier(__symbols); - let __sym1 = __pop_Term_22_28_22(__symbols); - let __sym0 = __pop_Term_22connect_22(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym6.2.clone(); - let __nt = super::__action20::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6); - let __states_len = __states.len(); - __states.truncate(__states_len - 7); - __symbols.push((__start, __Symbol::Ntconnect__clause(__nt), __end)); - 9 - } - 35 => { - // connect_clause* = => ActionFn(45); - let __start = __symbols.last().map(|s| s.2.clone()).unwrap_or_default(); - let __end = __lookahead_start.cloned().unwrap_or_else(|| __start.clone()); - let __nt = super::__action45::<>(input, &__start, &__end); - let __states_len = __states.len(); - __states.truncate(__states_len - 0); - __symbols.push((__start, __Symbol::Ntconnect__clause_2a(__nt), __end)); - 10 - } - 36 => { - // connect_clause* = connect_clause+ => ActionFn(46); - let __sym0 = __pop_Ntconnect__clause_2b(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action46::<>(input, __sym0); - let __states_len = __states.len(); - __states.truncate(__states_len - 1); - __symbols.push((__start, __Symbol::Ntconnect__clause_2a(__nt), __end)); - 10 - } - 37 => { - // connect_clause+ = connect_clause => ActionFn(51); - let __sym0 = __pop_Ntconnect__clause(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action51::<>(input, __sym0); - let __states_len = __states.len(); - __states.truncate(__states_len - 1); - __symbols.push((__start, __Symbol::Ntconnect__clause_2b(__nt), __end)); - 11 - } - 38 => { - // connect_clause+ = connect_clause+, connect_clause => ActionFn(52); - let __sym1 = __pop_Ntconnect__clause(__symbols); - let __sym0 = __pop_Ntconnect__clause_2b(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym1.2.clone(); - let __nt = super::__action52::<>(input, __sym0, __sym1); - let __states_len = __states.len(); - __states.truncate(__states_len - 2); - __symbols.push((__start, __Symbol::Ntconnect__clause_2b(__nt), __end)); - 11 - } - 39 => { - // expr = expr, "+", factor => ActionFn(21); - let __sym2 = __pop_Ntfactor(__symbols); - let __sym1 = __pop_Term_22_2b_22(__symbols); - let __sym0 = __pop_Ntexpr(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym2.2.clone(); - let __nt = super::__action21::<>(input, __sym0, __sym1, __sym2); - let __states_len = __states.len(); - __states.truncate(__states_len - 3); - __symbols.push((__start, __Symbol::Ntexpr(__nt), __end)); - 12 - } - 40 => { - // expr = expr, "-", factor => ActionFn(22); - let __sym2 = __pop_Ntfactor(__symbols); - let __sym1 = __pop_Term_22_2d_22(__symbols); - let __sym0 = __pop_Ntexpr(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym2.2.clone(); - let __nt = super::__action22::<>(input, __sym0, __sym1, __sym2); - let __states_len = __states.len(); - __states.truncate(__states_len - 3); - __symbols.push((__start, __Symbol::Ntexpr(__nt), __end)); - 12 - } - 41 => { - // expr = factor => ActionFn(23); - let __sym0 = __pop_Ntfactor(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action23::<>(input, __sym0); - let __states_len = __states.len(); - __states.truncate(__states_len - 1); - __symbols.push((__start, __Symbol::Ntexpr(__nt), __end)); - 12 - } - 42 => { - // factor = factor, "*", term => ActionFn(24); - let __sym2 = __pop_Ntterm(__symbols); - let __sym1 = __pop_Term_22_2a_22(__symbols); - let __sym0 = __pop_Ntfactor(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym2.2.clone(); - let __nt = super::__action24::<>(input, __sym0, __sym1, __sym2); - let __states_len = __states.len(); - __states.truncate(__states_len - 3); - __symbols.push((__start, __Symbol::Ntfactor(__nt), __end)); - 13 - } - 43 => { - // factor = factor, "/", term => ActionFn(25); - let __sym2 = __pop_Ntterm(__symbols); - let __sym1 = __pop_Term_22_2f_22(__symbols); - let __sym0 = __pop_Ntfactor(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym2.2.clone(); - let __nt = super::__action25::<>(input, __sym0, __sym1, __sym2); - let __states_len = __states.len(); - __states.truncate(__states_len - 3); - __symbols.push((__start, __Symbol::Ntfactor(__nt), __end)); - 13 - } - 44 => { - // factor = factor, "^", term => ActionFn(26); - let __sym2 = __pop_Ntterm(__symbols); - let __sym1 = __pop_Term_22_5e_22(__symbols); - let __sym0 = __pop_Ntfactor(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym2.2.clone(); - let __nt = super::__action26::<>(input, __sym0, __sym1, __sym2); - let __states_len = __states.len(); - __states.truncate(__states_len - 3); - __symbols.push((__start, __Symbol::Ntfactor(__nt), __end)); - 13 - } - 45 => { - // factor = "-", term => ActionFn(27); - let __sym1 = __pop_Ntterm(__symbols); - let __sym0 = __pop_Term_22_2d_22(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym1.2.clone(); - let __nt = super::__action27::<>(input, __sym0, __sym1); - let __states_len = __states.len(); - __states.truncate(__states_len - 2); - __symbols.push((__start, __Symbol::Ntfactor(__nt), __end)); - 13 - } - 46 => { - // factor = term => ActionFn(28); - let __sym0 = __pop_Ntterm(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action28::<>(input, __sym0); - let __states_len = __states.len(); - __states.truncate(__states_len - 1); - __symbols.push((__start, __Symbol::Ntfactor(__nt), __end)); - 13 - } - 47 => { - // float = r#"[+-]?\\d+\\.\\d*([eE][-+]?\\d+)?"# => ActionFn(7); - let __sym0 = __pop_Termr_23_22_5b_2b_2d_5d_3f_5c_5cd_2b_5c_5c_2e_5c_5cd_2a_28_5beE_5d_5b_2d_2b_5d_3f_5c_5cd_2b_29_3f_22_23(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action7::<>(input, __sym0); - let __states_len = __states.len(); - __states.truncate(__states_len - 1); - __symbols.push((__start, __Symbol::Ntfloat(__nt), __end)); - 14 - } - 48 => { - // identifier = r#"[a-zA-Z_][a-zA-Z_0-9]*"# => ActionFn(4); - let __sym0 = __pop_Termr_23_22_5ba_2dzA_2dZ___5d_5ba_2dzA_2dZ__0_2d9_5d_2a_22_23(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action4::<>(input, __sym0); - let __states_len = __states.len(); - __states.truncate(__states_len - 1); - __symbols.push((__start, __Symbol::Ntidentifier(__nt), __end)); - 15 - } - 49 => { - // integer = r#"[+-]?\\d+"# => ActionFn(6); - let __sym0 = __pop_Termr_23_22_5b_2b_2d_5d_3f_5c_5cd_2b_22_23(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action6::<>(input, __sym0); - let __states_len = __states.len(); - __states.truncate(__states_len - 1); - __symbols.push((__start, __Symbol::Ntinteger(__nt), __end)); - 16 - } - 50 => { - // model = "model", identifier, "equation", "end", identifier, ";" => ActionFn(63); - let __sym5 = __pop_Term_22_3b_22(__symbols); - let __sym4 = __pop_Ntidentifier(__symbols); - let __sym3 = __pop_Term_22end_22(__symbols); - let __sym2 = __pop_Term_22equation_22(__symbols); - let __sym1 = __pop_Ntidentifier(__symbols); - let __sym0 = __pop_Term_22model_22(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym5.2.clone(); - let __nt = super::__action63::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5); - let __states_len = __states.len(); - __states.truncate(__states_len - 6); - __symbols.push((__start, __Symbol::Ntmodel(__nt), __end)); - 17 - } - 51 => { - // model = "model", identifier, "equation", simple_equation+, "end", identifier, ";" => ActionFn(64); - let __sym6 = __pop_Term_22_3b_22(__symbols); - let __sym5 = __pop_Ntidentifier(__symbols); - let __sym4 = __pop_Term_22end_22(__symbols); - let __sym3 = __pop_Ntsimple__equation_2b(__symbols); - let __sym2 = __pop_Term_22equation_22(__symbols); - let __sym1 = __pop_Ntidentifier(__symbols); - let __sym0 = __pop_Term_22model_22(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym6.2.clone(); - let __nt = super::__action64::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6); - let __states_len = __states.len(); - __states.truncate(__states_len - 7); - __symbols.push((__start, __Symbol::Ntmodel(__nt), __end)); - 17 - } - 52 => { - // model = "model", identifier, "equation", connect_clause+, "end", identifier, ";" => ActionFn(65); - let __sym6 = __pop_Term_22_3b_22(__symbols); - let __sym5 = __pop_Ntidentifier(__symbols); - let __sym4 = __pop_Term_22end_22(__symbols); - let __sym3 = __pop_Ntconnect__clause_2b(__symbols); - let __sym2 = __pop_Term_22equation_22(__symbols); - let __sym1 = __pop_Ntidentifier(__symbols); - let __sym0 = __pop_Term_22model_22(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym6.2.clone(); - let __nt = super::__action65::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6); - let __states_len = __states.len(); - __states.truncate(__states_len - 7); - __symbols.push((__start, __Symbol::Ntmodel(__nt), __end)); - 17 - } - 53 => { - // model = "model", identifier, "equation", connect_clause+, simple_equation+, "end", identifier, ";" => ActionFn(66); - let __sym7 = __pop_Term_22_3b_22(__symbols); - let __sym6 = __pop_Ntidentifier(__symbols); - let __sym5 = __pop_Term_22end_22(__symbols); - let __sym4 = __pop_Ntsimple__equation_2b(__symbols); - let __sym3 = __pop_Ntconnect__clause_2b(__symbols); - let __sym2 = __pop_Term_22equation_22(__symbols); - let __sym1 = __pop_Ntidentifier(__symbols); - let __sym0 = __pop_Term_22model_22(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym7.2.clone(); - let __nt = super::__action66::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7); - let __states_len = __states.len(); - __states.truncate(__states_len - 8); - __symbols.push((__start, __Symbol::Ntmodel(__nt), __end)); - 17 - } - 54 => { - // model = "model", identifier, component_declaration+, "equation", "end", identifier, ";" => ActionFn(67); - let __sym6 = __pop_Term_22_3b_22(__symbols); - let __sym5 = __pop_Ntidentifier(__symbols); - let __sym4 = __pop_Term_22end_22(__symbols); - let __sym3 = __pop_Term_22equation_22(__symbols); - let __sym2 = __pop_Ntcomponent__declaration_2b(__symbols); - let __sym1 = __pop_Ntidentifier(__symbols); - let __sym0 = __pop_Term_22model_22(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym6.2.clone(); - let __nt = super::__action67::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6); - let __states_len = __states.len(); - __states.truncate(__states_len - 7); - __symbols.push((__start, __Symbol::Ntmodel(__nt), __end)); - 17 - } - 55 => { - // model = "model", identifier, component_declaration+, "equation", simple_equation+, "end", identifier, ";" => ActionFn(68); - let __sym7 = __pop_Term_22_3b_22(__symbols); - let __sym6 = __pop_Ntidentifier(__symbols); - let __sym5 = __pop_Term_22end_22(__symbols); - let __sym4 = __pop_Ntsimple__equation_2b(__symbols); - let __sym3 = __pop_Term_22equation_22(__symbols); - let __sym2 = __pop_Ntcomponent__declaration_2b(__symbols); - let __sym1 = __pop_Ntidentifier(__symbols); - let __sym0 = __pop_Term_22model_22(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym7.2.clone(); - let __nt = super::__action68::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7); - let __states_len = __states.len(); - __states.truncate(__states_len - 8); - __symbols.push((__start, __Symbol::Ntmodel(__nt), __end)); - 17 - } - 56 => { - // model = "model", identifier, component_declaration+, "equation", connect_clause+, "end", identifier, ";" => ActionFn(69); - let __sym7 = __pop_Term_22_3b_22(__symbols); - let __sym6 = __pop_Ntidentifier(__symbols); - let __sym5 = __pop_Term_22end_22(__symbols); - let __sym4 = __pop_Ntconnect__clause_2b(__symbols); - let __sym3 = __pop_Term_22equation_22(__symbols); - let __sym2 = __pop_Ntcomponent__declaration_2b(__symbols); - let __sym1 = __pop_Ntidentifier(__symbols); - let __sym0 = __pop_Term_22model_22(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym7.2.clone(); - let __nt = super::__action69::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7); - let __states_len = __states.len(); - __states.truncate(__states_len - 8); - __symbols.push((__start, __Symbol::Ntmodel(__nt), __end)); - 17 - } - 57 => { - // model = "model", identifier, component_declaration+, "equation", connect_clause+, simple_equation+, "end", identifier, ";" => ActionFn(70); - let __sym8 = __pop_Term_22_3b_22(__symbols); - let __sym7 = __pop_Ntidentifier(__symbols); - let __sym6 = __pop_Term_22end_22(__symbols); - let __sym5 = __pop_Ntsimple__equation_2b(__symbols); - let __sym4 = __pop_Ntconnect__clause_2b(__symbols); - let __sym3 = __pop_Term_22equation_22(__symbols); - let __sym2 = __pop_Ntcomponent__declaration_2b(__symbols); - let __sym1 = __pop_Ntidentifier(__symbols); - let __sym0 = __pop_Term_22model_22(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym8.2.clone(); - let __nt = super::__action70::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7, __sym8); - let __states_len = __states.len(); - __states.truncate(__states_len - 9); - __symbols.push((__start, __Symbol::Ntmodel(__nt), __end)); - 17 - } - 58 => { - // simple_equation = expr, "=", expr, ";" => ActionFn(19); - let __sym3 = __pop_Term_22_3b_22(__symbols); - let __sym2 = __pop_Ntexpr(__symbols); - let __sym1 = __pop_Term_22_3d_22(__symbols); - let __sym0 = __pop_Ntexpr(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym3.2.clone(); - let __nt = super::__action19::<>(input, __sym0, __sym1, __sym2, __sym3); - let __states_len = __states.len(); - __states.truncate(__states_len - 4); - __symbols.push((__start, __Symbol::Ntsimple__equation(__nt), __end)); - 18 - } - 59 => { - // simple_equation* = => ActionFn(43); - let __start = __symbols.last().map(|s| s.2.clone()).unwrap_or_default(); - let __end = __lookahead_start.cloned().unwrap_or_else(|| __start.clone()); - let __nt = super::__action43::<>(input, &__start, &__end); - let __states_len = __states.len(); - __states.truncate(__states_len - 0); - __symbols.push((__start, __Symbol::Ntsimple__equation_2a(__nt), __end)); - 19 - } - 60 => { - // simple_equation* = simple_equation+ => ActionFn(44); - let __sym0 = __pop_Ntsimple__equation_2b(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action44::<>(input, __sym0); - let __states_len = __states.len(); - __states.truncate(__states_len - 1); - __symbols.push((__start, __Symbol::Ntsimple__equation_2a(__nt), __end)); - 19 - } - 61 => { - // simple_equation+ = simple_equation => ActionFn(53); - let __sym0 = __pop_Ntsimple__equation(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action53::<>(input, __sym0); - let __states_len = __states.len(); - __states.truncate(__states_len - 1); - __symbols.push((__start, __Symbol::Ntsimple__equation_2b(__nt), __end)); - 20 - } - 62 => { - // simple_equation+ = simple_equation+, simple_equation => ActionFn(54); - let __sym1 = __pop_Ntsimple__equation(__symbols); - let __sym0 = __pop_Ntsimple__equation_2b(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym1.2.clone(); - let __nt = super::__action54::<>(input, __sym0, __sym1); - let __states_len = __states.len(); - __states.truncate(__states_len - 2); - __symbols.push((__start, __Symbol::Ntsimple__equation_2b(__nt), __end)); - 20 - } - 63 => { - // string_literal = r#"\"[^\"\\\\]*\""# => ActionFn(5); - let __sym0 = __pop_Termr_23_22_5c_22_5b_5e_5c_22_5c_5c_5c_5c_5d_2a_5c_22_22_23(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action5::<>(input, __sym0); - let __states_len = __states.len(); - __states.truncate(__states_len - 1); - __symbols.push((__start, __Symbol::Ntstring__literal(__nt), __end)); - 21 - } - 64 => { - // string_literal? = string_literal => ActionFn(35); - let __sym0 = __pop_Ntstring__literal(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action35::<>(input, __sym0); - let __states_len = __states.len(); - __states.truncate(__states_len - 1); - __symbols.push((__start, __Symbol::Ntstring__literal_3f(__nt), __end)); - 22 - } - 65 => { - // string_literal? = => ActionFn(36); - let __start = __symbols.last().map(|s| s.2.clone()).unwrap_or_default(); - let __end = __lookahead_start.cloned().unwrap_or_else(|| __start.clone()); - let __nt = super::__action36::<>(input, &__start, &__end); - let __states_len = __states.len(); - __states.truncate(__states_len - 0); - __symbols.push((__start, __Symbol::Ntstring__literal_3f(__nt), __end)); - 22 - } - 66 => { - // term = integer => ActionFn(29); - let __sym0 = __pop_Ntinteger(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action29::<>(input, __sym0); - let __states_len = __states.len(); - __states.truncate(__states_len - 1); - __symbols.push((__start, __Symbol::Ntterm(__nt), __end)); - 23 - } - 67 => { - // term = float => ActionFn(30); - let __sym0 = __pop_Ntfloat(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action30::<>(input, __sym0); - let __states_len = __states.len(); - __states.truncate(__states_len - 1); - __symbols.push((__start, __Symbol::Ntterm(__nt), __end)); - 23 - } - 68 => { - // term = identifier => ActionFn(31); - let __sym0 = __pop_Ntidentifier(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action31::<>(input, __sym0); - let __states_len = __states.len(); - __states.truncate(__states_len - 1); - __symbols.push((__start, __Symbol::Ntterm(__nt), __end)); - 23 - } - 69 => { - // term = "der", "(", expr, ")" => ActionFn(32); - let __sym3 = __pop_Term_22_29_22(__symbols); - let __sym2 = __pop_Ntexpr(__symbols); - let __sym1 = __pop_Term_22_28_22(__symbols); - let __sym0 = __pop_Term_22der_22(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym3.2.clone(); - let __nt = super::__action32::<>(input, __sym0, __sym1, __sym2, __sym3); - let __states_len = __states.len(); - __states.truncate(__states_len - 4); - __symbols.push((__start, __Symbol::Ntterm(__nt), __end)); - 23 - } - 70 => { - // term = "abs", "(", expr, ")" => ActionFn(33); - let __sym3 = __pop_Term_22_29_22(__symbols); - let __sym2 = __pop_Ntexpr(__symbols); - let __sym1 = __pop_Term_22_28_22(__symbols); - let __sym0 = __pop_Term_22abs_22(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym3.2.clone(); - let __nt = super::__action33::<>(input, __sym0, __sym1, __sym2, __sym3); - let __states_len = __states.len(); - __states.truncate(__states_len - 4); - __symbols.push((__start, __Symbol::Ntterm(__nt), __end)); - 23 - } - 71 => { - // term = "(", expr, ")" => ActionFn(34); - let __sym2 = __pop_Term_22_29_22(__symbols); - let __sym1 = __pop_Ntexpr(__symbols); - let __sym0 = __pop_Term_22_28_22(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym2.2.clone(); - let __nt = super::__action34::<>(input, __sym0, __sym1, __sym2); - let __states_len = __states.len(); - __states.truncate(__states_len - 3); - __symbols.push((__start, __Symbol::Ntterm(__nt), __end)); - 23 - } - 72 => { - // units_declaration = "(", "unit", "=", string_literal, ")" => ActionFn(10); - let __sym4 = __pop_Term_22_29_22(__symbols); - let __sym3 = __pop_Ntstring__literal(__symbols); - let __sym2 = __pop_Term_22_3d_22(__symbols); - let __sym1 = __pop_Term_22unit_22(__symbols); - let __sym0 = __pop_Term_22_28_22(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym4.2.clone(); - let __nt = super::__action10::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4); - let __states_len = __states.len(); - __states.truncate(__states_len - 5); - __symbols.push((__start, __Symbol::Ntunits__declaration(__nt), __end)); - 24 - } - 73 => { - // units_declaration? = units_declaration => ActionFn(39); - let __sym0 = __pop_Ntunits__declaration(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action39::<>(input, __sym0); - let __states_len = __states.len(); - __states.truncate(__states_len - 1); - __symbols.push((__start, __Symbol::Ntunits__declaration_3f(__nt), __end)); - 25 - } - 74 => { - // units_declaration? = => ActionFn(40); - let __start = __symbols.last().map(|s| s.2.clone()).unwrap_or_default(); - let __end = __lookahead_start.cloned().unwrap_or_else(|| __start.clone()); - let __nt = super::__action40::<>(input, &__start, &__end); - let __states_len = __states.len(); - __states.truncate(__states_len - 0); - __symbols.push((__start, __Symbol::Ntunits__declaration_3f(__nt), __end)); - 25 - } - 75 => { - // value_declaration = "=", expr => ActionFn(9); - let __sym1 = __pop_Ntexpr(__symbols); - let __sym0 = __pop_Term_22_3d_22(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym1.2.clone(); - let __nt = super::__action9::<>(input, __sym0, __sym1); - let __states_len = __states.len(); - __states.truncate(__states_len - 2); - __symbols.push((__start, __Symbol::Ntvalue__declaration(__nt), __end)); - 26 - } - 76 => { - // value_declaration? = value_declaration => ActionFn(37); - let __sym0 = __pop_Ntvalue__declaration(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action37::<>(input, __sym0); - let __states_len = __states.len(); - __states.truncate(__states_len - 1); - __symbols.push((__start, __Symbol::Ntvalue__declaration_3f(__nt), __end)); - 27 - } - 77 => { - // value_declaration? = => ActionFn(38); - let __start = __symbols.last().map(|s| s.2.clone()).unwrap_or_default(); - let __end = __lookahead_start.cloned().unwrap_or_else(|| __start.clone()); - let __nt = super::__action38::<>(input, &__start, &__end); - let __states_len = __states.len(); - __states.truncate(__states_len - 0); - __symbols.push((__start, __Symbol::Ntvalue__declaration_3f(__nt), __end)); - 27 - } - _ => panic!("invalid action code {}", __action) - }; - let __state = *__states.last().unwrap() as usize; - let __next_state = __GOTO[__state * 28 + __nonterminal] - 1; - __states.push(__next_state); - None - } - fn __pop_Term_22_28_22< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, &'input str, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Term_22_28_22(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Term_22_29_22< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, &'input str, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Term_22_29_22(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Term_22_2a_22< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, &'input str, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Term_22_2a_22(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Term_22_2b_22< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, &'input str, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Term_22_2b_22(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Term_22_2c_22< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, &'input str, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Term_22_2c_22(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Term_22_2d_22< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, &'input str, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Term_22_2d_22(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Term_22_2f_22< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, &'input str, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Term_22_2f_22(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Term_22_3b_22< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, &'input str, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Term_22_3b_22(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Term_22_3d_22< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, &'input str, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Term_22_3d_22(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Term_22_5e_22< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, &'input str, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Term_22_5e_22(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Term_22abs_22< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, &'input str, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Term_22abs_22(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Term_22connect_22< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, &'input str, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Term_22connect_22(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Term_22constant_22< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, &'input str, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Term_22constant_22(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Term_22der_22< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, &'input str, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Term_22der_22(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Term_22discrete_22< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, &'input str, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Term_22discrete_22(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Term_22end_22< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, &'input str, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Term_22end_22(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Term_22equation_22< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, &'input str, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Term_22equation_22(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Term_22flow_22< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, &'input str, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Term_22flow_22(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Term_22input_22< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, &'input str, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Term_22input_22(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Term_22model_22< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, &'input str, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Term_22model_22(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Term_22output_22< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, &'input str, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Term_22output_22(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Term_22parameter_22< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, &'input str, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Term_22parameter_22(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Term_22stream_22< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, &'input str, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Term_22stream_22(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Term_22unit_22< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, &'input str, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Term_22unit_22(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Termr_23_22_5c_22_5b_5e_5c_22_5c_5c_5c_5c_5d_2a_5c_22_22_23< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, &'input str, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Termr_23_22_5c_22_5b_5e_5c_22_5c_5c_5c_5c_5d_2a_5c_22_22_23(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Termr_23_22_5b_2b_2d_5d_3f_5c_5cd_2b_22_23< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, &'input str, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Termr_23_22_5b_2b_2d_5d_3f_5c_5cd_2b_22_23(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Termr_23_22_5b_2b_2d_5d_3f_5c_5cd_2b_5c_5c_2e_5c_5cd_2a_28_5beE_5d_5b_2d_2b_5d_3f_5c_5cd_2b_29_3f_22_23< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, &'input str, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Termr_23_22_5b_2b_2d_5d_3f_5c_5cd_2b_5c_5c_2e_5c_5cd_2a_28_5beE_5d_5b_2d_2b_5d_3f_5c_5cd_2b_29_3f_22_23(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Termr_23_22_5ba_2dzA_2dZ___5d_5ba_2dzA_2dZ__0_2d9_5d_2a_22_23< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, &'input str, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Termr_23_22_5ba_2dzA_2dZ___5d_5ba_2dzA_2dZ__0_2d9_5d_2a_22_23(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Termerror< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, __lalrpop_util::ErrorRecovery, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Termerror(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Nt____float< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, f64, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Nt____float(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Nt____identifier< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, String, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Nt____identifier(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Nt____integer< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, i64, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Nt____integer(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Nt____model< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, ModelicaModel, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Nt____model(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Ntcomponent__declaration< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, Component, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Ntcomponent__declaration(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Ntcomponent__declaration_2a< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, ::std::vec::Vec, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Ntcomponent__declaration_2a(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Ntcomponent__declaration_2b< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, ::std::vec::Vec, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Ntcomponent__declaration_2b(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Ntcomponent__prefix< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, ComponentPrefix, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Ntcomponent__prefix(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Ntcomponent__prefix_3f< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, ::std::option::Option, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Ntcomponent__prefix_3f(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Ntconnect__clause< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, Connection, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Ntconnect__clause(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Ntconnect__clause_2a< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, ::std::vec::Vec, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Ntconnect__clause_2a(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Ntconnect__clause_2b< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, ::std::vec::Vec, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Ntconnect__clause_2b(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Ntexpr< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, Expr, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Ntexpr(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Ntfactor< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, Expr, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Ntfactor(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Ntfloat< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, f64, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Ntfloat(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Ntidentifier< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, String, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Ntidentifier(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Ntinteger< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, i64, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Ntinteger(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Ntmodel< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, ModelicaModel, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Ntmodel(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Ntsimple__equation< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, SimpleEquation, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Ntsimple__equation(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Ntsimple__equation_2a< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, ::std::vec::Vec, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Ntsimple__equation_2a(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Ntsimple__equation_2b< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, ::std::vec::Vec, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Ntsimple__equation_2b(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Ntstring__literal< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, String, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Ntstring__literal(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Ntstring__literal_3f< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, ::std::option::Option, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Ntstring__literal_3f(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Ntterm< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, Expr, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Ntterm(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Ntunits__declaration< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, String, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Ntunits__declaration(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Ntunits__declaration_3f< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, ::std::option::Option, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Ntunits__declaration_3f(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Ntvalue__declaration< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, Expr, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Ntvalue__declaration(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Ntvalue__declaration_3f< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, ::std::option::Option, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Ntvalue__declaration_3f(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } -} -pub use self::__parse__identifier::parse_identifier; - -mod __parse__integer { - #![allow(non_snake_case, non_camel_case_types, unused_mut, unused_variables, unused_imports)] - - use std::str::FromStr; - use modelica_ast::{ModelicaModel,Component, ComponentPrefix, Connection, - SimpleEquation, Expr, BinOperator}; - extern crate lalrpop_util as __lalrpop_util; - #[allow(dead_code)] - pub enum __Symbol<'input> { - Term_22_28_22(&'input str), - Term_22_29_22(&'input str), - Term_22_2a_22(&'input str), - Term_22_2b_22(&'input str), - Term_22_2c_22(&'input str), - Term_22_2d_22(&'input str), - Term_22_2f_22(&'input str), - Term_22_3b_22(&'input str), - Term_22_3d_22(&'input str), - Term_22_5e_22(&'input str), - Term_22abs_22(&'input str), - Term_22connect_22(&'input str), - Term_22constant_22(&'input str), - Term_22der_22(&'input str), - Term_22discrete_22(&'input str), - Term_22end_22(&'input str), - Term_22equation_22(&'input str), - Term_22flow_22(&'input str), - Term_22input_22(&'input str), - Term_22model_22(&'input str), - Term_22output_22(&'input str), - Term_22parameter_22(&'input str), - Term_22stream_22(&'input str), - Term_22unit_22(&'input str), - Termr_23_22_5c_22_5b_5e_5c_22_5c_5c_5c_5c_5d_2a_5c_22_22_23(&'input str), - Termr_23_22_5b_2b_2d_5d_3f_5c_5cd_2b_22_23(&'input str), - Termr_23_22_5b_2b_2d_5d_3f_5c_5cd_2b_5c_5c_2e_5c_5cd_2a_28_5beE_5d_5b_2d_2b_5d_3f_5c_5cd_2b_29_3f_22_23(&'input str), - Termr_23_22_5ba_2dzA_2dZ___5d_5ba_2dzA_2dZ__0_2d9_5d_2a_22_23(&'input str), - Termerror(__lalrpop_util::ErrorRecovery), - Nt____float(f64), - Nt____identifier(String), - Nt____integer(i64), - Nt____model(ModelicaModel), - Ntcomponent__declaration(Component), - Ntcomponent__declaration_2a(::std::vec::Vec), - Ntcomponent__declaration_2b(::std::vec::Vec), - Ntcomponent__prefix(ComponentPrefix), - Ntcomponent__prefix_3f(::std::option::Option), - Ntconnect__clause(Connection), - Ntconnect__clause_2a(::std::vec::Vec), - Ntconnect__clause_2b(::std::vec::Vec), - Ntexpr(Expr), - Ntfactor(Expr), - Ntfloat(f64), - Ntidentifier(String), - Ntinteger(i64), - Ntmodel(ModelicaModel), - Ntsimple__equation(SimpleEquation), - Ntsimple__equation_2a(::std::vec::Vec), - Ntsimple__equation_2b(::std::vec::Vec), - Ntstring__literal(String), - Ntstring__literal_3f(::std::option::Option), - Ntterm(Expr), - Ntunits__declaration(String), - Ntunits__declaration_3f(::std::option::Option), - Ntvalue__declaration(Expr), - Ntvalue__declaration_3f(::std::option::Option), - } - const __ACTION: &'static [i32] = &[ - // State 0 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 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, - // State 2 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - ]; - const __EOF_ACTION: &'static [i32] = &[ - 0, - -3, - -49, - ]; - const __GOTO: &'static [i32] = &[ - // State 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, - // 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, - // State 2 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - ]; - pub fn parse_integer< - 'input, - >( - input: &'input str, - ) -> Result> - { - let mut __tokens = super::__intern_token::__Matcher::new(input); - let mut __states = vec![0_i32]; - let mut __symbols = vec![]; - let mut __integer; - let mut __lookahead; - let mut __last_location = Default::default(); - '__shift: loop { - __lookahead = match __tokens.next() { - Some(Ok(v)) => v, - None => break '__shift, - Some(Err(e)) => return Err(e), - }; - __last_location = __lookahead.2.clone(); - __integer = match __lookahead.1 { - (0, _) if true => 0, - (1, _) if true => 1, - (2, _) if true => 2, - (3, _) if true => 3, - (4, _) if true => 4, - (5, _) if true => 5, - (6, _) if true => 6, - (7, _) if true => 7, - (8, _) if true => 8, - (9, _) if true => 9, - (10, _) if true => 10, - (11, _) if true => 11, - (12, _) if true => 12, - (13, _) if true => 13, - (14, _) if true => 14, - (15, _) if true => 15, - (16, _) if true => 16, - (17, _) if true => 17, - (18, _) if true => 18, - (19, _) if true => 19, - (20, _) if true => 20, - (21, _) if true => 21, - (22, _) if true => 22, - (23, _) if true => 23, - (24, _) if true => 24, - (25, _) if true => 25, - (26, _) if true => 26, - (27, _) if true => 27, - _ => { - return Err(__lalrpop_util::ParseError::UnrecognizedToken { - token: Some(__lookahead), - expected: vec![], - }); - } - }; - '__inner: loop { - let __state = *__states.last().unwrap() as usize; - let __action = __ACTION[__state * 29 + __integer]; - if __action > 0 { - let __symbol = match __integer { - 0 => match __lookahead.1 { - (0, __tok0) => __Symbol::Term_22_28_22(__tok0), - _ => unreachable!(), - }, - 1 => match __lookahead.1 { - (1, __tok0) => __Symbol::Term_22_29_22(__tok0), - _ => unreachable!(), - }, - 2 => match __lookahead.1 { - (2, __tok0) => __Symbol::Term_22_2a_22(__tok0), - _ => unreachable!(), - }, - 3 => match __lookahead.1 { - (3, __tok0) => __Symbol::Term_22_2b_22(__tok0), - _ => unreachable!(), - }, - 4 => match __lookahead.1 { - (4, __tok0) => __Symbol::Term_22_2c_22(__tok0), - _ => unreachable!(), - }, - 5 => match __lookahead.1 { - (5, __tok0) => __Symbol::Term_22_2d_22(__tok0), - _ => unreachable!(), - }, - 6 => match __lookahead.1 { - (6, __tok0) => __Symbol::Term_22_2f_22(__tok0), - _ => unreachable!(), - }, - 7 => match __lookahead.1 { - (7, __tok0) => __Symbol::Term_22_3b_22(__tok0), - _ => unreachable!(), - }, - 8 => match __lookahead.1 { - (8, __tok0) => __Symbol::Term_22_3d_22(__tok0), - _ => unreachable!(), - }, - 9 => match __lookahead.1 { - (9, __tok0) => __Symbol::Term_22_5e_22(__tok0), - _ => unreachable!(), - }, - 10 => match __lookahead.1 { - (10, __tok0) => __Symbol::Term_22abs_22(__tok0), - _ => unreachable!(), - }, - 11 => match __lookahead.1 { - (11, __tok0) => __Symbol::Term_22connect_22(__tok0), - _ => unreachable!(), - }, - 12 => match __lookahead.1 { - (12, __tok0) => __Symbol::Term_22constant_22(__tok0), - _ => unreachable!(), - }, - 13 => match __lookahead.1 { - (13, __tok0) => __Symbol::Term_22der_22(__tok0), - _ => unreachable!(), - }, - 14 => match __lookahead.1 { - (14, __tok0) => __Symbol::Term_22discrete_22(__tok0), - _ => unreachable!(), - }, - 15 => match __lookahead.1 { - (15, __tok0) => __Symbol::Term_22end_22(__tok0), - _ => unreachable!(), - }, - 16 => match __lookahead.1 { - (16, __tok0) => __Symbol::Term_22equation_22(__tok0), - _ => unreachable!(), - }, - 17 => match __lookahead.1 { - (17, __tok0) => __Symbol::Term_22flow_22(__tok0), - _ => unreachable!(), - }, - 18 => match __lookahead.1 { - (18, __tok0) => __Symbol::Term_22input_22(__tok0), - _ => unreachable!(), - }, - 19 => match __lookahead.1 { - (19, __tok0) => __Symbol::Term_22model_22(__tok0), - _ => unreachable!(), - }, - 20 => match __lookahead.1 { - (20, __tok0) => __Symbol::Term_22output_22(__tok0), - _ => unreachable!(), - }, - 21 => match __lookahead.1 { - (21, __tok0) => __Symbol::Term_22parameter_22(__tok0), - _ => unreachable!(), - }, - 22 => match __lookahead.1 { - (22, __tok0) => __Symbol::Term_22stream_22(__tok0), - _ => unreachable!(), - }, - 23 => match __lookahead.1 { - (23, __tok0) => __Symbol::Term_22unit_22(__tok0), - _ => unreachable!(), - }, - 24 => match __lookahead.1 { - (24, __tok0) => __Symbol::Termr_23_22_5c_22_5b_5e_5c_22_5c_5c_5c_5c_5d_2a_5c_22_22_23(__tok0), - _ => unreachable!(), - }, - 25 => match __lookahead.1 { - (25, __tok0) => __Symbol::Termr_23_22_5b_2b_2d_5d_3f_5c_5cd_2b_22_23(__tok0), - _ => unreachable!(), - }, - 26 => match __lookahead.1 { - (26, __tok0) => __Symbol::Termr_23_22_5b_2b_2d_5d_3f_5c_5cd_2b_5c_5c_2e_5c_5cd_2a_28_5beE_5d_5b_2d_2b_5d_3f_5c_5cd_2b_29_3f_22_23(__tok0), - _ => unreachable!(), - }, - 27 => match __lookahead.1 { - (27, __tok0) => __Symbol::Termr_23_22_5ba_2dzA_2dZ___5d_5ba_2dzA_2dZ__0_2d9_5d_2a_22_23(__tok0), - _ => unreachable!(), - }, - _ => unreachable!(), - }; - __states.push(__action - 1); - __symbols.push((__lookahead.0, __symbol, __lookahead.2)); - continue '__shift; - } else if __action < 0 { - if let Some(r) = __reduce(input, __action, Some(&__lookahead.0), &mut __states, &mut __symbols, ::std::marker::PhantomData::<()>) { - return r; - } - } else { - return Err(__lalrpop_util::ParseError::UnrecognizedToken { - token: Some(__lookahead), - expected: vec![], - }); - } - } - } - loop { - let __state = *__states.last().unwrap() as usize; - let __action = __EOF_ACTION[__state]; - if __action < 0 { - if let Some(r) = __reduce(input, __action, None, &mut __states, &mut __symbols, ::std::marker::PhantomData::<()>) { - return r; - } - } else { - let __error = __lalrpop_util::ParseError::UnrecognizedToken { - token: None, - expected: vec![], - }; - return Err(__error); - } - } - } - pub fn __reduce< - 'input, - >( - input: &'input str, - __action: i32, - __lookahead_start: Option<&usize>, - __states: &mut ::std::vec::Vec, - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, - _: ::std::marker::PhantomData<()>, - ) -> Option>> - { - let __nonterminal = match -__action { - 1 => { - // __float = float => ActionFn(2); - let __sym0 = __pop_Ntfloat(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action2::<>(input, __sym0); - let __states_len = __states.len(); - __states.truncate(__states_len - 1); - __symbols.push((__start, __Symbol::Nt____float(__nt), __end)); - 0 - } - 2 => { - // __identifier = identifier => ActionFn(0); - let __sym0 = __pop_Ntidentifier(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action0::<>(input, __sym0); - let __states_len = __states.len(); - __states.truncate(__states_len - 1); - __symbols.push((__start, __Symbol::Nt____identifier(__nt), __end)); - 1 - } - 3 => { - // __integer = integer => ActionFn(1); - let __sym0 = __pop_Ntinteger(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action1::<>(input, __sym0); - return Some(Ok(__nt)); - } - 4 => { - // __model = model => ActionFn(3); - let __sym0 = __pop_Ntmodel(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action3::<>(input, __sym0); - let __states_len = __states.len(); - __states.truncate(__states_len - 1); - __symbols.push((__start, __Symbol::Nt____model(__nt), __end)); - 3 - } - 5 => { - // component_declaration = component_prefix, identifier, identifier, units_declaration, value_declaration, string_literal, ";" => ActionFn(83); - let __sym6 = __pop_Term_22_3b_22(__symbols); - let __sym5 = __pop_Ntstring__literal(__symbols); - let __sym4 = __pop_Ntvalue__declaration(__symbols); - let __sym3 = __pop_Ntunits__declaration(__symbols); - let __sym2 = __pop_Ntidentifier(__symbols); - let __sym1 = __pop_Ntidentifier(__symbols); - let __sym0 = __pop_Ntcomponent__prefix(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym6.2.clone(); - let __nt = super::__action83::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6); - let __states_len = __states.len(); - __states.truncate(__states_len - 7); - __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); - 4 - } - 6 => { - // component_declaration = component_prefix, identifier, identifier, units_declaration, string_literal, ";" => ActionFn(84); - let __sym5 = __pop_Term_22_3b_22(__symbols); - let __sym4 = __pop_Ntstring__literal(__symbols); - let __sym3 = __pop_Ntunits__declaration(__symbols); - let __sym2 = __pop_Ntidentifier(__symbols); - let __sym1 = __pop_Ntidentifier(__symbols); - let __sym0 = __pop_Ntcomponent__prefix(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym5.2.clone(); - let __nt = super::__action84::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5); - let __states_len = __states.len(); - __states.truncate(__states_len - 6); - __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); - 4 - } - 7 => { - // component_declaration = component_prefix, identifier, identifier, value_declaration, string_literal, ";" => ActionFn(85); - let __sym5 = __pop_Term_22_3b_22(__symbols); - let __sym4 = __pop_Ntstring__literal(__symbols); - let __sym3 = __pop_Ntvalue__declaration(__symbols); - let __sym2 = __pop_Ntidentifier(__symbols); - let __sym1 = __pop_Ntidentifier(__symbols); - let __sym0 = __pop_Ntcomponent__prefix(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym5.2.clone(); - let __nt = super::__action85::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5); - let __states_len = __states.len(); - __states.truncate(__states_len - 6); - __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); - 4 - } - 8 => { - // component_declaration = component_prefix, identifier, identifier, string_literal, ";" => ActionFn(86); - let __sym4 = __pop_Term_22_3b_22(__symbols); - let __sym3 = __pop_Ntstring__literal(__symbols); - let __sym2 = __pop_Ntidentifier(__symbols); - let __sym1 = __pop_Ntidentifier(__symbols); - let __sym0 = __pop_Ntcomponent__prefix(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym4.2.clone(); - let __nt = super::__action86::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4); - let __states_len = __states.len(); - __states.truncate(__states_len - 5); - __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); - 4 - } - 9 => { - // component_declaration = component_prefix, identifier, identifier, units_declaration, value_declaration, ";" => ActionFn(87); - let __sym5 = __pop_Term_22_3b_22(__symbols); - let __sym4 = __pop_Ntvalue__declaration(__symbols); - let __sym3 = __pop_Ntunits__declaration(__symbols); - let __sym2 = __pop_Ntidentifier(__symbols); - let __sym1 = __pop_Ntidentifier(__symbols); - let __sym0 = __pop_Ntcomponent__prefix(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym5.2.clone(); - let __nt = super::__action87::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5); - let __states_len = __states.len(); - __states.truncate(__states_len - 6); - __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); - 4 - } - 10 => { - // component_declaration = component_prefix, identifier, identifier, units_declaration, ";" => ActionFn(88); - let __sym4 = __pop_Term_22_3b_22(__symbols); - let __sym3 = __pop_Ntunits__declaration(__symbols); - let __sym2 = __pop_Ntidentifier(__symbols); - let __sym1 = __pop_Ntidentifier(__symbols); - let __sym0 = __pop_Ntcomponent__prefix(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym4.2.clone(); - let __nt = super::__action88::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4); - let __states_len = __states.len(); - __states.truncate(__states_len - 5); - __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); - 4 - } - 11 => { - // component_declaration = component_prefix, identifier, identifier, value_declaration, ";" => ActionFn(89); - let __sym4 = __pop_Term_22_3b_22(__symbols); - let __sym3 = __pop_Ntvalue__declaration(__symbols); - let __sym2 = __pop_Ntidentifier(__symbols); - let __sym1 = __pop_Ntidentifier(__symbols); - let __sym0 = __pop_Ntcomponent__prefix(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym4.2.clone(); - let __nt = super::__action89::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4); - let __states_len = __states.len(); - __states.truncate(__states_len - 5); - __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); - 4 - } - 12 => { - // component_declaration = component_prefix, identifier, identifier, ";" => ActionFn(90); - let __sym3 = __pop_Term_22_3b_22(__symbols); - let __sym2 = __pop_Ntidentifier(__symbols); - let __sym1 = __pop_Ntidentifier(__symbols); - let __sym0 = __pop_Ntcomponent__prefix(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym3.2.clone(); - let __nt = super::__action90::<>(input, __sym0, __sym1, __sym2, __sym3); - let __states_len = __states.len(); - __states.truncate(__states_len - 4); - __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); - 4 - } - 13 => { - // component_declaration = identifier, identifier, units_declaration, value_declaration, string_literal, ";" => ActionFn(91); - let __sym5 = __pop_Term_22_3b_22(__symbols); - let __sym4 = __pop_Ntstring__literal(__symbols); - let __sym3 = __pop_Ntvalue__declaration(__symbols); - let __sym2 = __pop_Ntunits__declaration(__symbols); - let __sym1 = __pop_Ntidentifier(__symbols); - let __sym0 = __pop_Ntidentifier(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym5.2.clone(); - let __nt = super::__action91::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5); - let __states_len = __states.len(); - __states.truncate(__states_len - 6); - __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); - 4 - } - 14 => { - // component_declaration = identifier, identifier, units_declaration, string_literal, ";" => ActionFn(92); - let __sym4 = __pop_Term_22_3b_22(__symbols); - let __sym3 = __pop_Ntstring__literal(__symbols); - let __sym2 = __pop_Ntunits__declaration(__symbols); - let __sym1 = __pop_Ntidentifier(__symbols); - let __sym0 = __pop_Ntidentifier(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym4.2.clone(); - let __nt = super::__action92::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4); - let __states_len = __states.len(); - __states.truncate(__states_len - 5); - __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); - 4 - } - 15 => { - // component_declaration = identifier, identifier, value_declaration, string_literal, ";" => ActionFn(93); - let __sym4 = __pop_Term_22_3b_22(__symbols); - let __sym3 = __pop_Ntstring__literal(__symbols); - let __sym2 = __pop_Ntvalue__declaration(__symbols); - let __sym1 = __pop_Ntidentifier(__symbols); - let __sym0 = __pop_Ntidentifier(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym4.2.clone(); - let __nt = super::__action93::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4); - let __states_len = __states.len(); - __states.truncate(__states_len - 5); - __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); - 4 - } - 16 => { - // component_declaration = identifier, identifier, string_literal, ";" => ActionFn(94); - let __sym3 = __pop_Term_22_3b_22(__symbols); - let __sym2 = __pop_Ntstring__literal(__symbols); - let __sym1 = __pop_Ntidentifier(__symbols); - let __sym0 = __pop_Ntidentifier(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym3.2.clone(); - let __nt = super::__action94::<>(input, __sym0, __sym1, __sym2, __sym3); - let __states_len = __states.len(); - __states.truncate(__states_len - 4); - __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); - 4 - } - 17 => { - // component_declaration = identifier, identifier, units_declaration, value_declaration, ";" => ActionFn(95); - let __sym4 = __pop_Term_22_3b_22(__symbols); - let __sym3 = __pop_Ntvalue__declaration(__symbols); - let __sym2 = __pop_Ntunits__declaration(__symbols); - let __sym1 = __pop_Ntidentifier(__symbols); - let __sym0 = __pop_Ntidentifier(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym4.2.clone(); - let __nt = super::__action95::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4); - let __states_len = __states.len(); - __states.truncate(__states_len - 5); - __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); - 4 - } - 18 => { - // component_declaration = identifier, identifier, units_declaration, ";" => ActionFn(96); - let __sym3 = __pop_Term_22_3b_22(__symbols); - let __sym2 = __pop_Ntunits__declaration(__symbols); - let __sym1 = __pop_Ntidentifier(__symbols); - let __sym0 = __pop_Ntidentifier(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym3.2.clone(); - let __nt = super::__action96::<>(input, __sym0, __sym1, __sym2, __sym3); - let __states_len = __states.len(); - __states.truncate(__states_len - 4); - __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); - 4 - } - 19 => { - // component_declaration = identifier, identifier, value_declaration, ";" => ActionFn(97); - let __sym3 = __pop_Term_22_3b_22(__symbols); - let __sym2 = __pop_Ntvalue__declaration(__symbols); - let __sym1 = __pop_Ntidentifier(__symbols); - let __sym0 = __pop_Ntidentifier(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym3.2.clone(); - let __nt = super::__action97::<>(input, __sym0, __sym1, __sym2, __sym3); - let __states_len = __states.len(); - __states.truncate(__states_len - 4); - __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); - 4 - } - 20 => { - // component_declaration = identifier, identifier, ";" => ActionFn(98); - let __sym2 = __pop_Term_22_3b_22(__symbols); - let __sym1 = __pop_Ntidentifier(__symbols); - let __sym0 = __pop_Ntidentifier(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym2.2.clone(); - let __nt = super::__action98::<>(input, __sym0, __sym1, __sym2); - let __states_len = __states.len(); - __states.truncate(__states_len - 3); - __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); - 4 - } - 21 => { - // component_declaration* = => ActionFn(47); - let __start = __symbols.last().map(|s| s.2.clone()).unwrap_or_default(); - let __end = __lookahead_start.cloned().unwrap_or_else(|| __start.clone()); - let __nt = super::__action47::<>(input, &__start, &__end); - let __states_len = __states.len(); - __states.truncate(__states_len - 0); - __symbols.push((__start, __Symbol::Ntcomponent__declaration_2a(__nt), __end)); - 5 - } - 22 => { - // component_declaration* = component_declaration+ => ActionFn(48); - let __sym0 = __pop_Ntcomponent__declaration_2b(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action48::<>(input, __sym0); - let __states_len = __states.len(); - __states.truncate(__states_len - 1); - __symbols.push((__start, __Symbol::Ntcomponent__declaration_2a(__nt), __end)); - 5 - } - 23 => { - // component_declaration+ = component_declaration => ActionFn(49); - let __sym0 = __pop_Ntcomponent__declaration(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action49::<>(input, __sym0); - let __states_len = __states.len(); - __states.truncate(__states_len - 1); - __symbols.push((__start, __Symbol::Ntcomponent__declaration_2b(__nt), __end)); - 6 - } - 24 => { - // component_declaration+ = component_declaration+, component_declaration => ActionFn(50); - let __sym1 = __pop_Ntcomponent__declaration(__symbols); - let __sym0 = __pop_Ntcomponent__declaration_2b(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym1.2.clone(); - let __nt = super::__action50::<>(input, __sym0, __sym1); - let __states_len = __states.len(); - __states.truncate(__states_len - 2); - __symbols.push((__start, __Symbol::Ntcomponent__declaration_2b(__nt), __end)); - 6 - } - 25 => { - // component_prefix = "flow" => ActionFn(12); - let __sym0 = __pop_Term_22flow_22(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action12::<>(input, __sym0); - let __states_len = __states.len(); - __states.truncate(__states_len - 1); - __symbols.push((__start, __Symbol::Ntcomponent__prefix(__nt), __end)); - 7 - } - 26 => { - // component_prefix = "stream" => ActionFn(13); - let __sym0 = __pop_Term_22stream_22(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action13::<>(input, __sym0); - let __states_len = __states.len(); - __states.truncate(__states_len - 1); - __symbols.push((__start, __Symbol::Ntcomponent__prefix(__nt), __end)); - 7 - } - 27 => { - // component_prefix = "input" => ActionFn(14); - let __sym0 = __pop_Term_22input_22(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action14::<>(input, __sym0); - let __states_len = __states.len(); - __states.truncate(__states_len - 1); - __symbols.push((__start, __Symbol::Ntcomponent__prefix(__nt), __end)); - 7 - } - 28 => { - // component_prefix = "output" => ActionFn(15); - let __sym0 = __pop_Term_22output_22(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action15::<>(input, __sym0); - let __states_len = __states.len(); - __states.truncate(__states_len - 1); - __symbols.push((__start, __Symbol::Ntcomponent__prefix(__nt), __end)); - 7 - } - 29 => { - // component_prefix = "discrete" => ActionFn(16); - let __sym0 = __pop_Term_22discrete_22(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action16::<>(input, __sym0); - let __states_len = __states.len(); - __states.truncate(__states_len - 1); - __symbols.push((__start, __Symbol::Ntcomponent__prefix(__nt), __end)); - 7 - } - 30 => { - // component_prefix = "parameter" => ActionFn(17); - let __sym0 = __pop_Term_22parameter_22(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action17::<>(input, __sym0); - let __states_len = __states.len(); - __states.truncate(__states_len - 1); - __symbols.push((__start, __Symbol::Ntcomponent__prefix(__nt), __end)); - 7 - } - 31 => { - // component_prefix = "constant" => ActionFn(18); - let __sym0 = __pop_Term_22constant_22(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action18::<>(input, __sym0); - let __states_len = __states.len(); - __states.truncate(__states_len - 1); - __symbols.push((__start, __Symbol::Ntcomponent__prefix(__nt), __end)); - 7 - } - 32 => { - // component_prefix? = component_prefix => ActionFn(41); - let __sym0 = __pop_Ntcomponent__prefix(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action41::<>(input, __sym0); - let __states_len = __states.len(); - __states.truncate(__states_len - 1); - __symbols.push((__start, __Symbol::Ntcomponent__prefix_3f(__nt), __end)); - 8 - } - 33 => { - // component_prefix? = => ActionFn(42); - let __start = __symbols.last().map(|s| s.2.clone()).unwrap_or_default(); - let __end = __lookahead_start.cloned().unwrap_or_else(|| __start.clone()); - let __nt = super::__action42::<>(input, &__start, &__end); - let __states_len = __states.len(); - __states.truncate(__states_len - 0); - __symbols.push((__start, __Symbol::Ntcomponent__prefix_3f(__nt), __end)); - 8 - } - 34 => { - // connect_clause = "connect", "(", identifier, ",", identifier, ")", ";" => ActionFn(20); - let __sym6 = __pop_Term_22_3b_22(__symbols); - let __sym5 = __pop_Term_22_29_22(__symbols); - let __sym4 = __pop_Ntidentifier(__symbols); - let __sym3 = __pop_Term_22_2c_22(__symbols); - let __sym2 = __pop_Ntidentifier(__symbols); - let __sym1 = __pop_Term_22_28_22(__symbols); - let __sym0 = __pop_Term_22connect_22(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym6.2.clone(); - let __nt = super::__action20::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6); - let __states_len = __states.len(); - __states.truncate(__states_len - 7); - __symbols.push((__start, __Symbol::Ntconnect__clause(__nt), __end)); - 9 - } - 35 => { - // connect_clause* = => ActionFn(45); - let __start = __symbols.last().map(|s| s.2.clone()).unwrap_or_default(); - let __end = __lookahead_start.cloned().unwrap_or_else(|| __start.clone()); - let __nt = super::__action45::<>(input, &__start, &__end); - let __states_len = __states.len(); - __states.truncate(__states_len - 0); - __symbols.push((__start, __Symbol::Ntconnect__clause_2a(__nt), __end)); - 10 - } - 36 => { - // connect_clause* = connect_clause+ => ActionFn(46); - let __sym0 = __pop_Ntconnect__clause_2b(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action46::<>(input, __sym0); - let __states_len = __states.len(); - __states.truncate(__states_len - 1); - __symbols.push((__start, __Symbol::Ntconnect__clause_2a(__nt), __end)); - 10 - } - 37 => { - // connect_clause+ = connect_clause => ActionFn(51); - let __sym0 = __pop_Ntconnect__clause(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action51::<>(input, __sym0); - let __states_len = __states.len(); - __states.truncate(__states_len - 1); - __symbols.push((__start, __Symbol::Ntconnect__clause_2b(__nt), __end)); - 11 - } - 38 => { - // connect_clause+ = connect_clause+, connect_clause => ActionFn(52); - let __sym1 = __pop_Ntconnect__clause(__symbols); - let __sym0 = __pop_Ntconnect__clause_2b(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym1.2.clone(); - let __nt = super::__action52::<>(input, __sym0, __sym1); - let __states_len = __states.len(); - __states.truncate(__states_len - 2); - __symbols.push((__start, __Symbol::Ntconnect__clause_2b(__nt), __end)); - 11 - } - 39 => { - // expr = expr, "+", factor => ActionFn(21); - let __sym2 = __pop_Ntfactor(__symbols); - let __sym1 = __pop_Term_22_2b_22(__symbols); - let __sym0 = __pop_Ntexpr(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym2.2.clone(); - let __nt = super::__action21::<>(input, __sym0, __sym1, __sym2); - let __states_len = __states.len(); - __states.truncate(__states_len - 3); - __symbols.push((__start, __Symbol::Ntexpr(__nt), __end)); - 12 - } - 40 => { - // expr = expr, "-", factor => ActionFn(22); - let __sym2 = __pop_Ntfactor(__symbols); - let __sym1 = __pop_Term_22_2d_22(__symbols); - let __sym0 = __pop_Ntexpr(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym2.2.clone(); - let __nt = super::__action22::<>(input, __sym0, __sym1, __sym2); - let __states_len = __states.len(); - __states.truncate(__states_len - 3); - __symbols.push((__start, __Symbol::Ntexpr(__nt), __end)); - 12 - } - 41 => { - // expr = factor => ActionFn(23); - let __sym0 = __pop_Ntfactor(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action23::<>(input, __sym0); - let __states_len = __states.len(); - __states.truncate(__states_len - 1); - __symbols.push((__start, __Symbol::Ntexpr(__nt), __end)); - 12 - } - 42 => { - // factor = factor, "*", term => ActionFn(24); - let __sym2 = __pop_Ntterm(__symbols); - let __sym1 = __pop_Term_22_2a_22(__symbols); - let __sym0 = __pop_Ntfactor(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym2.2.clone(); - let __nt = super::__action24::<>(input, __sym0, __sym1, __sym2); - let __states_len = __states.len(); - __states.truncate(__states_len - 3); - __symbols.push((__start, __Symbol::Ntfactor(__nt), __end)); - 13 - } - 43 => { - // factor = factor, "/", term => ActionFn(25); - let __sym2 = __pop_Ntterm(__symbols); - let __sym1 = __pop_Term_22_2f_22(__symbols); - let __sym0 = __pop_Ntfactor(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym2.2.clone(); - let __nt = super::__action25::<>(input, __sym0, __sym1, __sym2); - let __states_len = __states.len(); - __states.truncate(__states_len - 3); - __symbols.push((__start, __Symbol::Ntfactor(__nt), __end)); - 13 - } - 44 => { - // factor = factor, "^", term => ActionFn(26); - let __sym2 = __pop_Ntterm(__symbols); - let __sym1 = __pop_Term_22_5e_22(__symbols); - let __sym0 = __pop_Ntfactor(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym2.2.clone(); - let __nt = super::__action26::<>(input, __sym0, __sym1, __sym2); - let __states_len = __states.len(); - __states.truncate(__states_len - 3); - __symbols.push((__start, __Symbol::Ntfactor(__nt), __end)); - 13 - } - 45 => { - // factor = "-", term => ActionFn(27); - let __sym1 = __pop_Ntterm(__symbols); - let __sym0 = __pop_Term_22_2d_22(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym1.2.clone(); - let __nt = super::__action27::<>(input, __sym0, __sym1); - let __states_len = __states.len(); - __states.truncate(__states_len - 2); - __symbols.push((__start, __Symbol::Ntfactor(__nt), __end)); - 13 - } - 46 => { - // factor = term => ActionFn(28); - let __sym0 = __pop_Ntterm(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action28::<>(input, __sym0); - let __states_len = __states.len(); - __states.truncate(__states_len - 1); - __symbols.push((__start, __Symbol::Ntfactor(__nt), __end)); - 13 - } - 47 => { - // float = r#"[+-]?\\d+\\.\\d*([eE][-+]?\\d+)?"# => ActionFn(7); - let __sym0 = __pop_Termr_23_22_5b_2b_2d_5d_3f_5c_5cd_2b_5c_5c_2e_5c_5cd_2a_28_5beE_5d_5b_2d_2b_5d_3f_5c_5cd_2b_29_3f_22_23(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action7::<>(input, __sym0); - let __states_len = __states.len(); - __states.truncate(__states_len - 1); - __symbols.push((__start, __Symbol::Ntfloat(__nt), __end)); - 14 - } - 48 => { - // identifier = r#"[a-zA-Z_][a-zA-Z_0-9]*"# => ActionFn(4); - let __sym0 = __pop_Termr_23_22_5ba_2dzA_2dZ___5d_5ba_2dzA_2dZ__0_2d9_5d_2a_22_23(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action4::<>(input, __sym0); - let __states_len = __states.len(); - __states.truncate(__states_len - 1); - __symbols.push((__start, __Symbol::Ntidentifier(__nt), __end)); - 15 - } - 49 => { - // integer = r#"[+-]?\\d+"# => ActionFn(6); - let __sym0 = __pop_Termr_23_22_5b_2b_2d_5d_3f_5c_5cd_2b_22_23(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action6::<>(input, __sym0); - let __states_len = __states.len(); - __states.truncate(__states_len - 1); - __symbols.push((__start, __Symbol::Ntinteger(__nt), __end)); - 16 - } - 50 => { - // model = "model", identifier, "equation", "end", identifier, ";" => ActionFn(63); - let __sym5 = __pop_Term_22_3b_22(__symbols); - let __sym4 = __pop_Ntidentifier(__symbols); - let __sym3 = __pop_Term_22end_22(__symbols); - let __sym2 = __pop_Term_22equation_22(__symbols); - let __sym1 = __pop_Ntidentifier(__symbols); - let __sym0 = __pop_Term_22model_22(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym5.2.clone(); - let __nt = super::__action63::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5); - let __states_len = __states.len(); - __states.truncate(__states_len - 6); - __symbols.push((__start, __Symbol::Ntmodel(__nt), __end)); - 17 - } - 51 => { - // model = "model", identifier, "equation", simple_equation+, "end", identifier, ";" => ActionFn(64); - let __sym6 = __pop_Term_22_3b_22(__symbols); - let __sym5 = __pop_Ntidentifier(__symbols); - let __sym4 = __pop_Term_22end_22(__symbols); - let __sym3 = __pop_Ntsimple__equation_2b(__symbols); - let __sym2 = __pop_Term_22equation_22(__symbols); - let __sym1 = __pop_Ntidentifier(__symbols); - let __sym0 = __pop_Term_22model_22(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym6.2.clone(); - let __nt = super::__action64::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6); - let __states_len = __states.len(); - __states.truncate(__states_len - 7); - __symbols.push((__start, __Symbol::Ntmodel(__nt), __end)); - 17 - } - 52 => { - // model = "model", identifier, "equation", connect_clause+, "end", identifier, ";" => ActionFn(65); - let __sym6 = __pop_Term_22_3b_22(__symbols); - let __sym5 = __pop_Ntidentifier(__symbols); - let __sym4 = __pop_Term_22end_22(__symbols); - let __sym3 = __pop_Ntconnect__clause_2b(__symbols); - let __sym2 = __pop_Term_22equation_22(__symbols); - let __sym1 = __pop_Ntidentifier(__symbols); - let __sym0 = __pop_Term_22model_22(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym6.2.clone(); - let __nt = super::__action65::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6); - let __states_len = __states.len(); - __states.truncate(__states_len - 7); - __symbols.push((__start, __Symbol::Ntmodel(__nt), __end)); - 17 - } - 53 => { - // model = "model", identifier, "equation", connect_clause+, simple_equation+, "end", identifier, ";" => ActionFn(66); - let __sym7 = __pop_Term_22_3b_22(__symbols); - let __sym6 = __pop_Ntidentifier(__symbols); - let __sym5 = __pop_Term_22end_22(__symbols); - let __sym4 = __pop_Ntsimple__equation_2b(__symbols); - let __sym3 = __pop_Ntconnect__clause_2b(__symbols); - let __sym2 = __pop_Term_22equation_22(__symbols); - let __sym1 = __pop_Ntidentifier(__symbols); - let __sym0 = __pop_Term_22model_22(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym7.2.clone(); - let __nt = super::__action66::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7); - let __states_len = __states.len(); - __states.truncate(__states_len - 8); - __symbols.push((__start, __Symbol::Ntmodel(__nt), __end)); - 17 - } - 54 => { - // model = "model", identifier, component_declaration+, "equation", "end", identifier, ";" => ActionFn(67); - let __sym6 = __pop_Term_22_3b_22(__symbols); - let __sym5 = __pop_Ntidentifier(__symbols); - let __sym4 = __pop_Term_22end_22(__symbols); - let __sym3 = __pop_Term_22equation_22(__symbols); - let __sym2 = __pop_Ntcomponent__declaration_2b(__symbols); - let __sym1 = __pop_Ntidentifier(__symbols); - let __sym0 = __pop_Term_22model_22(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym6.2.clone(); - let __nt = super::__action67::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6); - let __states_len = __states.len(); - __states.truncate(__states_len - 7); - __symbols.push((__start, __Symbol::Ntmodel(__nt), __end)); - 17 - } - 55 => { - // model = "model", identifier, component_declaration+, "equation", simple_equation+, "end", identifier, ";" => ActionFn(68); - let __sym7 = __pop_Term_22_3b_22(__symbols); - let __sym6 = __pop_Ntidentifier(__symbols); - let __sym5 = __pop_Term_22end_22(__symbols); - let __sym4 = __pop_Ntsimple__equation_2b(__symbols); - let __sym3 = __pop_Term_22equation_22(__symbols); - let __sym2 = __pop_Ntcomponent__declaration_2b(__symbols); - let __sym1 = __pop_Ntidentifier(__symbols); - let __sym0 = __pop_Term_22model_22(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym7.2.clone(); - let __nt = super::__action68::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7); - let __states_len = __states.len(); - __states.truncate(__states_len - 8); - __symbols.push((__start, __Symbol::Ntmodel(__nt), __end)); - 17 - } - 56 => { - // model = "model", identifier, component_declaration+, "equation", connect_clause+, "end", identifier, ";" => ActionFn(69); - let __sym7 = __pop_Term_22_3b_22(__symbols); - let __sym6 = __pop_Ntidentifier(__symbols); - let __sym5 = __pop_Term_22end_22(__symbols); - let __sym4 = __pop_Ntconnect__clause_2b(__symbols); - let __sym3 = __pop_Term_22equation_22(__symbols); - let __sym2 = __pop_Ntcomponent__declaration_2b(__symbols); - let __sym1 = __pop_Ntidentifier(__symbols); - let __sym0 = __pop_Term_22model_22(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym7.2.clone(); - let __nt = super::__action69::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7); - let __states_len = __states.len(); - __states.truncate(__states_len - 8); - __symbols.push((__start, __Symbol::Ntmodel(__nt), __end)); - 17 - } - 57 => { - // model = "model", identifier, component_declaration+, "equation", connect_clause+, simple_equation+, "end", identifier, ";" => ActionFn(70); - let __sym8 = __pop_Term_22_3b_22(__symbols); - let __sym7 = __pop_Ntidentifier(__symbols); - let __sym6 = __pop_Term_22end_22(__symbols); - let __sym5 = __pop_Ntsimple__equation_2b(__symbols); - let __sym4 = __pop_Ntconnect__clause_2b(__symbols); - let __sym3 = __pop_Term_22equation_22(__symbols); - let __sym2 = __pop_Ntcomponent__declaration_2b(__symbols); - let __sym1 = __pop_Ntidentifier(__symbols); - let __sym0 = __pop_Term_22model_22(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym8.2.clone(); - let __nt = super::__action70::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7, __sym8); - let __states_len = __states.len(); - __states.truncate(__states_len - 9); - __symbols.push((__start, __Symbol::Ntmodel(__nt), __end)); - 17 - } - 58 => { - // simple_equation = expr, "=", expr, ";" => ActionFn(19); - let __sym3 = __pop_Term_22_3b_22(__symbols); - let __sym2 = __pop_Ntexpr(__symbols); - let __sym1 = __pop_Term_22_3d_22(__symbols); - let __sym0 = __pop_Ntexpr(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym3.2.clone(); - let __nt = super::__action19::<>(input, __sym0, __sym1, __sym2, __sym3); - let __states_len = __states.len(); - __states.truncate(__states_len - 4); - __symbols.push((__start, __Symbol::Ntsimple__equation(__nt), __end)); - 18 - } - 59 => { - // simple_equation* = => ActionFn(43); - let __start = __symbols.last().map(|s| s.2.clone()).unwrap_or_default(); - let __end = __lookahead_start.cloned().unwrap_or_else(|| __start.clone()); - let __nt = super::__action43::<>(input, &__start, &__end); - let __states_len = __states.len(); - __states.truncate(__states_len - 0); - __symbols.push((__start, __Symbol::Ntsimple__equation_2a(__nt), __end)); - 19 - } - 60 => { - // simple_equation* = simple_equation+ => ActionFn(44); - let __sym0 = __pop_Ntsimple__equation_2b(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action44::<>(input, __sym0); - let __states_len = __states.len(); - __states.truncate(__states_len - 1); - __symbols.push((__start, __Symbol::Ntsimple__equation_2a(__nt), __end)); - 19 - } - 61 => { - // simple_equation+ = simple_equation => ActionFn(53); - let __sym0 = __pop_Ntsimple__equation(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action53::<>(input, __sym0); - let __states_len = __states.len(); - __states.truncate(__states_len - 1); - __symbols.push((__start, __Symbol::Ntsimple__equation_2b(__nt), __end)); - 20 - } - 62 => { - // simple_equation+ = simple_equation+, simple_equation => ActionFn(54); - let __sym1 = __pop_Ntsimple__equation(__symbols); - let __sym0 = __pop_Ntsimple__equation_2b(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym1.2.clone(); - let __nt = super::__action54::<>(input, __sym0, __sym1); - let __states_len = __states.len(); - __states.truncate(__states_len - 2); - __symbols.push((__start, __Symbol::Ntsimple__equation_2b(__nt), __end)); - 20 - } - 63 => { - // string_literal = r#"\"[^\"\\\\]*\""# => ActionFn(5); - let __sym0 = __pop_Termr_23_22_5c_22_5b_5e_5c_22_5c_5c_5c_5c_5d_2a_5c_22_22_23(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action5::<>(input, __sym0); - let __states_len = __states.len(); - __states.truncate(__states_len - 1); - __symbols.push((__start, __Symbol::Ntstring__literal(__nt), __end)); - 21 - } - 64 => { - // string_literal? = string_literal => ActionFn(35); - let __sym0 = __pop_Ntstring__literal(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action35::<>(input, __sym0); - let __states_len = __states.len(); - __states.truncate(__states_len - 1); - __symbols.push((__start, __Symbol::Ntstring__literal_3f(__nt), __end)); - 22 - } - 65 => { - // string_literal? = => ActionFn(36); - let __start = __symbols.last().map(|s| s.2.clone()).unwrap_or_default(); - let __end = __lookahead_start.cloned().unwrap_or_else(|| __start.clone()); - let __nt = super::__action36::<>(input, &__start, &__end); - let __states_len = __states.len(); - __states.truncate(__states_len - 0); - __symbols.push((__start, __Symbol::Ntstring__literal_3f(__nt), __end)); - 22 - } - 66 => { - // term = integer => ActionFn(29); - let __sym0 = __pop_Ntinteger(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action29::<>(input, __sym0); - let __states_len = __states.len(); - __states.truncate(__states_len - 1); - __symbols.push((__start, __Symbol::Ntterm(__nt), __end)); - 23 - } - 67 => { - // term = float => ActionFn(30); - let __sym0 = __pop_Ntfloat(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action30::<>(input, __sym0); - let __states_len = __states.len(); - __states.truncate(__states_len - 1); - __symbols.push((__start, __Symbol::Ntterm(__nt), __end)); - 23 - } - 68 => { - // term = identifier => ActionFn(31); - let __sym0 = __pop_Ntidentifier(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action31::<>(input, __sym0); - let __states_len = __states.len(); - __states.truncate(__states_len - 1); - __symbols.push((__start, __Symbol::Ntterm(__nt), __end)); - 23 - } - 69 => { - // term = "der", "(", expr, ")" => ActionFn(32); - let __sym3 = __pop_Term_22_29_22(__symbols); - let __sym2 = __pop_Ntexpr(__symbols); - let __sym1 = __pop_Term_22_28_22(__symbols); - let __sym0 = __pop_Term_22der_22(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym3.2.clone(); - let __nt = super::__action32::<>(input, __sym0, __sym1, __sym2, __sym3); - let __states_len = __states.len(); - __states.truncate(__states_len - 4); - __symbols.push((__start, __Symbol::Ntterm(__nt), __end)); - 23 - } - 70 => { - // term = "abs", "(", expr, ")" => ActionFn(33); - let __sym3 = __pop_Term_22_29_22(__symbols); - let __sym2 = __pop_Ntexpr(__symbols); - let __sym1 = __pop_Term_22_28_22(__symbols); - let __sym0 = __pop_Term_22abs_22(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym3.2.clone(); - let __nt = super::__action33::<>(input, __sym0, __sym1, __sym2, __sym3); - let __states_len = __states.len(); - __states.truncate(__states_len - 4); - __symbols.push((__start, __Symbol::Ntterm(__nt), __end)); - 23 - } - 71 => { - // term = "(", expr, ")" => ActionFn(34); - let __sym2 = __pop_Term_22_29_22(__symbols); - let __sym1 = __pop_Ntexpr(__symbols); - let __sym0 = __pop_Term_22_28_22(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym2.2.clone(); - let __nt = super::__action34::<>(input, __sym0, __sym1, __sym2); - let __states_len = __states.len(); - __states.truncate(__states_len - 3); - __symbols.push((__start, __Symbol::Ntterm(__nt), __end)); - 23 - } - 72 => { - // units_declaration = "(", "unit", "=", string_literal, ")" => ActionFn(10); - let __sym4 = __pop_Term_22_29_22(__symbols); - let __sym3 = __pop_Ntstring__literal(__symbols); - let __sym2 = __pop_Term_22_3d_22(__symbols); - let __sym1 = __pop_Term_22unit_22(__symbols); - let __sym0 = __pop_Term_22_28_22(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym4.2.clone(); - let __nt = super::__action10::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4); - let __states_len = __states.len(); - __states.truncate(__states_len - 5); - __symbols.push((__start, __Symbol::Ntunits__declaration(__nt), __end)); - 24 - } - 73 => { - // units_declaration? = units_declaration => ActionFn(39); - let __sym0 = __pop_Ntunits__declaration(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action39::<>(input, __sym0); - let __states_len = __states.len(); - __states.truncate(__states_len - 1); - __symbols.push((__start, __Symbol::Ntunits__declaration_3f(__nt), __end)); - 25 - } - 74 => { - // units_declaration? = => ActionFn(40); - let __start = __symbols.last().map(|s| s.2.clone()).unwrap_or_default(); - let __end = __lookahead_start.cloned().unwrap_or_else(|| __start.clone()); - let __nt = super::__action40::<>(input, &__start, &__end); - let __states_len = __states.len(); - __states.truncate(__states_len - 0); - __symbols.push((__start, __Symbol::Ntunits__declaration_3f(__nt), __end)); - 25 - } - 75 => { - // value_declaration = "=", expr => ActionFn(9); - let __sym1 = __pop_Ntexpr(__symbols); - let __sym0 = __pop_Term_22_3d_22(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym1.2.clone(); - let __nt = super::__action9::<>(input, __sym0, __sym1); - let __states_len = __states.len(); - __states.truncate(__states_len - 2); - __symbols.push((__start, __Symbol::Ntvalue__declaration(__nt), __end)); - 26 - } - 76 => { - // value_declaration? = value_declaration => ActionFn(37); - let __sym0 = __pop_Ntvalue__declaration(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action37::<>(input, __sym0); - let __states_len = __states.len(); - __states.truncate(__states_len - 1); - __symbols.push((__start, __Symbol::Ntvalue__declaration_3f(__nt), __end)); - 27 - } - 77 => { - // value_declaration? = => ActionFn(38); - let __start = __symbols.last().map(|s| s.2.clone()).unwrap_or_default(); - let __end = __lookahead_start.cloned().unwrap_or_else(|| __start.clone()); - let __nt = super::__action38::<>(input, &__start, &__end); - let __states_len = __states.len(); - __states.truncate(__states_len - 0); - __symbols.push((__start, __Symbol::Ntvalue__declaration_3f(__nt), __end)); - 27 - } - _ => panic!("invalid action code {}", __action) - }; - let __state = *__states.last().unwrap() as usize; - let __next_state = __GOTO[__state * 28 + __nonterminal] - 1; - __states.push(__next_state); - None - } - fn __pop_Term_22_28_22< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, &'input str, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Term_22_28_22(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Term_22_29_22< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, &'input str, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Term_22_29_22(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Term_22_2a_22< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, &'input str, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Term_22_2a_22(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Term_22_2b_22< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, &'input str, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Term_22_2b_22(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Term_22_2c_22< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, &'input str, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Term_22_2c_22(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Term_22_2d_22< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, &'input str, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Term_22_2d_22(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Term_22_2f_22< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, &'input str, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Term_22_2f_22(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Term_22_3b_22< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, &'input str, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Term_22_3b_22(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Term_22_3d_22< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, &'input str, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Term_22_3d_22(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Term_22_5e_22< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, &'input str, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Term_22_5e_22(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Term_22abs_22< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, &'input str, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Term_22abs_22(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Term_22connect_22< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, &'input str, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Term_22connect_22(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Term_22constant_22< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, &'input str, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Term_22constant_22(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Term_22der_22< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, &'input str, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Term_22der_22(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Term_22discrete_22< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, &'input str, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Term_22discrete_22(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Term_22end_22< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, &'input str, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Term_22end_22(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Term_22equation_22< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, &'input str, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Term_22equation_22(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Term_22flow_22< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, &'input str, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Term_22flow_22(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Term_22input_22< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, &'input str, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Term_22input_22(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Term_22model_22< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, &'input str, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Term_22model_22(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Term_22output_22< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, &'input str, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Term_22output_22(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Term_22parameter_22< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, &'input str, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Term_22parameter_22(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Term_22stream_22< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, &'input str, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Term_22stream_22(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Term_22unit_22< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, &'input str, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Term_22unit_22(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Termr_23_22_5c_22_5b_5e_5c_22_5c_5c_5c_5c_5d_2a_5c_22_22_23< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, &'input str, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Termr_23_22_5c_22_5b_5e_5c_22_5c_5c_5c_5c_5d_2a_5c_22_22_23(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Termr_23_22_5b_2b_2d_5d_3f_5c_5cd_2b_22_23< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, &'input str, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Termr_23_22_5b_2b_2d_5d_3f_5c_5cd_2b_22_23(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Termr_23_22_5b_2b_2d_5d_3f_5c_5cd_2b_5c_5c_2e_5c_5cd_2a_28_5beE_5d_5b_2d_2b_5d_3f_5c_5cd_2b_29_3f_22_23< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, &'input str, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Termr_23_22_5b_2b_2d_5d_3f_5c_5cd_2b_5c_5c_2e_5c_5cd_2a_28_5beE_5d_5b_2d_2b_5d_3f_5c_5cd_2b_29_3f_22_23(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Termr_23_22_5ba_2dzA_2dZ___5d_5ba_2dzA_2dZ__0_2d9_5d_2a_22_23< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, &'input str, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Termr_23_22_5ba_2dzA_2dZ___5d_5ba_2dzA_2dZ__0_2d9_5d_2a_22_23(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Termerror< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, __lalrpop_util::ErrorRecovery, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Termerror(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Nt____float< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, f64, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Nt____float(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Nt____identifier< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, String, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Nt____identifier(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Nt____integer< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, i64, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Nt____integer(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Nt____model< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, ModelicaModel, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Nt____model(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Ntcomponent__declaration< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, Component, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Ntcomponent__declaration(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Ntcomponent__declaration_2a< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, ::std::vec::Vec, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Ntcomponent__declaration_2a(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Ntcomponent__declaration_2b< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, ::std::vec::Vec, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Ntcomponent__declaration_2b(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Ntcomponent__prefix< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, ComponentPrefix, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Ntcomponent__prefix(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Ntcomponent__prefix_3f< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, ::std::option::Option, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Ntcomponent__prefix_3f(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Ntconnect__clause< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, Connection, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Ntconnect__clause(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Ntconnect__clause_2a< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, ::std::vec::Vec, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Ntconnect__clause_2a(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Ntconnect__clause_2b< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, ::std::vec::Vec, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Ntconnect__clause_2b(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Ntexpr< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, Expr, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Ntexpr(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Ntfactor< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, Expr, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Ntfactor(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Ntfloat< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, f64, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Ntfloat(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Ntidentifier< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, String, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Ntidentifier(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Ntinteger< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, i64, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Ntinteger(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Ntmodel< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, ModelicaModel, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Ntmodel(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Ntsimple__equation< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, SimpleEquation, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Ntsimple__equation(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Ntsimple__equation_2a< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, ::std::vec::Vec, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Ntsimple__equation_2a(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Ntsimple__equation_2b< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, ::std::vec::Vec, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Ntsimple__equation_2b(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Ntstring__literal< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, String, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Ntstring__literal(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Ntstring__literal_3f< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, ::std::option::Option, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Ntstring__literal_3f(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Ntterm< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, Expr, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Ntterm(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Ntunits__declaration< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, String, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Ntunits__declaration(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Ntunits__declaration_3f< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, ::std::option::Option, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Ntunits__declaration_3f(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Ntvalue__declaration< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, Expr, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Ntvalue__declaration(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Ntvalue__declaration_3f< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, ::std::option::Option, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Ntvalue__declaration_3f(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } -} -pub use self::__parse__integer::parse_integer; - -mod __parse__model { - #![allow(non_snake_case, non_camel_case_types, unused_mut, unused_variables, unused_imports)] - - use std::str::FromStr; - use modelica_ast::{ModelicaModel,Component, ComponentPrefix, Connection, - SimpleEquation, Expr, BinOperator}; - extern crate lalrpop_util as __lalrpop_util; - #[allow(dead_code)] - pub enum __Symbol<'input> { - Term_22_28_22(&'input str), - Term_22_29_22(&'input str), - Term_22_2a_22(&'input str), - Term_22_2b_22(&'input str), - Term_22_2c_22(&'input str), - Term_22_2d_22(&'input str), - Term_22_2f_22(&'input str), - Term_22_3b_22(&'input str), - Term_22_3d_22(&'input str), - Term_22_5e_22(&'input str), - Term_22abs_22(&'input str), - Term_22connect_22(&'input str), - Term_22constant_22(&'input str), - Term_22der_22(&'input str), - Term_22discrete_22(&'input str), - Term_22end_22(&'input str), - Term_22equation_22(&'input str), - Term_22flow_22(&'input str), - Term_22input_22(&'input str), - Term_22model_22(&'input str), - Term_22output_22(&'input str), - Term_22parameter_22(&'input str), - Term_22stream_22(&'input str), - Term_22unit_22(&'input str), - Termr_23_22_5c_22_5b_5e_5c_22_5c_5c_5c_5c_5d_2a_5c_22_22_23(&'input str), - Termr_23_22_5b_2b_2d_5d_3f_5c_5cd_2b_22_23(&'input str), - Termr_23_22_5b_2b_2d_5d_3f_5c_5cd_2b_5c_5c_2e_5c_5cd_2a_28_5beE_5d_5b_2d_2b_5d_3f_5c_5cd_2b_29_3f_22_23(&'input str), - Termr_23_22_5ba_2dzA_2dZ___5d_5ba_2dzA_2dZ__0_2d9_5d_2a_22_23(&'input str), - Termerror(__lalrpop_util::ErrorRecovery), - Nt____float(f64), - Nt____identifier(String), - Nt____integer(i64), - Nt____model(ModelicaModel), - Ntcomponent__declaration(Component), - Ntcomponent__declaration_2a(::std::vec::Vec), - Ntcomponent__declaration_2b(::std::vec::Vec), - Ntcomponent__prefix(ComponentPrefix), - Ntcomponent__prefix_3f(::std::option::Option), - Ntconnect__clause(Connection), - Ntconnect__clause_2a(::std::vec::Vec), - Ntconnect__clause_2b(::std::vec::Vec), - Ntexpr(Expr), - Ntfactor(Expr), - Ntfloat(f64), - Ntidentifier(String), - Ntinteger(i64), - Ntmodel(ModelicaModel), - Ntsimple__equation(SimpleEquation), - Ntsimple__equation_2a(::std::vec::Vec), - Ntsimple__equation_2b(::std::vec::Vec), - Ntstring__literal(String), - Ntstring__literal_3f(::std::option::Option), - Ntterm(Expr), - Ntunits__declaration(String), - Ntunits__declaration_3f(::std::option::Option), - Ntvalue__declaration(Expr), - Ntvalue__declaration_3f(::std::option::Option), - } - const __ACTION: &'static [i32] = &[ - // State 0 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 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, - // State 2 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, - // State 3 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 0, 12, 13, 14, 0, 15, 16, 17, 0, 0, 0, 0, 18, 0, - // State 4 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -48, 0, -48, 0, -48, -48, -48, 0, -48, -48, -48, 0, 0, 0, 0, -48, 0, - // State 5 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -23, 0, -23, 0, -23, -23, -23, 0, -23, -23, -23, 0, 0, 0, 0, -23, 0, - // State 6 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 0, 20, 13, 14, 0, 15, 16, 17, 0, 0, 0, 0, 18, 0, - // State 7 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 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, 23, 0, - // State 9 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -31, 0, - // State 10 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -29, 0, - // State 11 - 34, 0, 0, 0, 0, 35, 0, 0, 0, 0, 36, 37, 0, 38, 0, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 41, 42, 0, - // State 12 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -25, 0, - // State 13 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -27, 0, - // State 14 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -28, 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, -30, 0, - // State 16 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -26, 0, - // State 17 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -48, 0, - // State 18 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -24, 0, -24, 0, -24, -24, -24, 0, -24, -24, -24, 0, 0, 0, 0, -24, 0, - // State 19 - 34, 0, 0, 0, 0, 35, 0, 0, 0, 0, 36, 37, 0, 38, 0, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 41, 42, 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, 23, 0, - // State 21 - 50, 0, 0, 0, 0, 0, 0, 51, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 0, 0, 0, 0, - // State 22 - -48, 0, 0, 0, 0, 0, 0, -48, -48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -48, 0, 0, 0, 0, - // State 23 - -37, 0, 0, 0, 0, -37, 0, 0, 0, 0, -37, -37, 0, -37, 0, -37, 0, 0, 0, 0, 0, 0, 0, 0, 0, -37, -37, -37, 0, - // State 24 - 34, 0, 0, 0, 0, 35, 0, 0, 0, 0, 36, 37, 0, 38, 0, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 41, 42, 0, - // State 25 - 0, 0, 0, 57, 0, 58, 0, 0, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 26 - 0, 0, 60, -41, 0, -41, 61, 0, -41, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 27 - 0, 0, -67, -67, 0, -67, -67, 0, -67, -67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 28 - 0, 0, -68, -68, 0, -68, -68, 0, -68, -68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 29 - 0, 0, -66, -66, 0, -66, -66, 0, -66, -66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 30 - -61, 0, 0, 0, 0, -61, 0, 0, 0, 0, -61, 0, 0, -61, 0, -61, 0, 0, 0, 0, 0, 0, 0, 0, 0, -61, -61, -61, 0, - // State 31 - 34, 0, 0, 0, 0, 35, 0, 0, 0, 0, 36, 0, 0, 38, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 41, 42, 0, - // State 32 - 0, 0, -46, -46, 0, -46, -46, 0, -46, -46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 33 - 71, 0, 0, 0, 0, 72, 0, 0, 0, 0, 73, 0, 0, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 76, 77, 0, - // State 34 - 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 41, 42, 0, - // State 35 - 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, - // State 36 - 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, - // State 37 - 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, - // State 38 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 0, - // State 39 - 0, 0, -49, -49, 0, -49, -49, 0, -49, -49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 40 - 0, 0, -47, -47, 0, -47, -47, 0, -47, -47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 41 - 0, 0, -48, -48, 0, -48, -48, 0, -48, -48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 42 - 34, 0, 0, 0, 0, 35, 0, 0, 0, 0, 36, 37, 0, 38, 0, 85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 41, 42, 0, - // State 43 - 34, 0, 0, 0, 0, 35, 0, 0, 0, 0, 36, 0, 0, 38, 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 41, 42, 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, 83, 0, - // State 45 - 50, 0, 0, 0, 0, 0, 0, 91, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 0, 0, 0, 0, - // State 46 - 0, 0, 0, 0, 0, 0, 0, 92, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 47 - 0, 0, 0, 0, 0, 0, 0, 95, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 0, 0, 0, 0, - // State 48 - 0, 0, 0, 0, 0, 0, 0, 97, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 0, 0, 0, 0, - // State 49 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 98, 0, 0, 0, 0, 0, - // State 50 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -20, 0, -20, 0, -20, -20, -20, 0, -20, -20, -20, 0, 0, 0, 0, -20, 0, - // State 51 - 105, 0, 0, 0, 0, 106, 0, 0, 0, 0, 107, 0, 0, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109, 110, 111, 0, - // State 52 - 0, 0, 0, 0, 0, 0, 0, -63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 53 - -38, 0, 0, 0, 0, -38, 0, 0, 0, 0, -38, -38, 0, -38, 0, -38, 0, 0, 0, 0, 0, 0, 0, 0, 0, -38, -38, -38, 0, - // State 54 - 34, 0, 0, 0, 0, 35, 0, 0, 0, 0, 36, 0, 0, 38, 0, 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 41, 42, 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, 83, 0, - // State 56 - 34, 0, 0, 0, 0, 35, 0, 0, 0, 0, 36, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 41, 42, 0, - // State 57 - 34, 0, 0, 0, 0, 35, 0, 0, 0, 0, 36, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 41, 42, 0, - // State 58 - 122, 0, 0, 0, 0, 123, 0, 0, 0, 0, 124, 0, 0, 125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 126, 127, 128, 0, - // State 59 - 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 41, 42, 0, - // State 60 - 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 41, 42, 0, - // State 61 - 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 41, 42, 0, - // State 62 - -62, 0, 0, 0, 0, -62, 0, 0, 0, 0, -62, 0, 0, -62, 0, -62, 0, 0, 0, 0, 0, 0, 0, 0, 0, -62, -62, -62, 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, 83, 0, - // State 64 - 0, 133, 0, 134, 0, 135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 65 - 0, -41, 136, -41, 0, -41, 137, 0, 0, 138, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 66 - 0, -67, -67, -67, 0, -67, -67, 0, 0, -67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 67 - 0, -68, -68, -68, 0, -68, -68, 0, 0, -68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 68 - 0, -66, -66, -66, 0, -66, -66, 0, 0, -66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 69 - 0, -46, -46, -46, 0, -46, -46, 0, 0, -46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 70 - 71, 0, 0, 0, 0, 72, 0, 0, 0, 0, 73, 0, 0, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 76, 77, 0, - // State 71 - 71, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 0, 0, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 76, 77, 0, - // State 72 - 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, - // State 73 - 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, - // State 74 - 0, -49, -49, -49, 0, -49, -49, 0, 0, -49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 75 - 0, -47, -47, -47, 0, -47, -47, 0, 0, -47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 76 - 0, -48, -48, -48, 0, -48, -48, 0, 0, -48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 77 - 0, 0, -45, -45, 0, -45, -45, 0, -45, -45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 78 - 71, 0, 0, 0, 0, 72, 0, 0, 0, 0, 73, 0, 0, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 76, 77, 0, - // State 79 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 145, 0, - // State 80 - 71, 0, 0, 0, 0, 72, 0, 0, 0, 0, 73, 0, 0, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 76, 77, 0, - // State 81 - 0, 0, 0, 0, 0, 0, 0, 147, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 82 - 0, 0, 0, 0, 0, 0, 0, -48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 83 - 34, 0, 0, 0, 0, 35, 0, 0, 0, 0, 36, 0, 0, 38, 0, 148, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 41, 42, 0, - // State 84 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 0, - // State 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, 83, 0, - // State 86 - 0, 0, 0, 0, 0, 0, 0, 151, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 87 - 0, 0, 0, 0, 0, 0, 0, 152, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 88 - 0, 0, 0, 0, 0, 0, 0, 155, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 0, 0, 0, 0, - // State 89 - 0, 0, 0, 0, 0, 0, 0, 157, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 0, 0, 0, 0, - // State 90 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -12, 0, -12, 0, -12, -12, -12, 0, -12, -12, -12, 0, 0, 0, 0, -12, 0, - // State 91 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -16, 0, -16, 0, -16, -16, -16, 0, -16, -16, -16, 0, 0, 0, 0, -16, 0, - // State 92 - 0, 0, 0, 0, 0, 0, 0, 158, 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, 160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 0, 0, 0, 0, - // State 94 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -18, 0, -18, 0, -18, -18, -18, 0, -18, -18, -18, 0, 0, 0, 0, -18, 0, - // State 95 - 0, 0, 0, 0, 0, 0, 0, 161, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 96 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -19, 0, -19, 0, -19, -19, -19, 0, -19, -19, -19, 0, 0, 0, 0, -19, 0, - // State 97 - 0, 0, 0, 0, 0, 0, 0, 0, 162, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 98 - 0, 0, 0, 163, 0, 164, 0, -75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -75, 0, 0, 0, 0, - // State 99 - 0, 0, 165, -41, 0, -41, 166, -41, 0, 167, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -41, 0, 0, 0, 0, - // State 100 - 0, 0, -67, -67, 0, -67, -67, -67, 0, -67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -67, 0, 0, 0, 0, - // State 101 - 0, 0, -68, -68, 0, -68, -68, -68, 0, -68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -68, 0, 0, 0, 0, - // State 102 - 0, 0, -66, -66, 0, -66, -66, -66, 0, -66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -66, 0, 0, 0, 0, - // State 103 - 0, 0, -46, -46, 0, -46, -46, -46, 0, -46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -46, 0, 0, 0, 0, - // State 104 - 71, 0, 0, 0, 0, 72, 0, 0, 0, 0, 73, 0, 0, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 76, 77, 0, - // State 105 - 105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 107, 0, 0, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109, 110, 111, 0, - // State 106 - 170, 0, 0, 0, 0, 0, 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 - 171, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 108 - 0, 0, -49, -49, 0, -49, -49, -49, 0, -49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -49, 0, 0, 0, 0, - // State 109 - 0, 0, -47, -47, 0, -47, -47, -47, 0, -47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -47, 0, 0, 0, 0, - // State 110 - 0, 0, -48, -48, 0, -48, -48, -48, 0, -48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -48, 0, 0, 0, 0, - // State 111 - 0, 0, 0, 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, - // State 112 - 0, 0, 0, 0, 0, 0, 0, 173, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 113 - 0, 0, 60, -39, 0, -39, 61, 0, -39, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 114 - 0, 0, 60, -40, 0, -40, 61, 0, -40, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 115 - 0, 0, 0, 174, 0, 175, 0, 176, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 116 - 0, 0, 177, -41, 0, -41, 178, -41, 0, 179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 117 - 0, 0, -67, -67, 0, -67, -67, -67, 0, -67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 118 - 0, 0, -68, -68, 0, -68, -68, -68, 0, -68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 119 - 0, 0, -66, -66, 0, -66, -66, -66, 0, -66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 120 - 0, 0, -46, -46, 0, -46, -46, -46, 0, -46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 121 - 71, 0, 0, 0, 0, 72, 0, 0, 0, 0, 73, 0, 0, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 76, 77, 0, - // State 122 - 122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 124, 0, 0, 125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 126, 127, 128, 0, - // State 123 - 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 124 - 183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 125 - 0, 0, -49, -49, 0, -49, -49, -49, 0, -49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 126 - 0, 0, -47, -47, 0, -47, -47, -47, 0, -47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 127 - 0, 0, -48, -48, 0, -48, -48, -48, 0, -48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 128 - 0, 0, -42, -42, 0, -42, -42, 0, -42, -42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 129 - 0, 0, -43, -43, 0, -43, -43, 0, -43, -43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 130 - 0, 0, -44, -44, 0, -44, -44, 0, -44, -44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 131 - 0, 0, 0, 0, 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 132 - 0, 0, -71, -71, 0, -71, -71, 0, -71, -71, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 133 - 71, 0, 0, 0, 0, 72, 0, 0, 0, 0, 73, 0, 0, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 76, 77, 0, - // State 134 - 71, 0, 0, 0, 0, 72, 0, 0, 0, 0, 73, 0, 0, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 76, 77, 0, - // State 135 - 71, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 0, 0, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 76, 77, 0, - // State 136 - 71, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 0, 0, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 76, 77, 0, - // State 137 - 71, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 0, 0, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 76, 77, 0, - // State 138 - 0, 190, 0, 134, 0, 135, 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, -45, -45, -45, 0, -45, -45, 0, 0, -45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 140 - 71, 0, 0, 0, 0, 72, 0, 0, 0, 0, 73, 0, 0, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 76, 77, 0, - // State 141 - 71, 0, 0, 0, 0, 72, 0, 0, 0, 0, 73, 0, 0, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 76, 77, 0, - // State 142 - 0, 193, 0, 134, 0, 135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 143 - 0, 0, 0, 0, 194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 144 - 0, 0, 0, 0, -48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 145 - 0, 195, 0, 134, 0, 135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 146 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 147 - 0, 0, 0, 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, - // State 148 - 0, 0, 0, 0, 0, 0, 0, 197, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 149 - 0, 0, 0, 0, 0, 0, 0, 198, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // 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, - // State 151 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -8, 0, -8, 0, -8, -8, -8, 0, -8, -8, -8, 0, 0, 0, 0, -8, 0, - // State 152 - 0, 0, 0, 0, 0, 0, 0, 199, 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, 201, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 0, 0, 0, 0, - // State 154 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -10, 0, -10, 0, -10, -10, -10, 0, -10, -10, -10, 0, 0, 0, 0, -10, 0, - // State 155 - 0, 0, 0, 0, 0, 0, 0, 202, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 156 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -11, 0, -11, 0, -11, -11, -11, 0, -11, -11, -11, 0, 0, 0, 0, -11, 0, - // State 157 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -14, 0, -14, 0, -14, -14, -14, 0, -14, -14, -14, 0, 0, 0, 0, -14, 0, - // State 158 - 0, 0, 0, 0, 0, 0, 0, 203, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 159 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -17, 0, -17, 0, -17, -17, -17, 0, -17, -17, -17, 0, 0, 0, 0, -17, 0, - // State 160 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -15, 0, -15, 0, -15, -15, -15, 0, -15, -15, -15, 0, 0, 0, 0, -15, 0, - // State 161 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 205, 0, 0, 0, 0, - // State 162 - 105, 0, 0, 0, 0, 106, 0, 0, 0, 0, 107, 0, 0, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109, 110, 111, 0, - // State 163 - 105, 0, 0, 0, 0, 106, 0, 0, 0, 0, 107, 0, 0, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109, 110, 111, 0, - // State 164 - 105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 107, 0, 0, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109, 110, 111, 0, - // State 165 - 105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 107, 0, 0, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109, 110, 111, 0, - // State 166 - 105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 107, 0, 0, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109, 110, 111, 0, - // State 167 - 0, 211, 0, 134, 0, 135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 168 - 0, 0, -45, -45, 0, -45, -45, -45, 0, -45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -45, 0, 0, 0, 0, - // State 169 - 71, 0, 0, 0, 0, 72, 0, 0, 0, 0, 73, 0, 0, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 76, 77, 0, - // State 170 - 71, 0, 0, 0, 0, 72, 0, 0, 0, 0, 73, 0, 0, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 76, 77, 0, - // State 171 - 0, 0, 0, 0, 0, 0, 0, 214, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 172 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 173 - 122, 0, 0, 0, 0, 123, 0, 0, 0, 0, 124, 0, 0, 125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 126, 127, 128, 0, - // State 174 - 122, 0, 0, 0, 0, 123, 0, 0, 0, 0, 124, 0, 0, 125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 126, 127, 128, 0, - // State 175 - -58, 0, 0, 0, 0, -58, 0, 0, 0, 0, -58, 0, 0, -58, 0, -58, 0, 0, 0, 0, 0, 0, 0, 0, 0, -58, -58, -58, 0, - // State 176 - 122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 124, 0, 0, 125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 126, 127, 128, 0, - // State 177 - 122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 124, 0, 0, 125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 126, 127, 128, 0, - // State 178 - 122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 124, 0, 0, 125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 126, 127, 128, 0, - // State 179 - 0, 220, 0, 134, 0, 135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 180 - 0, 0, -45, -45, 0, -45, -45, -45, 0, -45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 181 - 71, 0, 0, 0, 0, 72, 0, 0, 0, 0, 73, 0, 0, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 76, 77, 0, - // State 182 - 71, 0, 0, 0, 0, 72, 0, 0, 0, 0, 73, 0, 0, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 76, 77, 0, - // State 183 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 184 - 0, -39, 136, -39, 0, -39, 137, 0, 0, 138, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 185 - 0, -40, 136, -40, 0, -40, 137, 0, 0, 138, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 186 - 0, -42, -42, -42, 0, -42, -42, 0, 0, -42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 187 - 0, -43, -43, -43, 0, -43, -43, 0, 0, -43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 188 - 0, -44, -44, -44, 0, -44, -44, 0, 0, -44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 189 - 0, -71, -71, -71, 0, -71, -71, 0, 0, -71, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 190 - 0, 223, 0, 134, 0, 135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 191 - 0, 224, 0, 134, 0, 135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 192 - 0, 0, -70, -70, 0, -70, -70, 0, -70, -70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 193 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 226, 0, - // State 194 - 0, 0, -69, -69, 0, -69, -69, 0, -69, -69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 195 - 0, 0, 0, 0, 0, 0, 0, 227, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 196 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 197 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 198 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -6, 0, -6, 0, -6, -6, -6, 0, -6, -6, -6, 0, 0, 0, 0, -6, 0, - // State 199 - 0, 0, 0, 0, 0, 0, 0, 228, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 200 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -9, 0, -9, 0, -9, -9, -9, 0, -9, -9, -9, 0, 0, 0, 0, -9, 0, - // State 201 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -7, 0, -7, 0, -7, -7, -7, 0, -7, -7, -7, 0, 0, 0, 0, -7, 0, - // State 202 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -13, 0, -13, 0, -13, -13, -13, 0, -13, -13, -13, 0, 0, 0, 0, -13, 0, - // State 203 - 0, 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 204 - 0, -63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 205 - 0, 0, 165, -39, 0, -39, 166, -39, 0, 167, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -39, 0, 0, 0, 0, - // State 206 - 0, 0, 165, -40, 0, -40, 166, -40, 0, 167, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -40, 0, 0, 0, 0, - // State 207 - 0, 0, -42, -42, 0, -42, -42, -42, 0, -42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -42, 0, 0, 0, 0, - // State 208 - 0, 0, -43, -43, 0, -43, -43, -43, 0, -43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -43, 0, 0, 0, 0, - // State 209 - 0, 0, -44, -44, 0, -44, -44, -44, 0, -44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -44, 0, 0, 0, 0, - // State 210 - 0, 0, -71, -71, 0, -71, -71, -71, 0, -71, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -71, 0, 0, 0, 0, - // State 211 - 0, 230, 0, 134, 0, 135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 212 - 0, 231, 0, 134, 0, 135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 213 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 214 - 0, 0, 177, -39, 0, -39, 178, -39, 0, 179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 215 - 0, 0, 177, -40, 0, -40, 178, -40, 0, 179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 216 - 0, 0, -42, -42, 0, -42, -42, -42, 0, -42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 217 - 0, 0, -43, -43, 0, -43, -43, -43, 0, -43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 218 - 0, 0, -44, -44, 0, -44, -44, -44, 0, -44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 219 - 0, 0, -71, -71, 0, -71, -71, -71, 0, -71, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 220 - 0, 232, 0, 134, 0, 135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 221 - 0, 233, 0, 134, 0, 135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 222 - 0, -70, -70, -70, 0, -70, -70, 0, 0, -70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 223 - 0, -69, -69, -69, 0, -69, -69, 0, 0, -69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 224 - 0, 234, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 225 - 0, -48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 226 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 227 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -5, 0, -5, 0, -5, -5, -5, 0, -5, -5, -5, 0, 0, 0, 0, -5, 0, - // State 228 - 0, 0, 0, 0, 0, 0, 0, -72, -72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -72, 0, 0, 0, 0, - // State 229 - 0, 0, -70, -70, 0, -70, -70, -70, 0, -70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -70, 0, 0, 0, 0, - // State 230 - 0, 0, -69, -69, 0, -69, -69, -69, 0, -69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -69, 0, 0, 0, 0, - // State 231 - 0, 0, -70, -70, 0, -70, -70, -70, 0, -70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 232 - 0, 0, -69, -69, 0, -69, -69, -69, 0, -69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 233 - 0, 0, 0, 0, 0, 0, 0, 235, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 234 - -34, 0, 0, 0, 0, -34, 0, 0, 0, 0, -34, -34, 0, -34, 0, -34, 0, 0, 0, 0, 0, 0, 0, 0, 0, -34, -34, -34, 0, - ]; - const __EOF_ACTION: &'static [i32] = &[ - 0, - -4, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -50, - 0, - 0, - 0, - -54, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -52, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -51, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -56, - -55, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -53, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -57, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - ]; - const __GOTO: &'static [i32] = &[ - // State 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, - // 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, - // State 2 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 3 - 0, 0, 0, 0, 6, 0, 7, 8, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 4 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // 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, - // State 6 - 0, 0, 0, 0, 19, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 7 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 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, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 9 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 10 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 11 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 25, 26, 27, 28, 29, 30, 0, 31, 0, 32, 0, 0, 33, 0, 0, 0, 0, - // State 12 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 13 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 14 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // 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, - // State 16 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 17 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // 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, - // State 19 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 43, 26, 27, 28, 29, 30, 0, 31, 0, 44, 0, 0, 33, 0, 0, 0, 0, - // State 20 - 0, 0, 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, - // State 21 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 0, 0, 48, 0, 49, 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, - // 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, - // State 24 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 54, 0, 0, 26, 27, 28, 29, 30, 0, 31, 0, 55, 0, 0, 33, 0, 0, 0, 0, - // State 25 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 26 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // 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, - // State 28 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // 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, - // 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, - // State 31 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 27, 28, 29, 30, 0, 63, 0, 0, 0, 0, 33, 0, 0, 0, 0, - // State 32 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 33 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65, 66, 67, 68, 69, 0, 0, 0, 0, 0, 0, 70, 0, 0, 0, 0, - // State 34 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 29, 30, 0, 0, 0, 0, 0, 0, 78, 0, 0, 0, 0, - // State 35 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // 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, - // State 37 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 38 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 39 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 40 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // 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, - // State 42 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 54, 0, 0, 26, 27, 28, 29, 30, 0, 31, 0, 84, 0, 0, 33, 0, 0, 0, 0, - // State 43 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 27, 28, 29, 30, 0, 63, 0, 0, 0, 0, 33, 0, 0, 0, 0, - // State 44 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 45 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 0, 0, 89, 0, 90, 0, - // State 46 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 47 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 93, 0, 0, 0, 0, 94, 0, - // State 48 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 0, 0, 0, 0, 0, 0, - // State 49 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // 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, - // State 51 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 99, 100, 101, 102, 103, 0, 0, 0, 0, 0, 0, 104, 0, 0, 0, 0, - // State 52 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 53 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 54 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 27, 28, 29, 30, 0, 63, 0, 0, 0, 0, 33, 0, 0, 0, 0, - // State 55 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 113, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 56 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 114, 28, 29, 30, 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, - // State 57 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 115, 28, 29, 30, 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, - // State 58 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 116, 117, 118, 119, 120, 0, 0, 0, 0, 0, 0, 121, 0, 0, 0, 0, - // State 59 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 29, 30, 0, 0, 0, 0, 0, 0, 129, 0, 0, 0, 0, - // State 60 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 29, 30, 0, 0, 0, 0, 0, 0, 130, 0, 0, 0, 0, - // State 61 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 29, 30, 0, 0, 0, 0, 0, 0, 131, 0, 0, 0, 0, - // State 62 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 63 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 132, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 64 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // 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, - // State 66 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 67 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 68 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 69 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 70 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 139, 66, 67, 68, 69, 0, 0, 0, 0, 0, 0, 70, 0, 0, 0, 0, - // State 71 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 68, 69, 0, 0, 0, 0, 0, 0, 140, 0, 0, 0, 0, - // State 72 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 73 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 74 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 75 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 76 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 77 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 78 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 143, 66, 67, 68, 69, 0, 0, 0, 0, 0, 0, 70, 0, 0, 0, 0, - // State 79 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 80 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 146, 66, 67, 68, 69, 0, 0, 0, 0, 0, 0, 70, 0, 0, 0, 0, - // State 81 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 82 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 83 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 27, 28, 29, 30, 0, 63, 0, 0, 0, 0, 33, 0, 0, 0, 0, - // State 84 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 85 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 150, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 86 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 87 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 88 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 153, 0, 0, 0, 0, 154, 0, - // State 89 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 156, 0, 0, 0, 0, 0, 0, - // State 90 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // 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, - // State 92 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 93 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 159, 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, - // State 95 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 96 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 97 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // 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, - // 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, - // State 100 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 101 - 0, 0, 0, 0, 0, 0, 0, 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, - // State 103 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 104 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 168, 66, 67, 68, 69, 0, 0, 0, 0, 0, 0, 70, 0, 0, 0, 0, - // State 105 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 101, 102, 103, 0, 0, 0, 0, 0, 0, 169, 0, 0, 0, 0, - // State 106 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // 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, - // 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, - // State 109 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 110 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 111 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 112 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 113 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // 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, - // State 115 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 116 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 117 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 118 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 119 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 120 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 121 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, 66, 67, 68, 69, 0, 0, 0, 0, 0, 0, 70, 0, 0, 0, 0, - // State 122 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 118, 119, 120, 0, 0, 0, 0, 0, 0, 181, 0, 0, 0, 0, - // State 123 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // 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, - // State 125 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // 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, - // State 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, - // State 128 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // 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, - // 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, - // 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, - // State 132 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 133 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 185, 67, 68, 69, 0, 0, 0, 0, 0, 0, 70, 0, 0, 0, 0, - // State 134 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 186, 67, 68, 69, 0, 0, 0, 0, 0, 0, 70, 0, 0, 0, 0, - // State 135 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 68, 69, 0, 0, 0, 0, 0, 0, 187, 0, 0, 0, 0, - // State 136 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 68, 69, 0, 0, 0, 0, 0, 0, 188, 0, 0, 0, 0, - // State 137 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 68, 69, 0, 0, 0, 0, 0, 0, 189, 0, 0, 0, 0, - // State 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, - // State 139 - 0, 0, 0, 0, 0, 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, 0, 191, 66, 67, 68, 69, 0, 0, 0, 0, 0, 0, 70, 0, 0, 0, 0, - // State 141 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 192, 66, 67, 68, 69, 0, 0, 0, 0, 0, 0, 70, 0, 0, 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, - // State 143 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 144 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, - // State 146 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 147 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 148 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 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, - // 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, - // State 151 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 152 - 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 200, 0, 0, 0, 0, 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, - // State 155 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 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, - // 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, - // State 158 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 159 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, - // State 161 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 204, 0, 0, 0, 0, 0, 0, - // State 162 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 206, 101, 102, 103, 0, 0, 0, 0, 0, 0, 104, 0, 0, 0, 0, - // State 163 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 207, 101, 102, 103, 0, 0, 0, 0, 0, 0, 104, 0, 0, 0, 0, - // State 164 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 101, 102, 103, 0, 0, 0, 0, 0, 0, 208, 0, 0, 0, 0, - // State 165 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 101, 102, 103, 0, 0, 0, 0, 0, 0, 209, 0, 0, 0, 0, - // State 166 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 101, 102, 103, 0, 0, 0, 0, 0, 0, 210, 0, 0, 0, 0, - // State 167 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 168 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 169 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 212, 66, 67, 68, 69, 0, 0, 0, 0, 0, 0, 70, 0, 0, 0, 0, - // State 170 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 213, 66, 67, 68, 69, 0, 0, 0, 0, 0, 0, 70, 0, 0, 0, 0, - // State 171 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 172 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 173 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 215, 118, 119, 120, 0, 0, 0, 0, 0, 0, 121, 0, 0, 0, 0, - // State 174 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 216, 118, 119, 120, 0, 0, 0, 0, 0, 0, 121, 0, 0, 0, 0, - // State 175 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 176 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 118, 119, 120, 0, 0, 0, 0, 0, 0, 217, 0, 0, 0, 0, - // State 177 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 118, 119, 120, 0, 0, 0, 0, 0, 0, 218, 0, 0, 0, 0, - // State 178 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 118, 119, 120, 0, 0, 0, 0, 0, 0, 219, 0, 0, 0, 0, - // State 179 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 180 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 181 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 221, 66, 67, 68, 69, 0, 0, 0, 0, 0, 0, 70, 0, 0, 0, 0, - // State 182 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 222, 66, 67, 68, 69, 0, 0, 0, 0, 0, 0, 70, 0, 0, 0, 0, - // State 183 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 184 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 185 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 186 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 187 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 188 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 189 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 190 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 191 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 192 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 193 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 225, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 194 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 195 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 196 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 197 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 198 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 199 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 200 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 201 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 202 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 203 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 204 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 205 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 206 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 207 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 208 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 209 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 210 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 211 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 212 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 213 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 214 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 215 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 216 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 217 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 218 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 219 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 220 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 221 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 222 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 223 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 224 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 225 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 226 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 227 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 228 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 229 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 230 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 231 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 232 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 233 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 234 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - ]; - pub fn parse_model< - 'input, - >( - input: &'input str, - ) -> Result> - { - let mut __tokens = super::__intern_token::__Matcher::new(input); - let mut __states = vec![0_i32]; - let mut __symbols = vec![]; - let mut __integer; - let mut __lookahead; - let mut __last_location = Default::default(); - '__shift: loop { - __lookahead = match __tokens.next() { - Some(Ok(v)) => v, - None => break '__shift, - Some(Err(e)) => return Err(e), - }; - __last_location = __lookahead.2.clone(); - __integer = match __lookahead.1 { - (0, _) if true => 0, - (1, _) if true => 1, - (2, _) if true => 2, - (3, _) if true => 3, - (4, _) if true => 4, - (5, _) if true => 5, - (6, _) if true => 6, - (7, _) if true => 7, - (8, _) if true => 8, - (9, _) if true => 9, - (10, _) if true => 10, - (11, _) if true => 11, - (12, _) if true => 12, - (13, _) if true => 13, - (14, _) if true => 14, - (15, _) if true => 15, - (16, _) if true => 16, - (17, _) if true => 17, - (18, _) if true => 18, - (19, _) if true => 19, - (20, _) if true => 20, - (21, _) if true => 21, - (22, _) if true => 22, - (23, _) if true => 23, - (24, _) if true => 24, - (25, _) if true => 25, - (26, _) if true => 26, - (27, _) if true => 27, - _ => { - return Err(__lalrpop_util::ParseError::UnrecognizedToken { - token: Some(__lookahead), - expected: vec![], - }); - } - }; - '__inner: loop { - let __state = *__states.last().unwrap() as usize; - let __action = __ACTION[__state * 29 + __integer]; - if __action > 0 { - let __symbol = match __integer { - 0 => match __lookahead.1 { - (0, __tok0) => __Symbol::Term_22_28_22(__tok0), - _ => unreachable!(), - }, - 1 => match __lookahead.1 { - (1, __tok0) => __Symbol::Term_22_29_22(__tok0), - _ => unreachable!(), - }, - 2 => match __lookahead.1 { - (2, __tok0) => __Symbol::Term_22_2a_22(__tok0), - _ => unreachable!(), - }, - 3 => match __lookahead.1 { - (3, __tok0) => __Symbol::Term_22_2b_22(__tok0), - _ => unreachable!(), - }, - 4 => match __lookahead.1 { - (4, __tok0) => __Symbol::Term_22_2c_22(__tok0), - _ => unreachable!(), - }, - 5 => match __lookahead.1 { - (5, __tok0) => __Symbol::Term_22_2d_22(__tok0), - _ => unreachable!(), - }, - 6 => match __lookahead.1 { - (6, __tok0) => __Symbol::Term_22_2f_22(__tok0), - _ => unreachable!(), - }, - 7 => match __lookahead.1 { - (7, __tok0) => __Symbol::Term_22_3b_22(__tok0), - _ => unreachable!(), - }, - 8 => match __lookahead.1 { - (8, __tok0) => __Symbol::Term_22_3d_22(__tok0), - _ => unreachable!(), - }, - 9 => match __lookahead.1 { - (9, __tok0) => __Symbol::Term_22_5e_22(__tok0), - _ => unreachable!(), - }, - 10 => match __lookahead.1 { - (10, __tok0) => __Symbol::Term_22abs_22(__tok0), - _ => unreachable!(), - }, - 11 => match __lookahead.1 { - (11, __tok0) => __Symbol::Term_22connect_22(__tok0), - _ => unreachable!(), - }, - 12 => match __lookahead.1 { - (12, __tok0) => __Symbol::Term_22constant_22(__tok0), - _ => unreachable!(), - }, - 13 => match __lookahead.1 { - (13, __tok0) => __Symbol::Term_22der_22(__tok0), - _ => unreachable!(), - }, - 14 => match __lookahead.1 { - (14, __tok0) => __Symbol::Term_22discrete_22(__tok0), - _ => unreachable!(), - }, - 15 => match __lookahead.1 { - (15, __tok0) => __Symbol::Term_22end_22(__tok0), - _ => unreachable!(), - }, - 16 => match __lookahead.1 { - (16, __tok0) => __Symbol::Term_22equation_22(__tok0), - _ => unreachable!(), - }, - 17 => match __lookahead.1 { - (17, __tok0) => __Symbol::Term_22flow_22(__tok0), - _ => unreachable!(), - }, - 18 => match __lookahead.1 { - (18, __tok0) => __Symbol::Term_22input_22(__tok0), - _ => unreachable!(), - }, - 19 => match __lookahead.1 { - (19, __tok0) => __Symbol::Term_22model_22(__tok0), - _ => unreachable!(), - }, - 20 => match __lookahead.1 { - (20, __tok0) => __Symbol::Term_22output_22(__tok0), - _ => unreachable!(), - }, - 21 => match __lookahead.1 { - (21, __tok0) => __Symbol::Term_22parameter_22(__tok0), - _ => unreachable!(), - }, - 22 => match __lookahead.1 { - (22, __tok0) => __Symbol::Term_22stream_22(__tok0), - _ => unreachable!(), - }, - 23 => match __lookahead.1 { - (23, __tok0) => __Symbol::Term_22unit_22(__tok0), - _ => unreachable!(), - }, - 24 => match __lookahead.1 { - (24, __tok0) => __Symbol::Termr_23_22_5c_22_5b_5e_5c_22_5c_5c_5c_5c_5d_2a_5c_22_22_23(__tok0), - _ => unreachable!(), - }, - 25 => match __lookahead.1 { - (25, __tok0) => __Symbol::Termr_23_22_5b_2b_2d_5d_3f_5c_5cd_2b_22_23(__tok0), - _ => unreachable!(), - }, - 26 => match __lookahead.1 { - (26, __tok0) => __Symbol::Termr_23_22_5b_2b_2d_5d_3f_5c_5cd_2b_5c_5c_2e_5c_5cd_2a_28_5beE_5d_5b_2d_2b_5d_3f_5c_5cd_2b_29_3f_22_23(__tok0), - _ => unreachable!(), - }, - 27 => match __lookahead.1 { - (27, __tok0) => __Symbol::Termr_23_22_5ba_2dzA_2dZ___5d_5ba_2dzA_2dZ__0_2d9_5d_2a_22_23(__tok0), - _ => unreachable!(), - }, - _ => unreachable!(), - }; - __states.push(__action - 1); - __symbols.push((__lookahead.0, __symbol, __lookahead.2)); - continue '__shift; - } else if __action < 0 { - if let Some(r) = __reduce(input, __action, Some(&__lookahead.0), &mut __states, &mut __symbols, ::std::marker::PhantomData::<()>) { - return r; - } - } else { - return Err(__lalrpop_util::ParseError::UnrecognizedToken { - token: Some(__lookahead), - expected: vec![], - }); - } - } - } - loop { - let __state = *__states.last().unwrap() as usize; - let __action = __EOF_ACTION[__state]; - if __action < 0 { - if let Some(r) = __reduce(input, __action, None, &mut __states, &mut __symbols, ::std::marker::PhantomData::<()>) { - return r; - } - } else { - let __error = __lalrpop_util::ParseError::UnrecognizedToken { - token: None, - expected: vec![], - }; - return Err(__error); - } - } - } - pub fn __reduce< - 'input, - >( - input: &'input str, - __action: i32, - __lookahead_start: Option<&usize>, - __states: &mut ::std::vec::Vec, - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>, - _: ::std::marker::PhantomData<()>, - ) -> Option>> - { - let __nonterminal = match -__action { - 1 => { - // __float = float => ActionFn(2); - let __sym0 = __pop_Ntfloat(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action2::<>(input, __sym0); - let __states_len = __states.len(); - __states.truncate(__states_len - 1); - __symbols.push((__start, __Symbol::Nt____float(__nt), __end)); - 0 - } - 2 => { - // __identifier = identifier => ActionFn(0); - let __sym0 = __pop_Ntidentifier(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action0::<>(input, __sym0); - let __states_len = __states.len(); - __states.truncate(__states_len - 1); - __symbols.push((__start, __Symbol::Nt____identifier(__nt), __end)); - 1 - } - 3 => { - // __integer = integer => ActionFn(1); - let __sym0 = __pop_Ntinteger(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action1::<>(input, __sym0); - let __states_len = __states.len(); - __states.truncate(__states_len - 1); - __symbols.push((__start, __Symbol::Nt____integer(__nt), __end)); - 2 - } - 4 => { - // __model = model => ActionFn(3); - let __sym0 = __pop_Ntmodel(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action3::<>(input, __sym0); - return Some(Ok(__nt)); - } - 5 => { - // component_declaration = component_prefix, identifier, identifier, units_declaration, value_declaration, string_literal, ";" => ActionFn(83); - let __sym6 = __pop_Term_22_3b_22(__symbols); - let __sym5 = __pop_Ntstring__literal(__symbols); - let __sym4 = __pop_Ntvalue__declaration(__symbols); - let __sym3 = __pop_Ntunits__declaration(__symbols); - let __sym2 = __pop_Ntidentifier(__symbols); - let __sym1 = __pop_Ntidentifier(__symbols); - let __sym0 = __pop_Ntcomponent__prefix(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym6.2.clone(); - let __nt = super::__action83::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6); - let __states_len = __states.len(); - __states.truncate(__states_len - 7); - __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); - 4 - } - 6 => { - // component_declaration = component_prefix, identifier, identifier, units_declaration, string_literal, ";" => ActionFn(84); - let __sym5 = __pop_Term_22_3b_22(__symbols); - let __sym4 = __pop_Ntstring__literal(__symbols); - let __sym3 = __pop_Ntunits__declaration(__symbols); - let __sym2 = __pop_Ntidentifier(__symbols); - let __sym1 = __pop_Ntidentifier(__symbols); - let __sym0 = __pop_Ntcomponent__prefix(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym5.2.clone(); - let __nt = super::__action84::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5); - let __states_len = __states.len(); - __states.truncate(__states_len - 6); - __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); - 4 - } - 7 => { - // component_declaration = component_prefix, identifier, identifier, value_declaration, string_literal, ";" => ActionFn(85); - let __sym5 = __pop_Term_22_3b_22(__symbols); - let __sym4 = __pop_Ntstring__literal(__symbols); - let __sym3 = __pop_Ntvalue__declaration(__symbols); - let __sym2 = __pop_Ntidentifier(__symbols); - let __sym1 = __pop_Ntidentifier(__symbols); - let __sym0 = __pop_Ntcomponent__prefix(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym5.2.clone(); - let __nt = super::__action85::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5); - let __states_len = __states.len(); - __states.truncate(__states_len - 6); - __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); - 4 - } - 8 => { - // component_declaration = component_prefix, identifier, identifier, string_literal, ";" => ActionFn(86); - let __sym4 = __pop_Term_22_3b_22(__symbols); - let __sym3 = __pop_Ntstring__literal(__symbols); - let __sym2 = __pop_Ntidentifier(__symbols); - let __sym1 = __pop_Ntidentifier(__symbols); - let __sym0 = __pop_Ntcomponent__prefix(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym4.2.clone(); - let __nt = super::__action86::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4); - let __states_len = __states.len(); - __states.truncate(__states_len - 5); - __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); - 4 - } - 9 => { - // component_declaration = component_prefix, identifier, identifier, units_declaration, value_declaration, ";" => ActionFn(87); - let __sym5 = __pop_Term_22_3b_22(__symbols); - let __sym4 = __pop_Ntvalue__declaration(__symbols); - let __sym3 = __pop_Ntunits__declaration(__symbols); - let __sym2 = __pop_Ntidentifier(__symbols); - let __sym1 = __pop_Ntidentifier(__symbols); - let __sym0 = __pop_Ntcomponent__prefix(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym5.2.clone(); - let __nt = super::__action87::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5); - let __states_len = __states.len(); - __states.truncate(__states_len - 6); - __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); - 4 - } - 10 => { - // component_declaration = component_prefix, identifier, identifier, units_declaration, ";" => ActionFn(88); - let __sym4 = __pop_Term_22_3b_22(__symbols); - let __sym3 = __pop_Ntunits__declaration(__symbols); - let __sym2 = __pop_Ntidentifier(__symbols); - let __sym1 = __pop_Ntidentifier(__symbols); - let __sym0 = __pop_Ntcomponent__prefix(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym4.2.clone(); - let __nt = super::__action88::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4); - let __states_len = __states.len(); - __states.truncate(__states_len - 5); - __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); - 4 - } - 11 => { - // component_declaration = component_prefix, identifier, identifier, value_declaration, ";" => ActionFn(89); - let __sym4 = __pop_Term_22_3b_22(__symbols); - let __sym3 = __pop_Ntvalue__declaration(__symbols); - let __sym2 = __pop_Ntidentifier(__symbols); - let __sym1 = __pop_Ntidentifier(__symbols); - let __sym0 = __pop_Ntcomponent__prefix(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym4.2.clone(); - let __nt = super::__action89::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4); - let __states_len = __states.len(); - __states.truncate(__states_len - 5); - __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); - 4 - } - 12 => { - // component_declaration = component_prefix, identifier, identifier, ";" => ActionFn(90); - let __sym3 = __pop_Term_22_3b_22(__symbols); - let __sym2 = __pop_Ntidentifier(__symbols); - let __sym1 = __pop_Ntidentifier(__symbols); - let __sym0 = __pop_Ntcomponent__prefix(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym3.2.clone(); - let __nt = super::__action90::<>(input, __sym0, __sym1, __sym2, __sym3); - let __states_len = __states.len(); - __states.truncate(__states_len - 4); - __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); - 4 - } - 13 => { - // component_declaration = identifier, identifier, units_declaration, value_declaration, string_literal, ";" => ActionFn(91); - let __sym5 = __pop_Term_22_3b_22(__symbols); - let __sym4 = __pop_Ntstring__literal(__symbols); - let __sym3 = __pop_Ntvalue__declaration(__symbols); - let __sym2 = __pop_Ntunits__declaration(__symbols); - let __sym1 = __pop_Ntidentifier(__symbols); - let __sym0 = __pop_Ntidentifier(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym5.2.clone(); - let __nt = super::__action91::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5); - let __states_len = __states.len(); - __states.truncate(__states_len - 6); - __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); - 4 - } - 14 => { - // component_declaration = identifier, identifier, units_declaration, string_literal, ";" => ActionFn(92); - let __sym4 = __pop_Term_22_3b_22(__symbols); - let __sym3 = __pop_Ntstring__literal(__symbols); - let __sym2 = __pop_Ntunits__declaration(__symbols); - let __sym1 = __pop_Ntidentifier(__symbols); - let __sym0 = __pop_Ntidentifier(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym4.2.clone(); - let __nt = super::__action92::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4); - let __states_len = __states.len(); - __states.truncate(__states_len - 5); - __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); - 4 - } - 15 => { - // component_declaration = identifier, identifier, value_declaration, string_literal, ";" => ActionFn(93); - let __sym4 = __pop_Term_22_3b_22(__symbols); - let __sym3 = __pop_Ntstring__literal(__symbols); - let __sym2 = __pop_Ntvalue__declaration(__symbols); - let __sym1 = __pop_Ntidentifier(__symbols); - let __sym0 = __pop_Ntidentifier(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym4.2.clone(); - let __nt = super::__action93::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4); - let __states_len = __states.len(); - __states.truncate(__states_len - 5); - __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); - 4 - } - 16 => { - // component_declaration = identifier, identifier, string_literal, ";" => ActionFn(94); - let __sym3 = __pop_Term_22_3b_22(__symbols); - let __sym2 = __pop_Ntstring__literal(__symbols); - let __sym1 = __pop_Ntidentifier(__symbols); - let __sym0 = __pop_Ntidentifier(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym3.2.clone(); - let __nt = super::__action94::<>(input, __sym0, __sym1, __sym2, __sym3); - let __states_len = __states.len(); - __states.truncate(__states_len - 4); - __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); - 4 - } - 17 => { - // component_declaration = identifier, identifier, units_declaration, value_declaration, ";" => ActionFn(95); - let __sym4 = __pop_Term_22_3b_22(__symbols); - let __sym3 = __pop_Ntvalue__declaration(__symbols); - let __sym2 = __pop_Ntunits__declaration(__symbols); - let __sym1 = __pop_Ntidentifier(__symbols); - let __sym0 = __pop_Ntidentifier(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym4.2.clone(); - let __nt = super::__action95::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4); - let __states_len = __states.len(); - __states.truncate(__states_len - 5); - __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); - 4 - } - 18 => { - // component_declaration = identifier, identifier, units_declaration, ";" => ActionFn(96); - let __sym3 = __pop_Term_22_3b_22(__symbols); - let __sym2 = __pop_Ntunits__declaration(__symbols); - let __sym1 = __pop_Ntidentifier(__symbols); - let __sym0 = __pop_Ntidentifier(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym3.2.clone(); - let __nt = super::__action96::<>(input, __sym0, __sym1, __sym2, __sym3); - let __states_len = __states.len(); - __states.truncate(__states_len - 4); - __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); - 4 - } - 19 => { - // component_declaration = identifier, identifier, value_declaration, ";" => ActionFn(97); - let __sym3 = __pop_Term_22_3b_22(__symbols); - let __sym2 = __pop_Ntvalue__declaration(__symbols); - let __sym1 = __pop_Ntidentifier(__symbols); - let __sym0 = __pop_Ntidentifier(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym3.2.clone(); - let __nt = super::__action97::<>(input, __sym0, __sym1, __sym2, __sym3); - let __states_len = __states.len(); - __states.truncate(__states_len - 4); - __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); - 4 - } - 20 => { - // component_declaration = identifier, identifier, ";" => ActionFn(98); - let __sym2 = __pop_Term_22_3b_22(__symbols); - let __sym1 = __pop_Ntidentifier(__symbols); - let __sym0 = __pop_Ntidentifier(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym2.2.clone(); - let __nt = super::__action98::<>(input, __sym0, __sym1, __sym2); - let __states_len = __states.len(); - __states.truncate(__states_len - 3); - __symbols.push((__start, __Symbol::Ntcomponent__declaration(__nt), __end)); - 4 - } - 21 => { - // component_declaration* = => ActionFn(47); - let __start = __symbols.last().map(|s| s.2.clone()).unwrap_or_default(); - let __end = __lookahead_start.cloned().unwrap_or_else(|| __start.clone()); - let __nt = super::__action47::<>(input, &__start, &__end); - let __states_len = __states.len(); - __states.truncate(__states_len - 0); - __symbols.push((__start, __Symbol::Ntcomponent__declaration_2a(__nt), __end)); - 5 - } - 22 => { - // component_declaration* = component_declaration+ => ActionFn(48); - let __sym0 = __pop_Ntcomponent__declaration_2b(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action48::<>(input, __sym0); - let __states_len = __states.len(); - __states.truncate(__states_len - 1); - __symbols.push((__start, __Symbol::Ntcomponent__declaration_2a(__nt), __end)); - 5 - } - 23 => { - // component_declaration+ = component_declaration => ActionFn(49); - let __sym0 = __pop_Ntcomponent__declaration(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action49::<>(input, __sym0); - let __states_len = __states.len(); - __states.truncate(__states_len - 1); - __symbols.push((__start, __Symbol::Ntcomponent__declaration_2b(__nt), __end)); - 6 - } - 24 => { - // component_declaration+ = component_declaration+, component_declaration => ActionFn(50); - let __sym1 = __pop_Ntcomponent__declaration(__symbols); - let __sym0 = __pop_Ntcomponent__declaration_2b(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym1.2.clone(); - let __nt = super::__action50::<>(input, __sym0, __sym1); - let __states_len = __states.len(); - __states.truncate(__states_len - 2); - __symbols.push((__start, __Symbol::Ntcomponent__declaration_2b(__nt), __end)); - 6 - } - 25 => { - // component_prefix = "flow" => ActionFn(12); - let __sym0 = __pop_Term_22flow_22(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action12::<>(input, __sym0); - let __states_len = __states.len(); - __states.truncate(__states_len - 1); - __symbols.push((__start, __Symbol::Ntcomponent__prefix(__nt), __end)); - 7 - } - 26 => { - // component_prefix = "stream" => ActionFn(13); - let __sym0 = __pop_Term_22stream_22(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action13::<>(input, __sym0); - let __states_len = __states.len(); - __states.truncate(__states_len - 1); - __symbols.push((__start, __Symbol::Ntcomponent__prefix(__nt), __end)); - 7 - } - 27 => { - // component_prefix = "input" => ActionFn(14); - let __sym0 = __pop_Term_22input_22(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action14::<>(input, __sym0); - let __states_len = __states.len(); - __states.truncate(__states_len - 1); - __symbols.push((__start, __Symbol::Ntcomponent__prefix(__nt), __end)); - 7 - } - 28 => { - // component_prefix = "output" => ActionFn(15); - let __sym0 = __pop_Term_22output_22(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action15::<>(input, __sym0); - let __states_len = __states.len(); - __states.truncate(__states_len - 1); - __symbols.push((__start, __Symbol::Ntcomponent__prefix(__nt), __end)); - 7 - } - 29 => { - // component_prefix = "discrete" => ActionFn(16); - let __sym0 = __pop_Term_22discrete_22(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action16::<>(input, __sym0); - let __states_len = __states.len(); - __states.truncate(__states_len - 1); - __symbols.push((__start, __Symbol::Ntcomponent__prefix(__nt), __end)); - 7 - } - 30 => { - // component_prefix = "parameter" => ActionFn(17); - let __sym0 = __pop_Term_22parameter_22(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action17::<>(input, __sym0); - let __states_len = __states.len(); - __states.truncate(__states_len - 1); - __symbols.push((__start, __Symbol::Ntcomponent__prefix(__nt), __end)); - 7 - } - 31 => { - // component_prefix = "constant" => ActionFn(18); - let __sym0 = __pop_Term_22constant_22(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action18::<>(input, __sym0); - let __states_len = __states.len(); - __states.truncate(__states_len - 1); - __symbols.push((__start, __Symbol::Ntcomponent__prefix(__nt), __end)); - 7 - } - 32 => { - // component_prefix? = component_prefix => ActionFn(41); - let __sym0 = __pop_Ntcomponent__prefix(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action41::<>(input, __sym0); - let __states_len = __states.len(); - __states.truncate(__states_len - 1); - __symbols.push((__start, __Symbol::Ntcomponent__prefix_3f(__nt), __end)); - 8 - } - 33 => { - // component_prefix? = => ActionFn(42); - let __start = __symbols.last().map(|s| s.2.clone()).unwrap_or_default(); - let __end = __lookahead_start.cloned().unwrap_or_else(|| __start.clone()); - let __nt = super::__action42::<>(input, &__start, &__end); - let __states_len = __states.len(); - __states.truncate(__states_len - 0); - __symbols.push((__start, __Symbol::Ntcomponent__prefix_3f(__nt), __end)); - 8 - } - 34 => { - // connect_clause = "connect", "(", identifier, ",", identifier, ")", ";" => ActionFn(20); - let __sym6 = __pop_Term_22_3b_22(__symbols); - let __sym5 = __pop_Term_22_29_22(__symbols); - let __sym4 = __pop_Ntidentifier(__symbols); - let __sym3 = __pop_Term_22_2c_22(__symbols); - let __sym2 = __pop_Ntidentifier(__symbols); - let __sym1 = __pop_Term_22_28_22(__symbols); - let __sym0 = __pop_Term_22connect_22(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym6.2.clone(); - let __nt = super::__action20::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6); - let __states_len = __states.len(); - __states.truncate(__states_len - 7); - __symbols.push((__start, __Symbol::Ntconnect__clause(__nt), __end)); - 9 - } - 35 => { - // connect_clause* = => ActionFn(45); - let __start = __symbols.last().map(|s| s.2.clone()).unwrap_or_default(); - let __end = __lookahead_start.cloned().unwrap_or_else(|| __start.clone()); - let __nt = super::__action45::<>(input, &__start, &__end); - let __states_len = __states.len(); - __states.truncate(__states_len - 0); - __symbols.push((__start, __Symbol::Ntconnect__clause_2a(__nt), __end)); - 10 - } - 36 => { - // connect_clause* = connect_clause+ => ActionFn(46); - let __sym0 = __pop_Ntconnect__clause_2b(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action46::<>(input, __sym0); - let __states_len = __states.len(); - __states.truncate(__states_len - 1); - __symbols.push((__start, __Symbol::Ntconnect__clause_2a(__nt), __end)); - 10 - } - 37 => { - // connect_clause+ = connect_clause => ActionFn(51); - let __sym0 = __pop_Ntconnect__clause(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action51::<>(input, __sym0); - let __states_len = __states.len(); - __states.truncate(__states_len - 1); - __symbols.push((__start, __Symbol::Ntconnect__clause_2b(__nt), __end)); - 11 - } - 38 => { - // connect_clause+ = connect_clause+, connect_clause => ActionFn(52); - let __sym1 = __pop_Ntconnect__clause(__symbols); - let __sym0 = __pop_Ntconnect__clause_2b(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym1.2.clone(); - let __nt = super::__action52::<>(input, __sym0, __sym1); - let __states_len = __states.len(); - __states.truncate(__states_len - 2); - __symbols.push((__start, __Symbol::Ntconnect__clause_2b(__nt), __end)); - 11 - } - 39 => { - // expr = expr, "+", factor => ActionFn(21); - let __sym2 = __pop_Ntfactor(__symbols); - let __sym1 = __pop_Term_22_2b_22(__symbols); - let __sym0 = __pop_Ntexpr(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym2.2.clone(); - let __nt = super::__action21::<>(input, __sym0, __sym1, __sym2); - let __states_len = __states.len(); - __states.truncate(__states_len - 3); - __symbols.push((__start, __Symbol::Ntexpr(__nt), __end)); - 12 - } - 40 => { - // expr = expr, "-", factor => ActionFn(22); - let __sym2 = __pop_Ntfactor(__symbols); - let __sym1 = __pop_Term_22_2d_22(__symbols); - let __sym0 = __pop_Ntexpr(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym2.2.clone(); - let __nt = super::__action22::<>(input, __sym0, __sym1, __sym2); - let __states_len = __states.len(); - __states.truncate(__states_len - 3); - __symbols.push((__start, __Symbol::Ntexpr(__nt), __end)); - 12 - } - 41 => { - // expr = factor => ActionFn(23); - let __sym0 = __pop_Ntfactor(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action23::<>(input, __sym0); - let __states_len = __states.len(); - __states.truncate(__states_len - 1); - __symbols.push((__start, __Symbol::Ntexpr(__nt), __end)); - 12 - } - 42 => { - // factor = factor, "*", term => ActionFn(24); - let __sym2 = __pop_Ntterm(__symbols); - let __sym1 = __pop_Term_22_2a_22(__symbols); - let __sym0 = __pop_Ntfactor(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym2.2.clone(); - let __nt = super::__action24::<>(input, __sym0, __sym1, __sym2); - let __states_len = __states.len(); - __states.truncate(__states_len - 3); - __symbols.push((__start, __Symbol::Ntfactor(__nt), __end)); - 13 - } - 43 => { - // factor = factor, "/", term => ActionFn(25); - let __sym2 = __pop_Ntterm(__symbols); - let __sym1 = __pop_Term_22_2f_22(__symbols); - let __sym0 = __pop_Ntfactor(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym2.2.clone(); - let __nt = super::__action25::<>(input, __sym0, __sym1, __sym2); - let __states_len = __states.len(); - __states.truncate(__states_len - 3); - __symbols.push((__start, __Symbol::Ntfactor(__nt), __end)); - 13 - } - 44 => { - // factor = factor, "^", term => ActionFn(26); - let __sym2 = __pop_Ntterm(__symbols); - let __sym1 = __pop_Term_22_5e_22(__symbols); - let __sym0 = __pop_Ntfactor(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym2.2.clone(); - let __nt = super::__action26::<>(input, __sym0, __sym1, __sym2); - let __states_len = __states.len(); - __states.truncate(__states_len - 3); - __symbols.push((__start, __Symbol::Ntfactor(__nt), __end)); - 13 - } - 45 => { - // factor = "-", term => ActionFn(27); - let __sym1 = __pop_Ntterm(__symbols); - let __sym0 = __pop_Term_22_2d_22(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym1.2.clone(); - let __nt = super::__action27::<>(input, __sym0, __sym1); - let __states_len = __states.len(); - __states.truncate(__states_len - 2); - __symbols.push((__start, __Symbol::Ntfactor(__nt), __end)); - 13 - } - 46 => { - // factor = term => ActionFn(28); - let __sym0 = __pop_Ntterm(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action28::<>(input, __sym0); - let __states_len = __states.len(); - __states.truncate(__states_len - 1); - __symbols.push((__start, __Symbol::Ntfactor(__nt), __end)); - 13 - } - 47 => { - // float = r#"[+-]?\\d+\\.\\d*([eE][-+]?\\d+)?"# => ActionFn(7); - let __sym0 = __pop_Termr_23_22_5b_2b_2d_5d_3f_5c_5cd_2b_5c_5c_2e_5c_5cd_2a_28_5beE_5d_5b_2d_2b_5d_3f_5c_5cd_2b_29_3f_22_23(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action7::<>(input, __sym0); - let __states_len = __states.len(); - __states.truncate(__states_len - 1); - __symbols.push((__start, __Symbol::Ntfloat(__nt), __end)); - 14 - } - 48 => { - // identifier = r#"[a-zA-Z_][a-zA-Z_0-9]*"# => ActionFn(4); - let __sym0 = __pop_Termr_23_22_5ba_2dzA_2dZ___5d_5ba_2dzA_2dZ__0_2d9_5d_2a_22_23(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action4::<>(input, __sym0); - let __states_len = __states.len(); - __states.truncate(__states_len - 1); - __symbols.push((__start, __Symbol::Ntidentifier(__nt), __end)); - 15 - } - 49 => { - // integer = r#"[+-]?\\d+"# => ActionFn(6); - let __sym0 = __pop_Termr_23_22_5b_2b_2d_5d_3f_5c_5cd_2b_22_23(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action6::<>(input, __sym0); - let __states_len = __states.len(); - __states.truncate(__states_len - 1); - __symbols.push((__start, __Symbol::Ntinteger(__nt), __end)); - 16 - } - 50 => { - // model = "model", identifier, "equation", "end", identifier, ";" => ActionFn(63); - let __sym5 = __pop_Term_22_3b_22(__symbols); - let __sym4 = __pop_Ntidentifier(__symbols); - let __sym3 = __pop_Term_22end_22(__symbols); - let __sym2 = __pop_Term_22equation_22(__symbols); - let __sym1 = __pop_Ntidentifier(__symbols); - let __sym0 = __pop_Term_22model_22(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym5.2.clone(); - let __nt = super::__action63::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5); - let __states_len = __states.len(); - __states.truncate(__states_len - 6); - __symbols.push((__start, __Symbol::Ntmodel(__nt), __end)); - 17 - } - 51 => { - // model = "model", identifier, "equation", simple_equation+, "end", identifier, ";" => ActionFn(64); - let __sym6 = __pop_Term_22_3b_22(__symbols); - let __sym5 = __pop_Ntidentifier(__symbols); - let __sym4 = __pop_Term_22end_22(__symbols); - let __sym3 = __pop_Ntsimple__equation_2b(__symbols); - let __sym2 = __pop_Term_22equation_22(__symbols); - let __sym1 = __pop_Ntidentifier(__symbols); - let __sym0 = __pop_Term_22model_22(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym6.2.clone(); - let __nt = super::__action64::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6); - let __states_len = __states.len(); - __states.truncate(__states_len - 7); - __symbols.push((__start, __Symbol::Ntmodel(__nt), __end)); - 17 - } - 52 => { - // model = "model", identifier, "equation", connect_clause+, "end", identifier, ";" => ActionFn(65); - let __sym6 = __pop_Term_22_3b_22(__symbols); - let __sym5 = __pop_Ntidentifier(__symbols); - let __sym4 = __pop_Term_22end_22(__symbols); - let __sym3 = __pop_Ntconnect__clause_2b(__symbols); - let __sym2 = __pop_Term_22equation_22(__symbols); - let __sym1 = __pop_Ntidentifier(__symbols); - let __sym0 = __pop_Term_22model_22(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym6.2.clone(); - let __nt = super::__action65::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6); - let __states_len = __states.len(); - __states.truncate(__states_len - 7); - __symbols.push((__start, __Symbol::Ntmodel(__nt), __end)); - 17 - } - 53 => { - // model = "model", identifier, "equation", connect_clause+, simple_equation+, "end", identifier, ";" => ActionFn(66); - let __sym7 = __pop_Term_22_3b_22(__symbols); - let __sym6 = __pop_Ntidentifier(__symbols); - let __sym5 = __pop_Term_22end_22(__symbols); - let __sym4 = __pop_Ntsimple__equation_2b(__symbols); - let __sym3 = __pop_Ntconnect__clause_2b(__symbols); - let __sym2 = __pop_Term_22equation_22(__symbols); - let __sym1 = __pop_Ntidentifier(__symbols); - let __sym0 = __pop_Term_22model_22(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym7.2.clone(); - let __nt = super::__action66::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7); - let __states_len = __states.len(); - __states.truncate(__states_len - 8); - __symbols.push((__start, __Symbol::Ntmodel(__nt), __end)); - 17 - } - 54 => { - // model = "model", identifier, component_declaration+, "equation", "end", identifier, ";" => ActionFn(67); - let __sym6 = __pop_Term_22_3b_22(__symbols); - let __sym5 = __pop_Ntidentifier(__symbols); - let __sym4 = __pop_Term_22end_22(__symbols); - let __sym3 = __pop_Term_22equation_22(__symbols); - let __sym2 = __pop_Ntcomponent__declaration_2b(__symbols); - let __sym1 = __pop_Ntidentifier(__symbols); - let __sym0 = __pop_Term_22model_22(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym6.2.clone(); - let __nt = super::__action67::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6); - let __states_len = __states.len(); - __states.truncate(__states_len - 7); - __symbols.push((__start, __Symbol::Ntmodel(__nt), __end)); - 17 - } - 55 => { - // model = "model", identifier, component_declaration+, "equation", simple_equation+, "end", identifier, ";" => ActionFn(68); - let __sym7 = __pop_Term_22_3b_22(__symbols); - let __sym6 = __pop_Ntidentifier(__symbols); - let __sym5 = __pop_Term_22end_22(__symbols); - let __sym4 = __pop_Ntsimple__equation_2b(__symbols); - let __sym3 = __pop_Term_22equation_22(__symbols); - let __sym2 = __pop_Ntcomponent__declaration_2b(__symbols); - let __sym1 = __pop_Ntidentifier(__symbols); - let __sym0 = __pop_Term_22model_22(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym7.2.clone(); - let __nt = super::__action68::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7); - let __states_len = __states.len(); - __states.truncate(__states_len - 8); - __symbols.push((__start, __Symbol::Ntmodel(__nt), __end)); - 17 - } - 56 => { - // model = "model", identifier, component_declaration+, "equation", connect_clause+, "end", identifier, ";" => ActionFn(69); - let __sym7 = __pop_Term_22_3b_22(__symbols); - let __sym6 = __pop_Ntidentifier(__symbols); - let __sym5 = __pop_Term_22end_22(__symbols); - let __sym4 = __pop_Ntconnect__clause_2b(__symbols); - let __sym3 = __pop_Term_22equation_22(__symbols); - let __sym2 = __pop_Ntcomponent__declaration_2b(__symbols); - let __sym1 = __pop_Ntidentifier(__symbols); - let __sym0 = __pop_Term_22model_22(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym7.2.clone(); - let __nt = super::__action69::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7); - let __states_len = __states.len(); - __states.truncate(__states_len - 8); - __symbols.push((__start, __Symbol::Ntmodel(__nt), __end)); - 17 - } - 57 => { - // model = "model", identifier, component_declaration+, "equation", connect_clause+, simple_equation+, "end", identifier, ";" => ActionFn(70); - let __sym8 = __pop_Term_22_3b_22(__symbols); - let __sym7 = __pop_Ntidentifier(__symbols); - let __sym6 = __pop_Term_22end_22(__symbols); - let __sym5 = __pop_Ntsimple__equation_2b(__symbols); - let __sym4 = __pop_Ntconnect__clause_2b(__symbols); - let __sym3 = __pop_Term_22equation_22(__symbols); - let __sym2 = __pop_Ntcomponent__declaration_2b(__symbols); - let __sym1 = __pop_Ntidentifier(__symbols); - let __sym0 = __pop_Term_22model_22(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym8.2.clone(); - let __nt = super::__action70::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7, __sym8); - let __states_len = __states.len(); - __states.truncate(__states_len - 9); - __symbols.push((__start, __Symbol::Ntmodel(__nt), __end)); - 17 - } - 58 => { - // simple_equation = expr, "=", expr, ";" => ActionFn(19); - let __sym3 = __pop_Term_22_3b_22(__symbols); - let __sym2 = __pop_Ntexpr(__symbols); - let __sym1 = __pop_Term_22_3d_22(__symbols); - let __sym0 = __pop_Ntexpr(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym3.2.clone(); - let __nt = super::__action19::<>(input, __sym0, __sym1, __sym2, __sym3); - let __states_len = __states.len(); - __states.truncate(__states_len - 4); - __symbols.push((__start, __Symbol::Ntsimple__equation(__nt), __end)); - 18 - } - 59 => { - // simple_equation* = => ActionFn(43); - let __start = __symbols.last().map(|s| s.2.clone()).unwrap_or_default(); - let __end = __lookahead_start.cloned().unwrap_or_else(|| __start.clone()); - let __nt = super::__action43::<>(input, &__start, &__end); - let __states_len = __states.len(); - __states.truncate(__states_len - 0); - __symbols.push((__start, __Symbol::Ntsimple__equation_2a(__nt), __end)); - 19 - } - 60 => { - // simple_equation* = simple_equation+ => ActionFn(44); - let __sym0 = __pop_Ntsimple__equation_2b(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action44::<>(input, __sym0); - let __states_len = __states.len(); - __states.truncate(__states_len - 1); - __symbols.push((__start, __Symbol::Ntsimple__equation_2a(__nt), __end)); - 19 - } - 61 => { - // simple_equation+ = simple_equation => ActionFn(53); - let __sym0 = __pop_Ntsimple__equation(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action53::<>(input, __sym0); - let __states_len = __states.len(); - __states.truncate(__states_len - 1); - __symbols.push((__start, __Symbol::Ntsimple__equation_2b(__nt), __end)); - 20 - } - 62 => { - // simple_equation+ = simple_equation+, simple_equation => ActionFn(54); - let __sym1 = __pop_Ntsimple__equation(__symbols); - let __sym0 = __pop_Ntsimple__equation_2b(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym1.2.clone(); - let __nt = super::__action54::<>(input, __sym0, __sym1); - let __states_len = __states.len(); - __states.truncate(__states_len - 2); - __symbols.push((__start, __Symbol::Ntsimple__equation_2b(__nt), __end)); - 20 - } - 63 => { - // string_literal = r#"\"[^\"\\\\]*\""# => ActionFn(5); - let __sym0 = __pop_Termr_23_22_5c_22_5b_5e_5c_22_5c_5c_5c_5c_5d_2a_5c_22_22_23(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action5::<>(input, __sym0); - let __states_len = __states.len(); - __states.truncate(__states_len - 1); - __symbols.push((__start, __Symbol::Ntstring__literal(__nt), __end)); - 21 - } - 64 => { - // string_literal? = string_literal => ActionFn(35); - let __sym0 = __pop_Ntstring__literal(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action35::<>(input, __sym0); - let __states_len = __states.len(); - __states.truncate(__states_len - 1); - __symbols.push((__start, __Symbol::Ntstring__literal_3f(__nt), __end)); - 22 - } - 65 => { - // string_literal? = => ActionFn(36); - let __start = __symbols.last().map(|s| s.2.clone()).unwrap_or_default(); - let __end = __lookahead_start.cloned().unwrap_or_else(|| __start.clone()); - let __nt = super::__action36::<>(input, &__start, &__end); - let __states_len = __states.len(); - __states.truncate(__states_len - 0); - __symbols.push((__start, __Symbol::Ntstring__literal_3f(__nt), __end)); - 22 - } - 66 => { - // term = integer => ActionFn(29); - let __sym0 = __pop_Ntinteger(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action29::<>(input, __sym0); - let __states_len = __states.len(); - __states.truncate(__states_len - 1); - __symbols.push((__start, __Symbol::Ntterm(__nt), __end)); - 23 - } - 67 => { - // term = float => ActionFn(30); - let __sym0 = __pop_Ntfloat(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action30::<>(input, __sym0); - let __states_len = __states.len(); - __states.truncate(__states_len - 1); - __symbols.push((__start, __Symbol::Ntterm(__nt), __end)); - 23 - } - 68 => { - // term = identifier => ActionFn(31); - let __sym0 = __pop_Ntidentifier(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action31::<>(input, __sym0); - let __states_len = __states.len(); - __states.truncate(__states_len - 1); - __symbols.push((__start, __Symbol::Ntterm(__nt), __end)); - 23 - } - 69 => { - // term = "der", "(", expr, ")" => ActionFn(32); - let __sym3 = __pop_Term_22_29_22(__symbols); - let __sym2 = __pop_Ntexpr(__symbols); - let __sym1 = __pop_Term_22_28_22(__symbols); - let __sym0 = __pop_Term_22der_22(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym3.2.clone(); - let __nt = super::__action32::<>(input, __sym0, __sym1, __sym2, __sym3); - let __states_len = __states.len(); - __states.truncate(__states_len - 4); - __symbols.push((__start, __Symbol::Ntterm(__nt), __end)); - 23 - } - 70 => { - // term = "abs", "(", expr, ")" => ActionFn(33); - let __sym3 = __pop_Term_22_29_22(__symbols); - let __sym2 = __pop_Ntexpr(__symbols); - let __sym1 = __pop_Term_22_28_22(__symbols); - let __sym0 = __pop_Term_22abs_22(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym3.2.clone(); - let __nt = super::__action33::<>(input, __sym0, __sym1, __sym2, __sym3); - let __states_len = __states.len(); - __states.truncate(__states_len - 4); - __symbols.push((__start, __Symbol::Ntterm(__nt), __end)); - 23 - } - 71 => { - // term = "(", expr, ")" => ActionFn(34); - let __sym2 = __pop_Term_22_29_22(__symbols); - let __sym1 = __pop_Ntexpr(__symbols); - let __sym0 = __pop_Term_22_28_22(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym2.2.clone(); - let __nt = super::__action34::<>(input, __sym0, __sym1, __sym2); - let __states_len = __states.len(); - __states.truncate(__states_len - 3); - __symbols.push((__start, __Symbol::Ntterm(__nt), __end)); - 23 - } - 72 => { - // units_declaration = "(", "unit", "=", string_literal, ")" => ActionFn(10); - let __sym4 = __pop_Term_22_29_22(__symbols); - let __sym3 = __pop_Ntstring__literal(__symbols); - let __sym2 = __pop_Term_22_3d_22(__symbols); - let __sym1 = __pop_Term_22unit_22(__symbols); - let __sym0 = __pop_Term_22_28_22(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym4.2.clone(); - let __nt = super::__action10::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4); - let __states_len = __states.len(); - __states.truncate(__states_len - 5); - __symbols.push((__start, __Symbol::Ntunits__declaration(__nt), __end)); - 24 - } - 73 => { - // units_declaration? = units_declaration => ActionFn(39); - let __sym0 = __pop_Ntunits__declaration(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action39::<>(input, __sym0); - let __states_len = __states.len(); - __states.truncate(__states_len - 1); - __symbols.push((__start, __Symbol::Ntunits__declaration_3f(__nt), __end)); - 25 - } - 74 => { - // units_declaration? = => ActionFn(40); - let __start = __symbols.last().map(|s| s.2.clone()).unwrap_or_default(); - let __end = __lookahead_start.cloned().unwrap_or_else(|| __start.clone()); - let __nt = super::__action40::<>(input, &__start, &__end); - let __states_len = __states.len(); - __states.truncate(__states_len - 0); - __symbols.push((__start, __Symbol::Ntunits__declaration_3f(__nt), __end)); - 25 - } - 75 => { - // value_declaration = "=", expr => ActionFn(9); - let __sym1 = __pop_Ntexpr(__symbols); - let __sym0 = __pop_Term_22_3d_22(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym1.2.clone(); - let __nt = super::__action9::<>(input, __sym0, __sym1); - let __states_len = __states.len(); - __states.truncate(__states_len - 2); - __symbols.push((__start, __Symbol::Ntvalue__declaration(__nt), __end)); - 26 - } - 76 => { - // value_declaration? = value_declaration => ActionFn(37); - let __sym0 = __pop_Ntvalue__declaration(__symbols); - let __start = __sym0.0.clone(); - let __end = __sym0.2.clone(); - let __nt = super::__action37::<>(input, __sym0); - let __states_len = __states.len(); - __states.truncate(__states_len - 1); - __symbols.push((__start, __Symbol::Ntvalue__declaration_3f(__nt), __end)); - 27 - } - 77 => { - // value_declaration? = => ActionFn(38); - let __start = __symbols.last().map(|s| s.2.clone()).unwrap_or_default(); - let __end = __lookahead_start.cloned().unwrap_or_else(|| __start.clone()); - let __nt = super::__action38::<>(input, &__start, &__end); - let __states_len = __states.len(); - __states.truncate(__states_len - 0); - __symbols.push((__start, __Symbol::Ntvalue__declaration_3f(__nt), __end)); - 27 - } - _ => panic!("invalid action code {}", __action) - }; - let __state = *__states.last().unwrap() as usize; - let __next_state = __GOTO[__state * 28 + __nonterminal] - 1; - __states.push(__next_state); - None - } - fn __pop_Term_22_28_22< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, &'input str, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Term_22_28_22(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Term_22_29_22< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, &'input str, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Term_22_29_22(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Term_22_2a_22< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, &'input str, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Term_22_2a_22(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Term_22_2b_22< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, &'input str, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Term_22_2b_22(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Term_22_2c_22< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, &'input str, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Term_22_2c_22(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Term_22_2d_22< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, &'input str, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Term_22_2d_22(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Term_22_2f_22< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, &'input str, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Term_22_2f_22(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Term_22_3b_22< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, &'input str, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Term_22_3b_22(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Term_22_3d_22< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, &'input str, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Term_22_3d_22(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Term_22_5e_22< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, &'input str, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Term_22_5e_22(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Term_22abs_22< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, &'input str, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Term_22abs_22(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Term_22connect_22< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, &'input str, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Term_22connect_22(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Term_22constant_22< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, &'input str, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Term_22constant_22(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Term_22der_22< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, &'input str, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Term_22der_22(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Term_22discrete_22< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, &'input str, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Term_22discrete_22(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Term_22end_22< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, &'input str, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Term_22end_22(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Term_22equation_22< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, &'input str, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Term_22equation_22(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Term_22flow_22< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, &'input str, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Term_22flow_22(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Term_22input_22< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, &'input str, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Term_22input_22(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Term_22model_22< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, &'input str, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Term_22model_22(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Term_22output_22< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, &'input str, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Term_22output_22(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Term_22parameter_22< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, &'input str, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Term_22parameter_22(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Term_22stream_22< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, &'input str, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Term_22stream_22(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Term_22unit_22< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, &'input str, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Term_22unit_22(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Termr_23_22_5c_22_5b_5e_5c_22_5c_5c_5c_5c_5d_2a_5c_22_22_23< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, &'input str, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Termr_23_22_5c_22_5b_5e_5c_22_5c_5c_5c_5c_5d_2a_5c_22_22_23(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Termr_23_22_5b_2b_2d_5d_3f_5c_5cd_2b_22_23< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, &'input str, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Termr_23_22_5b_2b_2d_5d_3f_5c_5cd_2b_22_23(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Termr_23_22_5b_2b_2d_5d_3f_5c_5cd_2b_5c_5c_2e_5c_5cd_2a_28_5beE_5d_5b_2d_2b_5d_3f_5c_5cd_2b_29_3f_22_23< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, &'input str, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Termr_23_22_5b_2b_2d_5d_3f_5c_5cd_2b_5c_5c_2e_5c_5cd_2a_28_5beE_5d_5b_2d_2b_5d_3f_5c_5cd_2b_29_3f_22_23(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Termr_23_22_5ba_2dzA_2dZ___5d_5ba_2dzA_2dZ__0_2d9_5d_2a_22_23< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, &'input str, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Termr_23_22_5ba_2dzA_2dZ___5d_5ba_2dzA_2dZ__0_2d9_5d_2a_22_23(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Termerror< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, __lalrpop_util::ErrorRecovery, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Termerror(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Nt____float< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, f64, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Nt____float(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Nt____identifier< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, String, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Nt____identifier(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Nt____integer< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, i64, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Nt____integer(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Nt____model< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, ModelicaModel, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Nt____model(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Ntcomponent__declaration< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, Component, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Ntcomponent__declaration(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Ntcomponent__declaration_2a< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, ::std::vec::Vec, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Ntcomponent__declaration_2a(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Ntcomponent__declaration_2b< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, ::std::vec::Vec, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Ntcomponent__declaration_2b(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Ntcomponent__prefix< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, ComponentPrefix, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Ntcomponent__prefix(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Ntcomponent__prefix_3f< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, ::std::option::Option, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Ntcomponent__prefix_3f(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Ntconnect__clause< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, Connection, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Ntconnect__clause(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Ntconnect__clause_2a< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, ::std::vec::Vec, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Ntconnect__clause_2a(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Ntconnect__clause_2b< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, ::std::vec::Vec, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Ntconnect__clause_2b(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Ntexpr< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, Expr, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Ntexpr(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Ntfactor< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, Expr, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Ntfactor(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Ntfloat< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, f64, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Ntfloat(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Ntidentifier< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, String, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Ntidentifier(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Ntinteger< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, i64, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Ntinteger(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Ntmodel< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, ModelicaModel, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Ntmodel(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Ntsimple__equation< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, SimpleEquation, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Ntsimple__equation(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Ntsimple__equation_2a< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, ::std::vec::Vec, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Ntsimple__equation_2a(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Ntsimple__equation_2b< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, ::std::vec::Vec, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Ntsimple__equation_2b(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Ntstring__literal< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, String, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Ntstring__literal(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Ntstring__literal_3f< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, ::std::option::Option, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Ntstring__literal_3f(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Ntterm< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, Expr, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Ntterm(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Ntunits__declaration< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, String, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Ntunits__declaration(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Ntunits__declaration_3f< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, ::std::option::Option, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Ntunits__declaration_3f(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Ntvalue__declaration< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, Expr, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Ntvalue__declaration(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } - fn __pop_Ntvalue__declaration_3f< - 'input, - >( - __symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)> - ) -> (usize, ::std::option::Option, usize) { - match __symbols.pop().unwrap() { - (__l, __Symbol::Ntvalue__declaration_3f(__v), __r) => (__l, __v, __r), - _ => panic!("symbol type mismatch") - } - } -} -pub use self::__parse__model::parse_model; -mod __intern_token { - extern crate lalrpop_util as __lalrpop_util; - pub struct __Matcher<'input> { - text: &'input str, - consumed: usize, - } - - fn __tokenize(text: &str) -> Option<(usize, usize)> { - let mut __chars = text.char_indices(); - let mut __current_match: Option<(usize, usize)> = None; - let mut __current_state: usize = 0; - loop { - match __current_state { - 0 => { - let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; - match __ch as u32 { - 34 => /* '\"' */ { - __current_state = 1; - continue; - } - 40 => /* '(' */ { - __current_match = Some((0, __index + 1)); - __current_state = 2; - continue; - } - 41 => /* ')' */ { - __current_match = Some((1, __index + 1)); - __current_state = 3; - continue; - } - 42 => /* '*' */ { - __current_match = Some((2, __index + 1)); - __current_state = 4; - continue; - } - 43 => /* '+' */ { - __current_match = Some((3, __index + 1)); - __current_state = 5; - continue; - } - 44 => /* ',' */ { - __current_match = Some((4, __index + 1)); - __current_state = 6; - continue; - } - 45 => /* '-' */ { - __current_match = Some((5, __index + 1)); - __current_state = 7; - continue; - } - 47 => /* '/' */ { - __current_match = Some((6, __index + 1)); - __current_state = 8; - continue; - } - 48 ... 57 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 59 => /* ';' */ { - __current_match = Some((7, __index + 1)); - __current_state = 10; - continue; - } - 61 => /* '=' */ { - __current_match = Some((8, __index + 1)); - __current_state = 11; - continue; - } - 65 ... 90 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 12; - continue; - } - 94 => /* '^' */ { - __current_match = Some((9, __index + 1)); - __current_state = 13; - continue; - } - 95 => /* '_' */ { - __current_match = Some((27, __index + 1)); - __current_state = 12; - continue; - } - 97 => /* 'a' */ { - __current_match = Some((27, __index + 1)); - __current_state = 14; - continue; - } - 98 => /* 'b' */ { - __current_match = Some((27, __index + 1)); - __current_state = 12; - continue; - } - 99 => /* 'c' */ { - __current_match = Some((27, __index + 1)); - __current_state = 15; - continue; - } - 100 => /* 'd' */ { - __current_match = Some((27, __index + 1)); - __current_state = 16; - continue; - } - 101 => /* 'e' */ { - __current_match = Some((27, __index + 1)); - __current_state = 17; - continue; - } - 102 => /* 'f' */ { - __current_match = Some((27, __index + 1)); - __current_state = 18; - continue; - } - 103 ... 104 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 12; - continue; - } - 105 => /* 'i' */ { - __current_match = Some((27, __index + 1)); - __current_state = 19; - continue; - } - 106 ... 108 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 12; - continue; - } - 109 => /* 'm' */ { - __current_match = Some((27, __index + 1)); - __current_state = 20; - continue; - } - 110 => /* 'n' */ { - __current_match = Some((27, __index + 1)); - __current_state = 12; - continue; - } - 111 => /* 'o' */ { - __current_match = Some((27, __index + 1)); - __current_state = 21; - continue; - } - 112 => /* 'p' */ { - __current_match = Some((27, __index + 1)); - __current_state = 22; - continue; - } - 113 ... 114 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 12; - continue; - } - 115 => /* 's' */ { - __current_match = Some((27, __index + 1)); - __current_state = 23; - continue; - } - 116 => /* 't' */ { - __current_match = Some((27, __index + 1)); - __current_state = 12; - continue; - } - 117 => /* 'u' */ { - __current_match = Some((27, __index + 1)); - __current_state = 24; - continue; - } - 118 ... 122 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 12; - continue; - } - 1632 ... 1641 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 1776 ... 1785 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 1984 ... 1993 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 2406 ... 2415 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 2534 ... 2543 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 2662 ... 2671 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 2790 ... 2799 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 2918 ... 2927 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 3046 ... 3055 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 3174 ... 3183 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 3302 ... 3311 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 3430 ... 3439 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 3558 ... 3567 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 3664 ... 3673 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 3792 ... 3801 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 3872 ... 3881 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 4160 ... 4169 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 4240 ... 4249 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 6112 ... 6121 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 6160 ... 6169 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 6470 ... 6479 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 6608 ... 6617 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 6784 ... 6793 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 6800 ... 6809 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 6992 ... 7001 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 7088 ... 7097 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 7232 ... 7241 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 7248 ... 7257 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 42528 ... 42537 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 43216 ... 43225 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 43264 ... 43273 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 43472 ... 43481 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 43504 ... 43513 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 43600 ... 43609 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 44016 ... 44025 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 65296 ... 65305 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 66720 ... 66729 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 69734 ... 69743 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 69872 ... 69881 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 69942 ... 69951 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 70096 ... 70105 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 70384 ... 70393 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 70864 ... 70873 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 71248 ... 71257 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 71360 ... 71369 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 71472 ... 71481 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 71904 ... 71913 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 92768 ... 92777 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 93008 ... 93017 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 120782 ... 120831 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - _ => { - return __current_match; - } - } - } - 1 => { - let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; - match __ch as u32 { - 0 ... 33 => { - __current_state = 26; - continue; - } - 34 => /* '\"' */ { - __current_match = Some((24, __index + 1)); - __current_state = 27; - continue; - } - 35 ... 91 => { - __current_state = 26; - continue; - } - 93 ... 1114111 => { - __current_state = 26; - continue; - } - _ => { - return __current_match; - } - } - } - 2 => { - let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; - match __ch as u32 { - _ => { - return __current_match; - } - } - } - 3 => { - let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; - match __ch as u32 { - _ => { - return __current_match; - } - } - } - 4 => { - let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; - match __ch as u32 { - _ => { - return __current_match; - } - } - } - 5 => { - let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; - match __ch as u32 { - 48 ... 57 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 1632 ... 1641 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 1776 ... 1785 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 1984 ... 1993 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 2406 ... 2415 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 2534 ... 2543 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 2662 ... 2671 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 2790 ... 2799 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 2918 ... 2927 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 3046 ... 3055 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 3174 ... 3183 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 3302 ... 3311 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 3430 ... 3439 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 3558 ... 3567 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 3664 ... 3673 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 3792 ... 3801 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 3872 ... 3881 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 4160 ... 4169 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 4240 ... 4249 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 6112 ... 6121 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 6160 ... 6169 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 6470 ... 6479 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 6608 ... 6617 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 6784 ... 6793 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 6800 ... 6809 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 6992 ... 7001 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 7088 ... 7097 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 7232 ... 7241 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 7248 ... 7257 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 42528 ... 42537 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 43216 ... 43225 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 43264 ... 43273 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 43472 ... 43481 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 43504 ... 43513 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 43600 ... 43609 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 44016 ... 44025 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 65296 ... 65305 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 66720 ... 66729 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 69734 ... 69743 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 69872 ... 69881 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 69942 ... 69951 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 70096 ... 70105 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 70384 ... 70393 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 70864 ... 70873 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 71248 ... 71257 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 71360 ... 71369 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 71472 ... 71481 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 71904 ... 71913 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 92768 ... 92777 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 93008 ... 93017 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 120782 ... 120831 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - _ => { - return __current_match; - } - } - } - 6 => { - let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; - match __ch as u32 { - _ => { - return __current_match; - } - } - } - 7 => { - let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; - match __ch as u32 { - 48 ... 57 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 1632 ... 1641 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 1776 ... 1785 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 1984 ... 1993 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 2406 ... 2415 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 2534 ... 2543 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 2662 ... 2671 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 2790 ... 2799 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 2918 ... 2927 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 3046 ... 3055 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 3174 ... 3183 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 3302 ... 3311 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 3430 ... 3439 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 3558 ... 3567 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 3664 ... 3673 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 3792 ... 3801 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 3872 ... 3881 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 4160 ... 4169 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 4240 ... 4249 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 6112 ... 6121 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 6160 ... 6169 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 6470 ... 6479 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 6608 ... 6617 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 6784 ... 6793 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 6800 ... 6809 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 6992 ... 7001 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 7088 ... 7097 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 7232 ... 7241 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 7248 ... 7257 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 42528 ... 42537 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 43216 ... 43225 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 43264 ... 43273 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 43472 ... 43481 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 43504 ... 43513 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 43600 ... 43609 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 44016 ... 44025 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 65296 ... 65305 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 66720 ... 66729 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 69734 ... 69743 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 69872 ... 69881 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 69942 ... 69951 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 70096 ... 70105 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 70384 ... 70393 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 70864 ... 70873 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 71248 ... 71257 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 71360 ... 71369 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 71472 ... 71481 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 71904 ... 71913 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 92768 ... 92777 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 93008 ... 93017 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 120782 ... 120831 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - _ => { - return __current_match; - } - } - } - 8 => { - let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; - match __ch as u32 { - _ => { - return __current_match; - } - } - } - 9 => { - let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; - match __ch as u32 { - 46 => /* '.' */ { - __current_match = Some((26, __index + 1)); - __current_state = 28; - continue; - } - 48 ... 57 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 1632 ... 1641 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 1776 ... 1785 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 1984 ... 1993 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 2406 ... 2415 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 2534 ... 2543 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 2662 ... 2671 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 2790 ... 2799 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 2918 ... 2927 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 3046 ... 3055 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 3174 ... 3183 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 3302 ... 3311 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 3430 ... 3439 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 3558 ... 3567 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 3664 ... 3673 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 3792 ... 3801 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 3872 ... 3881 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 4160 ... 4169 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 4240 ... 4249 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 6112 ... 6121 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 6160 ... 6169 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 6470 ... 6479 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 6608 ... 6617 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 6784 ... 6793 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 6800 ... 6809 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 6992 ... 7001 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 7088 ... 7097 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 7232 ... 7241 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 7248 ... 7257 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 42528 ... 42537 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 43216 ... 43225 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 43264 ... 43273 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 43472 ... 43481 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 43504 ... 43513 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 43600 ... 43609 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 44016 ... 44025 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 65296 ... 65305 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 66720 ... 66729 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 69734 ... 69743 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 69872 ... 69881 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 69942 ... 69951 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 70096 ... 70105 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 70384 ... 70393 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 70864 ... 70873 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 71248 ... 71257 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 71360 ... 71369 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 71472 ... 71481 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 71904 ... 71913 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 92768 ... 92777 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 93008 ... 93017 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - 120782 ... 120831 => { - __current_match = Some((25, __index + __ch.len_utf8())); - __current_state = 9; - continue; - } - _ => { - return __current_match; - } - } - } - 10 => { - let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; - match __ch as u32 { - _ => { - return __current_match; - } - } - } - 11 => { - let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; - match __ch as u32 { - _ => { - return __current_match; - } - } - } - 12 => { - let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; - match __ch as u32 { - 48 ... 57 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 65 ... 90 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 95 => /* '_' */ { - __current_match = Some((27, __index + 1)); - __current_state = 29; - continue; - } - 97 ... 122 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - _ => { - return __current_match; - } - } - } - 13 => { - let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; - match __ch as u32 { - _ => { - return __current_match; - } - } - } - 14 => { - let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; - match __ch as u32 { - 48 ... 57 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 65 ... 90 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 95 => /* '_' */ { - __current_match = Some((27, __index + 1)); - __current_state = 29; - continue; - } - 97 => /* 'a' */ { - __current_match = Some((27, __index + 1)); - __current_state = 29; - continue; - } - 98 => /* 'b' */ { - __current_match = Some((27, __index + 1)); - __current_state = 30; - continue; - } - 99 ... 122 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - _ => { - return __current_match; - } - } - } - 15 => { - let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; - match __ch as u32 { - 48 ... 57 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 65 ... 90 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 95 => /* '_' */ { - __current_match = Some((27, __index + 1)); - __current_state = 29; - continue; - } - 97 ... 110 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 111 => /* 'o' */ { - __current_match = Some((27, __index + 1)); - __current_state = 31; - continue; - } - 112 ... 122 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - _ => { - return __current_match; - } - } - } - 16 => { - let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; - match __ch as u32 { - 48 ... 57 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 65 ... 90 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 95 => /* '_' */ { - __current_match = Some((27, __index + 1)); - __current_state = 29; - continue; - } - 97 ... 100 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 101 => /* 'e' */ { - __current_match = Some((27, __index + 1)); - __current_state = 32; - continue; - } - 102 ... 104 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 105 => /* 'i' */ { - __current_match = Some((27, __index + 1)); - __current_state = 33; - continue; - } - 106 ... 122 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - _ => { - return __current_match; - } - } - } - 17 => { - let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; - match __ch as u32 { - 48 ... 57 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 65 ... 90 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 95 => /* '_' */ { - __current_match = Some((27, __index + 1)); - __current_state = 29; - continue; - } - 97 ... 109 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 110 => /* 'n' */ { - __current_match = Some((27, __index + 1)); - __current_state = 34; - continue; - } - 111 ... 112 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 113 => /* 'q' */ { - __current_match = Some((27, __index + 1)); - __current_state = 35; - continue; - } - 114 ... 122 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - _ => { - return __current_match; - } - } - } - 18 => { - let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; - match __ch as u32 { - 48 ... 57 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 65 ... 90 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 95 => /* '_' */ { - __current_match = Some((27, __index + 1)); - __current_state = 29; - continue; - } - 97 ... 107 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 108 => /* 'l' */ { - __current_match = Some((27, __index + 1)); - __current_state = 36; - continue; - } - 109 ... 122 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - _ => { - return __current_match; - } - } - } - 19 => { - let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; - match __ch as u32 { - 48 ... 57 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 65 ... 90 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 95 => /* '_' */ { - __current_match = Some((27, __index + 1)); - __current_state = 29; - continue; - } - 97 ... 109 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 110 => /* 'n' */ { - __current_match = Some((27, __index + 1)); - __current_state = 37; - continue; - } - 111 ... 122 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - _ => { - return __current_match; - } - } - } - 20 => { - let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; - match __ch as u32 { - 48 ... 57 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 65 ... 90 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 95 => /* '_' */ { - __current_match = Some((27, __index + 1)); - __current_state = 29; - continue; - } - 97 ... 110 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 111 => /* 'o' */ { - __current_match = Some((27, __index + 1)); - __current_state = 38; - continue; - } - 112 ... 122 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - _ => { - return __current_match; - } - } - } - 21 => { - let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; - match __ch as u32 { - 48 ... 57 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 65 ... 90 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 95 => /* '_' */ { - __current_match = Some((27, __index + 1)); - __current_state = 29; - continue; - } - 97 ... 116 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 117 => /* 'u' */ { - __current_match = Some((27, __index + 1)); - __current_state = 39; - continue; - } - 118 ... 122 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - _ => { - return __current_match; - } - } - } - 22 => { - let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; - match __ch as u32 { - 48 ... 57 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 65 ... 90 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 95 => /* '_' */ { - __current_match = Some((27, __index + 1)); - __current_state = 29; - continue; - } - 97 => /* 'a' */ { - __current_match = Some((27, __index + 1)); - __current_state = 40; - continue; - } - 98 ... 122 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - _ => { - return __current_match; - } - } - } - 23 => { - let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; - match __ch as u32 { - 48 ... 57 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 65 ... 90 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 95 => /* '_' */ { - __current_match = Some((27, __index + 1)); - __current_state = 29; - continue; - } - 97 ... 115 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 116 => /* 't' */ { - __current_match = Some((27, __index + 1)); - __current_state = 41; - continue; - } - 117 ... 122 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - _ => { - return __current_match; - } - } - } - 24 => { - let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; - match __ch as u32 { - 48 ... 57 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 65 ... 90 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 95 => /* '_' */ { - __current_match = Some((27, __index + 1)); - __current_state = 29; - continue; - } - 97 ... 109 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 110 => /* 'n' */ { - __current_match = Some((27, __index + 1)); - __current_state = 42; - continue; - } - 111 ... 122 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - _ => { - return __current_match; - } - } - } - 25 => { - let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; - match __ch as u32 { - _ => { - return __current_match; - } - } - } - 26 => { - let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; - match __ch as u32 { - 0 ... 33 => { - __current_state = 26; - continue; - } - 34 => /* '\"' */ { - __current_match = Some((24, __index + 1)); - __current_state = 27; - continue; - } - 35 ... 91 => { - __current_state = 26; - continue; - } - 93 ... 1114111 => { - __current_state = 26; - continue; - } - _ => { - return __current_match; - } - } - } - 27 => { - let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; - match __ch as u32 { - _ => { - return __current_match; - } - } - } - 28 => { - let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; - match __ch as u32 { - 48 ... 57 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 28; - continue; - } - 69 => /* 'E' */ { - __current_state = 43; - continue; - } - 101 => /* 'e' */ { - __current_state = 43; - continue; - } - 1632 ... 1641 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 28; - continue; - } - 1776 ... 1785 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 28; - continue; - } - 1984 ... 1993 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 28; - continue; - } - 2406 ... 2415 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 28; - continue; - } - 2534 ... 2543 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 28; - continue; - } - 2662 ... 2671 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 28; - continue; - } - 2790 ... 2799 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 28; - continue; - } - 2918 ... 2927 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 28; - continue; - } - 3046 ... 3055 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 28; - continue; - } - 3174 ... 3183 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 28; - continue; - } - 3302 ... 3311 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 28; - continue; - } - 3430 ... 3439 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 28; - continue; - } - 3558 ... 3567 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 28; - continue; - } - 3664 ... 3673 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 28; - continue; - } - 3792 ... 3801 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 28; - continue; - } - 3872 ... 3881 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 28; - continue; - } - 4160 ... 4169 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 28; - continue; - } - 4240 ... 4249 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 28; - continue; - } - 6112 ... 6121 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 28; - continue; - } - 6160 ... 6169 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 28; - continue; - } - 6470 ... 6479 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 28; - continue; - } - 6608 ... 6617 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 28; - continue; - } - 6784 ... 6793 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 28; - continue; - } - 6800 ... 6809 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 28; - continue; - } - 6992 ... 7001 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 28; - continue; - } - 7088 ... 7097 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 28; - continue; - } - 7232 ... 7241 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 28; - continue; - } - 7248 ... 7257 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 28; - continue; - } - 42528 ... 42537 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 28; - continue; - } - 43216 ... 43225 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 28; - continue; - } - 43264 ... 43273 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 28; - continue; - } - 43472 ... 43481 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 28; - continue; - } - 43504 ... 43513 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 28; - continue; - } - 43600 ... 43609 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 28; - continue; - } - 44016 ... 44025 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 28; - continue; - } - 65296 ... 65305 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 28; - continue; - } - 66720 ... 66729 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 28; - continue; - } - 69734 ... 69743 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 28; - continue; - } - 69872 ... 69881 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 28; - continue; - } - 69942 ... 69951 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 28; - continue; - } - 70096 ... 70105 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 28; - continue; - } - 70384 ... 70393 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 28; - continue; - } - 70864 ... 70873 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 28; - continue; - } - 71248 ... 71257 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 28; - continue; - } - 71360 ... 71369 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 28; - continue; - } - 71472 ... 71481 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 28; - continue; - } - 71904 ... 71913 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 28; - continue; - } - 92768 ... 92777 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 28; - continue; - } - 93008 ... 93017 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 28; - continue; - } - 120782 ... 120831 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 28; - continue; - } - _ => { - return __current_match; - } - } - } - 29 => { - let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; - match __ch as u32 { - 48 ... 57 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 65 ... 90 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 95 => /* '_' */ { - __current_match = Some((27, __index + 1)); - __current_state = 29; - continue; - } - 97 ... 122 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - _ => { - return __current_match; - } - } - } - 30 => { - let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; - match __ch as u32 { - 48 ... 57 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 65 ... 90 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 95 => /* '_' */ { - __current_match = Some((27, __index + 1)); - __current_state = 29; - continue; - } - 97 ... 114 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 115 => /* 's' */ { - __current_match = Some((10, __index + 1)); - __current_state = 44; - continue; - } - 116 ... 122 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - _ => { - return __current_match; - } - } - } - 31 => { - let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; - match __ch as u32 { - 48 ... 57 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 65 ... 90 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 95 => /* '_' */ { - __current_match = Some((27, __index + 1)); - __current_state = 29; - continue; - } - 97 ... 109 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 110 => /* 'n' */ { - __current_match = Some((27, __index + 1)); - __current_state = 45; - continue; - } - 111 ... 122 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - _ => { - return __current_match; - } - } - } - 32 => { - let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; - match __ch as u32 { - 48 ... 57 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 65 ... 90 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 95 => /* '_' */ { - __current_match = Some((27, __index + 1)); - __current_state = 29; - continue; - } - 97 ... 113 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 114 => /* 'r' */ { - __current_match = Some((13, __index + 1)); - __current_state = 46; - continue; - } - 115 ... 122 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - _ => { - return __current_match; - } - } - } - 33 => { - let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; - match __ch as u32 { - 48 ... 57 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 65 ... 90 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 95 => /* '_' */ { - __current_match = Some((27, __index + 1)); - __current_state = 29; - continue; - } - 97 ... 114 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 115 => /* 's' */ { - __current_match = Some((27, __index + 1)); - __current_state = 47; - continue; - } - 116 ... 122 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - _ => { - return __current_match; - } - } - } - 34 => { - let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; - match __ch as u32 { - 48 ... 57 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 65 ... 90 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 95 => /* '_' */ { - __current_match = Some((27, __index + 1)); - __current_state = 29; - continue; - } - 97 ... 99 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 100 => /* 'd' */ { - __current_match = Some((15, __index + 1)); - __current_state = 48; - continue; - } - 101 ... 122 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - _ => { - return __current_match; - } - } - } - 35 => { - let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; - match __ch as u32 { - 48 ... 57 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 65 ... 90 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 95 => /* '_' */ { - __current_match = Some((27, __index + 1)); - __current_state = 29; - continue; - } - 97 ... 116 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 117 => /* 'u' */ { - __current_match = Some((27, __index + 1)); - __current_state = 49; - continue; - } - 118 ... 122 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - _ => { - return __current_match; - } - } - } - 36 => { - let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; - match __ch as u32 { - 48 ... 57 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 65 ... 90 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 95 => /* '_' */ { - __current_match = Some((27, __index + 1)); - __current_state = 29; - continue; - } - 97 ... 110 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 111 => /* 'o' */ { - __current_match = Some((27, __index + 1)); - __current_state = 50; - continue; - } - 112 ... 122 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - _ => { - return __current_match; - } - } - } - 37 => { - let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; - match __ch as u32 { - 48 ... 57 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 65 ... 90 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 95 => /* '_' */ { - __current_match = Some((27, __index + 1)); - __current_state = 29; - continue; - } - 97 ... 111 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 112 => /* 'p' */ { - __current_match = Some((27, __index + 1)); - __current_state = 51; - continue; - } - 113 ... 122 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - _ => { - return __current_match; - } - } - } - 38 => { - let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; - match __ch as u32 { - 48 ... 57 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 65 ... 90 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 95 => /* '_' */ { - __current_match = Some((27, __index + 1)); - __current_state = 29; - continue; - } - 97 ... 99 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 100 => /* 'd' */ { - __current_match = Some((27, __index + 1)); - __current_state = 52; - continue; - } - 101 ... 122 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - _ => { - return __current_match; - } - } - } - 39 => { - let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; - match __ch as u32 { - 48 ... 57 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 65 ... 90 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 95 => /* '_' */ { - __current_match = Some((27, __index + 1)); - __current_state = 29; - continue; - } - 97 ... 115 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 116 => /* 't' */ { - __current_match = Some((27, __index + 1)); - __current_state = 53; - continue; - } - 117 ... 122 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - _ => { - return __current_match; - } - } - } - 40 => { - let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; - match __ch as u32 { - 48 ... 57 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 65 ... 90 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 95 => /* '_' */ { - __current_match = Some((27, __index + 1)); - __current_state = 29; - continue; - } - 97 ... 113 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 114 => /* 'r' */ { - __current_match = Some((27, __index + 1)); - __current_state = 54; - continue; - } - 115 ... 122 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - _ => { - return __current_match; - } - } - } - 41 => { - let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; - match __ch as u32 { - 48 ... 57 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 65 ... 90 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 95 => /* '_' */ { - __current_match = Some((27, __index + 1)); - __current_state = 29; - continue; - } - 97 ... 113 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 114 => /* 'r' */ { - __current_match = Some((27, __index + 1)); - __current_state = 55; - continue; - } - 115 ... 122 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - _ => { - return __current_match; - } - } - } - 42 => { - let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; - match __ch as u32 { - 48 ... 57 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 65 ... 90 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 95 => /* '_' */ { - __current_match = Some((27, __index + 1)); - __current_state = 29; - continue; - } - 97 ... 104 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 105 => /* 'i' */ { - __current_match = Some((27, __index + 1)); - __current_state = 56; - continue; - } - 106 ... 122 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - _ => { - return __current_match; - } - } - } - 43 => { - let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; - match __ch as u32 { - 43 => /* '+' */ { - __current_state = 57; - continue; - } - 45 => /* '-' */ { - __current_state = 57; - continue; - } - 48 ... 57 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 1632 ... 1641 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 1776 ... 1785 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 1984 ... 1993 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 2406 ... 2415 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 2534 ... 2543 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 2662 ... 2671 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 2790 ... 2799 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 2918 ... 2927 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 3046 ... 3055 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 3174 ... 3183 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 3302 ... 3311 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 3430 ... 3439 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 3558 ... 3567 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 3664 ... 3673 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 3792 ... 3801 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 3872 ... 3881 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 4160 ... 4169 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 4240 ... 4249 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 6112 ... 6121 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 6160 ... 6169 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 6470 ... 6479 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 6608 ... 6617 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 6784 ... 6793 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 6800 ... 6809 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 6992 ... 7001 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 7088 ... 7097 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 7232 ... 7241 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 7248 ... 7257 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 42528 ... 42537 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 43216 ... 43225 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 43264 ... 43273 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 43472 ... 43481 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 43504 ... 43513 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 43600 ... 43609 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 44016 ... 44025 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 65296 ... 65305 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 66720 ... 66729 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 69734 ... 69743 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 69872 ... 69881 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 69942 ... 69951 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 70096 ... 70105 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 70384 ... 70393 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 70864 ... 70873 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 71248 ... 71257 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 71360 ... 71369 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 71472 ... 71481 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 71904 ... 71913 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 92768 ... 92777 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 93008 ... 93017 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 120782 ... 120831 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - _ => { - return __current_match; - } - } - } - 44 => { - let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; - match __ch as u32 { - 48 ... 57 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 65 ... 90 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 95 => /* '_' */ { - __current_match = Some((27, __index + 1)); - __current_state = 29; - continue; - } - 97 ... 122 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - _ => { - return __current_match; - } - } - } - 45 => { - let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; - match __ch as u32 { - 48 ... 57 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 65 ... 90 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 95 => /* '_' */ { - __current_match = Some((27, __index + 1)); - __current_state = 29; - continue; - } - 97 ... 109 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 110 => /* 'n' */ { - __current_match = Some((27, __index + 1)); - __current_state = 59; - continue; - } - 111 ... 114 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 115 => /* 's' */ { - __current_match = Some((27, __index + 1)); - __current_state = 60; - continue; - } - 116 ... 122 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - _ => { - return __current_match; - } - } - } - 46 => { - let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; - match __ch as u32 { - 48 ... 57 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 65 ... 90 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 95 => /* '_' */ { - __current_match = Some((27, __index + 1)); - __current_state = 29; - continue; - } - 97 ... 122 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - _ => { - return __current_match; - } - } - } - 47 => { - let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; - match __ch as u32 { - 48 ... 57 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 65 ... 90 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 95 => /* '_' */ { - __current_match = Some((27, __index + 1)); - __current_state = 29; - continue; - } - 97 ... 98 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 99 => /* 'c' */ { - __current_match = Some((27, __index + 1)); - __current_state = 61; - continue; - } - 100 ... 122 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - _ => { - return __current_match; - } - } - } - 48 => { - let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; - match __ch as u32 { - 48 ... 57 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 65 ... 90 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 95 => /* '_' */ { - __current_match = Some((27, __index + 1)); - __current_state = 29; - continue; - } - 97 ... 122 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - _ => { - return __current_match; - } - } - } - 49 => { - let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; - match __ch as u32 { - 48 ... 57 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 65 ... 90 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 95 => /* '_' */ { - __current_match = Some((27, __index + 1)); - __current_state = 29; - continue; - } - 97 => /* 'a' */ { - __current_match = Some((27, __index + 1)); - __current_state = 62; - continue; - } - 98 ... 122 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - _ => { - return __current_match; - } - } - } - 50 => { - let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; - match __ch as u32 { - 48 ... 57 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 65 ... 90 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 95 => /* '_' */ { - __current_match = Some((27, __index + 1)); - __current_state = 29; - continue; - } - 97 ... 118 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 119 => /* 'w' */ { - __current_match = Some((17, __index + 1)); - __current_state = 63; - continue; - } - 120 ... 122 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - _ => { - return __current_match; - } - } - } - 51 => { - let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; - match __ch as u32 { - 48 ... 57 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 65 ... 90 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 95 => /* '_' */ { - __current_match = Some((27, __index + 1)); - __current_state = 29; - continue; - } - 97 ... 116 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 117 => /* 'u' */ { - __current_match = Some((27, __index + 1)); - __current_state = 64; - continue; - } - 118 ... 122 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - _ => { - return __current_match; - } - } - } - 52 => { - let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; - match __ch as u32 { - 48 ... 57 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 65 ... 90 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 95 => /* '_' */ { - __current_match = Some((27, __index + 1)); - __current_state = 29; - continue; - } - 97 ... 100 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 101 => /* 'e' */ { - __current_match = Some((27, __index + 1)); - __current_state = 65; - continue; - } - 102 ... 122 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - _ => { - return __current_match; - } - } - } - 53 => { - let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; - match __ch as u32 { - 48 ... 57 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 65 ... 90 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 95 => /* '_' */ { - __current_match = Some((27, __index + 1)); - __current_state = 29; - continue; - } - 97 ... 111 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 112 => /* 'p' */ { - __current_match = Some((27, __index + 1)); - __current_state = 66; - continue; - } - 113 ... 122 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - _ => { - return __current_match; - } - } - } - 54 => { - let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; - match __ch as u32 { - 48 ... 57 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 65 ... 90 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 95 => /* '_' */ { - __current_match = Some((27, __index + 1)); - __current_state = 29; - continue; - } - 97 => /* 'a' */ { - __current_match = Some((27, __index + 1)); - __current_state = 67; - continue; - } - 98 ... 122 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - _ => { - return __current_match; - } - } - } - 55 => { - let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; - match __ch as u32 { - 48 ... 57 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 65 ... 90 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 95 => /* '_' */ { - __current_match = Some((27, __index + 1)); - __current_state = 29; - continue; - } - 97 ... 100 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 101 => /* 'e' */ { - __current_match = Some((27, __index + 1)); - __current_state = 68; - continue; - } - 102 ... 122 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - _ => { - return __current_match; - } - } - } - 56 => { - let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; - match __ch as u32 { - 48 ... 57 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 65 ... 90 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 95 => /* '_' */ { - __current_match = Some((27, __index + 1)); - __current_state = 29; - continue; - } - 97 ... 115 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 116 => /* 't' */ { - __current_match = Some((23, __index + 1)); - __current_state = 69; - continue; - } - 117 ... 122 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - _ => { - return __current_match; - } - } - } - 57 => { - let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; - match __ch as u32 { - 48 ... 57 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 1632 ... 1641 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 1776 ... 1785 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 1984 ... 1993 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 2406 ... 2415 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 2534 ... 2543 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 2662 ... 2671 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 2790 ... 2799 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 2918 ... 2927 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 3046 ... 3055 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 3174 ... 3183 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 3302 ... 3311 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 3430 ... 3439 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 3558 ... 3567 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 3664 ... 3673 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 3792 ... 3801 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 3872 ... 3881 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 4160 ... 4169 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 4240 ... 4249 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 6112 ... 6121 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 6160 ... 6169 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 6470 ... 6479 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 6608 ... 6617 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 6784 ... 6793 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 6800 ... 6809 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 6992 ... 7001 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 7088 ... 7097 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 7232 ... 7241 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 7248 ... 7257 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 42528 ... 42537 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 43216 ... 43225 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 43264 ... 43273 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 43472 ... 43481 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 43504 ... 43513 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 43600 ... 43609 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 44016 ... 44025 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 65296 ... 65305 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 66720 ... 66729 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 69734 ... 69743 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 69872 ... 69881 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 69942 ... 69951 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 70096 ... 70105 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 70384 ... 70393 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 70864 ... 70873 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 71248 ... 71257 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 71360 ... 71369 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 71472 ... 71481 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 71904 ... 71913 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 92768 ... 92777 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 93008 ... 93017 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 120782 ... 120831 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - _ => { - return __current_match; - } - } - } - 58 => { - let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; - match __ch as u32 { - 48 ... 57 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 1632 ... 1641 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 1776 ... 1785 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 1984 ... 1993 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 2406 ... 2415 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 2534 ... 2543 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 2662 ... 2671 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 2790 ... 2799 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 2918 ... 2927 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 3046 ... 3055 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 3174 ... 3183 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 3302 ... 3311 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 3430 ... 3439 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 3558 ... 3567 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 3664 ... 3673 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 3792 ... 3801 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 3872 ... 3881 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 4160 ... 4169 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 4240 ... 4249 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 6112 ... 6121 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 6160 ... 6169 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 6470 ... 6479 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 6608 ... 6617 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 6784 ... 6793 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 6800 ... 6809 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 6992 ... 7001 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 7088 ... 7097 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 7232 ... 7241 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 7248 ... 7257 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 42528 ... 42537 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 43216 ... 43225 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 43264 ... 43273 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 43472 ... 43481 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 43504 ... 43513 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 43600 ... 43609 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 44016 ... 44025 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 65296 ... 65305 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 66720 ... 66729 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 69734 ... 69743 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 69872 ... 69881 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 69942 ... 69951 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 70096 ... 70105 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 70384 ... 70393 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 70864 ... 70873 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 71248 ... 71257 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 71360 ... 71369 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 71472 ... 71481 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 71904 ... 71913 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 92768 ... 92777 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 93008 ... 93017 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - 120782 ... 120831 => { - __current_match = Some((26, __index + __ch.len_utf8())); - __current_state = 58; - continue; - } - _ => { - return __current_match; - } - } - } - 59 => { - let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; - match __ch as u32 { - 48 ... 57 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 65 ... 90 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 95 => /* '_' */ { - __current_match = Some((27, __index + 1)); - __current_state = 29; - continue; - } - 97 ... 100 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 101 => /* 'e' */ { - __current_match = Some((27, __index + 1)); - __current_state = 70; - continue; - } - 102 ... 122 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - _ => { - return __current_match; - } - } - } - 60 => { - let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; - match __ch as u32 { - 48 ... 57 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 65 ... 90 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 95 => /* '_' */ { - __current_match = Some((27, __index + 1)); - __current_state = 29; - continue; - } - 97 ... 115 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 116 => /* 't' */ { - __current_match = Some((27, __index + 1)); - __current_state = 71; - continue; - } - 117 ... 122 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - _ => { - return __current_match; - } - } - } - 61 => { - let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; - match __ch as u32 { - 48 ... 57 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 65 ... 90 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 95 => /* '_' */ { - __current_match = Some((27, __index + 1)); - __current_state = 29; - continue; - } - 97 ... 113 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 114 => /* 'r' */ { - __current_match = Some((27, __index + 1)); - __current_state = 72; - continue; - } - 115 ... 122 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - _ => { - return __current_match; - } - } - } - 62 => { - let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; - match __ch as u32 { - 48 ... 57 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 65 ... 90 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 95 => /* '_' */ { - __current_match = Some((27, __index + 1)); - __current_state = 29; - continue; - } - 97 ... 115 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 116 => /* 't' */ { - __current_match = Some((27, __index + 1)); - __current_state = 73; - continue; - } - 117 ... 122 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - _ => { - return __current_match; - } - } - } - 63 => { - let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; - match __ch as u32 { - 48 ... 57 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 65 ... 90 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 95 => /* '_' */ { - __current_match = Some((27, __index + 1)); - __current_state = 29; - continue; - } - 97 ... 122 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - _ => { - return __current_match; - } - } - } - 64 => { - let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; - match __ch as u32 { - 48 ... 57 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 65 ... 90 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 95 => /* '_' */ { - __current_match = Some((27, __index + 1)); - __current_state = 29; - continue; - } - 97 ... 115 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 116 => /* 't' */ { - __current_match = Some((18, __index + 1)); - __current_state = 74; - continue; - } - 117 ... 122 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - _ => { - return __current_match; - } - } - } - 65 => { - let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; - match __ch as u32 { - 48 ... 57 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 65 ... 90 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 95 => /* '_' */ { - __current_match = Some((27, __index + 1)); - __current_state = 29; - continue; - } - 97 ... 107 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 108 => /* 'l' */ { - __current_match = Some((19, __index + 1)); - __current_state = 75; - continue; - } - 109 ... 122 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - _ => { - return __current_match; - } - } - } - 66 => { - let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; - match __ch as u32 { - 48 ... 57 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 65 ... 90 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 95 => /* '_' */ { - __current_match = Some((27, __index + 1)); - __current_state = 29; - continue; - } - 97 ... 116 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 117 => /* 'u' */ { - __current_match = Some((27, __index + 1)); - __current_state = 76; - continue; - } - 118 ... 122 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - _ => { - return __current_match; - } - } - } - 67 => { - let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; - match __ch as u32 { - 48 ... 57 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 65 ... 90 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 95 => /* '_' */ { - __current_match = Some((27, __index + 1)); - __current_state = 29; - continue; - } - 97 ... 108 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 109 => /* 'm' */ { - __current_match = Some((27, __index + 1)); - __current_state = 77; - continue; - } - 110 ... 122 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - _ => { - return __current_match; - } - } - } - 68 => { - let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; - match __ch as u32 { - 48 ... 57 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 65 ... 90 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 95 => /* '_' */ { - __current_match = Some((27, __index + 1)); - __current_state = 29; - continue; - } - 97 => /* 'a' */ { - __current_match = Some((27, __index + 1)); - __current_state = 78; - continue; - } - 98 ... 122 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - _ => { - return __current_match; - } - } - } - 69 => { - let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; - match __ch as u32 { - 48 ... 57 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 65 ... 90 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 95 => /* '_' */ { - __current_match = Some((27, __index + 1)); - __current_state = 29; - continue; - } - 97 ... 122 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - _ => { - return __current_match; - } - } - } - 70 => { - let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; - match __ch as u32 { - 48 ... 57 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 65 ... 90 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 95 => /* '_' */ { - __current_match = Some((27, __index + 1)); - __current_state = 29; - continue; - } - 97 ... 98 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 99 => /* 'c' */ { - __current_match = Some((27, __index + 1)); - __current_state = 79; - continue; - } - 100 ... 122 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - _ => { - return __current_match; - } - } - } - 71 => { - let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; - match __ch as u32 { - 48 ... 57 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 65 ... 90 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 95 => /* '_' */ { - __current_match = Some((27, __index + 1)); - __current_state = 29; - continue; - } - 97 => /* 'a' */ { - __current_match = Some((27, __index + 1)); - __current_state = 80; - continue; - } - 98 ... 122 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - _ => { - return __current_match; - } - } - } - 72 => { - let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; - match __ch as u32 { - 48 ... 57 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 65 ... 90 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 95 => /* '_' */ { - __current_match = Some((27, __index + 1)); - __current_state = 29; - continue; - } - 97 ... 100 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 101 => /* 'e' */ { - __current_match = Some((27, __index + 1)); - __current_state = 81; - continue; - } - 102 ... 122 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - _ => { - return __current_match; - } - } - } - 73 => { - let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; - match __ch as u32 { - 48 ... 57 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 65 ... 90 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 95 => /* '_' */ { - __current_match = Some((27, __index + 1)); - __current_state = 29; - continue; - } - 97 ... 104 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 105 => /* 'i' */ { - __current_match = Some((27, __index + 1)); - __current_state = 82; - continue; - } - 106 ... 122 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - _ => { - return __current_match; - } - } - } - 74 => { - let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; - match __ch as u32 { - 48 ... 57 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 65 ... 90 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 95 => /* '_' */ { - __current_match = Some((27, __index + 1)); - __current_state = 29; - continue; - } - 97 ... 122 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - _ => { - return __current_match; - } - } - } - 75 => { - let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; - match __ch as u32 { - 48 ... 57 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 65 ... 90 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 95 => /* '_' */ { - __current_match = Some((27, __index + 1)); - __current_state = 29; - continue; - } - 97 ... 122 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - _ => { - return __current_match; - } - } - } - 76 => { - let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; - match __ch as u32 { - 48 ... 57 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 65 ... 90 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 95 => /* '_' */ { - __current_match = Some((27, __index + 1)); - __current_state = 29; - continue; - } - 97 ... 115 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 116 => /* 't' */ { - __current_match = Some((20, __index + 1)); - __current_state = 83; - continue; - } - 117 ... 122 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - _ => { - return __current_match; - } - } - } - 77 => { - let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; - match __ch as u32 { - 48 ... 57 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 65 ... 90 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 95 => /* '_' */ { - __current_match = Some((27, __index + 1)); - __current_state = 29; - continue; - } - 97 ... 100 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 101 => /* 'e' */ { - __current_match = Some((27, __index + 1)); - __current_state = 84; - continue; - } - 102 ... 122 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - _ => { - return __current_match; - } - } - } - 78 => { - let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; - match __ch as u32 { - 48 ... 57 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 65 ... 90 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 95 => /* '_' */ { - __current_match = Some((27, __index + 1)); - __current_state = 29; - continue; - } - 97 ... 108 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 109 => /* 'm' */ { - __current_match = Some((22, __index + 1)); - __current_state = 85; - continue; - } - 110 ... 122 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - _ => { - return __current_match; - } - } - } - 79 => { - let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; - match __ch as u32 { - 48 ... 57 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 65 ... 90 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 95 => /* '_' */ { - __current_match = Some((27, __index + 1)); - __current_state = 29; - continue; - } - 97 ... 115 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 116 => /* 't' */ { - __current_match = Some((11, __index + 1)); - __current_state = 86; - continue; - } - 117 ... 122 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - _ => { - return __current_match; - } - } - } - 80 => { - let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; - match __ch as u32 { - 48 ... 57 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 65 ... 90 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 95 => /* '_' */ { - __current_match = Some((27, __index + 1)); - __current_state = 29; - continue; - } - 97 ... 109 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 110 => /* 'n' */ { - __current_match = Some((27, __index + 1)); - __current_state = 87; - continue; - } - 111 ... 122 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - _ => { - return __current_match; - } - } - } - 81 => { - let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; - match __ch as u32 { - 48 ... 57 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 65 ... 90 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 95 => /* '_' */ { - __current_match = Some((27, __index + 1)); - __current_state = 29; - continue; - } - 97 ... 115 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 116 => /* 't' */ { - __current_match = Some((27, __index + 1)); - __current_state = 88; - continue; - } - 117 ... 122 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - _ => { - return __current_match; - } - } - } - 82 => { - let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; - match __ch as u32 { - 48 ... 57 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 65 ... 90 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 95 => /* '_' */ { - __current_match = Some((27, __index + 1)); - __current_state = 29; - continue; - } - 97 ... 110 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 111 => /* 'o' */ { - __current_match = Some((27, __index + 1)); - __current_state = 89; - continue; - } - 112 ... 122 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - _ => { - return __current_match; - } - } - } - 83 => { - let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; - match __ch as u32 { - 48 ... 57 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 65 ... 90 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 95 => /* '_' */ { - __current_match = Some((27, __index + 1)); - __current_state = 29; - continue; - } - 97 ... 122 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - _ => { - return __current_match; - } - } - } - 84 => { - let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; - match __ch as u32 { - 48 ... 57 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 65 ... 90 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 95 => /* '_' */ { - __current_match = Some((27, __index + 1)); - __current_state = 29; - continue; - } - 97 ... 115 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 116 => /* 't' */ { - __current_match = Some((27, __index + 1)); - __current_state = 90; - continue; - } - 117 ... 122 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - _ => { - return __current_match; - } - } - } - 85 => { - let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; - match __ch as u32 { - 48 ... 57 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 65 ... 90 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 95 => /* '_' */ { - __current_match = Some((27, __index + 1)); - __current_state = 29; - continue; - } - 97 ... 122 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - _ => { - return __current_match; - } - } - } - 86 => { - let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; - match __ch as u32 { - 48 ... 57 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 65 ... 90 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 95 => /* '_' */ { - __current_match = Some((27, __index + 1)); - __current_state = 29; - continue; - } - 97 ... 122 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - _ => { - return __current_match; - } - } - } - 87 => { - let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; - match __ch as u32 { - 48 ... 57 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 65 ... 90 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 95 => /* '_' */ { - __current_match = Some((27, __index + 1)); - __current_state = 29; - continue; - } - 97 ... 115 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 116 => /* 't' */ { - __current_match = Some((12, __index + 1)); - __current_state = 91; - continue; - } - 117 ... 122 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - _ => { - return __current_match; - } - } - } - 88 => { - let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; - match __ch as u32 { - 48 ... 57 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 65 ... 90 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 95 => /* '_' */ { - __current_match = Some((27, __index + 1)); - __current_state = 29; - continue; - } - 97 ... 100 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 101 => /* 'e' */ { - __current_match = Some((14, __index + 1)); - __current_state = 92; - continue; - } - 102 ... 122 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - _ => { - return __current_match; - } - } - } - 89 => { - let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; - match __ch as u32 { - 48 ... 57 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 65 ... 90 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 95 => /* '_' */ { - __current_match = Some((27, __index + 1)); - __current_state = 29; - continue; - } - 97 ... 109 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 110 => /* 'n' */ { - __current_match = Some((16, __index + 1)); - __current_state = 93; - continue; - } - 111 ... 122 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - _ => { - return __current_match; - } - } - } - 90 => { - let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; - match __ch as u32 { - 48 ... 57 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 65 ... 90 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 95 => /* '_' */ { - __current_match = Some((27, __index + 1)); - __current_state = 29; - continue; - } - 97 ... 100 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 101 => /* 'e' */ { - __current_match = Some((27, __index + 1)); - __current_state = 94; - continue; - } - 102 ... 122 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - _ => { - return __current_match; - } - } - } - 91 => { - let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; - match __ch as u32 { - 48 ... 57 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 65 ... 90 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 95 => /* '_' */ { - __current_match = Some((27, __index + 1)); - __current_state = 29; - continue; - } - 97 ... 122 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - _ => { - return __current_match; - } - } - } - 92 => { - let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; - match __ch as u32 { - 48 ... 57 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 65 ... 90 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 95 => /* '_' */ { - __current_match = Some((27, __index + 1)); - __current_state = 29; - continue; - } - 97 ... 122 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - _ => { - return __current_match; - } - } - } - 93 => { - let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; - match __ch as u32 { - 48 ... 57 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 65 ... 90 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 95 => /* '_' */ { - __current_match = Some((27, __index + 1)); - __current_state = 29; - continue; - } - 97 ... 122 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - _ => { - return __current_match; - } - } - } - 94 => { - let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; - match __ch as u32 { - 48 ... 57 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 65 ... 90 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 95 => /* '_' */ { - __current_match = Some((27, __index + 1)); - __current_state = 29; - continue; - } - 97 ... 113 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 114 => /* 'r' */ { - __current_match = Some((21, __index + 1)); - __current_state = 95; - continue; - } - 115 ... 122 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - _ => { - return __current_match; - } - } - } - 95 => { - let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match }; - match __ch as u32 { - 48 ... 57 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 65 ... 90 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - 95 => /* '_' */ { - __current_match = Some((27, __index + 1)); - __current_state = 29; - continue; - } - 97 ... 122 => { - __current_match = Some((27, __index + __ch.len_utf8())); - __current_state = 29; - continue; - } - _ => { - return __current_match; - } - } - } - _ => { panic!("invalid state {}", __current_state); } - } - } - } - - impl<'input> __Matcher<'input> { - pub fn new(s: &'input str) -> __Matcher<'input> { - __Matcher { text: s, consumed: 0 } - } - } - - impl<'input> Iterator for __Matcher<'input> { - type Item = Result<(usize, (usize, &'input str), usize), __lalrpop_util::ParseError>; - - fn next(&mut self) -> Option { - let __text = self.text.trim_left(); - let __whitespace = self.text.len() - __text.len(); - let __start_offset = self.consumed + __whitespace; - if __text.is_empty() { - self.text = __text; - self.consumed = __start_offset; - None - } else { - match __tokenize(__text) { - Some((__index, __length)) => { - let __result = &__text[..__length]; - let __remaining = &__text[__length..]; - let __end_offset = __start_offset + __length; - self.text = __remaining; - self.consumed = __end_offset; - Some(Ok((__start_offset, (__index, __result), __end_offset))) - } - None => { - Some(Err(__lalrpop_util::ParseError::InvalidToken { location: __start_offset })) - } - } - } - } - } -} - -#[allow(unused_variables)] -pub fn __action0< - 'input, ->( - input: &'input str, - (_, __0, _): (usize, String, usize), -) -> String -{ - (__0) -} - -#[allow(unused_variables)] -pub fn __action1< - 'input, ->( - input: &'input str, - (_, __0, _): (usize, i64, usize), -) -> i64 -{ - (__0) -} - -#[allow(unused_variables)] -pub fn __action2< - 'input, ->( - input: &'input str, - (_, __0, _): (usize, f64, usize), -) -> f64 -{ - (__0) -} - -#[allow(unused_variables)] -pub fn __action3< - 'input, ->( - input: &'input str, - (_, __0, _): (usize, ModelicaModel, usize), -) -> ModelicaModel -{ - (__0) -} - -#[allow(unused_variables)] -pub fn __action4< - 'input, ->( - input: &'input str, - (_, __0, _): (usize, &'input str, usize), -) -> String -{ - __0.to_string() -} - -#[allow(unused_variables)] -pub fn __action5< - 'input, ->( - input: &'input str, - (_, __0, _): (usize, &'input str, usize), -) -> String -{ - __0.to_string() -} - -#[allow(unused_variables)] -pub fn __action6< - 'input, ->( - input: &'input str, - (_, __0, _): (usize, &'input str, usize), -) -> i64 -{ - i64::from_str(__0).unwrap() -} - -#[allow(unused_variables)] -pub fn __action7< - 'input, ->( - input: &'input str, - (_, __0, _): (usize, &'input str, usize), -) -> f64 -{ - f64::from_str(__0).unwrap() -} - -#[allow(unused_variables)] -pub fn __action8< - 'input, ->( - input: &'input str, - (_, _, _): (usize, &'input str, usize), - (_, n, _): (usize, String, usize), - (_, cd, _): (usize, ::std::vec::Vec, usize), - (_, _, _): (usize, &'input str, usize), - (_, cc, _): (usize, ::std::vec::Vec, usize), - (_, se, _): (usize, ::std::vec::Vec, usize), - (_, _, _): (usize, &'input str, usize), - (_, _, _): (usize, String, usize), - (_, _, _): (usize, &'input str, usize), -) -> ModelicaModel -{ - ModelicaModel { name:n, components: cd, connections: cc, equations: se, extends: vec![] } -} - -#[allow(unused_variables)] -pub fn __action9< - 'input, ->( - input: &'input str, - (_, _, _): (usize, &'input str, usize), - (_, value, _): (usize, Expr, usize), -) -> Expr -{ - value -} - -#[allow(unused_variables)] -pub fn __action10< - 'input, ->( - input: &'input str, - (_, _, _): (usize, &'input str, usize), - (_, _, _): (usize, &'input str, usize), - (_, _, _): (usize, &'input str, usize), - (_, units, _): (usize, String, usize), - (_, _, _): (usize, &'input str, usize), -) -> String -{ - units -} - -#[allow(unused_variables)] -pub fn __action11< - 'input, ->( - input: &'input str, - (_, prefix, _): (usize, ::std::option::Option, usize), - (_, specifier, _): (usize, String, usize), - (_, name, _): (usize, String, usize), - (_, units, _): (usize, ::std::option::Option, usize), - (_, value, _): (usize, ::std::option::Option, usize), - (_, desc, _): (usize, ::std::option::Option, usize), - (_, _, _): (usize, &'input str, usize), -) -> Component -{ - Component { prefix:prefix, specifier:specifier, name:name, description:desc, value:value, units:units } -} - -#[allow(unused_variables)] -pub fn __action12< - 'input, ->( - input: &'input str, - (_, __0, _): (usize, &'input str, usize), -) -> ComponentPrefix -{ - ComponentPrefix::Flow -} - -#[allow(unused_variables)] -pub fn __action13< - 'input, ->( - input: &'input str, - (_, __0, _): (usize, &'input str, usize), -) -> ComponentPrefix -{ - ComponentPrefix::Stream -} - -#[allow(unused_variables)] -pub fn __action14< - 'input, ->( - input: &'input str, - (_, __0, _): (usize, &'input str, usize), -) -> ComponentPrefix -{ - ComponentPrefix::Input -} - -#[allow(unused_variables)] -pub fn __action15< - 'input, ->( - input: &'input str, - (_, __0, _): (usize, &'input str, usize), -) -> ComponentPrefix -{ - ComponentPrefix::Output -} - -#[allow(unused_variables)] -pub fn __action16< - 'input, ->( - input: &'input str, - (_, __0, _): (usize, &'input str, usize), -) -> ComponentPrefix -{ - ComponentPrefix::Discrete -} - -#[allow(unused_variables)] -pub fn __action17< - 'input, ->( - input: &'input str, - (_, __0, _): (usize, &'input str, usize), -) -> ComponentPrefix -{ - ComponentPrefix::Parameter -} - -#[allow(unused_variables)] -pub fn __action18< - 'input, ->( - input: &'input str, - (_, __0, _): (usize, &'input str, usize), -) -> ComponentPrefix -{ - ComponentPrefix::Constant -} - -#[allow(unused_variables)] -pub fn __action19< - 'input, ->( - input: &'input str, - (_, lhs, _): (usize, Expr, usize), - (_, _, _): (usize, &'input str, usize), - (_, rhs, _): (usize, Expr, usize), - (_, _, _): (usize, &'input str, usize), -) -> SimpleEquation -{ - SimpleEquation {lhs:lhs, rhs:rhs} -} - -#[allow(unused_variables)] -pub fn __action20< - 'input, ->( - input: &'input str, - (_, _, _): (usize, &'input str, usize), - (_, _, _): (usize, &'input str, usize), - (_, a, _): (usize, String, usize), - (_, _, _): (usize, &'input str, usize), - (_, b, _): (usize, String, usize), - (_, _, _): (usize, &'input str, usize), - (_, _, _): (usize, &'input str, usize), -) -> Connection -{ - Connection { a: a.to_string(), b: b.to_string()} -} - -#[allow(unused_variables)] -pub fn __action21< - 'input, ->( - input: &'input str, - (_, lhs, _): (usize, Expr, usize), - (_, _, _): (usize, &'input str, usize), - (_, rhs, _): (usize, Expr, usize), -) -> Expr -{ - Expr::BinExpr(BinOperator::Add, Box::new(lhs), Box::new(rhs)) -} - -#[allow(unused_variables)] -pub fn __action22< - 'input, ->( - input: &'input str, - (_, lhs, _): (usize, Expr, usize), - (_, _, _): (usize, &'input str, usize), - (_, rhs, _): (usize, Expr, usize), -) -> Expr -{ - Expr::BinExpr(BinOperator::Subtract, Box::new(lhs), Box::new(rhs)) -} - -#[allow(unused_variables)] -pub fn __action23< - 'input, ->( - input: &'input str, - (_, __0, _): (usize, Expr, usize), -) -> Expr -{ - (__0) -} - -#[allow(unused_variables)] -pub fn __action24< - 'input, ->( - input: &'input str, - (_, lhs, _): (usize, Expr, usize), - (_, _, _): (usize, &'input str, usize), - (_, rhs, _): (usize, Expr, usize), -) -> Expr -{ - Expr::BinExpr(BinOperator::Multiply, Box::new(lhs), Box::new(rhs)) -} - -#[allow(unused_variables)] -pub fn __action25< - 'input, ->( - input: &'input str, - (_, lhs, _): (usize, Expr, usize), - (_, _, _): (usize, &'input str, usize), - (_, rhs, _): (usize, Expr, usize), -) -> Expr -{ - Expr::BinExpr(BinOperator::Divide, Box::new(lhs), Box::new(rhs)) -} - -#[allow(unused_variables)] -pub fn __action26< - 'input, ->( - input: &'input str, - (_, lhs, _): (usize, Expr, usize), - (_, _, _): (usize, &'input str, usize), - (_, rhs, _): (usize, Expr, usize), -) -> Expr -{ - Expr::BinExpr(BinOperator::Divide, Box::new(lhs), Box::new(rhs)) -} - -#[allow(unused_variables)] -pub fn __action27< - 'input, ->( - input: &'input str, - (_, _, _): (usize, &'input str, usize), - (_, t, _): (usize, Expr, usize), -) -> Expr -{ - Expr::BinExpr(BinOperator::Multiply, Box::new(Expr::Integer(-1)), Box::new(t)) -} - -#[allow(unused_variables)] -pub fn __action28< - 'input, ->( - input: &'input str, - (_, __0, _): (usize, Expr, usize), -) -> Expr -{ - (__0) -} - -#[allow(unused_variables)] -pub fn __action29< - 'input, ->( - input: &'input str, - (_, __0, _): (usize, i64, usize), -) -> Expr -{ - Expr::Integer(__0) -} - -#[allow(unused_variables)] -pub fn __action30< - 'input, ->( - input: &'input str, - (_, __0, _): (usize, f64, usize), -) -> Expr -{ - Expr::Float(__0) -} - -#[allow(unused_variables)] -pub fn __action31< - 'input, ->( - input: &'input str, - (_, __0, _): (usize, String, usize), -) -> Expr -{ - Expr::Ident(__0) -} - -#[allow(unused_variables)] -pub fn __action32< - 'input, ->( - input: &'input str, - (_, _, _): (usize, &'input str, usize), - (_, _, _): (usize, &'input str, usize), - (_, e, _): (usize, Expr, usize), - (_, _, _): (usize, &'input str, usize), -) -> Expr -{ - Expr::Der(Box::new(e)) -} - -#[allow(unused_variables)] -pub fn __action33< - 'input, ->( - input: &'input str, - (_, _, _): (usize, &'input str, usize), - (_, _, _): (usize, &'input str, usize), - (_, e, _): (usize, Expr, usize), - (_, _, _): (usize, &'input str, usize), -) -> Expr -{ - Expr::Abs(Box::new(e)) -} - -#[allow(unused_variables)] -pub fn __action34< - 'input, ->( - input: &'input str, - (_, _, _): (usize, &'input str, usize), - (_, e, _): (usize, Expr, usize), - (_, _, _): (usize, &'input str, usize), -) -> Expr -{ - e -} - -#[allow(unused_variables)] -pub fn __action35< - 'input, ->( - input: &'input str, - (_, __0, _): (usize, String, usize), -) -> ::std::option::Option -{ - Some(__0) -} - -#[allow(unused_variables)] -pub fn __action36< - 'input, ->( - input: &'input str, - __lookbehind: &usize, - __lookahead: &usize, -) -> ::std::option::Option -{ - None -} - -#[allow(unused_variables)] -pub fn __action37< - 'input, ->( - input: &'input str, - (_, __0, _): (usize, Expr, usize), -) -> ::std::option::Option -{ - Some(__0) -} - -#[allow(unused_variables)] -pub fn __action38< - 'input, ->( - input: &'input str, - __lookbehind: &usize, - __lookahead: &usize, -) -> ::std::option::Option -{ - None -} - -#[allow(unused_variables)] -pub fn __action39< - 'input, ->( - input: &'input str, - (_, __0, _): (usize, String, usize), -) -> ::std::option::Option -{ - Some(__0) -} - -#[allow(unused_variables)] -pub fn __action40< - 'input, ->( - input: &'input str, - __lookbehind: &usize, - __lookahead: &usize, -) -> ::std::option::Option -{ - None -} - -#[allow(unused_variables)] -pub fn __action41< - 'input, ->( - input: &'input str, - (_, __0, _): (usize, ComponentPrefix, usize), -) -> ::std::option::Option -{ - Some(__0) -} - -#[allow(unused_variables)] -pub fn __action42< - 'input, ->( - input: &'input str, - __lookbehind: &usize, - __lookahead: &usize, -) -> ::std::option::Option -{ - None -} - -#[allow(unused_variables)] -pub fn __action43< - 'input, ->( - input: &'input str, - __lookbehind: &usize, - __lookahead: &usize, -) -> ::std::vec::Vec -{ - vec![] -} - -#[allow(unused_variables)] -pub fn __action44< - 'input, ->( - input: &'input str, - (_, v, _): (usize, ::std::vec::Vec, usize), -) -> ::std::vec::Vec -{ - v -} - -#[allow(unused_variables)] -pub fn __action45< - 'input, ->( - input: &'input str, - __lookbehind: &usize, - __lookahead: &usize, -) -> ::std::vec::Vec -{ - vec![] -} - -#[allow(unused_variables)] -pub fn __action46< - 'input, ->( - input: &'input str, - (_, v, _): (usize, ::std::vec::Vec, usize), -) -> ::std::vec::Vec -{ - v -} - -#[allow(unused_variables)] -pub fn __action47< - 'input, ->( - input: &'input str, - __lookbehind: &usize, - __lookahead: &usize, -) -> ::std::vec::Vec -{ - vec![] -} - -#[allow(unused_variables)] -pub fn __action48< - 'input, ->( - input: &'input str, - (_, v, _): (usize, ::std::vec::Vec, usize), -) -> ::std::vec::Vec -{ - v -} - -#[allow(unused_variables)] -pub fn __action49< - 'input, ->( - input: &'input str, - (_, __0, _): (usize, Component, usize), -) -> ::std::vec::Vec -{ - vec![__0] -} - -#[allow(unused_variables)] -pub fn __action50< - 'input, ->( - input: &'input str, - (_, v, _): (usize, ::std::vec::Vec, usize), - (_, e, _): (usize, Component, usize), -) -> ::std::vec::Vec -{ - { let mut v = v; v.push(e); v } -} - -#[allow(unused_variables)] -pub fn __action51< - 'input, ->( - input: &'input str, - (_, __0, _): (usize, Connection, usize), -) -> ::std::vec::Vec -{ - vec![__0] -} - -#[allow(unused_variables)] -pub fn __action52< - 'input, ->( - input: &'input str, - (_, v, _): (usize, ::std::vec::Vec, usize), - (_, e, _): (usize, Connection, usize), -) -> ::std::vec::Vec -{ - { let mut v = v; v.push(e); v } -} - -#[allow(unused_variables)] -pub fn __action53< - 'input, ->( - input: &'input str, - (_, __0, _): (usize, SimpleEquation, usize), -) -> ::std::vec::Vec -{ - vec![__0] -} - -#[allow(unused_variables)] -pub fn __action54< - 'input, ->( - input: &'input str, - (_, v, _): (usize, ::std::vec::Vec, usize), - (_, e, _): (usize, SimpleEquation, usize), -) -> ::std::vec::Vec -{ - { let mut v = v; v.push(e); v } -} - -#[allow(unused_variables)] -pub fn __action55< - 'input, ->( - input: &'input str, - __0: (usize, &'input str, usize), - __1: (usize, String, usize), - __2: (usize, &'input str, usize), - __3: (usize, ::std::vec::Vec, usize), - __4: (usize, ::std::vec::Vec, usize), - __5: (usize, &'input str, usize), - __6: (usize, String, usize), - __7: (usize, &'input str, usize), -) -> ModelicaModel -{ - let __start0 = __1.2.clone(); - let __end0 = __2.0.clone(); - let __temp0 = __action47( - input, - &__start0, - &__end0, - ); - let __temp0 = (__start0, __temp0, __end0); - __action8( - input, - __0, - __1, - __temp0, - __2, - __3, - __4, - __5, - __6, - __7, - ) -} - -#[allow(unused_variables)] -pub fn __action56< - 'input, ->( - input: &'input str, - __0: (usize, &'input str, usize), - __1: (usize, String, usize), - __2: (usize, ::std::vec::Vec, usize), - __3: (usize, &'input str, usize), - __4: (usize, ::std::vec::Vec, usize), - __5: (usize, ::std::vec::Vec, usize), - __6: (usize, &'input str, usize), - __7: (usize, String, usize), - __8: (usize, &'input str, usize), -) -> ModelicaModel -{ - let __start0 = __2.0.clone(); - let __end0 = __2.2.clone(); - let __temp0 = __action48( - input, - __2, - ); - let __temp0 = (__start0, __temp0, __end0); - __action8( - input, - __0, - __1, - __temp0, - __3, - __4, - __5, - __6, - __7, - __8, - ) -} - -#[allow(unused_variables)] -pub fn __action57< - 'input, ->( - input: &'input str, - __0: (usize, ComponentPrefix, usize), - __1: (usize, String, usize), - __2: (usize, String, usize), - __3: (usize, ::std::option::Option, usize), - __4: (usize, ::std::option::Option, usize), - __5: (usize, ::std::option::Option, usize), - __6: (usize, &'input str, usize), -) -> Component -{ - let __start0 = __0.0.clone(); - let __end0 = __0.2.clone(); - let __temp0 = __action41( - input, - __0, - ); - let __temp0 = (__start0, __temp0, __end0); - __action11( - input, - __temp0, - __1, - __2, - __3, - __4, - __5, - __6, - ) -} - -#[allow(unused_variables)] -pub fn __action58< - 'input, ->( - input: &'input str, - __0: (usize, String, usize), - __1: (usize, String, usize), - __2: (usize, ::std::option::Option, usize), - __3: (usize, ::std::option::Option, usize), - __4: (usize, ::std::option::Option, usize), - __5: (usize, &'input str, usize), -) -> Component -{ - let __start0 = __0.0.clone(); - let __end0 = __0.0.clone(); - let __temp0 = __action42( - input, - &__start0, - &__end0, - ); - let __temp0 = (__start0, __temp0, __end0); - __action11( - input, - __temp0, - __0, - __1, - __2, - __3, - __4, - __5, - ) -} - -#[allow(unused_variables)] -pub fn __action59< - 'input, ->( - input: &'input str, - __0: (usize, &'input str, usize), - __1: (usize, String, usize), - __2: (usize, &'input str, usize), - __3: (usize, ::std::vec::Vec, usize), - __4: (usize, &'input str, usize), - __5: (usize, String, usize), - __6: (usize, &'input str, usize), -) -> ModelicaModel -{ - let __start0 = __2.2.clone(); - let __end0 = __3.0.clone(); - let __temp0 = __action45( - input, - &__start0, - &__end0, - ); - let __temp0 = (__start0, __temp0, __end0); - __action55( - input, - __0, - __1, - __2, - __temp0, - __3, - __4, - __5, - __6, - ) -} - -#[allow(unused_variables)] -pub fn __action60< - 'input, ->( - input: &'input str, - __0: (usize, &'input str, usize), - __1: (usize, String, usize), - __2: (usize, &'input str, usize), - __3: (usize, ::std::vec::Vec, usize), - __4: (usize, ::std::vec::Vec, usize), - __5: (usize, &'input str, usize), - __6: (usize, String, usize), - __7: (usize, &'input str, usize), -) -> ModelicaModel -{ - let __start0 = __3.0.clone(); - let __end0 = __3.2.clone(); - let __temp0 = __action46( - input, - __3, - ); - let __temp0 = (__start0, __temp0, __end0); - __action55( - input, - __0, - __1, - __2, - __temp0, - __4, - __5, - __6, - __7, - ) -} - -#[allow(unused_variables)] -pub fn __action61< - 'input, ->( - input: &'input str, - __0: (usize, &'input str, usize), - __1: (usize, String, usize), - __2: (usize, ::std::vec::Vec, usize), - __3: (usize, &'input str, usize), - __4: (usize, ::std::vec::Vec, usize), - __5: (usize, &'input str, usize), - __6: (usize, String, usize), - __7: (usize, &'input str, usize), -) -> ModelicaModel -{ - let __start0 = __3.2.clone(); - let __end0 = __4.0.clone(); - let __temp0 = __action45( - input, - &__start0, - &__end0, - ); - let __temp0 = (__start0, __temp0, __end0); - __action56( - input, - __0, - __1, - __2, - __3, - __temp0, - __4, - __5, - __6, - __7, - ) -} - -#[allow(unused_variables)] -pub fn __action62< - 'input, ->( - input: &'input str, - __0: (usize, &'input str, usize), - __1: (usize, String, usize), - __2: (usize, ::std::vec::Vec, usize), - __3: (usize, &'input str, usize), - __4: (usize, ::std::vec::Vec, usize), - __5: (usize, ::std::vec::Vec, usize), - __6: (usize, &'input str, usize), - __7: (usize, String, usize), - __8: (usize, &'input str, usize), -) -> ModelicaModel -{ - let __start0 = __4.0.clone(); - let __end0 = __4.2.clone(); - let __temp0 = __action46( - input, - __4, - ); - let __temp0 = (__start0, __temp0, __end0); - __action56( - input, - __0, - __1, - __2, - __3, - __temp0, - __5, - __6, - __7, - __8, - ) -} - -#[allow(unused_variables)] -pub fn __action63< - 'input, ->( - input: &'input str, - __0: (usize, &'input str, usize), - __1: (usize, String, usize), - __2: (usize, &'input str, usize), - __3: (usize, &'input str, usize), - __4: (usize, String, usize), - __5: (usize, &'input str, usize), -) -> ModelicaModel -{ - let __start0 = __2.2.clone(); - let __end0 = __3.0.clone(); - let __temp0 = __action43( - input, - &__start0, - &__end0, - ); - let __temp0 = (__start0, __temp0, __end0); - __action59( - input, - __0, - __1, - __2, - __temp0, - __3, - __4, - __5, - ) -} - -#[allow(unused_variables)] -pub fn __action64< - 'input, ->( - input: &'input str, - __0: (usize, &'input str, usize), - __1: (usize, String, usize), - __2: (usize, &'input str, usize), - __3: (usize, ::std::vec::Vec, usize), - __4: (usize, &'input str, usize), - __5: (usize, String, usize), - __6: (usize, &'input str, usize), -) -> ModelicaModel -{ - let __start0 = __3.0.clone(); - let __end0 = __3.2.clone(); - let __temp0 = __action44( - input, - __3, - ); - let __temp0 = (__start0, __temp0, __end0); - __action59( - input, - __0, - __1, - __2, - __temp0, - __4, - __5, - __6, - ) -} - -#[allow(unused_variables)] -pub fn __action65< - 'input, ->( - input: &'input str, - __0: (usize, &'input str, usize), - __1: (usize, String, usize), - __2: (usize, &'input str, usize), - __3: (usize, ::std::vec::Vec, usize), - __4: (usize, &'input str, usize), - __5: (usize, String, usize), - __6: (usize, &'input str, usize), -) -> ModelicaModel -{ - let __start0 = __3.2.clone(); - let __end0 = __4.0.clone(); - let __temp0 = __action43( - input, - &__start0, - &__end0, - ); - let __temp0 = (__start0, __temp0, __end0); - __action60( - input, - __0, - __1, - __2, - __3, - __temp0, - __4, - __5, - __6, - ) -} - -#[allow(unused_variables)] -pub fn __action66< - 'input, ->( - input: &'input str, - __0: (usize, &'input str, usize), - __1: (usize, String, usize), - __2: (usize, &'input str, usize), - __3: (usize, ::std::vec::Vec, usize), - __4: (usize, ::std::vec::Vec, usize), - __5: (usize, &'input str, usize), - __6: (usize, String, usize), - __7: (usize, &'input str, usize), -) -> ModelicaModel -{ - let __start0 = __4.0.clone(); - let __end0 = __4.2.clone(); - let __temp0 = __action44( - input, - __4, - ); - let __temp0 = (__start0, __temp0, __end0); - __action60( - input, - __0, - __1, - __2, - __3, - __temp0, - __5, - __6, - __7, - ) -} - -#[allow(unused_variables)] -pub fn __action67< - 'input, ->( - input: &'input str, - __0: (usize, &'input str, usize), - __1: (usize, String, usize), - __2: (usize, ::std::vec::Vec, usize), - __3: (usize, &'input str, usize), - __4: (usize, &'input str, usize), - __5: (usize, String, usize), - __6: (usize, &'input str, usize), -) -> ModelicaModel -{ - let __start0 = __3.2.clone(); - let __end0 = __4.0.clone(); - let __temp0 = __action43( - input, - &__start0, - &__end0, - ); - let __temp0 = (__start0, __temp0, __end0); - __action61( - input, - __0, - __1, - __2, - __3, - __temp0, - __4, - __5, - __6, - ) -} - -#[allow(unused_variables)] -pub fn __action68< - 'input, ->( - input: &'input str, - __0: (usize, &'input str, usize), - __1: (usize, String, usize), - __2: (usize, ::std::vec::Vec, usize), - __3: (usize, &'input str, usize), - __4: (usize, ::std::vec::Vec, usize), - __5: (usize, &'input str, usize), - __6: (usize, String, usize), - __7: (usize, &'input str, usize), -) -> ModelicaModel -{ - let __start0 = __4.0.clone(); - let __end0 = __4.2.clone(); - let __temp0 = __action44( - input, - __4, - ); - let __temp0 = (__start0, __temp0, __end0); - __action61( - input, - __0, - __1, - __2, - __3, - __temp0, - __5, - __6, - __7, - ) -} - -#[allow(unused_variables)] -pub fn __action69< - 'input, ->( - input: &'input str, - __0: (usize, &'input str, usize), - __1: (usize, String, usize), - __2: (usize, ::std::vec::Vec, usize), - __3: (usize, &'input str, usize), - __4: (usize, ::std::vec::Vec, usize), - __5: (usize, &'input str, usize), - __6: (usize, String, usize), - __7: (usize, &'input str, usize), -) -> ModelicaModel -{ - let __start0 = __4.2.clone(); - let __end0 = __5.0.clone(); - let __temp0 = __action43( - input, - &__start0, - &__end0, - ); - let __temp0 = (__start0, __temp0, __end0); - __action62( - input, - __0, - __1, - __2, - __3, - __4, - __temp0, - __5, - __6, - __7, - ) -} - -#[allow(unused_variables)] -pub fn __action70< - 'input, ->( - input: &'input str, - __0: (usize, &'input str, usize), - __1: (usize, String, usize), - __2: (usize, ::std::vec::Vec, usize), - __3: (usize, &'input str, usize), - __4: (usize, ::std::vec::Vec, usize), - __5: (usize, ::std::vec::Vec, usize), - __6: (usize, &'input str, usize), - __7: (usize, String, usize), - __8: (usize, &'input str, usize), -) -> ModelicaModel -{ - let __start0 = __5.0.clone(); - let __end0 = __5.2.clone(); - let __temp0 = __action44( - input, - __5, - ); - let __temp0 = (__start0, __temp0, __end0); - __action62( - input, - __0, - __1, - __2, - __3, - __4, - __temp0, - __6, - __7, - __8, - ) -} - -#[allow(unused_variables)] -pub fn __action71< - 'input, ->( - input: &'input str, - __0: (usize, ComponentPrefix, usize), - __1: (usize, String, usize), - __2: (usize, String, usize), - __3: (usize, ::std::option::Option, usize), - __4: (usize, ::std::option::Option, usize), - __5: (usize, String, usize), - __6: (usize, &'input str, usize), -) -> Component -{ - let __start0 = __5.0.clone(); - let __end0 = __5.2.clone(); - let __temp0 = __action35( - input, - __5, - ); - let __temp0 = (__start0, __temp0, __end0); - __action57( - input, - __0, - __1, - __2, - __3, - __4, - __temp0, - __6, - ) -} - -#[allow(unused_variables)] -pub fn __action72< - 'input, ->( - input: &'input str, - __0: (usize, ComponentPrefix, usize), - __1: (usize, String, usize), - __2: (usize, String, usize), - __3: (usize, ::std::option::Option, usize), - __4: (usize, ::std::option::Option, usize), - __5: (usize, &'input str, usize), -) -> Component -{ - let __start0 = __4.2.clone(); - let __end0 = __5.0.clone(); - let __temp0 = __action36( - input, - &__start0, - &__end0, - ); - let __temp0 = (__start0, __temp0, __end0); - __action57( - input, - __0, - __1, - __2, - __3, - __4, - __temp0, - __5, - ) -} - -#[allow(unused_variables)] -pub fn __action73< - 'input, ->( - input: &'input str, - __0: (usize, String, usize), - __1: (usize, String, usize), - __2: (usize, ::std::option::Option, usize), - __3: (usize, ::std::option::Option, usize), - __4: (usize, String, usize), - __5: (usize, &'input str, usize), -) -> Component -{ - let __start0 = __4.0.clone(); - let __end0 = __4.2.clone(); - let __temp0 = __action35( - input, - __4, - ); - let __temp0 = (__start0, __temp0, __end0); - __action58( - input, - __0, - __1, - __2, - __3, - __temp0, - __5, - ) -} - -#[allow(unused_variables)] -pub fn __action74< - 'input, ->( - input: &'input str, - __0: (usize, String, usize), - __1: (usize, String, usize), - __2: (usize, ::std::option::Option, usize), - __3: (usize, ::std::option::Option, usize), - __4: (usize, &'input str, usize), -) -> Component -{ - let __start0 = __3.2.clone(); - let __end0 = __4.0.clone(); - let __temp0 = __action36( - input, - &__start0, - &__end0, - ); - let __temp0 = (__start0, __temp0, __end0); - __action58( - input, - __0, - __1, - __2, - __3, - __temp0, - __4, - ) -} - -#[allow(unused_variables)] -pub fn __action75< - 'input, ->( - input: &'input str, - __0: (usize, ComponentPrefix, usize), - __1: (usize, String, usize), - __2: (usize, String, usize), - __3: (usize, String, usize), - __4: (usize, ::std::option::Option, usize), - __5: (usize, String, usize), - __6: (usize, &'input str, usize), -) -> Component -{ - let __start0 = __3.0.clone(); - let __end0 = __3.2.clone(); - let __temp0 = __action39( - input, - __3, - ); - let __temp0 = (__start0, __temp0, __end0); - __action71( - input, - __0, - __1, - __2, - __temp0, - __4, - __5, - __6, - ) -} - -#[allow(unused_variables)] -pub fn __action76< - 'input, ->( - input: &'input str, - __0: (usize, ComponentPrefix, usize), - __1: (usize, String, usize), - __2: (usize, String, usize), - __3: (usize, ::std::option::Option, usize), - __4: (usize, String, usize), - __5: (usize, &'input str, usize), -) -> Component -{ - let __start0 = __2.2.clone(); - let __end0 = __3.0.clone(); - let __temp0 = __action40( - input, - &__start0, - &__end0, - ); - let __temp0 = (__start0, __temp0, __end0); - __action71( - input, - __0, - __1, - __2, - __temp0, - __3, - __4, - __5, - ) -} - -#[allow(unused_variables)] -pub fn __action77< - 'input, ->( - input: &'input str, - __0: (usize, ComponentPrefix, usize), - __1: (usize, String, usize), - __2: (usize, String, usize), - __3: (usize, String, usize), - __4: (usize, ::std::option::Option, usize), - __5: (usize, &'input str, usize), -) -> Component -{ - let __start0 = __3.0.clone(); - let __end0 = __3.2.clone(); - let __temp0 = __action39( - input, - __3, - ); - let __temp0 = (__start0, __temp0, __end0); - __action72( - input, - __0, - __1, - __2, - __temp0, - __4, - __5, - ) -} - -#[allow(unused_variables)] -pub fn __action78< - 'input, ->( - input: &'input str, - __0: (usize, ComponentPrefix, usize), - __1: (usize, String, usize), - __2: (usize, String, usize), - __3: (usize, ::std::option::Option, usize), - __4: (usize, &'input str, usize), -) -> Component -{ - let __start0 = __2.2.clone(); - let __end0 = __3.0.clone(); - let __temp0 = __action40( - input, - &__start0, - &__end0, - ); - let __temp0 = (__start0, __temp0, __end0); - __action72( - input, - __0, - __1, - __2, - __temp0, - __3, - __4, - ) -} - -#[allow(unused_variables)] -pub fn __action79< - 'input, ->( - input: &'input str, - __0: (usize, String, usize), - __1: (usize, String, usize), - __2: (usize, String, usize), - __3: (usize, ::std::option::Option, usize), - __4: (usize, String, usize), - __5: (usize, &'input str, usize), -) -> Component -{ - let __start0 = __2.0.clone(); - let __end0 = __2.2.clone(); - let __temp0 = __action39( - input, - __2, - ); - let __temp0 = (__start0, __temp0, __end0); - __action73( - input, - __0, - __1, - __temp0, - __3, - __4, - __5, - ) -} - -#[allow(unused_variables)] -pub fn __action80< - 'input, ->( - input: &'input str, - __0: (usize, String, usize), - __1: (usize, String, usize), - __2: (usize, ::std::option::Option, usize), - __3: (usize, String, usize), - __4: (usize, &'input str, usize), -) -> Component -{ - let __start0 = __1.2.clone(); - let __end0 = __2.0.clone(); - let __temp0 = __action40( - input, - &__start0, - &__end0, - ); - let __temp0 = (__start0, __temp0, __end0); - __action73( - input, - __0, - __1, - __temp0, - __2, - __3, - __4, - ) -} - -#[allow(unused_variables)] -pub fn __action81< - 'input, ->( - input: &'input str, - __0: (usize, String, usize), - __1: (usize, String, usize), - __2: (usize, String, usize), - __3: (usize, ::std::option::Option, usize), - __4: (usize, &'input str, usize), -) -> Component -{ - let __start0 = __2.0.clone(); - let __end0 = __2.2.clone(); - let __temp0 = __action39( - input, - __2, - ); - let __temp0 = (__start0, __temp0, __end0); - __action74( - input, - __0, - __1, - __temp0, - __3, - __4, - ) -} - -#[allow(unused_variables)] -pub fn __action82< - 'input, ->( - input: &'input str, - __0: (usize, String, usize), - __1: (usize, String, usize), - __2: (usize, ::std::option::Option, usize), - __3: (usize, &'input str, usize), -) -> Component -{ - let __start0 = __1.2.clone(); - let __end0 = __2.0.clone(); - let __temp0 = __action40( - input, - &__start0, - &__end0, - ); - let __temp0 = (__start0, __temp0, __end0); - __action74( - input, - __0, - __1, - __temp0, - __2, - __3, - ) -} - -#[allow(unused_variables)] -pub fn __action83< - 'input, ->( - input: &'input str, - __0: (usize, ComponentPrefix, usize), - __1: (usize, String, usize), - __2: (usize, String, usize), - __3: (usize, String, usize), - __4: (usize, Expr, usize), - __5: (usize, String, usize), - __6: (usize, &'input str, usize), -) -> Component -{ - let __start0 = __4.0.clone(); - let __end0 = __4.2.clone(); - let __temp0 = __action37( - input, - __4, - ); - let __temp0 = (__start0, __temp0, __end0); - __action75( - input, - __0, - __1, - __2, - __3, - __temp0, - __5, - __6, - ) -} - -#[allow(unused_variables)] -pub fn __action84< - 'input, ->( - input: &'input str, - __0: (usize, ComponentPrefix, usize), - __1: (usize, String, usize), - __2: (usize, String, usize), - __3: (usize, String, usize), - __4: (usize, String, usize), - __5: (usize, &'input str, usize), -) -> Component -{ - let __start0 = __3.2.clone(); - let __end0 = __4.0.clone(); - let __temp0 = __action38( - input, - &__start0, - &__end0, - ); - let __temp0 = (__start0, __temp0, __end0); - __action75( - input, - __0, - __1, - __2, - __3, - __temp0, - __4, - __5, - ) -} - -#[allow(unused_variables)] -pub fn __action85< - 'input, ->( - input: &'input str, - __0: (usize, ComponentPrefix, usize), - __1: (usize, String, usize), - __2: (usize, String, usize), - __3: (usize, Expr, usize), - __4: (usize, String, usize), - __5: (usize, &'input str, usize), -) -> Component -{ - let __start0 = __3.0.clone(); - let __end0 = __3.2.clone(); - let __temp0 = __action37( - input, - __3, - ); - let __temp0 = (__start0, __temp0, __end0); - __action76( - input, - __0, - __1, - __2, - __temp0, - __4, - __5, - ) -} - -#[allow(unused_variables)] -pub fn __action86< - 'input, ->( - input: &'input str, - __0: (usize, ComponentPrefix, usize), - __1: (usize, String, usize), - __2: (usize, String, usize), - __3: (usize, String, usize), - __4: (usize, &'input str, usize), -) -> Component -{ - let __start0 = __2.2.clone(); - let __end0 = __3.0.clone(); - let __temp0 = __action38( - input, - &__start0, - &__end0, - ); - let __temp0 = (__start0, __temp0, __end0); - __action76( - input, - __0, - __1, - __2, - __temp0, - __3, - __4, - ) -} - -#[allow(unused_variables)] -pub fn __action87< - 'input, ->( - input: &'input str, - __0: (usize, ComponentPrefix, usize), - __1: (usize, String, usize), - __2: (usize, String, usize), - __3: (usize, String, usize), - __4: (usize, Expr, usize), - __5: (usize, &'input str, usize), -) -> Component -{ - let __start0 = __4.0.clone(); - let __end0 = __4.2.clone(); - let __temp0 = __action37( - input, - __4, - ); - let __temp0 = (__start0, __temp0, __end0); - __action77( - input, - __0, - __1, - __2, - __3, - __temp0, - __5, - ) -} - -#[allow(unused_variables)] -pub fn __action88< - 'input, ->( - input: &'input str, - __0: (usize, ComponentPrefix, usize), - __1: (usize, String, usize), - __2: (usize, String, usize), - __3: (usize, String, usize), - __4: (usize, &'input str, usize), -) -> Component -{ - let __start0 = __3.2.clone(); - let __end0 = __4.0.clone(); - let __temp0 = __action38( - input, - &__start0, - &__end0, - ); - let __temp0 = (__start0, __temp0, __end0); - __action77( - input, - __0, - __1, - __2, - __3, - __temp0, - __4, - ) -} - -#[allow(unused_variables)] -pub fn __action89< - 'input, ->( - input: &'input str, - __0: (usize, ComponentPrefix, usize), - __1: (usize, String, usize), - __2: (usize, String, usize), - __3: (usize, Expr, usize), - __4: (usize, &'input str, usize), -) -> Component -{ - let __start0 = __3.0.clone(); - let __end0 = __3.2.clone(); - let __temp0 = __action37( - input, - __3, - ); - let __temp0 = (__start0, __temp0, __end0); - __action78( - input, - __0, - __1, - __2, - __temp0, - __4, - ) -} - -#[allow(unused_variables)] -pub fn __action90< - 'input, ->( - input: &'input str, - __0: (usize, ComponentPrefix, usize), - __1: (usize, String, usize), - __2: (usize, String, usize), - __3: (usize, &'input str, usize), -) -> Component -{ - let __start0 = __2.2.clone(); - let __end0 = __3.0.clone(); - let __temp0 = __action38( - input, - &__start0, - &__end0, - ); - let __temp0 = (__start0, __temp0, __end0); - __action78( - input, - __0, - __1, - __2, - __temp0, - __3, - ) -} - -#[allow(unused_variables)] -pub fn __action91< - 'input, ->( - input: &'input str, - __0: (usize, String, usize), - __1: (usize, String, usize), - __2: (usize, String, usize), - __3: (usize, Expr, usize), - __4: (usize, String, usize), - __5: (usize, &'input str, usize), -) -> Component -{ - let __start0 = __3.0.clone(); - let __end0 = __3.2.clone(); - let __temp0 = __action37( - input, - __3, - ); - let __temp0 = (__start0, __temp0, __end0); - __action79( - input, - __0, - __1, - __2, - __temp0, - __4, - __5, - ) -} - -#[allow(unused_variables)] -pub fn __action92< - 'input, ->( - input: &'input str, - __0: (usize, String, usize), - __1: (usize, String, usize), - __2: (usize, String, usize), - __3: (usize, String, usize), - __4: (usize, &'input str, usize), -) -> Component -{ - let __start0 = __2.2.clone(); - let __end0 = __3.0.clone(); - let __temp0 = __action38( - input, - &__start0, - &__end0, - ); - let __temp0 = (__start0, __temp0, __end0); - __action79( - input, - __0, - __1, - __2, - __temp0, - __3, - __4, - ) -} - -#[allow(unused_variables)] -pub fn __action93< - 'input, ->( - input: &'input str, - __0: (usize, String, usize), - __1: (usize, String, usize), - __2: (usize, Expr, usize), - __3: (usize, String, usize), - __4: (usize, &'input str, usize), -) -> Component -{ - let __start0 = __2.0.clone(); - let __end0 = __2.2.clone(); - let __temp0 = __action37( - input, - __2, - ); - let __temp0 = (__start0, __temp0, __end0); - __action80( - input, - __0, - __1, - __temp0, - __3, - __4, - ) -} - -#[allow(unused_variables)] -pub fn __action94< - 'input, ->( - input: &'input str, - __0: (usize, String, usize), - __1: (usize, String, usize), - __2: (usize, String, usize), - __3: (usize, &'input str, usize), -) -> Component -{ - let __start0 = __1.2.clone(); - let __end0 = __2.0.clone(); - let __temp0 = __action38( - input, - &__start0, - &__end0, - ); - let __temp0 = (__start0, __temp0, __end0); - __action80( - input, - __0, - __1, - __temp0, - __2, - __3, - ) -} - -#[allow(unused_variables)] -pub fn __action95< - 'input, ->( - input: &'input str, - __0: (usize, String, usize), - __1: (usize, String, usize), - __2: (usize, String, usize), - __3: (usize, Expr, usize), - __4: (usize, &'input str, usize), -) -> Component -{ - let __start0 = __3.0.clone(); - let __end0 = __3.2.clone(); - let __temp0 = __action37( - input, - __3, - ); - let __temp0 = (__start0, __temp0, __end0); - __action81( - input, - __0, - __1, - __2, - __temp0, - __4, - ) -} - -#[allow(unused_variables)] -pub fn __action96< - 'input, ->( - input: &'input str, - __0: (usize, String, usize), - __1: (usize, String, usize), - __2: (usize, String, usize), - __3: (usize, &'input str, usize), -) -> Component -{ - let __start0 = __2.2.clone(); - let __end0 = __3.0.clone(); - let __temp0 = __action38( - input, - &__start0, - &__end0, - ); - let __temp0 = (__start0, __temp0, __end0); - __action81( - input, - __0, - __1, - __2, - __temp0, - __3, - ) -} - -#[allow(unused_variables)] -pub fn __action97< - 'input, ->( - input: &'input str, - __0: (usize, String, usize), - __1: (usize, String, usize), - __2: (usize, Expr, usize), - __3: (usize, &'input str, usize), -) -> Component -{ - let __start0 = __2.0.clone(); - let __end0 = __2.2.clone(); - let __temp0 = __action37( - input, - __2, - ); - let __temp0 = (__start0, __temp0, __end0); - __action82( - input, - __0, - __1, - __temp0, - __3, - ) -} - -#[allow(unused_variables)] -pub fn __action98< - 'input, ->( - input: &'input str, - __0: (usize, String, usize), - __1: (usize, String, usize), - __2: (usize, &'input str, usize), -) -> Component -{ - let __start0 = __1.2.clone(); - let __end0 = __2.0.clone(); - let __temp0 = __action38( - input, - &__start0, - &__end0, - ); - let __temp0 = (__start0, __temp0, __end0); - __action82( - input, - __0, - __1, - __temp0, - __2, - ) -} - -pub trait __ToTriple<'input, > { - type Error; - fn to_triple(value: Self) -> Result<(usize,(usize, &'input str),usize),Self::Error>; -} - -impl<'input, > __ToTriple<'input, > for (usize, (usize, &'input str), usize) { - type Error = (); - fn to_triple(value: Self) -> Result<(usize,(usize, &'input str),usize),()> { - Ok(value) - } -} -impl<'input, > __ToTriple<'input, > for Result<(usize, (usize, &'input str), usize),()> { - type Error = (); - fn to_triple(value: Self) -> Result<(usize,(usize, &'input str),usize),()> { - value - } -} diff --git a/src/transpile_js.rs b/src/transpile_js.rs index 7c8932f..7a2132f 100644 --- a/src/transpile_js.rs +++ b/src/transpile_js.rs @@ -1,5 +1,7 @@ -use modelica_ast::*; +extern crate modelica_parser; + +use self::modelica_parser::ast::*; pub trait TranspileJS { fn repr_js(&self) -> Result; @@ -43,7 +45,7 @@ impl TranspileJS for ModelicaModel { impl TranspileJS for Expr { fn repr_js(&self) -> Result { - use modelica_ast::Expr::*; + use modelica_parser::ast::Expr::*; match *self { Integer(e) => Ok(format!("{}", e)), Float(e) => Ok(format!("{}", e)), diff --git a/src/transpile_scheme.rs b/src/transpile_scheme.rs index 5a88cda..5c8bd66 100644 --- a/src/transpile_scheme.rs +++ b/src/transpile_scheme.rs @@ -1,5 +1,7 @@ -use modelica_ast::*; +extern crate modelica_parser; + +use self::modelica_parser::ast::*; pub trait TranspileScheme { fn repr_scheme(&self) -> Result; @@ -40,7 +42,7 @@ impl TranspileScheme for ModelicaModel { impl TranspileScheme for Expr { fn repr_scheme(&self) -> Result { - use modelica_ast::Expr::*; + use modelica_parser::ast::Expr::*; match *self { Integer(e) => Ok(format!("{}", e)), Float(e) => Ok(format!("{}", e)), diff --git a/tests/lib.rs b/tests/lib.rs index baddf72..bf28476 100644 --- a/tests/lib.rs +++ b/tests/lib.rs @@ -1,5 +1,6 @@ extern crate modelthing; +extern crate modelica_parser; use std::path::Path; @@ -31,39 +32,3 @@ fn test_load_model_entry() { fn test_search_models() { assert_eq!(search_models(Path::new("./examples/")).len() > 1, true); } - -#[test] -fn test_lexical() { - assert_eq!(&format!("{:?}", modelica_parser::parse_integer("+123").unwrap()), - "123"); - assert_eq!(&format!("{:?}", modelica_parser::parse_integer("-9").unwrap()), - "-9"); - assert_eq!(&format!("{:?}", modelica_parser::parse_float("-1.0e0").unwrap()), - "-1"); - assert_eq!(&format!("{:?}", modelica_parser::parse_float("123.456").unwrap()), - "123.456"); -} - -#[test] -fn test_parse() { - let example1 = -r#"model MinimalModel - Real x; -equation - x = 1; -end MinimalModel; -"#; - assert_eq!(&format!("{:?}", modelica_parser::parse_model(example1).unwrap()), example1); - - let example2 = -r#"model MinimalModel - parameter Real a; - Real b; -equation - connect(a, b); - a = 1; - b = ((abs(a) + 2) / 4); -end MinimalModel; -"#; - assert_eq!(&format!("{:?}", modelica_parser::parse_model(example2).unwrap()), example2); -} diff --git a/tests/modelica_ast.rs b/tests/modelica_ast.rs deleted file mode 100644 index d39615e..0000000 --- a/tests/modelica_ast.rs +++ /dev/null @@ -1,78 +0,0 @@ - -extern crate modelthing; - -use std::collections::HashSet; -use std::iter::FromIterator; -use modelthing::modelica_ast::*; - -fn set_eq(a: Vec, b: Vec) -> bool { - let set_a: HashSet = HashSet::from_iter(a); - let set_b: HashSet = HashSet::from_iter(b); - return set_a == set_b; -} - -#[test] -fn test_expr_identifiers() { - use modelthing::modelica_ast::Expr::*; - - assert!(set_eq( - vec![], - Integer(0).identifiers())); - assert!(set_eq( - vec!["x".to_string()], - Ident("x".to_string()).identifiers())); - assert!(set_eq( - vec!["x".to_string(), "y".to_string(), "z".to_string()], - BinExpr(BinOperator::Add, - Box::new(Abs(Box::new(Ident("z".to_string())))), - Box::new(BinExpr(BinOperator::Add, - Box::new(Abs(Box::new(Ident("x".to_string())))), - Box::new(Abs(Box::new(Ident("y".to_string()))))))).identifiers())); - assert!(set_eq( - vec!["z".to_string()], - BinExpr(BinOperator::Add, - Box::new(Ident("z".to_string())), - Box::new(Ident("z".to_string()))).identifiers())); -} - -#[test] -fn test_eqn_identifiers() { - use modelthing::modelica_ast::Expr::*; - - assert!(set_eq( - vec![], - SimpleEquation{ - lhs: Integer(0), - rhs: Integer(0), - }.identifiers())); - assert!(set_eq( - vec!["z".to_string()], - SimpleEquation{ - lhs: Ident("z".to_string()), - rhs: BinExpr(BinOperator::Add, - Box::new(Ident("z".to_string())), - Box::new(Ident("z".to_string()))), - }.identifiers())); -} - -#[test] -fn test_rebalance_for() { - use modelthing::modelica_ast::Expr::*; - - // z = a - 1.2345 - // a = z + 1.2345 - let done = SimpleEquation{ - lhs: Ident("z".to_string()), - rhs: BinExpr(BinOperator::Subtract, - Box::new(Ident("a".to_string())), - Box::new(Float(1.2345)))}; - assert_eq!(done, - done.rebalance_for("z".to_string()).unwrap()); - assert_eq!(SimpleEquation{ - lhs: Ident("a".to_string()), - rhs: BinExpr(BinOperator::Add, - Box::new(Ident("z".to_string())), - Box::new(Float(1.2345)))}, - done.rebalance_for("a".to_string()).unwrap()); - -} diff --git a/tests/rebalance.rs b/tests/rebalance.rs new file mode 100644 index 0000000..f365e84 --- /dev/null +++ b/tests/rebalance.rs @@ -0,0 +1,28 @@ + +extern crate modelica_parser; +extern crate modelthing; + +use modelthing::modelica_model::SimpleEquationExt; +use modelica_parser::ast::*; + +#[test] +fn test_rebalance_for() { + use modelica_parser::ast::Expr::*; + + // z = a - 1.2345 + // a = z + 1.2345 + let done = SimpleEquation{ + lhs: Ident("z".to_string()), + rhs: BinExpr(BinOperator::Subtract, + Box::new(Ident("a".to_string())), + Box::new(Float(1.2345)))}; + assert_eq!(done, + done.rebalance_for("z".to_string()).unwrap()); + assert_eq!(SimpleEquation{ + lhs: Ident("a".to_string()), + rhs: BinExpr(BinOperator::Add, + Box::new(Ident("z".to_string())), + Box::new(Float(1.2345)))}, + done.rebalance_for("a".to_string()).unwrap()); + +} -- cgit v1.2.3