use std::str::FromStr;
use crate::ast::{RelationOp, ArithmeticOp, Expression, UnaryOp, Member, Literal};
#[allow(unused_extern_crates)]
extern crate lalrpop_util as __lalrpop_util;
#[allow(unused_imports)]
use self::__lalrpop_util::state_machine as __state_machine;
#[cfg_attr(rustfmt, rustfmt_skip)]
mod __parse__Expression {
#![allow(non_snake_case, non_camel_case_types, unused_mut, unused_variables, unused_imports, unused_parens)]
use std::str::FromStr;
use crate::ast::{RelationOp, ArithmeticOp, Expression, UnaryOp, Member, Literal};
#[allow(unused_extern_crates)]
extern crate lalrpop_util as __lalrpop_util;
#[allow(unused_imports)]
use self::__lalrpop_util::state_machine as __state_machine;
use self::__lalrpop_util::lexer::Token;
#[allow(dead_code)]
pub enum __Symbol<'input>
{
Variant0(&'input str),
Variant1(::std::option::Option<&'input str>),
Variant2(Box<Expression>),
Variant3(::std::vec::Vec<Box<Expression>>),
Variant4((String, Box<Expression>)),
Variant5(::std::vec::Vec<(String, Box<Expression>)>),
Variant6((Box<Expression>, Box<Expression>)),
Variant7(::std::vec::Vec<(Box<Expression>, Box<Expression>)>),
Variant8(ArithmeticOp),
Variant9(Vec<Box<Expression>>),
Variant10(Vec<(String, Box<Expression>)>),
Variant11(Vec<(Box<Expression>, Box<Expression>)>),
Variant12(::std::option::Option<Box<Expression>>),
Variant13(::std::option::Option<(String, Box<Expression>)>),
Variant14(String),
Variant15(Literal),
Variant16(::std::option::Option<(Box<Expression>, Box<Expression>)>),
Variant17(i32),
Variant18(RelationOp),
Variant19(UnaryOp),
}
const __ACTION: &[i8] = &[
34, 35, 0, 0, 0, 4, 0, 0, 0, 0, 36, 37, 5, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 7, 0, 0, 38, 39, 40,
0, 0, 41, 42, 10, 0, 0, 43, 44, 0, 45, 0, 0, 46, 0, 47, 48, 49, 50, 51, 11, 0, 0, 52, 0, 12, 0, 0, 0, 0,
0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 7, 0, 0, 38, 39, 40,
34, 35, 0, 0, 0, 4, 0, 0, 0, 0, 36, 37, 5, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 7, 0, 0, 38, 39, 40,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40,
34, 35, 0, 0, 0, 4, 0, 0, 0, 0, 36, 37, 5, 0, 0, 0, 0, 0, 0, 0, 0, 6, -24, 0, 7, 0, 0, 38, 39, 40,
34, 35, 0, 0, 0, 4, 0, 0, 0, 0, 36, 37, 5, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 7, 0, -32, 38, 39, 40,
0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 7, 0, 0, 38, 39, 40,
0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 7, 0, 0, 38, 39, 40,
0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 7, 0, 0, 38, 39, 40,
0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 7, 0, 0, 38, 39, 40,
0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 7, 0, 0, 38, 39, 40,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40,
34, 35, 0, 0, 0, 4, 0, 0, 0, 0, 36, 37, 5, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 7, 0, 0, 38, 39, 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, -28, 0, 0, 40,
0, 0, 41, 42, 10, 0, 67, 43, 44, 0, 45, 0, 0, 46, 0, 47, 48, 49, 50, 51, 11, 0, 0, 52, 0, 12, 0, 0, 0, 0,
34, 35, 0, 0, 0, 4, -26, 0, 0, 0, 36, 37, 5, 0, 0, 0, 0, 0, 0, 0, 0, 6, -26, 0, 7, 0, 0, 38, 39, 40,
0, 0, 41, 42, 10, 0, -23, 43, 44, 69, 45, 0, 0, 46, 0, 47, 48, 49, 50, 51, 11, 0, -23, 52, 0, 12, 0, 0, 0, 0,
34, 35, 0, 0, 0, 4, 0, 0, 0, 0, 36, 37, 5, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 7, 0, -34, 38, 39, 40,
0, 0, 41, 42, 10, 0, 0, 43, 44, 0, 45, 0, 0, 46, 24, 47, 48, 49, 50, 51, 11, 0, 0, 52, 0, 12, 0, 0, 0, 0,
0, 0, 41, 42, 10, 0, 0, 43, 44, 0, 45, 0, 0, 46, 0, 47, 48, 49, 50, 51, 11, 0, 73, 52, 0, 12, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -30, 0, 0, 40,
0, 0, 41, 42, 10, 0, -25, 43, 44, 77, 45, 0, 0, 46, 0, 47, 48, 49, 50, 51, 11, 0, -25, 52, 0, 12, 0, 0, 0, 0,
34, 35, 0, 0, 0, 4, 0, 0, 0, 0, 36, 37, 5, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 7, 0, 0, 38, 39, 40,
0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 7, 0, 0, 38, 39, 40,
34, 35, 0, 0, 0, 4, -24, 0, 0, 0, 36, 37, 5, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 7, 0, 0, 38, 39, 40,
34, 35, 0, 0, 0, 4, 0, 0, 0, 0, 36, 37, 5, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 7, 0, 0, 38, 39, 40,
0, 0, 41, 42, 10, 0, 0, 43, 44, -50, 45, 0, 0, 46, 0, 47, 48, 49, 50, 51, 11, 0, 0, 52, 0, 12, -50, 0, 0, 0,
0, 0, 41, 42, 10, 0, 0, 43, 44, -44, 45, 0, 0, 46, 0, 47, 48, 49, 50, 51, 11, 0, 0, 52, 0, 12, -44, 0, 0, 0,
0, 0, -60, -60, -60, 0, -60, -60, -60, -60, -60, 0, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, 0, 0, 0,
0, 0, -61, -61, -61, 0, -61, -61, -61, -61, -61, 0, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, 0, 0, 0,
0, 0, -41, -41, -41, 0, -41, -41, -41, -41, -41, 0, 13, -41, -41, -41, -41, -41, -41, -41, -41, 14, -41, -41, 15, -41, -41, 0, 0, 0,
0, 0, -53, -53, -53, 0, -53, -53, -53, -53, -53, 0, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, 0, 0, 0,
0, 0, 0, 0, 0, -72, 0, 0, 0, 0, 0, 0, -72, 0, 0, 0, 0, 0, 0, 0, 0, -72, 0, 0, -72, 0, 0, -72, -72, -72,
0, 0, 0, 0, 0, -73, 0, 0, 0, 0, 0, 0, -73, 0, 0, 0, 0, 0, 0, 0, 0, -73, 0, 0, -73, 0, 0, -73, -73, -73,
0, 0, 0, 0, 0, -74, 0, 0, 0, 0, 0, 0, -74, 0, 0, 0, 0, 0, 0, 0, 0, -74, 0, 0, -74, 0, 0, -74, -74, -74,
0, 0, 0, 0, 0, -75, 0, 0, 0, 0, 0, 0, -75, 0, 0, 0, 0, 0, 0, 0, 0, -75, 0, 0, -75, 0, 0, -75, -75, -75,
0, 0, -48, -48, -48, 0, -48, -48, -48, -48, -48, 0, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, 0, 0, 0,
0, 0, -49, -49, -49, 0, -49, -49, -49, -49, -49, 0, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, 0, 0, 0,
0, 0, -47, -47, -47, -47, -47, -47, -47, -47, -47, 0, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, 0, 0, 0,
0, 0, 0, 0, 0, -70, 0, 0, 0, 0, 0, 0, -70, 0, 0, 0, 0, 0, 0, 0, 0, -70, 0, 0, -70, 0, 0, -70, -70, -70,
0, 0, 0, 0, 0, -22, 0, 0, 0, 0, 0, 0, -22, 0, 0, 0, 0, 0, 0, 0, 0, -22, 0, 0, -22, 0, 0, -22, -22, -22,
0, 0, 0, 0, 0, -20, 0, 0, 0, 0, 0, 0, -20, 0, 0, 0, 0, 0, 0, 0, 0, -20, 0, 0, -20, 0, 0, -20, -20, -20,
0, 0, 0, 0, 0, -18, 0, 0, 0, 0, 0, 0, -18, 0, 0, 0, 0, 0, 0, 0, 0, -18, 0, 0, -18, 0, 0, -18, -18, -18,
0, 0, 0, 0, 0, -19, 0, 0, 0, 0, 0, 0, -19, 0, 0, 0, 0, 0, 0, 0, 0, -19, 0, 0, -19, 0, 0, -19, -19, -19,
0, 0, 0, 0, 0, -21, 0, 0, 0, 0, 0, 0, -21, 0, 0, 0, 0, 0, 0, 0, 0, -21, 0, 0, -21, 0, 0, -21, -21, -21,
0, 0, 0, 0, 0, -65, 0, 0, 0, 0, 0, 0, -65, 0, 0, 0, 0, 0, 0, 0, 0, -65, 0, 0, -65, 0, 0, -65, -65, -65,
0, 0, 0, 0, 0, -66, 0, 0, 0, 0, 0, 0, -66, 0, 0, 0, 0, 0, 0, 0, 0, -66, 0, 0, -66, 0, 0, -66, -66, -66,
0, 0, 0, 0, 0, -69, 0, 0, 0, 0, 0, 0, -69, 0, 0, 0, 0, 0, 0, 0, 0, -69, 0, 0, -69, 0, 0, -69, -69, -69,
0, 0, 0, 0, 0, -67, 0, 0, 0, 0, 0, 0, -67, 0, 0, 0, 0, 0, 0, 0, 0, -67, 0, 0, -67, 0, 0, -67, -67, -67,
0, 0, 0, 0, 0, -68, 0, 0, 0, 0, 0, 0, -68, 0, 0, 0, 0, 0, 0, 0, 0, -68, 0, 0, -68, 0, 0, -68, -68, -68,
0, 0, 0, 0, 0, -71, 0, 0, 0, 0, 0, 0, -71, 0, 0, 0, 0, 0, 0, 0, 0, -71, 0, 0, -71, 0, 0, -71, -71, -71,
0, 0, -40, -40, -40, 0, -40, -40, -40, -40, -40, 0, 0, -40, -40, -40, -40, -40, -40, -40, -40, 0, -40, -40, 0, -40, -40, 0, 0, 0,
0, 0, -59, -59, -59, 0, -59, -59, -59, -59, -59, 0, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -31, 0, 0, 0,
0, 0, -35, -35, -35, 0, -35, -35, -35, -35, -35, 0, 0, -35, -35, -35, -35, -35, -35, -35, -35, 0, -35, -35, 0, -35, -35, 0, 0, 0,
0, 0, -36, -36, -36, 0, -36, -36, -36, -36, -36, 0, 0, -36, -36, -36, -36, -36, -36, -36, -36, 0, -36, -36, 0, -36, -36, 0, 0, 0,
0, 0, -39, -39, -39, 0, -39, -39, -39, -39, -39, 0, 0, -39, -39, -39, -39, -39, -39, -39, -39, 0, -39, -39, 0, -39, -39, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, -38, -38, -38, 0, -38, -38, -38, -38, -38, 0, 0, -38, -38, -38, -38, -38, -38, -38, -38, 0, -38, -38, 0, -38, -38, 0, 0, 0,
0, 0, -54, -54, -54, 26, -54, -54, -54, -54, -54, 0, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -27, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, -64, -64, -64, 0, -64, -64, -64, -64, -64, 0, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, 0, 0, 0,
0, 0, -62, -62, -62, 0, -62, -62, -62, -62, -62, 0, -62, -62, -62, -62, -62, -62, -62, -62, -62, -62, -62, -62, -62, -62, -62, 0, 0, 0,
-6, -6, 0, 0, 0, -6, -6, 0, 0, 0, -6, -6, -6, 0, 0, 0, 0, 0, 0, 0, 0, -6, -6, 0, -6, 0, 0, -6, -6, -6,
0, 0, 0, 0, 0, 0, 0, 0, 0, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -33, 0, 0, 0,
0, 0, -63, -63, -63, 0, -63, -63, -63, -63, -63, 0, -63, -63, -63, -63, -63, -63, -63, -63, -63, -63, -63, -63, -63, -63, -63, 0, 0, 0,
-16, -16, 0, 0, 0, -16, 0, 0, 0, 0, -16, -16, -16, 0, 0, 0, 0, 0, 0, 0, 0, -16, 0, 0, -16, 0, -16, -16, -16, -16,
0, 0, -56, -56, -56, 0, -56, -56, -56, -56, -56, 0, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -29, 0, 0, 0,
0, 0, -57, -57, -57, 0, -57, -57, -57, -57, -57, 0, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -11, 0, 0, -11,
-7, -7, 0, 0, 0, -7, -7, 0, 0, 0, -7, -7, -7, 0, 0, 0, 0, 0, 0, 0, 0, -7, -7, 0, -7, 0, 0, -7, -7, -7,
-17, -17, 0, 0, 0, -17, 0, 0, 0, 0, -17, -17, -17, 0, 0, 0, 0, 0, 0, 0, 0, -17, 0, 0, -17, 0, -17, -17, -17, -17,
0, 0, -37, -37, -37, 0, -37, -37, -37, -37, -37, 0, 0, -37, -37, -37, -37, -37, -37, -37, -37, 0, -37, -37, 0, -37, -37, 0, 0, 0,
0, 0, 0, 0, 0, 0, 82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -12, 0, 0, -12,
0, 0, -55, -55, -55, 0, -55, -55, -55, -55, -55, 0, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, 0, 0, 0,
];
fn __action(state: i8, integer: usize) -> i8 {
__ACTION[(state as usize) * 30 + integer]
}
const __EOF_ACTION: &[i8] = &[
0,
-76,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
-60,
-61,
-41,
-53,
0,
0,
0,
0,
-48,
-49,
-47,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
-40,
-59,
0,
0,
0,
-35,
-36,
-39,
0,
-38,
-54,
0,
0,
0,
-64,
-62,
0,
0,
-63,
0,
-56,
0,
-57,
0,
0,
0,
-37,
0,
0,
-55,
];
fn __goto(state: i8, nt: usize) -> i8 {
match nt {
3 => 16,
6 => 21,
9 => 18,
10 => 7,
11 => match state {
25 => 79,
_ => 54,
},
12 => 63,
13 => 55,
14 => match state {
0 => 1,
3 => 15,
6 | 18 => 19,
13 => 20,
16 => 22,
23 => 27,
26 => 28,
_ => 17,
},
16 => match state {
21 => 73,
_ => 64,
},
18 => match state {
4 => 53,
12 => 62,
14 | 21 => 65,
_ => 29,
},
19 => 30,
20 => match state {
18 => 69,
_ => 56,
},
22 => 31,
24 => match state {
2 => 52,
7 => 57,
8 => 58,
9 => 59,
10 => 60,
11 => 61,
24 => 78,
_ => 32,
},
25 => 8,
26 => 2,
_ => 0,
}
}
fn __expected_tokens(__state: i8) -> Vec<::std::string::String> {
const __TERMINAL: &[&str] = &[
r###""!""###,
r###""!!""###,
r###""!=""###,
r###""%""###,
r###""&&""###,
r###""(""###,
r###"")""###,
r###""*""###,
r###""+""###,
r###"",""###,
r###""-""###,
r###""--""###,
r###"".""###,
r###""/""###,
r###"":""###,
r###""<""###,
r###""<=""###,
r###""==""###,
r###"">""###,
r###"">=""###,
r###""?""###,
r###""[""###,
r###""]""###,
r###""in""###,
r###""{""###,
r###""||""###,
r###""}""###,
r###"r#"[0-9]+"#"###,
r###"r#"[0-9]+ [uU]"#"###,
r###"r#"[_a-zA-Z][_a-zA-Z0-9]*"#"###,
];
__TERMINAL.iter().enumerate().filter_map(|(index, terminal)| {
let next_state = __action(__state, index);
if next_state == 0 {
None
} else {
Some(terminal.to_string())
}
}).collect()
}
pub struct __StateMachine<'input>
where
{
input: &'input str,
__phantom: ::std::marker::PhantomData<(&'input ())>,
}
impl<'input> __state_machine::ParserDefinition for __StateMachine<'input>
where
{
type Location = usize;
type Error = &'static str;
type Token = Token<'input>;
type TokenIndex = usize;
type Symbol = __Symbol<'input>;
type Success = Box<Expression>;
type StateIndex = i8;
type Action = i8;
type ReduceIndex = i8;
type NonterminalIndex = usize;
#[inline]
fn start_location(&self) -> Self::Location {
Default::default()
}
#[inline]
fn start_state(&self) -> Self::StateIndex {
0
}
#[inline]
fn token_to_index(&self, token: &Self::Token) -> Option<usize> {
__token_to_integer(token, ::std::marker::PhantomData::<(&())>)
}
#[inline]
fn action(&self, state: i8, integer: usize) -> i8 {
__action(state, integer)
}
#[inline]
fn error_action(&self, state: i8) -> i8 {
__action(state, 30 - 1)
}
#[inline]
fn eof_action(&self, state: i8) -> i8 {
__EOF_ACTION[state as usize]
}
#[inline]
fn goto(&self, state: i8, nt: usize) -> i8 {
__goto(state, nt)
}
fn token_to_symbol(&self, token_index: usize, token: Self::Token) -> Self::Symbol {
__token_to_symbol(token_index, token, ::std::marker::PhantomData::<(&())>)
}
fn expected_tokens(&self, state: i8) -> Vec<String> {
__expected_tokens(state)
}
#[inline]
fn uses_error_recovery(&self) -> bool {
false
}
#[inline]
fn error_recovery_symbol(
&self,
recovery: __state_machine::ErrorRecovery<Self>,
) -> Self::Symbol {
panic!("error recovery not enabled for this grammar")
}
fn reduce(
&mut self,
action: i8,
start_location: Option<&Self::Location>,
states: &mut Vec<i8>,
symbols: &mut Vec<__state_machine::SymbolTriple<Self>>,
) -> Option<__state_machine::ParseResult<Self>> {
__reduce(
self.input,
action,
start_location,
states,
symbols,
::std::marker::PhantomData::<(&())>,
)
}
fn simulate_reduce(&self, action: i8) -> __state_machine::SimulatedReduce<Self> {
panic!("error recovery not enabled for this grammar")
}
}
fn __token_to_integer<
'input,
>(
__token: &Token<'input>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> Option<usize>
{
match *__token {
Token(3, _) if true => Some(0),
Token(4, _) if true => Some(1),
Token(5, _) if true => Some(2),
Token(6, _) if true => Some(3),
Token(7, _) if true => Some(4),
Token(8, _) if true => Some(5),
Token(9, _) if true => Some(6),
Token(10, _) if true => Some(7),
Token(11, _) if true => Some(8),
Token(12, _) if true => Some(9),
Token(13, _) if true => Some(10),
Token(14, _) if true => Some(11),
Token(15, _) if true => Some(12),
Token(16, _) if true => Some(13),
Token(17, _) if true => Some(14),
Token(18, _) if true => Some(15),
Token(19, _) if true => Some(16),
Token(20, _) if true => Some(17),
Token(21, _) if true => Some(18),
Token(22, _) if true => Some(19),
Token(23, _) if true => Some(20),
Token(24, _) if true => Some(21),
Token(25, _) if true => Some(22),
Token(26, _) if true => Some(23),
Token(27, _) if true => Some(24),
Token(28, _) if true => Some(25),
Token(29, _) if true => Some(26),
Token(0, _) if true => Some(27),
Token(1, _) if true => Some(28),
Token(2, _) if true => Some(29),
_ => None,
}
}
fn __token_to_symbol<
'input,
>(
__token_index: usize,
__token: Token<'input>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> __Symbol<'input>
{
match __token_index {
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 => match __token {
Token(3, __tok0) | Token(4, __tok0) | Token(5, __tok0) | Token(6, __tok0) | Token(7, __tok0) | Token(8, __tok0) | Token(9, __tok0) | Token(10, __tok0) | Token(11, __tok0) | Token(12, __tok0) | Token(13, __tok0) | Token(14, __tok0) | Token(15, __tok0) | Token(16, __tok0) | Token(17, __tok0) | Token(18, __tok0) | Token(19, __tok0) | Token(20, __tok0) | Token(21, __tok0) | Token(22, __tok0) | Token(23, __tok0) | Token(24, __tok0) | Token(25, __tok0) | Token(26, __tok0) | Token(27, __tok0) | Token(28, __tok0) | Token(29, __tok0) | Token(0, __tok0) | Token(1, __tok0) | Token(2, __tok0) if true => __Symbol::Variant0(__tok0),
_ => unreachable!(),
},
_ => unreachable!(),
}
}
pub struct ExpressionParser {
builder: __lalrpop_util::lexer::MatcherBuilder,
_priv: (),
}
impl ExpressionParser {
pub fn new() -> ExpressionParser {
let __builder = super::__intern_token::new_builder();
ExpressionParser {
builder: __builder,
_priv: (),
}
}
#[allow(dead_code)]
pub fn parse<
'input,
>(
&self,
input: &'input str,
) -> Result<Box<Expression>, __lalrpop_util::ParseError<usize, Token<'input>, &'static str>>
{
let mut __tokens = self.builder.matcher(input);
__state_machine::Parser::drive(
__StateMachine {
input,
__phantom: ::std::marker::PhantomData::<(&())>,
},
__tokens,
)
}
}
pub(crate) fn __reduce<
'input,
>(
input: &'input str,
__action: i8,
__lookahead_start: Option<&usize>,
__states: &mut ::std::vec::Vec<i8>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> Option<Result<Box<Expression>,__lalrpop_util::ParseError<usize, Token<'input>, &'static str>>>
{
let (__pop_states, __nonterminal) = match __action {
0 => {
__reduce0(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
1 => {
__reduce1(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
2 => {
__reduce2(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
3 => {
__reduce3(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
4 => {
__reduce4(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
5 => {
__reduce5(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
6 => {
__reduce6(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
7 => {
__reduce7(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
8 => {
__reduce8(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
9 => {
__reduce9(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
10 => {
__reduce10(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
11 => {
__reduce11(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
12 => {
__reduce12(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
13 => {
__reduce13(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
14 => {
__reduce14(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
15 => {
__reduce15(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
16 => {
__reduce16(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
17 => {
__reduce17(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
18 => {
__reduce18(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
19 => {
__reduce19(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
20 => {
__reduce20(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
21 => {
__reduce21(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
22 => {
__reduce22(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
23 => {
__reduce23(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
24 => {
__reduce24(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
25 => {
__reduce25(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
26 => {
__reduce26(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
27 => {
__reduce27(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
28 => {
__reduce28(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
29 => {
__reduce29(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
30 => {
__reduce30(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
31 => {
__reduce31(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
32 => {
__reduce32(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
33 => {
__reduce33(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
34 => {
__reduce34(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
35 => {
__reduce35(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
36 => {
__reduce36(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
37 => {
__reduce37(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
38 => {
__reduce38(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
39 => {
__reduce39(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
40 => {
__reduce40(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
41 => {
__reduce41(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
42 => {
__reduce42(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
43 => {
__reduce43(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
44 => {
__reduce44(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
45 => {
__reduce45(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
46 => {
__reduce46(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
47 => {
__reduce47(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
48 => {
__reduce48(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
49 => {
__reduce49(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
50 => {
__reduce50(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
51 => {
__reduce51(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
52 => {
__reduce52(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
53 => {
__reduce53(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
54 => {
__reduce54(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
55 => {
__reduce55(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
56 => {
__reduce56(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
57 => {
__reduce57(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
58 => {
__reduce58(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
59 => {
__reduce59(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
60 => {
__reduce60(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
61 => {
__reduce61(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
62 => {
__reduce62(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
63 => {
__reduce63(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
64 => {
__reduce64(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
65 => {
__reduce65(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
66 => {
__reduce66(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
67 => {
__reduce67(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
68 => {
__reduce68(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
69 => {
__reduce69(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
70 => {
__reduce70(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
71 => {
__reduce71(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
72 => {
__reduce72(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
73 => {
__reduce73(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
74 => {
__reduce74(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
75 => {
let __sym0 = __pop_Variant2(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action0::<>(input, __sym0);
return Some(Ok(__nt));
}
76 => {
__reduce76(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
77 => {
__reduce77(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
78 => {
__reduce78(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
79 => {
__reduce79(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
_ => panic!("invalid action code {}", __action)
};
let __states_len = __states.len();
__states.truncate(__states_len - __pop_states);
let __state = *__states.last().unwrap();
let __next_state = __goto(__state, __nonterminal);
__states.push(__next_state);
None
}
#[inline(never)]
fn __symbol_type_mismatch() -> ! {
panic!("symbol type mismatch")
}
fn __pop_Variant6<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, (Box<Expression>, Box<Expression>), usize)
{
match __symbols.pop() {
Some((__l, __Symbol::Variant6(__v), __r)) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant4<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, (String, Box<Expression>), usize)
{
match __symbols.pop() {
Some((__l, __Symbol::Variant4(__v), __r)) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant8<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, ArithmeticOp, usize)
{
match __symbols.pop() {
Some((__l, __Symbol::Variant8(__v), __r)) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant2<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, Box<Expression>, usize)
{
match __symbols.pop() {
Some((__l, __Symbol::Variant2(__v), __r)) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant15<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, Literal, usize)
{
match __symbols.pop() {
Some((__l, __Symbol::Variant15(__v), __r)) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant18<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, RelationOp, usize)
{
match __symbols.pop() {
Some((__l, __Symbol::Variant18(__v), __r)) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant14<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, String, usize)
{
match __symbols.pop() {
Some((__l, __Symbol::Variant14(__v), __r)) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant19<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, UnaryOp, usize)
{
match __symbols.pop() {
Some((__l, __Symbol::Variant19(__v), __r)) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant11<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, Vec<(Box<Expression>, Box<Expression>)>, usize)
{
match __symbols.pop() {
Some((__l, __Symbol::Variant11(__v), __r)) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant10<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, Vec<(String, Box<Expression>)>, usize)
{
match __symbols.pop() {
Some((__l, __Symbol::Variant10(__v), __r)) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant9<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, Vec<Box<Expression>>, usize)
{
match __symbols.pop() {
Some((__l, __Symbol::Variant9(__v), __r)) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant17<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, i32, usize)
{
match __symbols.pop() {
Some((__l, __Symbol::Variant17(__v), __r)) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant16<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, ::std::option::Option<(Box<Expression>, Box<Expression>)>, usize)
{
match __symbols.pop() {
Some((__l, __Symbol::Variant16(__v), __r)) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant13<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, ::std::option::Option<(String, Box<Expression>)>, usize)
{
match __symbols.pop() {
Some((__l, __Symbol::Variant13(__v), __r)) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant12<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, ::std::option::Option<Box<Expression>>, usize)
{
match __symbols.pop() {
Some((__l, __Symbol::Variant12(__v), __r)) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant1<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, ::std::option::Option<&'input str>, usize)
{
match __symbols.pop() {
Some((__l, __Symbol::Variant1(__v), __r)) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant7<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, ::std::vec::Vec<(Box<Expression>, Box<Expression>)>, usize)
{
match __symbols.pop() {
Some((__l, __Symbol::Variant7(__v), __r)) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant5<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, ::std::vec::Vec<(String, Box<Expression>)>, usize)
{
match __symbols.pop() {
Some((__l, __Symbol::Variant5(__v), __r)) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant3<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, ::std::vec::Vec<Box<Expression>>, usize)
{
match __symbols.pop() {
Some((__l, __Symbol::Variant3(__v), __r)) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant0<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, &'input str, usize)
{
match __symbols.pop() {
Some((__l, __Symbol::Variant0(__v), __r)) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
pub(crate) fn __reduce0<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action45::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant1(__nt), __end));
(1, 0)
}
pub(crate) fn __reduce1<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
let __end = __start.clone();
let __nt = super::__action46::<>(input, &__start, &__end);
__symbols.push((__start, __Symbol::Variant1(__nt), __end));
(0, 0)
}
pub(crate) fn __reduce2<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 2);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant2(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action53::<>(input, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(2, 1)
}
pub(crate) fn __reduce3<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
let __end = __start.clone();
let __nt = super::__action51::<>(input, &__start, &__end);
__symbols.push((__start, __Symbol::Variant3(__nt), __end));
(0, 2)
}
pub(crate) fn __reduce4<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant3(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action52::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant3(__nt), __end));
(1, 2)
}
pub(crate) fn __reduce5<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 2);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant2(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action72::<>(input, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant3(__nt), __end));
(2, 3)
}
pub(crate) fn __reduce6<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 3);
let __sym2 = __pop_Variant0(__symbols);
let __sym1 = __pop_Variant2(__symbols);
let __sym0 = __pop_Variant3(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action73::<>(input, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant3(__nt), __end));
(3, 3)
}
pub(crate) fn __reduce7<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 2);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant4(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action58::<>(input, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant4(__nt), __end));
(2, 4)
}
pub(crate) fn __reduce8<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
let __end = __start.clone();
let __nt = super::__action56::<>(input, &__start, &__end);
__symbols.push((__start, __Symbol::Variant5(__nt), __end));
(0, 5)
}
pub(crate) fn __reduce9<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant5(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action57::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant5(__nt), __end));
(1, 5)
}
pub(crate) fn __reduce10<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 2);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant4(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action76::<>(input, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant5(__nt), __end));
(2, 6)
}
pub(crate) fn __reduce11<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 3);
let __sym2 = __pop_Variant0(__symbols);
let __sym1 = __pop_Variant4(__symbols);
let __sym0 = __pop_Variant5(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action77::<>(input, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant5(__nt), __end));
(3, 6)
}
pub(crate) fn __reduce12<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 2);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant6(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action63::<>(input, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant6(__nt), __end));
(2, 7)
}
pub(crate) fn __reduce13<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
let __end = __start.clone();
let __nt = super::__action61::<>(input, &__start, &__end);
__symbols.push((__start, __Symbol::Variant7(__nt), __end));
(0, 8)
}
pub(crate) fn __reduce14<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant7(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action62::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant7(__nt), __end));
(1, 8)
}
pub(crate) fn __reduce15<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 2);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant6(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action80::<>(input, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant7(__nt), __end));
(2, 9)
}
pub(crate) fn __reduce16<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 3);
let __sym2 = __pop_Variant0(__symbols);
let __sym1 = __pop_Variant6(__symbols);
let __sym0 = __pop_Variant7(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action81::<>(input, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant7(__nt), __end));
(3, 9)
}
pub(crate) fn __reduce17<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action24::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant8(__nt), __end));
(1, 10)
}
pub(crate) fn __reduce18<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action25::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant8(__nt), __end));
(1, 10)
}
pub(crate) fn __reduce19<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action26::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant8(__nt), __end));
(1, 10)
}
pub(crate) fn __reduce20<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action27::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant8(__nt), __end));
(1, 10)
}
pub(crate) fn __reduce21<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action28::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant8(__nt), __end));
(1, 10)
}
pub(crate) fn __reduce22<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant2(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action84::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant9(__nt), __end));
(1, 11)
}
pub(crate) fn __reduce23<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
let __end = __start.clone();
let __nt = super::__action85::<>(input, &__start, &__end);
__symbols.push((__start, __Symbol::Variant9(__nt), __end));
(0, 11)
}
pub(crate) fn __reduce24<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 2);
let __sym1 = __pop_Variant2(__symbols);
let __sym0 = __pop_Variant3(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action86::<>(input, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant9(__nt), __end));
(2, 11)
}
pub(crate) fn __reduce25<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant3(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action87::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant9(__nt), __end));
(1, 11)
}
pub(crate) fn __reduce26<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant4(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action88::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant10(__nt), __end));
(1, 12)
}
pub(crate) fn __reduce27<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
let __end = __start.clone();
let __nt = super::__action89::<>(input, &__start, &__end);
__symbols.push((__start, __Symbol::Variant10(__nt), __end));
(0, 12)
}
pub(crate) fn __reduce28<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 2);
let __sym1 = __pop_Variant4(__symbols);
let __sym0 = __pop_Variant5(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action90::<>(input, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant10(__nt), __end));
(2, 12)
}
pub(crate) fn __reduce29<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant5(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action91::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant10(__nt), __end));
(1, 12)
}
pub(crate) fn __reduce30<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant6(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action92::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant11(__nt), __end));
(1, 13)
}
pub(crate) fn __reduce31<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
let __end = __start.clone();
let __nt = super::__action93::<>(input, &__start, &__end);
__symbols.push((__start, __Symbol::Variant11(__nt), __end));
(0, 13)
}
pub(crate) fn __reduce32<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 2);
let __sym1 = __pop_Variant6(__symbols);
let __sym0 = __pop_Variant7(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action94::<>(input, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant11(__nt), __end));
(2, 13)
}
pub(crate) fn __reduce33<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant7(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action95::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant11(__nt), __end));
(1, 13)
}
pub(crate) fn __reduce34<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 3);
let __sym2 = __pop_Variant2(__symbols);
let __sym1 = __pop_Variant8(__symbols);
let __sym0 = __pop_Variant2(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action5::<>(input, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(3, 14)
}
pub(crate) fn __reduce35<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 3);
let __sym2 = __pop_Variant2(__symbols);
let __sym1 = __pop_Variant18(__symbols);
let __sym0 = __pop_Variant2(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action6::<>(input, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(3, 14)
}
pub(crate) fn __reduce36<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 5);
let __sym4 = __pop_Variant2(__symbols);
let __sym3 = __pop_Variant0(__symbols);
let __sym2 = __pop_Variant2(__symbols);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant2(__symbols);
let __start = __sym0.0.clone();
let __end = __sym4.2.clone();
let __nt = super::__action7::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(5, 14)
}
pub(crate) fn __reduce37<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 3);
let __sym2 = __pop_Variant2(__symbols);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant2(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action8::<>(input, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(3, 14)
}
pub(crate) fn __reduce38<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 3);
let __sym2 = __pop_Variant2(__symbols);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant2(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action9::<>(input, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(3, 14)
}
pub(crate) fn __reduce39<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 2);
let __sym1 = __pop_Variant2(__symbols);
let __sym0 = __pop_Variant19(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action10::<>(input, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(2, 14)
}
pub(crate) fn __reduce40<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant2(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action11::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(1, 14)
}
pub(crate) fn __reduce41<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant2(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action49::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant12(__nt), __end));
(1, 15)
}
pub(crate) fn __reduce42<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
let __end = __start.clone();
let __nt = super::__action50::<>(input, &__start, &__end);
__symbols.push((__start, __Symbol::Variant12(__nt), __end));
(0, 15)
}
pub(crate) fn __reduce43<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 3);
let __sym2 = __pop_Variant2(__symbols);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant14(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action22::<>(input, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant4(__nt), __end));
(3, 16)
}
pub(crate) fn __reduce44<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant4(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action54::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant13(__nt), __end));
(1, 17)
}
pub(crate) fn __reduce45<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
let __end = __start.clone();
let __nt = super::__action55::<>(input, &__start, &__end);
__symbols.push((__start, __Symbol::Variant13(__nt), __end));
(0, 17)
}
pub(crate) fn __reduce46<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action43::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant14(__nt), __end));
(1, 18)
}
pub(crate) fn __reduce47<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action40::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant15(__nt), __end));
(1, 19)
}
pub(crate) fn __reduce48<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action41::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant15(__nt), __end));
(1, 19)
}
pub(crate) fn __reduce49<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 3);
let __sym2 = __pop_Variant2(__symbols);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant2(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action23::<>(input, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant6(__nt), __end));
(3, 20)
}
pub(crate) fn __reduce50<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant6(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action59::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant16(__nt), __end));
(1, 21)
}
pub(crate) fn __reduce51<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
let __end = __start.clone();
let __nt = super::__action60::<>(input, &__start, &__end);
__symbols.push((__start, __Symbol::Variant16(__nt), __end));
(0, 21)
}
pub(crate) fn __reduce52<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant2(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action12::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(1, 22)
}
pub(crate) fn __reduce53<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 3);
let __sym2 = __pop_Variant14(__symbols);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant2(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action13::<>(input, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(3, 22)
}
pub(crate) fn __reduce54<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 6);
let __sym5 = __pop_Variant0(__symbols);
let __sym4 = __pop_Variant9(__symbols);
let __sym3 = __pop_Variant0(__symbols);
let __sym2 = __pop_Variant14(__symbols);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant2(__symbols);
let __start = __sym0.0.clone();
let __end = __sym5.2.clone();
let __nt = super::__action14::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(6, 22)
}
pub(crate) fn __reduce55<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 4);
let __sym3 = __pop_Variant0(__symbols);
let __sym2 = __pop_Variant2(__symbols);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant2(__symbols);
let __start = __sym0.0.clone();
let __end = __sym3.2.clone();
let __nt = super::__action15::<>(input, __sym0, __sym1, __sym2, __sym3);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(4, 22)
}
pub(crate) fn __reduce56<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 4);
let __sym3 = __pop_Variant0(__symbols);
let __sym2 = __pop_Variant10(__symbols);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant2(__symbols);
let __start = __sym0.0.clone();
let __end = __sym3.2.clone();
let __nt = super::__action16::<>(input, __sym0, __sym1, __sym2, __sym3);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(4, 22)
}
pub(crate) fn __reduce57<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action42::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant17(__nt), __end));
(1, 23)
}
pub(crate) fn __reduce58<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 2);
let __sym1 = __pop_Variant14(__symbols);
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action70::<>(input, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(2, 24)
}
pub(crate) fn __reduce59<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant14(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action71::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(1, 24)
}
pub(crate) fn __reduce60<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant15(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action18::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(1, 24)
}
pub(crate) fn __reduce61<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 3);
let __sym2 = __pop_Variant0(__symbols);
let __sym1 = __pop_Variant9(__symbols);
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action19::<>(input, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(3, 24)
}
pub(crate) fn __reduce62<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 3);
let __sym2 = __pop_Variant0(__symbols);
let __sym1 = __pop_Variant11(__symbols);
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action20::<>(input, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(3, 24)
}
pub(crate) fn __reduce63<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 3);
let __sym2 = __pop_Variant0(__symbols);
let __sym1 = __pop_Variant2(__symbols);
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action21::<>(input, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(3, 24)
}
pub(crate) fn __reduce64<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action33::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant18(__nt), __end));
(1, 25)
}
pub(crate) fn __reduce65<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action34::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant18(__nt), __end));
(1, 25)
}
pub(crate) fn __reduce66<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action35::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant18(__nt), __end));
(1, 25)
}
pub(crate) fn __reduce67<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action36::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant18(__nt), __end));
(1, 25)
}
pub(crate) fn __reduce68<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action37::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant18(__nt), __end));
(1, 25)
}
pub(crate) fn __reduce69<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action38::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant18(__nt), __end));
(1, 25)
}
pub(crate) fn __reduce70<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action39::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant18(__nt), __end));
(1, 25)
}
pub(crate) fn __reduce71<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action29::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant19(__nt), __end));
(1, 26)
}
pub(crate) fn __reduce72<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action30::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant19(__nt), __end));
(1, 26)
}
pub(crate) fn __reduce73<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action31::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant19(__nt), __end));
(1, 26)
}
pub(crate) fn __reduce74<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action32::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant19(__nt), __end));
(1, 26)
}
pub(crate) fn __reduce76<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant4(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action3::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant4(__nt), __end));
(1, 28)
}
pub(crate) fn __reduce77<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant6(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action4::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant6(__nt), __end));
(1, 29)
}
pub(crate) fn __reduce78<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant2(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action1::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(1, 30)
}
pub(crate) fn __reduce79<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant2(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action2::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(1, 31)
}
}
pub use self::__parse__Expression::ExpressionParser;
#[cfg_attr(rustfmt, rustfmt_skip)]
mod __parse__FieldInits {
#![allow(non_snake_case, non_camel_case_types, unused_mut, unused_variables, unused_imports, unused_parens)]
use std::str::FromStr;
use crate::ast::{RelationOp, ArithmeticOp, Expression, UnaryOp, Member, Literal};
#[allow(unused_extern_crates)]
extern crate lalrpop_util as __lalrpop_util;
#[allow(unused_imports)]
use self::__lalrpop_util::state_machine as __state_machine;
use self::__lalrpop_util::lexer::Token;
#[allow(dead_code)]
pub enum __Symbol<'input>
{
Variant0(&'input str),
Variant1(::std::option::Option<&'input str>),
Variant2(Box<Expression>),
Variant3(::std::vec::Vec<Box<Expression>>),
Variant4((String, Box<Expression>)),
Variant5(::std::vec::Vec<(String, Box<Expression>)>),
Variant6((Box<Expression>, Box<Expression>)),
Variant7(::std::vec::Vec<(Box<Expression>, Box<Expression>)>),
Variant8(ArithmeticOp),
Variant9(Vec<Box<Expression>>),
Variant10(Vec<(String, Box<Expression>)>),
Variant11(Vec<(Box<Expression>, Box<Expression>)>),
Variant12(::std::option::Option<Box<Expression>>),
Variant13(::std::option::Option<(String, Box<Expression>)>),
Variant14(String),
Variant15(Literal),
Variant16(::std::option::Option<(Box<Expression>, Box<Expression>)>),
Variant17(i32),
Variant18(RelationOp),
Variant19(UnaryOp),
}
const __ACTION: &[i8] = &[
0, 0, 0, 0, 0, 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,
36, 37, 0, 0, 0, 5, 0, 0, 0, 0, 38, 39, 6, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 8, 0, 0, 40, 41, 31,
0, 0, 42, 43, 11, 0, 0, 44, 45, -44, 46, 0, 0, 47, 0, 48, 49, 50, 51, 52, 12, 0, 0, 53, 0, 13, -44, 0, 0, 0,
0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 8, 0, 0, 40, 41, 31,
36, 37, 0, 0, 0, 5, 0, 0, 0, 0, 38, 39, 6, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 8, 0, 0, 40, 41, 31,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31,
36, 37, 0, 0, 0, 5, 0, 0, 0, 0, 38, 39, 6, 0, 0, 0, 0, 0, 0, 0, 0, 7, -24, 0, 8, 0, 0, 40, 41, 31,
36, 37, 0, 0, 0, 5, 0, 0, 0, 0, 38, 39, 6, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 8, 0, -32, 40, 41, 31,
0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 8, 0, 0, 40, 41, 31,
0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 8, 0, 0, 40, 41, 31,
0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 8, 0, 0, 40, 41, 31,
0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 8, 0, 0, 40, 41, 31,
0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 8, 0, 0, 40, 41, 31,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31,
36, 37, 0, 0, 0, 5, 0, 0, 0, 0, 38, 39, 6, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 8, 0, 0, 40, 41, 31,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -28, 0, 0, 31,
0, 0, 42, 43, 11, 0, 67, 44, 45, 0, 46, 0, 0, 47, 0, 48, 49, 50, 51, 52, 12, 0, 0, 53, 0, 13, 0, 0, 0, 0,
36, 37, 0, 0, 0, 5, -26, 0, 0, 0, 38, 39, 6, 0, 0, 0, 0, 0, 0, 0, 0, 7, -26, 0, 8, 0, 0, 40, 41, 31,
0, 0, 42, 43, 11, 0, -23, 44, 45, 69, 46, 0, 0, 47, 0, 48, 49, 50, 51, 52, 12, 0, -23, 53, 0, 13, 0, 0, 0, 0,
36, 37, 0, 0, 0, 5, 0, 0, 0, 0, 38, 39, 6, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 8, 0, -34, 40, 41, 31,
0, 0, 42, 43, 11, 0, 0, 44, 45, 0, 46, 0, 0, 47, 25, 48, 49, 50, 51, 52, 12, 0, 0, 53, 0, 13, 0, 0, 0, 0,
0, 0, 42, 43, 11, 0, 0, 44, 45, 0, 46, 0, 0, 47, 0, 48, 49, 50, 51, 52, 12, 0, 73, 53, 0, 13, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -30, 0, 0, 31,
0, 0, 42, 43, 11, 0, -25, 44, 45, 77, 46, 0, 0, 47, 0, 48, 49, 50, 51, 52, 12, 0, -25, 53, 0, 13, 0, 0, 0, 0,
36, 37, 0, 0, 0, 5, 0, 0, 0, 0, 38, 39, 6, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 8, 0, 0, 40, 41, 31,
0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 8, 0, 0, 40, 41, 31,
36, 37, 0, 0, 0, 5, -24, 0, 0, 0, 38, 39, 6, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 8, 0, 0, 40, 41, 31,
0, 0, 42, 43, 11, 0, 0, 44, 45, -50, 46, 0, 0, 47, 0, 48, 49, 50, 51, 52, 12, 0, 0, 53, 0, 13, -50, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, -47, -47, -47, -47, -47, -47, -47, -47, -47, 0, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, 0, 0, 0,
0, 0, -60, -60, -60, 0, -60, -60, -60, -60, -60, 0, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, 0, 0, 0,
0, 0, -61, -61, -61, 0, -61, -61, -61, -61, -61, 0, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, 0, 0, 0,
0, 0, -41, -41, -41, 0, -41, -41, -41, -41, -41, 0, 14, -41, -41, -41, -41, -41, -41, -41, -41, 15, -41, -41, 16, -41, -41, 0, 0, 0,
0, 0, -53, -53, -53, 0, -53, -53, -53, -53, -53, 0, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, 0, 0, 0,
0, 0, 0, 0, 0, -72, 0, 0, 0, 0, 0, 0, -72, 0, 0, 0, 0, 0, 0, 0, 0, -72, 0, 0, -72, 0, 0, -72, -72, -72,
0, 0, 0, 0, 0, -73, 0, 0, 0, 0, 0, 0, -73, 0, 0, 0, 0, 0, 0, 0, 0, -73, 0, 0, -73, 0, 0, -73, -73, -73,
0, 0, 0, 0, 0, -74, 0, 0, 0, 0, 0, 0, -74, 0, 0, 0, 0, 0, 0, 0, 0, -74, 0, 0, -74, 0, 0, -74, -74, -74,
0, 0, 0, 0, 0, -75, 0, 0, 0, 0, 0, 0, -75, 0, 0, 0, 0, 0, 0, 0, 0, -75, 0, 0, -75, 0, 0, -75, -75, -75,
0, 0, -48, -48, -48, 0, -48, -48, -48, -48, -48, 0, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, 0, 0, 0,
0, 0, -49, -49, -49, 0, -49, -49, -49, -49, -49, 0, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, 0, 0, 0,
0, 0, 0, 0, 0, -70, 0, 0, 0, 0, 0, 0, -70, 0, 0, 0, 0, 0, 0, 0, 0, -70, 0, 0, -70, 0, 0, -70, -70, -70,
0, 0, 0, 0, 0, -22, 0, 0, 0, 0, 0, 0, -22, 0, 0, 0, 0, 0, 0, 0, 0, -22, 0, 0, -22, 0, 0, -22, -22, -22,
0, 0, 0, 0, 0, -20, 0, 0, 0, 0, 0, 0, -20, 0, 0, 0, 0, 0, 0, 0, 0, -20, 0, 0, -20, 0, 0, -20, -20, -20,
0, 0, 0, 0, 0, -18, 0, 0, 0, 0, 0, 0, -18, 0, 0, 0, 0, 0, 0, 0, 0, -18, 0, 0, -18, 0, 0, -18, -18, -18,
0, 0, 0, 0, 0, -19, 0, 0, 0, 0, 0, 0, -19, 0, 0, 0, 0, 0, 0, 0, 0, -19, 0, 0, -19, 0, 0, -19, -19, -19,
0, 0, 0, 0, 0, -21, 0, 0, 0, 0, 0, 0, -21, 0, 0, 0, 0, 0, 0, 0, 0, -21, 0, 0, -21, 0, 0, -21, -21, -21,
0, 0, 0, 0, 0, -65, 0, 0, 0, 0, 0, 0, -65, 0, 0, 0, 0, 0, 0, 0, 0, -65, 0, 0, -65, 0, 0, -65, -65, -65,
0, 0, 0, 0, 0, -66, 0, 0, 0, 0, 0, 0, -66, 0, 0, 0, 0, 0, 0, 0, 0, -66, 0, 0, -66, 0, 0, -66, -66, -66,
0, 0, 0, 0, 0, -69, 0, 0, 0, 0, 0, 0, -69, 0, 0, 0, 0, 0, 0, 0, 0, -69, 0, 0, -69, 0, 0, -69, -69, -69,
0, 0, 0, 0, 0, -67, 0, 0, 0, 0, 0, 0, -67, 0, 0, 0, 0, 0, 0, 0, 0, -67, 0, 0, -67, 0, 0, -67, -67, -67,
0, 0, 0, 0, 0, -68, 0, 0, 0, 0, 0, 0, -68, 0, 0, 0, 0, 0, 0, 0, 0, -68, 0, 0, -68, 0, 0, -68, -68, -68,
0, 0, 0, 0, 0, -71, 0, 0, 0, 0, 0, 0, -71, 0, 0, 0, 0, 0, 0, 0, 0, -71, 0, 0, -71, 0, 0, -71, -71, -71,
0, 0, -40, -40, -40, 0, -40, -40, -40, -40, -40, 0, 0, -40, -40, -40, -40, -40, -40, -40, -40, 0, -40, -40, 0, -40, -40, 0, 0, 0,
0, 0, -59, -59, -59, 0, -59, -59, -59, -59, -59, 0, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -31, 0, 0, 0,
0, 0, -35, -35, -35, 0, -35, -35, -35, -35, -35, 0, 0, -35, -35, -35, -35, -35, -35, -35, -35, 0, -35, -35, 0, -35, -35, 0, 0, 0,
0, 0, -36, -36, -36, 0, -36, -36, -36, -36, -36, 0, 0, -36, -36, -36, -36, -36, -36, -36, -36, 0, -36, -36, 0, -36, -36, 0, 0, 0,
0, 0, -39, -39, -39, 0, -39, -39, -39, -39, -39, 0, 0, -39, -39, -39, -39, -39, -39, -39, -39, 0, -39, -39, 0, -39, -39, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, -38, -38, -38, 0, -38, -38, -38, -38, -38, 0, 0, -38, -38, -38, -38, -38, -38, -38, -38, 0, -38, -38, 0, -38, -38, 0, 0, 0,
0, 0, -54, -54, -54, 27, -54, -54, -54, -54, -54, 0, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -27, 0, 0, 0,
0, 0, -64, -64, -64, 0, -64, -64, -64, -64, -64, 0, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, 0, 0, 0,
0, 0, -62, -62, -62, 0, -62, -62, -62, -62, -62, 0, -62, -62, -62, -62, -62, -62, -62, -62, -62, -62, -62, -62, -62, -62, -62, 0, 0, 0,
-6, -6, 0, 0, 0, -6, -6, 0, 0, 0, -6, -6, -6, 0, 0, 0, 0, 0, 0, 0, 0, -6, -6, 0, -6, 0, 0, -6, -6, -6,
0, 0, 0, 0, 0, 0, 0, 0, 0, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -33, 0, 0, 0,
0, 0, -63, -63, -63, 0, -63, -63, -63, -63, -63, 0, -63, -63, -63, -63, -63, -63, -63, -63, -63, -63, -63, -63, -63, -63, -63, 0, 0, 0,
-16, -16, 0, 0, 0, -16, 0, 0, 0, 0, -16, -16, -16, 0, 0, 0, 0, 0, 0, 0, 0, -16, 0, 0, -16, 0, -16, -16, -16, -16,
0, 0, -56, -56, -56, 0, -56, -56, -56, -56, -56, 0, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -29, 0, 0, 0,
0, 0, -57, -57, -57, 0, -57, -57, -57, -57, -57, 0, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -11, 0, 0, -11,
-7, -7, 0, 0, 0, -7, -7, 0, 0, 0, -7, -7, -7, 0, 0, 0, 0, 0, 0, 0, 0, -7, -7, 0, -7, 0, 0, -7, -7, -7,
-17, -17, 0, 0, 0, -17, 0, 0, 0, 0, -17, -17, -17, 0, 0, 0, 0, 0, 0, 0, 0, -17, 0, 0, -17, 0, -17, -17, -17, -17,
0, 0, -37, -37, -37, 0, -37, -37, -37, -37, -37, 0, 0, -37, -37, -37, -37, -37, -37, -37, -37, 0, -37, -37, 0, -37, -37, 0, 0, 0,
0, 0, 0, 0, 0, 0, 82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -12, 0, 0, -12,
0, 0, -55, -55, -55, 0, -55, -55, -55, -55, -55, 0, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, 0, 0, 0,
];
fn __action(state: i8, integer: usize) -> i8 {
__ACTION[(state as usize) * 30 + integer]
}
const __EOF_ACTION: &[i8] = &[
0,
0,
-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,
-77,
0,
-47,
-60,
-61,
-41,
-53,
0,
0,
0,
0,
-48,
-49,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
-40,
-59,
0,
0,
0,
-35,
-36,
-39,
0,
-38,
-54,
0,
0,
-64,
-62,
0,
0,
-63,
0,
-56,
0,
-57,
0,
0,
0,
-37,
0,
0,
-55,
];
fn __goto(state: i8, nt: usize) -> i8 {
match nt {
3 => 17,
6 => 22,
9 => 19,
10 => 8,
11 => match state {
26 => 79,
_ => 55,
},
12 => 64,
13 => 56,
14 => match state {
1 => 2,
4 => 16,
7 | 19 => 20,
14 => 21,
17 => 23,
24 => 27,
_ => 18,
},
16 => match state {
15 => 65,
22 => 73,
_ => 28,
},
18 => match state {
0 | 15 | 22 => 29,
5 => 54,
13 => 63,
_ => 31,
},
19 => 32,
20 => match state {
19 => 69,
_ => 57,
},
22 => 33,
24 => match state {
3 => 53,
8 => 58,
9 => 59,
10 => 60,
11 => 61,
12 => 62,
25 => 78,
_ => 34,
},
25 => 9,
26 => 3,
_ => 0,
}
}
fn __expected_tokens(__state: i8) -> Vec<::std::string::String> {
const __TERMINAL: &[&str] = &[
r###""!""###,
r###""!!""###,
r###""!=""###,
r###""%""###,
r###""&&""###,
r###""(""###,
r###"")""###,
r###""*""###,
r###""+""###,
r###"",""###,
r###""-""###,
r###""--""###,
r###"".""###,
r###""/""###,
r###"":""###,
r###""<""###,
r###""<=""###,
r###""==""###,
r###"">""###,
r###"">=""###,
r###""?""###,
r###""[""###,
r###""]""###,
r###""in""###,
r###""{""###,
r###""||""###,
r###""}""###,
r###"r#"[0-9]+"#"###,
r###"r#"[0-9]+ [uU]"#"###,
r###"r#"[_a-zA-Z][_a-zA-Z0-9]*"#"###,
];
__TERMINAL.iter().enumerate().filter_map(|(index, terminal)| {
let next_state = __action(__state, index);
if next_state == 0 {
None
} else {
Some(terminal.to_string())
}
}).collect()
}
pub struct __StateMachine<'input>
where
{
input: &'input str,
__phantom: ::std::marker::PhantomData<(&'input ())>,
}
impl<'input> __state_machine::ParserDefinition for __StateMachine<'input>
where
{
type Location = usize;
type Error = &'static str;
type Token = Token<'input>;
type TokenIndex = usize;
type Symbol = __Symbol<'input>;
type Success = (String, Box<Expression>);
type StateIndex = i8;
type Action = i8;
type ReduceIndex = i8;
type NonterminalIndex = usize;
#[inline]
fn start_location(&self) -> Self::Location {
Default::default()
}
#[inline]
fn start_state(&self) -> Self::StateIndex {
0
}
#[inline]
fn token_to_index(&self, token: &Self::Token) -> Option<usize> {
__token_to_integer(token, ::std::marker::PhantomData::<(&())>)
}
#[inline]
fn action(&self, state: i8, integer: usize) -> i8 {
__action(state, integer)
}
#[inline]
fn error_action(&self, state: i8) -> i8 {
__action(state, 30 - 1)
}
#[inline]
fn eof_action(&self, state: i8) -> i8 {
__EOF_ACTION[state as usize]
}
#[inline]
fn goto(&self, state: i8, nt: usize) -> i8 {
__goto(state, nt)
}
fn token_to_symbol(&self, token_index: usize, token: Self::Token) -> Self::Symbol {
__token_to_symbol(token_index, token, ::std::marker::PhantomData::<(&())>)
}
fn expected_tokens(&self, state: i8) -> Vec<String> {
__expected_tokens(state)
}
#[inline]
fn uses_error_recovery(&self) -> bool {
false
}
#[inline]
fn error_recovery_symbol(
&self,
recovery: __state_machine::ErrorRecovery<Self>,
) -> Self::Symbol {
panic!("error recovery not enabled for this grammar")
}
fn reduce(
&mut self,
action: i8,
start_location: Option<&Self::Location>,
states: &mut Vec<i8>,
symbols: &mut Vec<__state_machine::SymbolTriple<Self>>,
) -> Option<__state_machine::ParseResult<Self>> {
__reduce(
self.input,
action,
start_location,
states,
symbols,
::std::marker::PhantomData::<(&())>,
)
}
fn simulate_reduce(&self, action: i8) -> __state_machine::SimulatedReduce<Self> {
panic!("error recovery not enabled for this grammar")
}
}
fn __token_to_integer<
'input,
>(
__token: &Token<'input>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> Option<usize>
{
match *__token {
Token(3, _) if true => Some(0),
Token(4, _) if true => Some(1),
Token(5, _) if true => Some(2),
Token(6, _) if true => Some(3),
Token(7, _) if true => Some(4),
Token(8, _) if true => Some(5),
Token(9, _) if true => Some(6),
Token(10, _) if true => Some(7),
Token(11, _) if true => Some(8),
Token(12, _) if true => Some(9),
Token(13, _) if true => Some(10),
Token(14, _) if true => Some(11),
Token(15, _) if true => Some(12),
Token(16, _) if true => Some(13),
Token(17, _) if true => Some(14),
Token(18, _) if true => Some(15),
Token(19, _) if true => Some(16),
Token(20, _) if true => Some(17),
Token(21, _) if true => Some(18),
Token(22, _) if true => Some(19),
Token(23, _) if true => Some(20),
Token(24, _) if true => Some(21),
Token(25, _) if true => Some(22),
Token(26, _) if true => Some(23),
Token(27, _) if true => Some(24),
Token(28, _) if true => Some(25),
Token(29, _) if true => Some(26),
Token(0, _) if true => Some(27),
Token(1, _) if true => Some(28),
Token(2, _) if true => Some(29),
_ => None,
}
}
fn __token_to_symbol<
'input,
>(
__token_index: usize,
__token: Token<'input>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> __Symbol<'input>
{
match __token_index {
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 => match __token {
Token(3, __tok0) | Token(4, __tok0) | Token(5, __tok0) | Token(6, __tok0) | Token(7, __tok0) | Token(8, __tok0) | Token(9, __tok0) | Token(10, __tok0) | Token(11, __tok0) | Token(12, __tok0) | Token(13, __tok0) | Token(14, __tok0) | Token(15, __tok0) | Token(16, __tok0) | Token(17, __tok0) | Token(18, __tok0) | Token(19, __tok0) | Token(20, __tok0) | Token(21, __tok0) | Token(22, __tok0) | Token(23, __tok0) | Token(24, __tok0) | Token(25, __tok0) | Token(26, __tok0) | Token(27, __tok0) | Token(28, __tok0) | Token(29, __tok0) | Token(0, __tok0) | Token(1, __tok0) | Token(2, __tok0) if true => __Symbol::Variant0(__tok0),
_ => unreachable!(),
},
_ => unreachable!(),
}
}
pub struct FieldInitsParser {
builder: __lalrpop_util::lexer::MatcherBuilder,
_priv: (),
}
impl FieldInitsParser {
pub fn new() -> FieldInitsParser {
let __builder = super::__intern_token::new_builder();
FieldInitsParser {
builder: __builder,
_priv: (),
}
}
#[allow(dead_code)]
pub fn parse<
'input,
>(
&self,
input: &'input str,
) -> Result<(String, Box<Expression>), __lalrpop_util::ParseError<usize, Token<'input>, &'static str>>
{
let mut __tokens = self.builder.matcher(input);
__state_machine::Parser::drive(
__StateMachine {
input,
__phantom: ::std::marker::PhantomData::<(&())>,
},
__tokens,
)
}
}
pub(crate) fn __reduce<
'input,
>(
input: &'input str,
__action: i8,
__lookahead_start: Option<&usize>,
__states: &mut ::std::vec::Vec<i8>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> Option<Result<(String, Box<Expression>),__lalrpop_util::ParseError<usize, Token<'input>, &'static str>>>
{
let (__pop_states, __nonterminal) = match __action {
0 => {
__reduce0(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
1 => {
__reduce1(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
2 => {
__reduce2(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
3 => {
__reduce3(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
4 => {
__reduce4(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
5 => {
__reduce5(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
6 => {
__reduce6(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
7 => {
__reduce7(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
8 => {
__reduce8(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
9 => {
__reduce9(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
10 => {
__reduce10(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
11 => {
__reduce11(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
12 => {
__reduce12(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
13 => {
__reduce13(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
14 => {
__reduce14(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
15 => {
__reduce15(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
16 => {
__reduce16(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
17 => {
__reduce17(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
18 => {
__reduce18(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
19 => {
__reduce19(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
20 => {
__reduce20(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
21 => {
__reduce21(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
22 => {
__reduce22(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
23 => {
__reduce23(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
24 => {
__reduce24(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
25 => {
__reduce25(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
26 => {
__reduce26(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
27 => {
__reduce27(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
28 => {
__reduce28(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
29 => {
__reduce29(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
30 => {
__reduce30(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
31 => {
__reduce31(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
32 => {
__reduce32(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
33 => {
__reduce33(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
34 => {
__reduce34(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
35 => {
__reduce35(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
36 => {
__reduce36(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
37 => {
__reduce37(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
38 => {
__reduce38(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
39 => {
__reduce39(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
40 => {
__reduce40(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
41 => {
__reduce41(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
42 => {
__reduce42(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
43 => {
__reduce43(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
44 => {
__reduce44(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
45 => {
__reduce45(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
46 => {
__reduce46(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
47 => {
__reduce47(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
48 => {
__reduce48(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
49 => {
__reduce49(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
50 => {
__reduce50(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
51 => {
__reduce51(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
52 => {
__reduce52(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
53 => {
__reduce53(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
54 => {
__reduce54(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
55 => {
__reduce55(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
56 => {
__reduce56(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
57 => {
__reduce57(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
58 => {
__reduce58(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
59 => {
__reduce59(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
60 => {
__reduce60(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
61 => {
__reduce61(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
62 => {
__reduce62(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
63 => {
__reduce63(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
64 => {
__reduce64(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
65 => {
__reduce65(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
66 => {
__reduce66(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
67 => {
__reduce67(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
68 => {
__reduce68(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
69 => {
__reduce69(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
70 => {
__reduce70(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
71 => {
__reduce71(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
72 => {
__reduce72(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
73 => {
__reduce73(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
74 => {
__reduce74(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
75 => {
__reduce75(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
76 => {
let __sym0 = __pop_Variant4(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action3::<>(input, __sym0);
return Some(Ok(__nt));
}
77 => {
__reduce77(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
78 => {
__reduce78(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
79 => {
__reduce79(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
_ => panic!("invalid action code {}", __action)
};
let __states_len = __states.len();
__states.truncate(__states_len - __pop_states);
let __state = *__states.last().unwrap();
let __next_state = __goto(__state, __nonterminal);
__states.push(__next_state);
None
}
#[inline(never)]
fn __symbol_type_mismatch() -> ! {
panic!("symbol type mismatch")
}
fn __pop_Variant6<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, (Box<Expression>, Box<Expression>), usize)
{
match __symbols.pop() {
Some((__l, __Symbol::Variant6(__v), __r)) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant4<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, (String, Box<Expression>), usize)
{
match __symbols.pop() {
Some((__l, __Symbol::Variant4(__v), __r)) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant8<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, ArithmeticOp, usize)
{
match __symbols.pop() {
Some((__l, __Symbol::Variant8(__v), __r)) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant2<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, Box<Expression>, usize)
{
match __symbols.pop() {
Some((__l, __Symbol::Variant2(__v), __r)) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant15<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, Literal, usize)
{
match __symbols.pop() {
Some((__l, __Symbol::Variant15(__v), __r)) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant18<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, RelationOp, usize)
{
match __symbols.pop() {
Some((__l, __Symbol::Variant18(__v), __r)) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant14<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, String, usize)
{
match __symbols.pop() {
Some((__l, __Symbol::Variant14(__v), __r)) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant19<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, UnaryOp, usize)
{
match __symbols.pop() {
Some((__l, __Symbol::Variant19(__v), __r)) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant11<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, Vec<(Box<Expression>, Box<Expression>)>, usize)
{
match __symbols.pop() {
Some((__l, __Symbol::Variant11(__v), __r)) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant10<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, Vec<(String, Box<Expression>)>, usize)
{
match __symbols.pop() {
Some((__l, __Symbol::Variant10(__v), __r)) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant9<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, Vec<Box<Expression>>, usize)
{
match __symbols.pop() {
Some((__l, __Symbol::Variant9(__v), __r)) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant17<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, i32, usize)
{
match __symbols.pop() {
Some((__l, __Symbol::Variant17(__v), __r)) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant16<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, ::std::option::Option<(Box<Expression>, Box<Expression>)>, usize)
{
match __symbols.pop() {
Some((__l, __Symbol::Variant16(__v), __r)) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant13<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, ::std::option::Option<(String, Box<Expression>)>, usize)
{
match __symbols.pop() {
Some((__l, __Symbol::Variant13(__v), __r)) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant12<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, ::std::option::Option<Box<Expression>>, usize)
{
match __symbols.pop() {
Some((__l, __Symbol::Variant12(__v), __r)) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant1<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, ::std::option::Option<&'input str>, usize)
{
match __symbols.pop() {
Some((__l, __Symbol::Variant1(__v), __r)) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant7<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, ::std::vec::Vec<(Box<Expression>, Box<Expression>)>, usize)
{
match __symbols.pop() {
Some((__l, __Symbol::Variant7(__v), __r)) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant5<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, ::std::vec::Vec<(String, Box<Expression>)>, usize)
{
match __symbols.pop() {
Some((__l, __Symbol::Variant5(__v), __r)) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant3<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, ::std::vec::Vec<Box<Expression>>, usize)
{
match __symbols.pop() {
Some((__l, __Symbol::Variant3(__v), __r)) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant0<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, &'input str, usize)
{
match __symbols.pop() {
Some((__l, __Symbol::Variant0(__v), __r)) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
pub(crate) fn __reduce0<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action45::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant1(__nt), __end));
(1, 0)
}
pub(crate) fn __reduce1<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
let __end = __start.clone();
let __nt = super::__action46::<>(input, &__start, &__end);
__symbols.push((__start, __Symbol::Variant1(__nt), __end));
(0, 0)
}
pub(crate) fn __reduce2<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 2);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant2(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action53::<>(input, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(2, 1)
}
pub(crate) fn __reduce3<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
let __end = __start.clone();
let __nt = super::__action51::<>(input, &__start, &__end);
__symbols.push((__start, __Symbol::Variant3(__nt), __end));
(0, 2)
}
pub(crate) fn __reduce4<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant3(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action52::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant3(__nt), __end));
(1, 2)
}
pub(crate) fn __reduce5<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 2);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant2(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action72::<>(input, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant3(__nt), __end));
(2, 3)
}
pub(crate) fn __reduce6<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 3);
let __sym2 = __pop_Variant0(__symbols);
let __sym1 = __pop_Variant2(__symbols);
let __sym0 = __pop_Variant3(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action73::<>(input, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant3(__nt), __end));
(3, 3)
}
pub(crate) fn __reduce7<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 2);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant4(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action58::<>(input, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant4(__nt), __end));
(2, 4)
}
pub(crate) fn __reduce8<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
let __end = __start.clone();
let __nt = super::__action56::<>(input, &__start, &__end);
__symbols.push((__start, __Symbol::Variant5(__nt), __end));
(0, 5)
}
pub(crate) fn __reduce9<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant5(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action57::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant5(__nt), __end));
(1, 5)
}
pub(crate) fn __reduce10<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 2);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant4(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action76::<>(input, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant5(__nt), __end));
(2, 6)
}
pub(crate) fn __reduce11<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 3);
let __sym2 = __pop_Variant0(__symbols);
let __sym1 = __pop_Variant4(__symbols);
let __sym0 = __pop_Variant5(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action77::<>(input, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant5(__nt), __end));
(3, 6)
}
pub(crate) fn __reduce12<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 2);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant6(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action63::<>(input, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant6(__nt), __end));
(2, 7)
}
pub(crate) fn __reduce13<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
let __end = __start.clone();
let __nt = super::__action61::<>(input, &__start, &__end);
__symbols.push((__start, __Symbol::Variant7(__nt), __end));
(0, 8)
}
pub(crate) fn __reduce14<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant7(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action62::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant7(__nt), __end));
(1, 8)
}
pub(crate) fn __reduce15<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 2);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant6(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action80::<>(input, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant7(__nt), __end));
(2, 9)
}
pub(crate) fn __reduce16<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 3);
let __sym2 = __pop_Variant0(__symbols);
let __sym1 = __pop_Variant6(__symbols);
let __sym0 = __pop_Variant7(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action81::<>(input, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant7(__nt), __end));
(3, 9)
}
pub(crate) fn __reduce17<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action24::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant8(__nt), __end));
(1, 10)
}
pub(crate) fn __reduce18<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action25::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant8(__nt), __end));
(1, 10)
}
pub(crate) fn __reduce19<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action26::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant8(__nt), __end));
(1, 10)
}
pub(crate) fn __reduce20<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action27::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant8(__nt), __end));
(1, 10)
}
pub(crate) fn __reduce21<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action28::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant8(__nt), __end));
(1, 10)
}
pub(crate) fn __reduce22<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant2(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action84::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant9(__nt), __end));
(1, 11)
}
pub(crate) fn __reduce23<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
let __end = __start.clone();
let __nt = super::__action85::<>(input, &__start, &__end);
__symbols.push((__start, __Symbol::Variant9(__nt), __end));
(0, 11)
}
pub(crate) fn __reduce24<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 2);
let __sym1 = __pop_Variant2(__symbols);
let __sym0 = __pop_Variant3(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action86::<>(input, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant9(__nt), __end));
(2, 11)
}
pub(crate) fn __reduce25<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant3(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action87::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant9(__nt), __end));
(1, 11)
}
pub(crate) fn __reduce26<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant4(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action88::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant10(__nt), __end));
(1, 12)
}
pub(crate) fn __reduce27<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
let __end = __start.clone();
let __nt = super::__action89::<>(input, &__start, &__end);
__symbols.push((__start, __Symbol::Variant10(__nt), __end));
(0, 12)
}
pub(crate) fn __reduce28<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 2);
let __sym1 = __pop_Variant4(__symbols);
let __sym0 = __pop_Variant5(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action90::<>(input, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant10(__nt), __end));
(2, 12)
}
pub(crate) fn __reduce29<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant5(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action91::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant10(__nt), __end));
(1, 12)
}
pub(crate) fn __reduce30<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant6(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action92::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant11(__nt), __end));
(1, 13)
}
pub(crate) fn __reduce31<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
let __end = __start.clone();
let __nt = super::__action93::<>(input, &__start, &__end);
__symbols.push((__start, __Symbol::Variant11(__nt), __end));
(0, 13)
}
pub(crate) fn __reduce32<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 2);
let __sym1 = __pop_Variant6(__symbols);
let __sym0 = __pop_Variant7(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action94::<>(input, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant11(__nt), __end));
(2, 13)
}
pub(crate) fn __reduce33<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant7(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action95::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant11(__nt), __end));
(1, 13)
}
pub(crate) fn __reduce34<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 3);
let __sym2 = __pop_Variant2(__symbols);
let __sym1 = __pop_Variant8(__symbols);
let __sym0 = __pop_Variant2(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action5::<>(input, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(3, 14)
}
pub(crate) fn __reduce35<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 3);
let __sym2 = __pop_Variant2(__symbols);
let __sym1 = __pop_Variant18(__symbols);
let __sym0 = __pop_Variant2(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action6::<>(input, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(3, 14)
}
pub(crate) fn __reduce36<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 5);
let __sym4 = __pop_Variant2(__symbols);
let __sym3 = __pop_Variant0(__symbols);
let __sym2 = __pop_Variant2(__symbols);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant2(__symbols);
let __start = __sym0.0.clone();
let __end = __sym4.2.clone();
let __nt = super::__action7::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(5, 14)
}
pub(crate) fn __reduce37<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 3);
let __sym2 = __pop_Variant2(__symbols);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant2(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action8::<>(input, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(3, 14)
}
pub(crate) fn __reduce38<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 3);
let __sym2 = __pop_Variant2(__symbols);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant2(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action9::<>(input, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(3, 14)
}
pub(crate) fn __reduce39<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 2);
let __sym1 = __pop_Variant2(__symbols);
let __sym0 = __pop_Variant19(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action10::<>(input, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(2, 14)
}
pub(crate) fn __reduce40<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant2(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action11::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(1, 14)
}
pub(crate) fn __reduce41<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant2(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action49::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant12(__nt), __end));
(1, 15)
}
pub(crate) fn __reduce42<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
let __end = __start.clone();
let __nt = super::__action50::<>(input, &__start, &__end);
__symbols.push((__start, __Symbol::Variant12(__nt), __end));
(0, 15)
}
pub(crate) fn __reduce43<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 3);
let __sym2 = __pop_Variant2(__symbols);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant14(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action22::<>(input, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant4(__nt), __end));
(3, 16)
}
pub(crate) fn __reduce44<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant4(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action54::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant13(__nt), __end));
(1, 17)
}
pub(crate) fn __reduce45<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
let __end = __start.clone();
let __nt = super::__action55::<>(input, &__start, &__end);
__symbols.push((__start, __Symbol::Variant13(__nt), __end));
(0, 17)
}
pub(crate) fn __reduce46<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action43::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant14(__nt), __end));
(1, 18)
}
pub(crate) fn __reduce47<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action40::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant15(__nt), __end));
(1, 19)
}
pub(crate) fn __reduce48<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action41::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant15(__nt), __end));
(1, 19)
}
pub(crate) fn __reduce49<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 3);
let __sym2 = __pop_Variant2(__symbols);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant2(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action23::<>(input, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant6(__nt), __end));
(3, 20)
}
pub(crate) fn __reduce50<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant6(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action59::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant16(__nt), __end));
(1, 21)
}
pub(crate) fn __reduce51<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
let __end = __start.clone();
let __nt = super::__action60::<>(input, &__start, &__end);
__symbols.push((__start, __Symbol::Variant16(__nt), __end));
(0, 21)
}
pub(crate) fn __reduce52<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant2(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action12::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(1, 22)
}
pub(crate) fn __reduce53<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 3);
let __sym2 = __pop_Variant14(__symbols);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant2(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action13::<>(input, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(3, 22)
}
pub(crate) fn __reduce54<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 6);
let __sym5 = __pop_Variant0(__symbols);
let __sym4 = __pop_Variant9(__symbols);
let __sym3 = __pop_Variant0(__symbols);
let __sym2 = __pop_Variant14(__symbols);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant2(__symbols);
let __start = __sym0.0.clone();
let __end = __sym5.2.clone();
let __nt = super::__action14::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(6, 22)
}
pub(crate) fn __reduce55<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 4);
let __sym3 = __pop_Variant0(__symbols);
let __sym2 = __pop_Variant2(__symbols);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant2(__symbols);
let __start = __sym0.0.clone();
let __end = __sym3.2.clone();
let __nt = super::__action15::<>(input, __sym0, __sym1, __sym2, __sym3);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(4, 22)
}
pub(crate) fn __reduce56<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 4);
let __sym3 = __pop_Variant0(__symbols);
let __sym2 = __pop_Variant10(__symbols);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant2(__symbols);
let __start = __sym0.0.clone();
let __end = __sym3.2.clone();
let __nt = super::__action16::<>(input, __sym0, __sym1, __sym2, __sym3);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(4, 22)
}
pub(crate) fn __reduce57<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action42::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant17(__nt), __end));
(1, 23)
}
pub(crate) fn __reduce58<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 2);
let __sym1 = __pop_Variant14(__symbols);
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action70::<>(input, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(2, 24)
}
pub(crate) fn __reduce59<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant14(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action71::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(1, 24)
}
pub(crate) fn __reduce60<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant15(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action18::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(1, 24)
}
pub(crate) fn __reduce61<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 3);
let __sym2 = __pop_Variant0(__symbols);
let __sym1 = __pop_Variant9(__symbols);
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action19::<>(input, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(3, 24)
}
pub(crate) fn __reduce62<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 3);
let __sym2 = __pop_Variant0(__symbols);
let __sym1 = __pop_Variant11(__symbols);
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action20::<>(input, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(3, 24)
}
pub(crate) fn __reduce63<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 3);
let __sym2 = __pop_Variant0(__symbols);
let __sym1 = __pop_Variant2(__symbols);
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action21::<>(input, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(3, 24)
}
pub(crate) fn __reduce64<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action33::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant18(__nt), __end));
(1, 25)
}
pub(crate) fn __reduce65<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action34::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant18(__nt), __end));
(1, 25)
}
pub(crate) fn __reduce66<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action35::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant18(__nt), __end));
(1, 25)
}
pub(crate) fn __reduce67<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action36::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant18(__nt), __end));
(1, 25)
}
pub(crate) fn __reduce68<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action37::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant18(__nt), __end));
(1, 25)
}
pub(crate) fn __reduce69<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action38::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant18(__nt), __end));
(1, 25)
}
pub(crate) fn __reduce70<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action39::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant18(__nt), __end));
(1, 25)
}
pub(crate) fn __reduce71<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action29::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant19(__nt), __end));
(1, 26)
}
pub(crate) fn __reduce72<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action30::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant19(__nt), __end));
(1, 26)
}
pub(crate) fn __reduce73<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action31::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant19(__nt), __end));
(1, 26)
}
pub(crate) fn __reduce74<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action32::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant19(__nt), __end));
(1, 26)
}
pub(crate) fn __reduce75<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant2(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action0::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(1, 27)
}
pub(crate) fn __reduce77<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant6(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action4::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant6(__nt), __end));
(1, 29)
}
pub(crate) fn __reduce78<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant2(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action1::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(1, 30)
}
pub(crate) fn __reduce79<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant2(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action2::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(1, 31)
}
}
pub use self::__parse__FieldInits::FieldInitsParser;
#[cfg_attr(rustfmt, rustfmt_skip)]
mod __parse__MapInits {
#![allow(non_snake_case, non_camel_case_types, unused_mut, unused_variables, unused_imports, unused_parens)]
use std::str::FromStr;
use crate::ast::{RelationOp, ArithmeticOp, Expression, UnaryOp, Member, Literal};
#[allow(unused_extern_crates)]
extern crate lalrpop_util as __lalrpop_util;
#[allow(unused_imports)]
use self::__lalrpop_util::state_machine as __state_machine;
use self::__lalrpop_util::lexer::Token;
#[allow(dead_code)]
pub enum __Symbol<'input>
{
Variant0(&'input str),
Variant1(::std::option::Option<&'input str>),
Variant2(Box<Expression>),
Variant3(::std::vec::Vec<Box<Expression>>),
Variant4((String, Box<Expression>)),
Variant5(::std::vec::Vec<(String, Box<Expression>)>),
Variant6((Box<Expression>, Box<Expression>)),
Variant7(::std::vec::Vec<(Box<Expression>, Box<Expression>)>),
Variant8(ArithmeticOp),
Variant9(Vec<Box<Expression>>),
Variant10(Vec<(String, Box<Expression>)>),
Variant11(Vec<(Box<Expression>, Box<Expression>)>),
Variant12(::std::option::Option<Box<Expression>>),
Variant13(::std::option::Option<(String, Box<Expression>)>),
Variant14(String),
Variant15(Literal),
Variant16(::std::option::Option<(Box<Expression>, Box<Expression>)>),
Variant17(i32),
Variant18(RelationOp),
Variant19(UnaryOp),
}
const __ACTION: &[i8] = &[
34, 35, 0, 0, 0, 4, 0, 0, 0, 0, 36, 37, 5, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 7, 0, 0, 38, 39, 40,
0, 0, 41, 42, 10, 0, 0, 43, 44, 0, 45, 0, 0, 46, 11, 47, 48, 49, 50, 51, 12, 0, 0, 52, 0, 13, 0, 0, 0, 0,
0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 7, 0, 0, 38, 39, 40,
34, 35, 0, 0, 0, 4, 0, 0, 0, 0, 36, 37, 5, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 7, 0, 0, 38, 39, 40,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40,
34, 35, 0, 0, 0, 4, 0, 0, 0, 0, 36, 37, 5, 0, 0, 0, 0, 0, 0, 0, 0, 6, -24, 0, 7, 0, 0, 38, 39, 40,
34, 35, 0, 0, 0, 4, 0, 0, 0, 0, 36, 37, 5, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 7, 0, -32, 38, 39, 40,
0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 7, 0, 0, 38, 39, 40,
0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 7, 0, 0, 38, 39, 40,
0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 7, 0, 0, 38, 39, 40,
34, 35, 0, 0, 0, 4, 0, 0, 0, 0, 36, 37, 5, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 7, 0, 0, 38, 39, 40,
0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 7, 0, 0, 38, 39, 40,
0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 7, 0, 0, 38, 39, 40,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40,
34, 35, 0, 0, 0, 4, 0, 0, 0, 0, 36, 37, 5, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 7, 0, 0, 38, 39, 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, -28, 0, 0, 40,
0, 0, 41, 42, 10, 0, 67, 43, 44, 0, 45, 0, 0, 46, 0, 47, 48, 49, 50, 51, 12, 0, 0, 52, 0, 13, 0, 0, 0, 0,
34, 35, 0, 0, 0, 4, -26, 0, 0, 0, 36, 37, 5, 0, 0, 0, 0, 0, 0, 0, 0, 6, -26, 0, 7, 0, 0, 38, 39, 40,
0, 0, 41, 42, 10, 0, -23, 43, 44, 69, 45, 0, 0, 46, 0, 47, 48, 49, 50, 51, 12, 0, -23, 52, 0, 13, 0, 0, 0, 0,
34, 35, 0, 0, 0, 4, 0, 0, 0, 0, 36, 37, 5, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 7, 0, -34, 38, 39, 40,
0, 0, 41, 42, 10, 0, 0, 43, 44, -50, 45, 0, 0, 46, 0, 47, 48, 49, 50, 51, 12, 0, 0, 52, 0, 13, -50, 0, 0, 0,
0, 0, 41, 42, 10, 0, 0, 43, 44, 0, 45, 0, 0, 46, 0, 47, 48, 49, 50, 51, 12, 0, 73, 52, 0, 13, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -30, 0, 0, 40,
0, 0, 41, 42, 10, 0, -25, 43, 44, 77, 45, 0, 0, 46, 0, 47, 48, 49, 50, 51, 12, 0, -25, 52, 0, 13, 0, 0, 0, 0,
0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 7, 0, 0, 38, 39, 40,
34, 35, 0, 0, 0, 4, -24, 0, 0, 0, 36, 37, 5, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 7, 0, 0, 38, 39, 40,
34, 35, 0, 0, 0, 4, 0, 0, 0, 0, 36, 37, 5, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 7, 0, 0, 38, 39, 40,
0, 0, 41, 42, 10, 0, 0, 43, 44, -44, 45, 0, 0, 46, 0, 47, 48, 49, 50, 51, 12, 0, 0, 52, 0, 13, -44, 0, 0, 0,
0, 0, -60, -60, -60, 0, -60, -60, -60, -60, -60, 0, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, 0, 0, 0,
0, 0, -61, -61, -61, 0, -61, -61, -61, -61, -61, 0, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, -41, -41, -41, 0, -41, -41, -41, -41, -41, 0, 14, -41, -41, -41, -41, -41, -41, -41, -41, 15, -41, -41, 16, -41, -41, 0, 0, 0,
0, 0, -53, -53, -53, 0, -53, -53, -53, -53, -53, 0, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, 0, 0, 0,
0, 0, 0, 0, 0, -72, 0, 0, 0, 0, 0, 0, -72, 0, 0, 0, 0, 0, 0, 0, 0, -72, 0, 0, -72, 0, 0, -72, -72, -72,
0, 0, 0, 0, 0, -73, 0, 0, 0, 0, 0, 0, -73, 0, 0, 0, 0, 0, 0, 0, 0, -73, 0, 0, -73, 0, 0, -73, -73, -73,
0, 0, 0, 0, 0, -74, 0, 0, 0, 0, 0, 0, -74, 0, 0, 0, 0, 0, 0, 0, 0, -74, 0, 0, -74, 0, 0, -74, -74, -74,
0, 0, 0, 0, 0, -75, 0, 0, 0, 0, 0, 0, -75, 0, 0, 0, 0, 0, 0, 0, 0, -75, 0, 0, -75, 0, 0, -75, -75, -75,
0, 0, -48, -48, -48, 0, -48, -48, -48, -48, -48, 0, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, 0, 0, 0,
0, 0, -49, -49, -49, 0, -49, -49, -49, -49, -49, 0, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, 0, 0, 0,
0, 0, -47, -47, -47, -47, -47, -47, -47, -47, -47, 0, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, 0, 0, 0,
0, 0, 0, 0, 0, -70, 0, 0, 0, 0, 0, 0, -70, 0, 0, 0, 0, 0, 0, 0, 0, -70, 0, 0, -70, 0, 0, -70, -70, -70,
0, 0, 0, 0, 0, -22, 0, 0, 0, 0, 0, 0, -22, 0, 0, 0, 0, 0, 0, 0, 0, -22, 0, 0, -22, 0, 0, -22, -22, -22,
0, 0, 0, 0, 0, -20, 0, 0, 0, 0, 0, 0, -20, 0, 0, 0, 0, 0, 0, 0, 0, -20, 0, 0, -20, 0, 0, -20, -20, -20,
0, 0, 0, 0, 0, -18, 0, 0, 0, 0, 0, 0, -18, 0, 0, 0, 0, 0, 0, 0, 0, -18, 0, 0, -18, 0, 0, -18, -18, -18,
0, 0, 0, 0, 0, -19, 0, 0, 0, 0, 0, 0, -19, 0, 0, 0, 0, 0, 0, 0, 0, -19, 0, 0, -19, 0, 0, -19, -19, -19,
0, 0, 0, 0, 0, -21, 0, 0, 0, 0, 0, 0, -21, 0, 0, 0, 0, 0, 0, 0, 0, -21, 0, 0, -21, 0, 0, -21, -21, -21,
0, 0, 0, 0, 0, -65, 0, 0, 0, 0, 0, 0, -65, 0, 0, 0, 0, 0, 0, 0, 0, -65, 0, 0, -65, 0, 0, -65, -65, -65,
0, 0, 0, 0, 0, -66, 0, 0, 0, 0, 0, 0, -66, 0, 0, 0, 0, 0, 0, 0, 0, -66, 0, 0, -66, 0, 0, -66, -66, -66,
0, 0, 0, 0, 0, -69, 0, 0, 0, 0, 0, 0, -69, 0, 0, 0, 0, 0, 0, 0, 0, -69, 0, 0, -69, 0, 0, -69, -69, -69,
0, 0, 0, 0, 0, -67, 0, 0, 0, 0, 0, 0, -67, 0, 0, 0, 0, 0, 0, 0, 0, -67, 0, 0, -67, 0, 0, -67, -67, -67,
0, 0, 0, 0, 0, -68, 0, 0, 0, 0, 0, 0, -68, 0, 0, 0, 0, 0, 0, 0, 0, -68, 0, 0, -68, 0, 0, -68, -68, -68,
0, 0, 0, 0, 0, -71, 0, 0, 0, 0, 0, 0, -71, 0, 0, 0, 0, 0, 0, 0, 0, -71, 0, 0, -71, 0, 0, -71, -71, -71,
0, 0, -40, -40, -40, 0, -40, -40, -40, -40, -40, 0, 0, -40, -40, -40, -40, -40, -40, -40, -40, 0, -40, -40, 0, -40, -40, 0, 0, 0,
0, 0, -59, -59, -59, 0, -59, -59, -59, -59, -59, 0, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -31, 0, 0, 0,
0, 0, -35, -35, -35, 0, -35, -35, -35, -35, -35, 0, 0, -35, -35, -35, -35, -35, -35, -35, -35, 0, -35, -35, 0, -35, -35, 0, 0, 0,
0, 0, -36, -36, -36, 0, -36, -36, -36, -36, -36, 0, 0, -36, -36, -36, -36, -36, -36, -36, -36, 0, -36, -36, 0, -36, -36, 0, 0, 0,
0, 0, -39, -39, -39, 0, -39, -39, -39, -39, -39, 0, 0, -39, -39, -39, -39, -39, -39, -39, -39, 0, -39, -39, 0, -39, -39, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, -38, -38, -38, 0, -38, -38, -38, -38, -38, 0, 0, -38, -38, -38, -38, -38, -38, -38, -38, 0, -38, -38, 0, -38, -38, 0, 0, 0,
0, 0, -54, -54, -54, 26, -54, -54, -54, -54, -54, 0, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -27, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, -64, -64, -64, 0, -64, -64, -64, -64, -64, 0, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, 0, 0, 0,
0, 0, -62, -62, -62, 0, -62, -62, -62, -62, -62, 0, -62, -62, -62, -62, -62, -62, -62, -62, -62, -62, -62, -62, -62, -62, -62, 0, 0, 0,
-6, -6, 0, 0, 0, -6, -6, 0, 0, 0, -6, -6, -6, 0, 0, 0, 0, 0, 0, 0, 0, -6, -6, 0, -6, 0, 0, -6, -6, -6,
0, 0, 0, 0, 0, 0, 0, 0, 0, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -33, 0, 0, 0,
0, 0, -63, -63, -63, 0, -63, -63, -63, -63, -63, 0, -63, -63, -63, -63, -63, -63, -63, -63, -63, -63, -63, -63, -63, -63, -63, 0, 0, 0,
-16, -16, 0, 0, 0, -16, 0, 0, 0, 0, -16, -16, -16, 0, 0, 0, 0, 0, 0, 0, 0, -16, 0, 0, -16, 0, -16, -16, -16, -16,
0, 0, -56, -56, -56, 0, -56, -56, -56, -56, -56, 0, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -29, 0, 0, 0,
0, 0, -57, -57, -57, 0, -57, -57, -57, -57, -57, 0, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -11, 0, 0, -11,
-7, -7, 0, 0, 0, -7, -7, 0, 0, 0, -7, -7, -7, 0, 0, 0, 0, 0, 0, 0, 0, -7, -7, 0, -7, 0, 0, -7, -7, -7,
-17, -17, 0, 0, 0, -17, 0, 0, 0, 0, -17, -17, -17, 0, 0, 0, 0, 0, 0, 0, 0, -17, 0, 0, -17, 0, -17, -17, -17, -17,
0, 0, -37, -37, -37, 0, -37, -37, -37, -37, -37, 0, 0, -37, -37, -37, -37, -37, -37, -37, -37, 0, -37, -37, 0, -37, -37, 0, 0, 0,
0, 0, 0, 0, 0, 0, 82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -12, 0, 0, -12,
0, 0, -55, -55, -55, 0, -55, -55, -55, -55, -55, 0, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, 0, 0, 0,
];
fn __action(state: i8, integer: usize) -> i8 {
__ACTION[(state as usize) * 30 + integer]
}
const __EOF_ACTION: &[i8] = &[
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
-50,
0,
0,
0,
0,
0,
0,
0,
-60,
-61,
-78,
-41,
-53,
0,
0,
0,
0,
-48,
-49,
-47,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
-40,
-59,
0,
0,
0,
-35,
-36,
-39,
0,
-38,
-54,
0,
0,
0,
-64,
-62,
0,
0,
-63,
0,
-56,
0,
-57,
0,
0,
0,
-37,
0,
0,
-55,
];
fn __goto(state: i8, nt: usize) -> i8 {
match nt {
3 => 17,
6 => 22,
9 => 19,
10 => 7,
11 => match state {
25 => 79,
_ => 54,
},
12 => 63,
13 => 55,
14 => match state {
3 => 16,
5 | 25 => 18,
10 => 20,
14 => 21,
17 => 23,
26 => 27,
_ => 1,
},
16 => match state {
22 => 73,
_ => 64,
},
18 => match state {
4 => 53,
13 => 62,
15 | 22 => 65,
_ => 28,
},
19 => 29,
20 => match state {
6 => 56,
19 => 69,
_ => 30,
},
22 => 31,
24 => match state {
2 => 52,
7 => 57,
8 => 58,
9 => 59,
11 => 60,
12 => 61,
24 => 78,
_ => 32,
},
25 => 8,
26 => 2,
_ => 0,
}
}
fn __expected_tokens(__state: i8) -> Vec<::std::string::String> {
const __TERMINAL: &[&str] = &[
r###""!""###,
r###""!!""###,
r###""!=""###,
r###""%""###,
r###""&&""###,
r###""(""###,
r###"")""###,
r###""*""###,
r###""+""###,
r###"",""###,
r###""-""###,
r###""--""###,
r###"".""###,
r###""/""###,
r###"":""###,
r###""<""###,
r###""<=""###,
r###""==""###,
r###"">""###,
r###"">=""###,
r###""?""###,
r###""[""###,
r###""]""###,
r###""in""###,
r###""{""###,
r###""||""###,
r###""}""###,
r###"r#"[0-9]+"#"###,
r###"r#"[0-9]+ [uU]"#"###,
r###"r#"[_a-zA-Z][_a-zA-Z0-9]*"#"###,
];
__TERMINAL.iter().enumerate().filter_map(|(index, terminal)| {
let next_state = __action(__state, index);
if next_state == 0 {
None
} else {
Some(terminal.to_string())
}
}).collect()
}
pub struct __StateMachine<'input>
where
{
input: &'input str,
__phantom: ::std::marker::PhantomData<(&'input ())>,
}
impl<'input> __state_machine::ParserDefinition for __StateMachine<'input>
where
{
type Location = usize;
type Error = &'static str;
type Token = Token<'input>;
type TokenIndex = usize;
type Symbol = __Symbol<'input>;
type Success = (Box<Expression>, Box<Expression>);
type StateIndex = i8;
type Action = i8;
type ReduceIndex = i8;
type NonterminalIndex = usize;
#[inline]
fn start_location(&self) -> Self::Location {
Default::default()
}
#[inline]
fn start_state(&self) -> Self::StateIndex {
0
}
#[inline]
fn token_to_index(&self, token: &Self::Token) -> Option<usize> {
__token_to_integer(token, ::std::marker::PhantomData::<(&())>)
}
#[inline]
fn action(&self, state: i8, integer: usize) -> i8 {
__action(state, integer)
}
#[inline]
fn error_action(&self, state: i8) -> i8 {
__action(state, 30 - 1)
}
#[inline]
fn eof_action(&self, state: i8) -> i8 {
__EOF_ACTION[state as usize]
}
#[inline]
fn goto(&self, state: i8, nt: usize) -> i8 {
__goto(state, nt)
}
fn token_to_symbol(&self, token_index: usize, token: Self::Token) -> Self::Symbol {
__token_to_symbol(token_index, token, ::std::marker::PhantomData::<(&())>)
}
fn expected_tokens(&self, state: i8) -> Vec<String> {
__expected_tokens(state)
}
#[inline]
fn uses_error_recovery(&self) -> bool {
false
}
#[inline]
fn error_recovery_symbol(
&self,
recovery: __state_machine::ErrorRecovery<Self>,
) -> Self::Symbol {
panic!("error recovery not enabled for this grammar")
}
fn reduce(
&mut self,
action: i8,
start_location: Option<&Self::Location>,
states: &mut Vec<i8>,
symbols: &mut Vec<__state_machine::SymbolTriple<Self>>,
) -> Option<__state_machine::ParseResult<Self>> {
__reduce(
self.input,
action,
start_location,
states,
symbols,
::std::marker::PhantomData::<(&())>,
)
}
fn simulate_reduce(&self, action: i8) -> __state_machine::SimulatedReduce<Self> {
panic!("error recovery not enabled for this grammar")
}
}
fn __token_to_integer<
'input,
>(
__token: &Token<'input>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> Option<usize>
{
match *__token {
Token(3, _) if true => Some(0),
Token(4, _) if true => Some(1),
Token(5, _) if true => Some(2),
Token(6, _) if true => Some(3),
Token(7, _) if true => Some(4),
Token(8, _) if true => Some(5),
Token(9, _) if true => Some(6),
Token(10, _) if true => Some(7),
Token(11, _) if true => Some(8),
Token(12, _) if true => Some(9),
Token(13, _) if true => Some(10),
Token(14, _) if true => Some(11),
Token(15, _) if true => Some(12),
Token(16, _) if true => Some(13),
Token(17, _) if true => Some(14),
Token(18, _) if true => Some(15),
Token(19, _) if true => Some(16),
Token(20, _) if true => Some(17),
Token(21, _) if true => Some(18),
Token(22, _) if true => Some(19),
Token(23, _) if true => Some(20),
Token(24, _) if true => Some(21),
Token(25, _) if true => Some(22),
Token(26, _) if true => Some(23),
Token(27, _) if true => Some(24),
Token(28, _) if true => Some(25),
Token(29, _) if true => Some(26),
Token(0, _) if true => Some(27),
Token(1, _) if true => Some(28),
Token(2, _) if true => Some(29),
_ => None,
}
}
fn __token_to_symbol<
'input,
>(
__token_index: usize,
__token: Token<'input>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> __Symbol<'input>
{
match __token_index {
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 => match __token {
Token(3, __tok0) | Token(4, __tok0) | Token(5, __tok0) | Token(6, __tok0) | Token(7, __tok0) | Token(8, __tok0) | Token(9, __tok0) | Token(10, __tok0) | Token(11, __tok0) | Token(12, __tok0) | Token(13, __tok0) | Token(14, __tok0) | Token(15, __tok0) | Token(16, __tok0) | Token(17, __tok0) | Token(18, __tok0) | Token(19, __tok0) | Token(20, __tok0) | Token(21, __tok0) | Token(22, __tok0) | Token(23, __tok0) | Token(24, __tok0) | Token(25, __tok0) | Token(26, __tok0) | Token(27, __tok0) | Token(28, __tok0) | Token(29, __tok0) | Token(0, __tok0) | Token(1, __tok0) | Token(2, __tok0) if true => __Symbol::Variant0(__tok0),
_ => unreachable!(),
},
_ => unreachable!(),
}
}
pub struct MapInitsParser {
builder: __lalrpop_util::lexer::MatcherBuilder,
_priv: (),
}
impl MapInitsParser {
pub fn new() -> MapInitsParser {
let __builder = super::__intern_token::new_builder();
MapInitsParser {
builder: __builder,
_priv: (),
}
}
#[allow(dead_code)]
pub fn parse<
'input,
>(
&self,
input: &'input str,
) -> Result<(Box<Expression>, Box<Expression>), __lalrpop_util::ParseError<usize, Token<'input>, &'static str>>
{
let mut __tokens = self.builder.matcher(input);
__state_machine::Parser::drive(
__StateMachine {
input,
__phantom: ::std::marker::PhantomData::<(&())>,
},
__tokens,
)
}
}
pub(crate) fn __reduce<
'input,
>(
input: &'input str,
__action: i8,
__lookahead_start: Option<&usize>,
__states: &mut ::std::vec::Vec<i8>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> Option<Result<(Box<Expression>, Box<Expression>),__lalrpop_util::ParseError<usize, Token<'input>, &'static str>>>
{
let (__pop_states, __nonterminal) = match __action {
0 => {
__reduce0(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
1 => {
__reduce1(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
2 => {
__reduce2(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
3 => {
__reduce3(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
4 => {
__reduce4(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
5 => {
__reduce5(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
6 => {
__reduce6(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
7 => {
__reduce7(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
8 => {
__reduce8(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
9 => {
__reduce9(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
10 => {
__reduce10(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
11 => {
__reduce11(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
12 => {
__reduce12(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
13 => {
__reduce13(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
14 => {
__reduce14(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
15 => {
__reduce15(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
16 => {
__reduce16(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
17 => {
__reduce17(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
18 => {
__reduce18(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
19 => {
__reduce19(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
20 => {
__reduce20(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
21 => {
__reduce21(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
22 => {
__reduce22(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
23 => {
__reduce23(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
24 => {
__reduce24(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
25 => {
__reduce25(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
26 => {
__reduce26(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
27 => {
__reduce27(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
28 => {
__reduce28(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
29 => {
__reduce29(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
30 => {
__reduce30(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
31 => {
__reduce31(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
32 => {
__reduce32(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
33 => {
__reduce33(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
34 => {
__reduce34(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
35 => {
__reduce35(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
36 => {
__reduce36(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
37 => {
__reduce37(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
38 => {
__reduce38(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
39 => {
__reduce39(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
40 => {
__reduce40(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
41 => {
__reduce41(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
42 => {
__reduce42(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
43 => {
__reduce43(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
44 => {
__reduce44(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
45 => {
__reduce45(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
46 => {
__reduce46(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
47 => {
__reduce47(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
48 => {
__reduce48(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
49 => {
__reduce49(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
50 => {
__reduce50(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
51 => {
__reduce51(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
52 => {
__reduce52(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
53 => {
__reduce53(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
54 => {
__reduce54(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
55 => {
__reduce55(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
56 => {
__reduce56(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
57 => {
__reduce57(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
58 => {
__reduce58(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
59 => {
__reduce59(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
60 => {
__reduce60(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
61 => {
__reduce61(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
62 => {
__reduce62(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
63 => {
__reduce63(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
64 => {
__reduce64(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
65 => {
__reduce65(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
66 => {
__reduce66(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
67 => {
__reduce67(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
68 => {
__reduce68(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
69 => {
__reduce69(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
70 => {
__reduce70(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
71 => {
__reduce71(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
72 => {
__reduce72(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
73 => {
__reduce73(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
74 => {
__reduce74(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
75 => {
__reduce75(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
76 => {
__reduce76(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
77 => {
let __sym0 = __pop_Variant6(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action4::<>(input, __sym0);
return Some(Ok(__nt));
}
78 => {
__reduce78(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
79 => {
__reduce79(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
_ => panic!("invalid action code {}", __action)
};
let __states_len = __states.len();
__states.truncate(__states_len - __pop_states);
let __state = *__states.last().unwrap();
let __next_state = __goto(__state, __nonterminal);
__states.push(__next_state);
None
}
#[inline(never)]
fn __symbol_type_mismatch() -> ! {
panic!("symbol type mismatch")
}
fn __pop_Variant6<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, (Box<Expression>, Box<Expression>), usize)
{
match __symbols.pop() {
Some((__l, __Symbol::Variant6(__v), __r)) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant4<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, (String, Box<Expression>), usize)
{
match __symbols.pop() {
Some((__l, __Symbol::Variant4(__v), __r)) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant8<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, ArithmeticOp, usize)
{
match __symbols.pop() {
Some((__l, __Symbol::Variant8(__v), __r)) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant2<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, Box<Expression>, usize)
{
match __symbols.pop() {
Some((__l, __Symbol::Variant2(__v), __r)) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant15<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, Literal, usize)
{
match __symbols.pop() {
Some((__l, __Symbol::Variant15(__v), __r)) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant18<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, RelationOp, usize)
{
match __symbols.pop() {
Some((__l, __Symbol::Variant18(__v), __r)) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant14<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, String, usize)
{
match __symbols.pop() {
Some((__l, __Symbol::Variant14(__v), __r)) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant19<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, UnaryOp, usize)
{
match __symbols.pop() {
Some((__l, __Symbol::Variant19(__v), __r)) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant11<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, Vec<(Box<Expression>, Box<Expression>)>, usize)
{
match __symbols.pop() {
Some((__l, __Symbol::Variant11(__v), __r)) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant10<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, Vec<(String, Box<Expression>)>, usize)
{
match __symbols.pop() {
Some((__l, __Symbol::Variant10(__v), __r)) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant9<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, Vec<Box<Expression>>, usize)
{
match __symbols.pop() {
Some((__l, __Symbol::Variant9(__v), __r)) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant17<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, i32, usize)
{
match __symbols.pop() {
Some((__l, __Symbol::Variant17(__v), __r)) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant16<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, ::std::option::Option<(Box<Expression>, Box<Expression>)>, usize)
{
match __symbols.pop() {
Some((__l, __Symbol::Variant16(__v), __r)) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant13<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, ::std::option::Option<(String, Box<Expression>)>, usize)
{
match __symbols.pop() {
Some((__l, __Symbol::Variant13(__v), __r)) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant12<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, ::std::option::Option<Box<Expression>>, usize)
{
match __symbols.pop() {
Some((__l, __Symbol::Variant12(__v), __r)) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant1<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, ::std::option::Option<&'input str>, usize)
{
match __symbols.pop() {
Some((__l, __Symbol::Variant1(__v), __r)) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant7<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, ::std::vec::Vec<(Box<Expression>, Box<Expression>)>, usize)
{
match __symbols.pop() {
Some((__l, __Symbol::Variant7(__v), __r)) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant5<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, ::std::vec::Vec<(String, Box<Expression>)>, usize)
{
match __symbols.pop() {
Some((__l, __Symbol::Variant5(__v), __r)) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant3<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, ::std::vec::Vec<Box<Expression>>, usize)
{
match __symbols.pop() {
Some((__l, __Symbol::Variant3(__v), __r)) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant0<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, &'input str, usize)
{
match __symbols.pop() {
Some((__l, __Symbol::Variant0(__v), __r)) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
pub(crate) fn __reduce0<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action45::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant1(__nt), __end));
(1, 0)
}
pub(crate) fn __reduce1<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
let __end = __start.clone();
let __nt = super::__action46::<>(input, &__start, &__end);
__symbols.push((__start, __Symbol::Variant1(__nt), __end));
(0, 0)
}
pub(crate) fn __reduce2<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 2);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant2(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action53::<>(input, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(2, 1)
}
pub(crate) fn __reduce3<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
let __end = __start.clone();
let __nt = super::__action51::<>(input, &__start, &__end);
__symbols.push((__start, __Symbol::Variant3(__nt), __end));
(0, 2)
}
pub(crate) fn __reduce4<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant3(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action52::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant3(__nt), __end));
(1, 2)
}
pub(crate) fn __reduce5<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 2);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant2(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action72::<>(input, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant3(__nt), __end));
(2, 3)
}
pub(crate) fn __reduce6<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 3);
let __sym2 = __pop_Variant0(__symbols);
let __sym1 = __pop_Variant2(__symbols);
let __sym0 = __pop_Variant3(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action73::<>(input, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant3(__nt), __end));
(3, 3)
}
pub(crate) fn __reduce7<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 2);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant4(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action58::<>(input, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant4(__nt), __end));
(2, 4)
}
pub(crate) fn __reduce8<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
let __end = __start.clone();
let __nt = super::__action56::<>(input, &__start, &__end);
__symbols.push((__start, __Symbol::Variant5(__nt), __end));
(0, 5)
}
pub(crate) fn __reduce9<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant5(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action57::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant5(__nt), __end));
(1, 5)
}
pub(crate) fn __reduce10<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 2);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant4(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action76::<>(input, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant5(__nt), __end));
(2, 6)
}
pub(crate) fn __reduce11<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 3);
let __sym2 = __pop_Variant0(__symbols);
let __sym1 = __pop_Variant4(__symbols);
let __sym0 = __pop_Variant5(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action77::<>(input, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant5(__nt), __end));
(3, 6)
}
pub(crate) fn __reduce12<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 2);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant6(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action63::<>(input, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant6(__nt), __end));
(2, 7)
}
pub(crate) fn __reduce13<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
let __end = __start.clone();
let __nt = super::__action61::<>(input, &__start, &__end);
__symbols.push((__start, __Symbol::Variant7(__nt), __end));
(0, 8)
}
pub(crate) fn __reduce14<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant7(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action62::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant7(__nt), __end));
(1, 8)
}
pub(crate) fn __reduce15<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 2);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant6(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action80::<>(input, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant7(__nt), __end));
(2, 9)
}
pub(crate) fn __reduce16<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 3);
let __sym2 = __pop_Variant0(__symbols);
let __sym1 = __pop_Variant6(__symbols);
let __sym0 = __pop_Variant7(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action81::<>(input, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant7(__nt), __end));
(3, 9)
}
pub(crate) fn __reduce17<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action24::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant8(__nt), __end));
(1, 10)
}
pub(crate) fn __reduce18<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action25::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant8(__nt), __end));
(1, 10)
}
pub(crate) fn __reduce19<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action26::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant8(__nt), __end));
(1, 10)
}
pub(crate) fn __reduce20<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action27::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant8(__nt), __end));
(1, 10)
}
pub(crate) fn __reduce21<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action28::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant8(__nt), __end));
(1, 10)
}
pub(crate) fn __reduce22<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant2(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action84::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant9(__nt), __end));
(1, 11)
}
pub(crate) fn __reduce23<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
let __end = __start.clone();
let __nt = super::__action85::<>(input, &__start, &__end);
__symbols.push((__start, __Symbol::Variant9(__nt), __end));
(0, 11)
}
pub(crate) fn __reduce24<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 2);
let __sym1 = __pop_Variant2(__symbols);
let __sym0 = __pop_Variant3(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action86::<>(input, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant9(__nt), __end));
(2, 11)
}
pub(crate) fn __reduce25<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant3(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action87::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant9(__nt), __end));
(1, 11)
}
pub(crate) fn __reduce26<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant4(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action88::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant10(__nt), __end));
(1, 12)
}
pub(crate) fn __reduce27<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
let __end = __start.clone();
let __nt = super::__action89::<>(input, &__start, &__end);
__symbols.push((__start, __Symbol::Variant10(__nt), __end));
(0, 12)
}
pub(crate) fn __reduce28<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 2);
let __sym1 = __pop_Variant4(__symbols);
let __sym0 = __pop_Variant5(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action90::<>(input, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant10(__nt), __end));
(2, 12)
}
pub(crate) fn __reduce29<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant5(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action91::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant10(__nt), __end));
(1, 12)
}
pub(crate) fn __reduce30<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant6(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action92::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant11(__nt), __end));
(1, 13)
}
pub(crate) fn __reduce31<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
let __end = __start.clone();
let __nt = super::__action93::<>(input, &__start, &__end);
__symbols.push((__start, __Symbol::Variant11(__nt), __end));
(0, 13)
}
pub(crate) fn __reduce32<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 2);
let __sym1 = __pop_Variant6(__symbols);
let __sym0 = __pop_Variant7(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action94::<>(input, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant11(__nt), __end));
(2, 13)
}
pub(crate) fn __reduce33<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant7(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action95::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant11(__nt), __end));
(1, 13)
}
pub(crate) fn __reduce34<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 3);
let __sym2 = __pop_Variant2(__symbols);
let __sym1 = __pop_Variant8(__symbols);
let __sym0 = __pop_Variant2(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action5::<>(input, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(3, 14)
}
pub(crate) fn __reduce35<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 3);
let __sym2 = __pop_Variant2(__symbols);
let __sym1 = __pop_Variant18(__symbols);
let __sym0 = __pop_Variant2(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action6::<>(input, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(3, 14)
}
pub(crate) fn __reduce36<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 5);
let __sym4 = __pop_Variant2(__symbols);
let __sym3 = __pop_Variant0(__symbols);
let __sym2 = __pop_Variant2(__symbols);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant2(__symbols);
let __start = __sym0.0.clone();
let __end = __sym4.2.clone();
let __nt = super::__action7::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(5, 14)
}
pub(crate) fn __reduce37<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 3);
let __sym2 = __pop_Variant2(__symbols);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant2(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action8::<>(input, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(3, 14)
}
pub(crate) fn __reduce38<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 3);
let __sym2 = __pop_Variant2(__symbols);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant2(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action9::<>(input, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(3, 14)
}
pub(crate) fn __reduce39<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 2);
let __sym1 = __pop_Variant2(__symbols);
let __sym0 = __pop_Variant19(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action10::<>(input, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(2, 14)
}
pub(crate) fn __reduce40<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant2(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action11::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(1, 14)
}
pub(crate) fn __reduce41<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant2(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action49::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant12(__nt), __end));
(1, 15)
}
pub(crate) fn __reduce42<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
let __end = __start.clone();
let __nt = super::__action50::<>(input, &__start, &__end);
__symbols.push((__start, __Symbol::Variant12(__nt), __end));
(0, 15)
}
pub(crate) fn __reduce43<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 3);
let __sym2 = __pop_Variant2(__symbols);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant14(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action22::<>(input, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant4(__nt), __end));
(3, 16)
}
pub(crate) fn __reduce44<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant4(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action54::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant13(__nt), __end));
(1, 17)
}
pub(crate) fn __reduce45<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
let __end = __start.clone();
let __nt = super::__action55::<>(input, &__start, &__end);
__symbols.push((__start, __Symbol::Variant13(__nt), __end));
(0, 17)
}
pub(crate) fn __reduce46<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action43::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant14(__nt), __end));
(1, 18)
}
pub(crate) fn __reduce47<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action40::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant15(__nt), __end));
(1, 19)
}
pub(crate) fn __reduce48<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action41::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant15(__nt), __end));
(1, 19)
}
pub(crate) fn __reduce49<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 3);
let __sym2 = __pop_Variant2(__symbols);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant2(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action23::<>(input, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant6(__nt), __end));
(3, 20)
}
pub(crate) fn __reduce50<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant6(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action59::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant16(__nt), __end));
(1, 21)
}
pub(crate) fn __reduce51<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
let __end = __start.clone();
let __nt = super::__action60::<>(input, &__start, &__end);
__symbols.push((__start, __Symbol::Variant16(__nt), __end));
(0, 21)
}
pub(crate) fn __reduce52<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant2(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action12::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(1, 22)
}
pub(crate) fn __reduce53<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 3);
let __sym2 = __pop_Variant14(__symbols);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant2(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action13::<>(input, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(3, 22)
}
pub(crate) fn __reduce54<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 6);
let __sym5 = __pop_Variant0(__symbols);
let __sym4 = __pop_Variant9(__symbols);
let __sym3 = __pop_Variant0(__symbols);
let __sym2 = __pop_Variant14(__symbols);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant2(__symbols);
let __start = __sym0.0.clone();
let __end = __sym5.2.clone();
let __nt = super::__action14::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(6, 22)
}
pub(crate) fn __reduce55<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 4);
let __sym3 = __pop_Variant0(__symbols);
let __sym2 = __pop_Variant2(__symbols);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant2(__symbols);
let __start = __sym0.0.clone();
let __end = __sym3.2.clone();
let __nt = super::__action15::<>(input, __sym0, __sym1, __sym2, __sym3);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(4, 22)
}
pub(crate) fn __reduce56<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 4);
let __sym3 = __pop_Variant0(__symbols);
let __sym2 = __pop_Variant10(__symbols);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant2(__symbols);
let __start = __sym0.0.clone();
let __end = __sym3.2.clone();
let __nt = super::__action16::<>(input, __sym0, __sym1, __sym2, __sym3);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(4, 22)
}
pub(crate) fn __reduce57<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action42::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant17(__nt), __end));
(1, 23)
}
pub(crate) fn __reduce58<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 2);
let __sym1 = __pop_Variant14(__symbols);
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action70::<>(input, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(2, 24)
}
pub(crate) fn __reduce59<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant14(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action71::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(1, 24)
}
pub(crate) fn __reduce60<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant15(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action18::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(1, 24)
}
pub(crate) fn __reduce61<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 3);
let __sym2 = __pop_Variant0(__symbols);
let __sym1 = __pop_Variant9(__symbols);
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action19::<>(input, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(3, 24)
}
pub(crate) fn __reduce62<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 3);
let __sym2 = __pop_Variant0(__symbols);
let __sym1 = __pop_Variant11(__symbols);
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action20::<>(input, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(3, 24)
}
pub(crate) fn __reduce63<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 3);
let __sym2 = __pop_Variant0(__symbols);
let __sym1 = __pop_Variant2(__symbols);
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action21::<>(input, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(3, 24)
}
pub(crate) fn __reduce64<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action33::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant18(__nt), __end));
(1, 25)
}
pub(crate) fn __reduce65<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action34::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant18(__nt), __end));
(1, 25)
}
pub(crate) fn __reduce66<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action35::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant18(__nt), __end));
(1, 25)
}
pub(crate) fn __reduce67<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action36::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant18(__nt), __end));
(1, 25)
}
pub(crate) fn __reduce68<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action37::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant18(__nt), __end));
(1, 25)
}
pub(crate) fn __reduce69<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action38::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant18(__nt), __end));
(1, 25)
}
pub(crate) fn __reduce70<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action39::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant18(__nt), __end));
(1, 25)
}
pub(crate) fn __reduce71<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action29::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant19(__nt), __end));
(1, 26)
}
pub(crate) fn __reduce72<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action30::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant19(__nt), __end));
(1, 26)
}
pub(crate) fn __reduce73<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action31::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant19(__nt), __end));
(1, 26)
}
pub(crate) fn __reduce74<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action32::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant19(__nt), __end));
(1, 26)
}
pub(crate) fn __reduce75<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant2(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action0::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(1, 27)
}
pub(crate) fn __reduce76<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant4(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action3::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant4(__nt), __end));
(1, 28)
}
pub(crate) fn __reduce78<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant2(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action1::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(1, 30)
}
pub(crate) fn __reduce79<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant2(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action2::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(1, 31)
}
}
pub use self::__parse__MapInits::MapInitsParser;
#[cfg_attr(rustfmt, rustfmt_skip)]
mod __parse__Member {
#![allow(non_snake_case, non_camel_case_types, unused_mut, unused_variables, unused_imports, unused_parens)]
use std::str::FromStr;
use crate::ast::{RelationOp, ArithmeticOp, Expression, UnaryOp, Member, Literal};
#[allow(unused_extern_crates)]
extern crate lalrpop_util as __lalrpop_util;
#[allow(unused_imports)]
use self::__lalrpop_util::state_machine as __state_machine;
use self::__lalrpop_util::lexer::Token;
#[allow(dead_code)]
pub enum __Symbol<'input>
{
Variant0(&'input str),
Variant1(::std::option::Option<&'input str>),
Variant2(Box<Expression>),
Variant3(::std::vec::Vec<Box<Expression>>),
Variant4((String, Box<Expression>)),
Variant5(::std::vec::Vec<(String, Box<Expression>)>),
Variant6((Box<Expression>, Box<Expression>)),
Variant7(::std::vec::Vec<(Box<Expression>, Box<Expression>)>),
Variant8(ArithmeticOp),
Variant9(Vec<Box<Expression>>),
Variant10(Vec<(String, Box<Expression>)>),
Variant11(Vec<(Box<Expression>, Box<Expression>)>),
Variant12(::std::option::Option<Box<Expression>>),
Variant13(::std::option::Option<(String, Box<Expression>)>),
Variant14(String),
Variant15(Literal),
Variant16(::std::option::Option<(Box<Expression>, Box<Expression>)>),
Variant17(i32),
Variant18(RelationOp),
Variant19(UnaryOp),
}
const __ACTION: &[i8] = &[
0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 5, 0, 0, 33, 34, 35,
37, 38, 0, 0, 0, 2, 0, 0, 0, 0, 39, 40, 3, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 5, 0, 0, 33, 34, 35,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35,
37, 38, 0, 0, 0, 2, 0, 0, 0, 0, 39, 40, 3, 0, 0, 0, 0, 0, 0, 0, 0, 4, -24, 0, 5, 0, 0, 33, 34, 35,
37, 38, 0, 0, 0, 2, 0, 0, 0, 0, 39, 40, 3, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 5, 0, -32, 33, 34, 35,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35,
37, 38, 0, 0, 0, 2, 0, 0, 0, 0, 39, 40, 3, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 5, 0, 0, 33, 34, 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, -28, 0, 0, 35,
0, 0, 49, 50, 19, 0, 51, 52, 53, 0, 54, 0, 0, 55, 0, 56, 57, 58, 59, 60, 20, 0, 0, 61, 0, 21, 0, 0, 0, 0,
0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 5, 0, 0, 33, 34, 35,
37, 38, 0, 0, 0, 2, -26, 0, 0, 0, 39, 40, 3, 0, 0, 0, 0, 0, 0, 0, 0, 4, -26, 0, 5, 0, 0, 33, 34, 35,
0, 0, 49, 50, 19, 0, -23, 52, 53, 64, 54, 0, 0, 55, 0, 56, 57, 58, 59, 60, 20, 0, -23, 61, 0, 21, 0, 0, 0, 0,
37, 38, 0, 0, 0, 2, 0, 0, 0, 0, 39, 40, 3, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 5, 0, -34, 33, 34, 35,
0, 0, 49, 50, 19, 0, 0, 52, 53, 0, 54, 0, 0, 55, 23, 56, 57, 58, 59, 60, 20, 0, 0, 61, 0, 21, 0, 0, 0, 0,
0, 0, 49, 50, 19, 0, 0, 52, 53, 0, 54, 0, 0, 55, 0, 56, 57, 58, 59, 60, 20, 0, 68, 61, 0, 21, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -30, 0, 0, 35,
0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 5, 0, 0, 33, 34, 35,
0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 5, 0, 0, 33, 34, 35,
0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 5, 0, 0, 33, 34, 35,
0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 5, 0, 0, 33, 34, 35,
0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 5, 0, 0, 33, 34, 35,
0, 0, 49, 50, 19, 0, -25, 52, 53, 77, 54, 0, 0, 55, 0, 56, 57, 58, 59, 60, 20, 0, -25, 61, 0, 21, 0, 0, 0, 0,
37, 38, 0, 0, 0, 2, 0, 0, 0, 0, 39, 40, 3, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 5, 0, 0, 33, 34, 35,
37, 38, 0, 0, 0, 2, -24, 0, 0, 0, 39, 40, 3, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 5, 0, 0, 33, 34, 35,
37, 38, 0, 0, 0, 2, 0, 0, 0, 0, 39, 40, 3, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 5, 0, 0, 33, 34, 35,
0, 0, 49, 50, 19, 0, 0, 52, 53, -50, 54, 0, 0, 55, 0, 56, 57, 58, 59, 60, 20, 0, 0, 61, 0, 21, -50, 0, 0, 0,
0, 0, 49, 50, 19, 0, 0, 52, 53, -44, 54, 0, 0, 55, 0, 56, 57, 58, 59, 60, 20, 0, 0, 61, 0, 21, -44, 0, 0, 0,
0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 5, 0, 0, 33, 34, 35,
0, 0, -60, -60, -60, 0, -60, -60, -60, -60, -60, 0, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, 0, 0, 0,
0, 0, -61, -61, -61, 0, -61, -61, -61, -61, -61, 0, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 8, 0, 0, 0, 0, 0,
0, 0, -53, -53, -53, 0, -53, -53, -53, -53, -53, 0, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, 0, 0, 0,
0, 0, -48, -48, -48, 0, -48, -48, -48, -48, -48, 0, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, 0, 0, 0,
0, 0, -49, -49, -49, 0, -49, -49, -49, -49, -49, 0, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, 0, 0, 0,
0, 0, -47, -47, -47, -47, -47, -47, -47, -47, -47, 0, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, 0, 0, 0,
0, 0, -41, -41, -41, 0, -41, -41, -41, -41, -41, 0, 6, -41, -41, -41, -41, -41, -41, -41, -41, 7, -41, -41, 8, -41, -41, 0, 0, 0,
0, 0, 0, 0, 0, -72, 0, 0, 0, 0, 0, 0, -72, 0, 0, 0, 0, 0, 0, 0, 0, -72, 0, 0, -72, 0, 0, -72, -72, -72,
0, 0, 0, 0, 0, -73, 0, 0, 0, 0, 0, 0, -73, 0, 0, 0, 0, 0, 0, 0, 0, -73, 0, 0, -73, 0, 0, -73, -73, -73,
0, 0, 0, 0, 0, -74, 0, 0, 0, 0, 0, 0, -74, 0, 0, 0, 0, 0, 0, 0, 0, -74, 0, 0, -74, 0, 0, -74, -74, -74,
0, 0, 0, 0, 0, -75, 0, 0, 0, 0, 0, 0, -75, 0, 0, 0, 0, 0, 0, 0, 0, -75, 0, 0, -75, 0, 0, -75, -75, -75,
0, 0, -59, -59, -59, 0, -59, -59, -59, -59, -59, 0, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -31, 0, 0, 0,
0, 0, -54, -54, -54, 24, -54, -54, -54, -54, -54, 0, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 70, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 71, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -27, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, -70, 0, 0, 0, 0, 0, 0, -70, 0, 0, 0, 0, 0, 0, 0, 0, -70, 0, 0, -70, 0, 0, -70, -70, -70,
0, 0, 0, 0, 0, -22, 0, 0, 0, 0, 0, 0, -22, 0, 0, 0, 0, 0, 0, 0, 0, -22, 0, 0, -22, 0, 0, -22, -22, -22,
0, 0, -64, -64, -64, 0, -64, -64, -64, -64, -64, 0, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, 0, 0, 0,
0, 0, 0, 0, 0, -20, 0, 0, 0, 0, 0, 0, -20, 0, 0, 0, 0, 0, 0, 0, 0, -20, 0, 0, -20, 0, 0, -20, -20, -20,
0, 0, 0, 0, 0, -18, 0, 0, 0, 0, 0, 0, -18, 0, 0, 0, 0, 0, 0, 0, 0, -18, 0, 0, -18, 0, 0, -18, -18, -18,
0, 0, 0, 0, 0, -19, 0, 0, 0, 0, 0, 0, -19, 0, 0, 0, 0, 0, 0, 0, 0, -19, 0, 0, -19, 0, 0, -19, -19, -19,
0, 0, 0, 0, 0, -21, 0, 0, 0, 0, 0, 0, -21, 0, 0, 0, 0, 0, 0, 0, 0, -21, 0, 0, -21, 0, 0, -21, -21, -21,
0, 0, 0, 0, 0, -65, 0, 0, 0, 0, 0, 0, -65, 0, 0, 0, 0, 0, 0, 0, 0, -65, 0, 0, -65, 0, 0, -65, -65, -65,
0, 0, 0, 0, 0, -66, 0, 0, 0, 0, 0, 0, -66, 0, 0, 0, 0, 0, 0, 0, 0, -66, 0, 0, -66, 0, 0, -66, -66, -66,
0, 0, 0, 0, 0, -69, 0, 0, 0, 0, 0, 0, -69, 0, 0, 0, 0, 0, 0, 0, 0, -69, 0, 0, -69, 0, 0, -69, -69, -69,
0, 0, 0, 0, 0, -67, 0, 0, 0, 0, 0, 0, -67, 0, 0, 0, 0, 0, 0, 0, 0, -67, 0, 0, -67, 0, 0, -67, -67, -67,
0, 0, 0, 0, 0, -68, 0, 0, 0, 0, 0, 0, -68, 0, 0, 0, 0, 0, 0, 0, 0, -68, 0, 0, -68, 0, 0, -68, -68, -68,
0, 0, 0, 0, 0, -71, 0, 0, 0, 0, 0, 0, -71, 0, 0, 0, 0, 0, 0, 0, 0, -71, 0, 0, -71, 0, 0, -71, -71, -71,
0, 0, -40, -40, -40, 0, -40, -40, -40, -40, -40, 0, 0, -40, -40, -40, -40, -40, -40, -40, -40, 0, -40, -40, 0, -40, -40, 0, 0, 0,
0, 0, -62, -62, -62, 0, -62, -62, -62, -62, -62, 0, -62, -62, -62, -62, -62, -62, -62, -62, -62, -62, -62, -62, -62, -62, -62, 0, 0, 0,
-6, -6, 0, 0, 0, -6, -6, 0, 0, 0, -6, -6, -6, 0, 0, 0, 0, 0, 0, 0, 0, -6, -6, 0, -6, 0, 0, -6, -6, -6,
0, 0, 0, 0, 0, 0, 0, 0, 0, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -33, 0, 0, 0,
0, 0, -63, -63, -63, 0, -63, -63, -63, -63, -63, 0, -63, -63, -63, -63, -63, -63, -63, -63, -63, -63, -63, -63, -63, -63, -63, 0, 0, 0,
-16, -16, 0, 0, 0, -16, 0, 0, 0, 0, -16, -16, -16, 0, 0, 0, 0, 0, 0, 0, 0, -16, 0, 0, -16, 0, -16, -16, -16, -16,
0, 0, -56, -56, -56, 0, -56, -56, -56, -56, -56, 0, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -29, 0, 0, 0,
0, 0, -57, -57, -57, 0, -57, -57, -57, -57, -57, 0, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -11, 0, 0, -11,
0, 0, -35, -35, -35, 0, -35, -35, -35, -35, -35, 0, 0, -35, -35, -35, -35, -35, -35, -35, -35, 0, -35, -35, 0, -35, -35, 0, 0, 0,
0, 0, -36, -36, -36, 0, -36, -36, -36, -36, -36, 0, 0, -36, -36, -36, -36, -36, -36, -36, -36, 0, -36, -36, 0, -36, -36, 0, 0, 0,
0, 0, -39, -39, -39, 0, -39, -39, -39, -39, -39, 0, 0, -39, -39, -39, -39, -39, -39, -39, -39, 0, -39, -39, 0, -39, -39, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, -38, -38, -38, 0, -38, -38, -38, -38, -38, 0, 0, -38, -38, -38, -38, -38, -38, -38, -38, 0, -38, -38, 0, -38, -38, 0, 0, 0,
-7, -7, 0, 0, 0, -7, -7, 0, 0, 0, -7, -7, -7, 0, 0, 0, 0, 0, 0, 0, 0, -7, -7, 0, -7, 0, 0, -7, -7, -7,
-17, -17, 0, 0, 0, -17, 0, 0, 0, 0, -17, -17, -17, 0, 0, 0, 0, 0, 0, 0, 0, -17, 0, 0, -17, 0, -17, -17, -17, -17,
0, 0, 0, 0, 0, 0, 81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -12, 0, 0, -12,
0, 0, -55, -55, -55, 0, -55, -55, -55, -55, -55, 0, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, 0, 0, 0,
0, 0, -37, -37, -37, 0, -37, -37, -37, -37, -37, 0, 0, -37, -37, -37, -37, -37, -37, -37, -37, 0, -37, -37, 0, -37, -37, 0, 0, 0,
];
fn __action(state: i8, integer: usize) -> i8 {
__ACTION[(state as usize) * 30 + integer]
}
const __EOF_ACTION: &[i8] = &[
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
-60,
-61,
-79,
-53,
-48,
-49,
-47,
0,
0,
0,
0,
0,
-59,
0,
0,
0,
-54,
0,
0,
0,
0,
0,
-64,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
-62,
0,
0,
-63,
0,
-56,
0,
-57,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
-55,
0,
];
fn __goto(state: i8, nt: usize) -> i8 {
match nt {
3 => 10,
6 => 15,
9 => 12,
10 => 16,
11 => match state {
23 => 78,
_ => 41,
},
12 => 45,
13 => 42,
14 => match state {
1 => 8,
4 | 12 => 13,
6 => 14,
10 => 21,
22 => 25,
24 => 26,
_ => 11,
},
16 => match state {
15 => 68,
_ => 46,
},
18 => match state {
2 => 40,
5 => 44,
7 | 15 => 47,
_ => 28,
},
19 => 29,
20 => match state {
12 => 64,
_ => 43,
},
22 => match state {
0 => 30,
_ => 35,
},
24 => match state {
9 => 61,
16 => 71,
17 => 72,
18 => 73,
19 => 74,
20 => 75,
27 => 81,
_ => 31,
},
25 => 17,
26 => 9,
_ => 0,
}
}
fn __expected_tokens(__state: i8) -> Vec<::std::string::String> {
const __TERMINAL: &[&str] = &[
r###""!""###,
r###""!!""###,
r###""!=""###,
r###""%""###,
r###""&&""###,
r###""(""###,
r###"")""###,
r###""*""###,
r###""+""###,
r###"",""###,
r###""-""###,
r###""--""###,
r###"".""###,
r###""/""###,
r###"":""###,
r###""<""###,
r###""<=""###,
r###""==""###,
r###"">""###,
r###"">=""###,
r###""?""###,
r###""[""###,
r###""]""###,
r###""in""###,
r###""{""###,
r###""||""###,
r###""}""###,
r###"r#"[0-9]+"#"###,
r###"r#"[0-9]+ [uU]"#"###,
r###"r#"[_a-zA-Z][_a-zA-Z0-9]*"#"###,
];
__TERMINAL.iter().enumerate().filter_map(|(index, terminal)| {
let next_state = __action(__state, index);
if next_state == 0 {
None
} else {
Some(terminal.to_string())
}
}).collect()
}
pub struct __StateMachine<'input>
where
{
input: &'input str,
__phantom: ::std::marker::PhantomData<(&'input ())>,
}
impl<'input> __state_machine::ParserDefinition for __StateMachine<'input>
where
{
type Location = usize;
type Error = &'static str;
type Token = Token<'input>;
type TokenIndex = usize;
type Symbol = __Symbol<'input>;
type Success = Box<Expression>;
type StateIndex = i8;
type Action = i8;
type ReduceIndex = i8;
type NonterminalIndex = usize;
#[inline]
fn start_location(&self) -> Self::Location {
Default::default()
}
#[inline]
fn start_state(&self) -> Self::StateIndex {
0
}
#[inline]
fn token_to_index(&self, token: &Self::Token) -> Option<usize> {
__token_to_integer(token, ::std::marker::PhantomData::<(&())>)
}
#[inline]
fn action(&self, state: i8, integer: usize) -> i8 {
__action(state, integer)
}
#[inline]
fn error_action(&self, state: i8) -> i8 {
__action(state, 30 - 1)
}
#[inline]
fn eof_action(&self, state: i8) -> i8 {
__EOF_ACTION[state as usize]
}
#[inline]
fn goto(&self, state: i8, nt: usize) -> i8 {
__goto(state, nt)
}
fn token_to_symbol(&self, token_index: usize, token: Self::Token) -> Self::Symbol {
__token_to_symbol(token_index, token, ::std::marker::PhantomData::<(&())>)
}
fn expected_tokens(&self, state: i8) -> Vec<String> {
__expected_tokens(state)
}
#[inline]
fn uses_error_recovery(&self) -> bool {
false
}
#[inline]
fn error_recovery_symbol(
&self,
recovery: __state_machine::ErrorRecovery<Self>,
) -> Self::Symbol {
panic!("error recovery not enabled for this grammar")
}
fn reduce(
&mut self,
action: i8,
start_location: Option<&Self::Location>,
states: &mut Vec<i8>,
symbols: &mut Vec<__state_machine::SymbolTriple<Self>>,
) -> Option<__state_machine::ParseResult<Self>> {
__reduce(
self.input,
action,
start_location,
states,
symbols,
::std::marker::PhantomData::<(&())>,
)
}
fn simulate_reduce(&self, action: i8) -> __state_machine::SimulatedReduce<Self> {
panic!("error recovery not enabled for this grammar")
}
}
fn __token_to_integer<
'input,
>(
__token: &Token<'input>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> Option<usize>
{
match *__token {
Token(3, _) if true => Some(0),
Token(4, _) if true => Some(1),
Token(5, _) if true => Some(2),
Token(6, _) if true => Some(3),
Token(7, _) if true => Some(4),
Token(8, _) if true => Some(5),
Token(9, _) if true => Some(6),
Token(10, _) if true => Some(7),
Token(11, _) if true => Some(8),
Token(12, _) if true => Some(9),
Token(13, _) if true => Some(10),
Token(14, _) if true => Some(11),
Token(15, _) if true => Some(12),
Token(16, _) if true => Some(13),
Token(17, _) if true => Some(14),
Token(18, _) if true => Some(15),
Token(19, _) if true => Some(16),
Token(20, _) if true => Some(17),
Token(21, _) if true => Some(18),
Token(22, _) if true => Some(19),
Token(23, _) if true => Some(20),
Token(24, _) if true => Some(21),
Token(25, _) if true => Some(22),
Token(26, _) if true => Some(23),
Token(27, _) if true => Some(24),
Token(28, _) if true => Some(25),
Token(29, _) if true => Some(26),
Token(0, _) if true => Some(27),
Token(1, _) if true => Some(28),
Token(2, _) if true => Some(29),
_ => None,
}
}
fn __token_to_symbol<
'input,
>(
__token_index: usize,
__token: Token<'input>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> __Symbol<'input>
{
match __token_index {
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 => match __token {
Token(3, __tok0) | Token(4, __tok0) | Token(5, __tok0) | Token(6, __tok0) | Token(7, __tok0) | Token(8, __tok0) | Token(9, __tok0) | Token(10, __tok0) | Token(11, __tok0) | Token(12, __tok0) | Token(13, __tok0) | Token(14, __tok0) | Token(15, __tok0) | Token(16, __tok0) | Token(17, __tok0) | Token(18, __tok0) | Token(19, __tok0) | Token(20, __tok0) | Token(21, __tok0) | Token(22, __tok0) | Token(23, __tok0) | Token(24, __tok0) | Token(25, __tok0) | Token(26, __tok0) | Token(27, __tok0) | Token(28, __tok0) | Token(29, __tok0) | Token(0, __tok0) | Token(1, __tok0) | Token(2, __tok0) if true => __Symbol::Variant0(__tok0),
_ => unreachable!(),
},
_ => unreachable!(),
}
}
pub struct MemberParser {
builder: __lalrpop_util::lexer::MatcherBuilder,
_priv: (),
}
impl MemberParser {
pub fn new() -> MemberParser {
let __builder = super::__intern_token::new_builder();
MemberParser {
builder: __builder,
_priv: (),
}
}
#[allow(dead_code)]
pub fn parse<
'input,
>(
&self,
input: &'input str,
) -> Result<Box<Expression>, __lalrpop_util::ParseError<usize, Token<'input>, &'static str>>
{
let mut __tokens = self.builder.matcher(input);
__state_machine::Parser::drive(
__StateMachine {
input,
__phantom: ::std::marker::PhantomData::<(&())>,
},
__tokens,
)
}
}
pub(crate) fn __reduce<
'input,
>(
input: &'input str,
__action: i8,
__lookahead_start: Option<&usize>,
__states: &mut ::std::vec::Vec<i8>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> Option<Result<Box<Expression>,__lalrpop_util::ParseError<usize, Token<'input>, &'static str>>>
{
let (__pop_states, __nonterminal) = match __action {
0 => {
__reduce0(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
1 => {
__reduce1(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
2 => {
__reduce2(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
3 => {
__reduce3(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
4 => {
__reduce4(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
5 => {
__reduce5(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
6 => {
__reduce6(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
7 => {
__reduce7(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
8 => {
__reduce8(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
9 => {
__reduce9(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
10 => {
__reduce10(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
11 => {
__reduce11(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
12 => {
__reduce12(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
13 => {
__reduce13(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
14 => {
__reduce14(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
15 => {
__reduce15(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
16 => {
__reduce16(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
17 => {
__reduce17(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
18 => {
__reduce18(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
19 => {
__reduce19(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
20 => {
__reduce20(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
21 => {
__reduce21(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
22 => {
__reduce22(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
23 => {
__reduce23(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
24 => {
__reduce24(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
25 => {
__reduce25(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
26 => {
__reduce26(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
27 => {
__reduce27(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
28 => {
__reduce28(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
29 => {
__reduce29(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
30 => {
__reduce30(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
31 => {
__reduce31(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
32 => {
__reduce32(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
33 => {
__reduce33(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
34 => {
__reduce34(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
35 => {
__reduce35(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
36 => {
__reduce36(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
37 => {
__reduce37(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
38 => {
__reduce38(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
39 => {
__reduce39(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
40 => {
__reduce40(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
41 => {
__reduce41(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
42 => {
__reduce42(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
43 => {
__reduce43(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
44 => {
__reduce44(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
45 => {
__reduce45(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
46 => {
__reduce46(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
47 => {
__reduce47(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
48 => {
__reduce48(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
49 => {
__reduce49(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
50 => {
__reduce50(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
51 => {
__reduce51(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
52 => {
__reduce52(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
53 => {
__reduce53(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
54 => {
__reduce54(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
55 => {
__reduce55(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
56 => {
__reduce56(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
57 => {
__reduce57(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
58 => {
__reduce58(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
59 => {
__reduce59(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
60 => {
__reduce60(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
61 => {
__reduce61(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
62 => {
__reduce62(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
63 => {
__reduce63(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
64 => {
__reduce64(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
65 => {
__reduce65(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
66 => {
__reduce66(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
67 => {
__reduce67(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
68 => {
__reduce68(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
69 => {
__reduce69(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
70 => {
__reduce70(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
71 => {
__reduce71(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
72 => {
__reduce72(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
73 => {
__reduce73(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
74 => {
__reduce74(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
75 => {
__reduce75(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
76 => {
__reduce76(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
77 => {
__reduce77(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
78 => {
let __sym0 = __pop_Variant2(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action1::<>(input, __sym0);
return Some(Ok(__nt));
}
79 => {
__reduce79(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
_ => panic!("invalid action code {}", __action)
};
let __states_len = __states.len();
__states.truncate(__states_len - __pop_states);
let __state = *__states.last().unwrap();
let __next_state = __goto(__state, __nonterminal);
__states.push(__next_state);
None
}
#[inline(never)]
fn __symbol_type_mismatch() -> ! {
panic!("symbol type mismatch")
}
fn __pop_Variant6<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, (Box<Expression>, Box<Expression>), usize)
{
match __symbols.pop() {
Some((__l, __Symbol::Variant6(__v), __r)) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant4<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, (String, Box<Expression>), usize)
{
match __symbols.pop() {
Some((__l, __Symbol::Variant4(__v), __r)) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant8<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, ArithmeticOp, usize)
{
match __symbols.pop() {
Some((__l, __Symbol::Variant8(__v), __r)) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant2<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, Box<Expression>, usize)
{
match __symbols.pop() {
Some((__l, __Symbol::Variant2(__v), __r)) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant15<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, Literal, usize)
{
match __symbols.pop() {
Some((__l, __Symbol::Variant15(__v), __r)) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant18<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, RelationOp, usize)
{
match __symbols.pop() {
Some((__l, __Symbol::Variant18(__v), __r)) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant14<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, String, usize)
{
match __symbols.pop() {
Some((__l, __Symbol::Variant14(__v), __r)) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant19<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, UnaryOp, usize)
{
match __symbols.pop() {
Some((__l, __Symbol::Variant19(__v), __r)) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant11<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, Vec<(Box<Expression>, Box<Expression>)>, usize)
{
match __symbols.pop() {
Some((__l, __Symbol::Variant11(__v), __r)) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant10<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, Vec<(String, Box<Expression>)>, usize)
{
match __symbols.pop() {
Some((__l, __Symbol::Variant10(__v), __r)) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant9<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, Vec<Box<Expression>>, usize)
{
match __symbols.pop() {
Some((__l, __Symbol::Variant9(__v), __r)) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant17<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, i32, usize)
{
match __symbols.pop() {
Some((__l, __Symbol::Variant17(__v), __r)) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant16<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, ::std::option::Option<(Box<Expression>, Box<Expression>)>, usize)
{
match __symbols.pop() {
Some((__l, __Symbol::Variant16(__v), __r)) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant13<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, ::std::option::Option<(String, Box<Expression>)>, usize)
{
match __symbols.pop() {
Some((__l, __Symbol::Variant13(__v), __r)) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant12<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, ::std::option::Option<Box<Expression>>, usize)
{
match __symbols.pop() {
Some((__l, __Symbol::Variant12(__v), __r)) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant1<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, ::std::option::Option<&'input str>, usize)
{
match __symbols.pop() {
Some((__l, __Symbol::Variant1(__v), __r)) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant7<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, ::std::vec::Vec<(Box<Expression>, Box<Expression>)>, usize)
{
match __symbols.pop() {
Some((__l, __Symbol::Variant7(__v), __r)) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant5<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, ::std::vec::Vec<(String, Box<Expression>)>, usize)
{
match __symbols.pop() {
Some((__l, __Symbol::Variant5(__v), __r)) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant3<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, ::std::vec::Vec<Box<Expression>>, usize)
{
match __symbols.pop() {
Some((__l, __Symbol::Variant3(__v), __r)) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant0<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, &'input str, usize)
{
match __symbols.pop() {
Some((__l, __Symbol::Variant0(__v), __r)) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
pub(crate) fn __reduce0<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action45::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant1(__nt), __end));
(1, 0)
}
pub(crate) fn __reduce1<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
let __end = __start.clone();
let __nt = super::__action46::<>(input, &__start, &__end);
__symbols.push((__start, __Symbol::Variant1(__nt), __end));
(0, 0)
}
pub(crate) fn __reduce2<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 2);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant2(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action53::<>(input, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(2, 1)
}
pub(crate) fn __reduce3<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
let __end = __start.clone();
let __nt = super::__action51::<>(input, &__start, &__end);
__symbols.push((__start, __Symbol::Variant3(__nt), __end));
(0, 2)
}
pub(crate) fn __reduce4<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant3(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action52::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant3(__nt), __end));
(1, 2)
}
pub(crate) fn __reduce5<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 2);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant2(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action72::<>(input, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant3(__nt), __end));
(2, 3)
}
pub(crate) fn __reduce6<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 3);
let __sym2 = __pop_Variant0(__symbols);
let __sym1 = __pop_Variant2(__symbols);
let __sym0 = __pop_Variant3(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action73::<>(input, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant3(__nt), __end));
(3, 3)
}
pub(crate) fn __reduce7<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 2);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant4(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action58::<>(input, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant4(__nt), __end));
(2, 4)
}
pub(crate) fn __reduce8<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
let __end = __start.clone();
let __nt = super::__action56::<>(input, &__start, &__end);
__symbols.push((__start, __Symbol::Variant5(__nt), __end));
(0, 5)
}
pub(crate) fn __reduce9<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant5(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action57::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant5(__nt), __end));
(1, 5)
}
pub(crate) fn __reduce10<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 2);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant4(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action76::<>(input, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant5(__nt), __end));
(2, 6)
}
pub(crate) fn __reduce11<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 3);
let __sym2 = __pop_Variant0(__symbols);
let __sym1 = __pop_Variant4(__symbols);
let __sym0 = __pop_Variant5(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action77::<>(input, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant5(__nt), __end));
(3, 6)
}
pub(crate) fn __reduce12<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 2);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant6(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action63::<>(input, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant6(__nt), __end));
(2, 7)
}
pub(crate) fn __reduce13<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
let __end = __start.clone();
let __nt = super::__action61::<>(input, &__start, &__end);
__symbols.push((__start, __Symbol::Variant7(__nt), __end));
(0, 8)
}
pub(crate) fn __reduce14<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant7(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action62::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant7(__nt), __end));
(1, 8)
}
pub(crate) fn __reduce15<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 2);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant6(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action80::<>(input, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant7(__nt), __end));
(2, 9)
}
pub(crate) fn __reduce16<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 3);
let __sym2 = __pop_Variant0(__symbols);
let __sym1 = __pop_Variant6(__symbols);
let __sym0 = __pop_Variant7(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action81::<>(input, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant7(__nt), __end));
(3, 9)
}
pub(crate) fn __reduce17<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action24::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant8(__nt), __end));
(1, 10)
}
pub(crate) fn __reduce18<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action25::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant8(__nt), __end));
(1, 10)
}
pub(crate) fn __reduce19<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action26::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant8(__nt), __end));
(1, 10)
}
pub(crate) fn __reduce20<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action27::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant8(__nt), __end));
(1, 10)
}
pub(crate) fn __reduce21<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action28::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant8(__nt), __end));
(1, 10)
}
pub(crate) fn __reduce22<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant2(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action84::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant9(__nt), __end));
(1, 11)
}
pub(crate) fn __reduce23<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
let __end = __start.clone();
let __nt = super::__action85::<>(input, &__start, &__end);
__symbols.push((__start, __Symbol::Variant9(__nt), __end));
(0, 11)
}
pub(crate) fn __reduce24<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 2);
let __sym1 = __pop_Variant2(__symbols);
let __sym0 = __pop_Variant3(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action86::<>(input, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant9(__nt), __end));
(2, 11)
}
pub(crate) fn __reduce25<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant3(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action87::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant9(__nt), __end));
(1, 11)
}
pub(crate) fn __reduce26<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant4(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action88::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant10(__nt), __end));
(1, 12)
}
pub(crate) fn __reduce27<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
let __end = __start.clone();
let __nt = super::__action89::<>(input, &__start, &__end);
__symbols.push((__start, __Symbol::Variant10(__nt), __end));
(0, 12)
}
pub(crate) fn __reduce28<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 2);
let __sym1 = __pop_Variant4(__symbols);
let __sym0 = __pop_Variant5(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action90::<>(input, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant10(__nt), __end));
(2, 12)
}
pub(crate) fn __reduce29<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant5(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action91::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant10(__nt), __end));
(1, 12)
}
pub(crate) fn __reduce30<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant6(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action92::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant11(__nt), __end));
(1, 13)
}
pub(crate) fn __reduce31<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
let __end = __start.clone();
let __nt = super::__action93::<>(input, &__start, &__end);
__symbols.push((__start, __Symbol::Variant11(__nt), __end));
(0, 13)
}
pub(crate) fn __reduce32<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 2);
let __sym1 = __pop_Variant6(__symbols);
let __sym0 = __pop_Variant7(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action94::<>(input, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant11(__nt), __end));
(2, 13)
}
pub(crate) fn __reduce33<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant7(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action95::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant11(__nt), __end));
(1, 13)
}
pub(crate) fn __reduce34<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 3);
let __sym2 = __pop_Variant2(__symbols);
let __sym1 = __pop_Variant8(__symbols);
let __sym0 = __pop_Variant2(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action5::<>(input, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(3, 14)
}
pub(crate) fn __reduce35<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 3);
let __sym2 = __pop_Variant2(__symbols);
let __sym1 = __pop_Variant18(__symbols);
let __sym0 = __pop_Variant2(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action6::<>(input, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(3, 14)
}
pub(crate) fn __reduce36<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 5);
let __sym4 = __pop_Variant2(__symbols);
let __sym3 = __pop_Variant0(__symbols);
let __sym2 = __pop_Variant2(__symbols);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant2(__symbols);
let __start = __sym0.0.clone();
let __end = __sym4.2.clone();
let __nt = super::__action7::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(5, 14)
}
pub(crate) fn __reduce37<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 3);
let __sym2 = __pop_Variant2(__symbols);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant2(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action8::<>(input, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(3, 14)
}
pub(crate) fn __reduce38<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 3);
let __sym2 = __pop_Variant2(__symbols);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant2(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action9::<>(input, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(3, 14)
}
pub(crate) fn __reduce39<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 2);
let __sym1 = __pop_Variant2(__symbols);
let __sym0 = __pop_Variant19(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action10::<>(input, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(2, 14)
}
pub(crate) fn __reduce40<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant2(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action11::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(1, 14)
}
pub(crate) fn __reduce41<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant2(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action49::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant12(__nt), __end));
(1, 15)
}
pub(crate) fn __reduce42<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
let __end = __start.clone();
let __nt = super::__action50::<>(input, &__start, &__end);
__symbols.push((__start, __Symbol::Variant12(__nt), __end));
(0, 15)
}
pub(crate) fn __reduce43<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 3);
let __sym2 = __pop_Variant2(__symbols);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant14(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action22::<>(input, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant4(__nt), __end));
(3, 16)
}
pub(crate) fn __reduce44<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant4(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action54::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant13(__nt), __end));
(1, 17)
}
pub(crate) fn __reduce45<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
let __end = __start.clone();
let __nt = super::__action55::<>(input, &__start, &__end);
__symbols.push((__start, __Symbol::Variant13(__nt), __end));
(0, 17)
}
pub(crate) fn __reduce46<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action43::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant14(__nt), __end));
(1, 18)
}
pub(crate) fn __reduce47<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action40::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant15(__nt), __end));
(1, 19)
}
pub(crate) fn __reduce48<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action41::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant15(__nt), __end));
(1, 19)
}
pub(crate) fn __reduce49<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 3);
let __sym2 = __pop_Variant2(__symbols);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant2(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action23::<>(input, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant6(__nt), __end));
(3, 20)
}
pub(crate) fn __reduce50<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant6(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action59::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant16(__nt), __end));
(1, 21)
}
pub(crate) fn __reduce51<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
let __end = __start.clone();
let __nt = super::__action60::<>(input, &__start, &__end);
__symbols.push((__start, __Symbol::Variant16(__nt), __end));
(0, 21)
}
pub(crate) fn __reduce52<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant2(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action12::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(1, 22)
}
pub(crate) fn __reduce53<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 3);
let __sym2 = __pop_Variant14(__symbols);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant2(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action13::<>(input, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(3, 22)
}
pub(crate) fn __reduce54<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 6);
let __sym5 = __pop_Variant0(__symbols);
let __sym4 = __pop_Variant9(__symbols);
let __sym3 = __pop_Variant0(__symbols);
let __sym2 = __pop_Variant14(__symbols);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant2(__symbols);
let __start = __sym0.0.clone();
let __end = __sym5.2.clone();
let __nt = super::__action14::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(6, 22)
}
pub(crate) fn __reduce55<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 4);
let __sym3 = __pop_Variant0(__symbols);
let __sym2 = __pop_Variant2(__symbols);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant2(__symbols);
let __start = __sym0.0.clone();
let __end = __sym3.2.clone();
let __nt = super::__action15::<>(input, __sym0, __sym1, __sym2, __sym3);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(4, 22)
}
pub(crate) fn __reduce56<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 4);
let __sym3 = __pop_Variant0(__symbols);
let __sym2 = __pop_Variant10(__symbols);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant2(__symbols);
let __start = __sym0.0.clone();
let __end = __sym3.2.clone();
let __nt = super::__action16::<>(input, __sym0, __sym1, __sym2, __sym3);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(4, 22)
}
pub(crate) fn __reduce57<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action42::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant17(__nt), __end));
(1, 23)
}
pub(crate) fn __reduce58<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 2);
let __sym1 = __pop_Variant14(__symbols);
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action70::<>(input, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(2, 24)
}
pub(crate) fn __reduce59<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant14(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action71::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(1, 24)
}
pub(crate) fn __reduce60<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant15(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action18::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(1, 24)
}
pub(crate) fn __reduce61<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 3);
let __sym2 = __pop_Variant0(__symbols);
let __sym1 = __pop_Variant9(__symbols);
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action19::<>(input, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(3, 24)
}
pub(crate) fn __reduce62<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 3);
let __sym2 = __pop_Variant0(__symbols);
let __sym1 = __pop_Variant11(__symbols);
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action20::<>(input, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(3, 24)
}
pub(crate) fn __reduce63<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 3);
let __sym2 = __pop_Variant0(__symbols);
let __sym1 = __pop_Variant2(__symbols);
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action21::<>(input, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(3, 24)
}
pub(crate) fn __reduce64<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action33::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant18(__nt), __end));
(1, 25)
}
pub(crate) fn __reduce65<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action34::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant18(__nt), __end));
(1, 25)
}
pub(crate) fn __reduce66<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action35::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant18(__nt), __end));
(1, 25)
}
pub(crate) fn __reduce67<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action36::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant18(__nt), __end));
(1, 25)
}
pub(crate) fn __reduce68<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action37::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant18(__nt), __end));
(1, 25)
}
pub(crate) fn __reduce69<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action38::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant18(__nt), __end));
(1, 25)
}
pub(crate) fn __reduce70<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action39::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant18(__nt), __end));
(1, 25)
}
pub(crate) fn __reduce71<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action29::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant19(__nt), __end));
(1, 26)
}
pub(crate) fn __reduce72<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action30::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant19(__nt), __end));
(1, 26)
}
pub(crate) fn __reduce73<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action31::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant19(__nt), __end));
(1, 26)
}
pub(crate) fn __reduce74<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action32::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant19(__nt), __end));
(1, 26)
}
pub(crate) fn __reduce75<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant2(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action0::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(1, 27)
}
pub(crate) fn __reduce76<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant4(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action3::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant4(__nt), __end));
(1, 28)
}
pub(crate) fn __reduce77<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant6(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action4::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant6(__nt), __end));
(1, 29)
}
pub(crate) fn __reduce79<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant2(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action2::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(1, 31)
}
}
pub use self::__parse__Member::MemberParser;
#[cfg_attr(rustfmt, rustfmt_skip)]
mod __parse__Primary {
#![allow(non_snake_case, non_camel_case_types, unused_mut, unused_variables, unused_imports, unused_parens)]
use std::str::FromStr;
use crate::ast::{RelationOp, ArithmeticOp, Expression, UnaryOp, Member, Literal};
#[allow(unused_extern_crates)]
extern crate lalrpop_util as __lalrpop_util;
#[allow(unused_imports)]
use self::__lalrpop_util::state_machine as __state_machine;
use self::__lalrpop_util::lexer::Token;
#[allow(dead_code)]
pub enum __Symbol<'input>
{
Variant0(&'input str),
Variant1(::std::option::Option<&'input str>),
Variant2(Box<Expression>),
Variant3(::std::vec::Vec<Box<Expression>>),
Variant4((String, Box<Expression>)),
Variant5(::std::vec::Vec<(String, Box<Expression>)>),
Variant6((Box<Expression>, Box<Expression>)),
Variant7(::std::vec::Vec<(Box<Expression>, Box<Expression>)>),
Variant8(ArithmeticOp),
Variant9(Vec<Box<Expression>>),
Variant10(Vec<(String, Box<Expression>)>),
Variant11(Vec<(Box<Expression>, Box<Expression>)>),
Variant12(::std::option::Option<Box<Expression>>),
Variant13(::std::option::Option<(String, Box<Expression>)>),
Variant14(String),
Variant15(Literal),
Variant16(::std::option::Option<(Box<Expression>, Box<Expression>)>),
Variant17(i32),
Variant18(RelationOp),
Variant19(UnaryOp),
}
const __ACTION: &[i8] = &[
0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 5, 0, 0, 32, 33, 34,
37, 38, 0, 0, 0, 2, 0, 0, 0, 0, 39, 40, 3, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 5, 0, 0, 32, 33, 34,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34,
37, 38, 0, 0, 0, 2, 0, 0, 0, 0, 39, 40, 3, 0, 0, 0, 0, 0, 0, 0, 0, 4, -24, 0, 5, 0, 0, 32, 33, 34,
37, 38, 0, 0, 0, 2, 0, 0, 0, 0, 39, 40, 3, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 5, 0, -32, 32, 33, 34,
0, 0, 45, 46, 14, 0, 47, 48, 49, 0, 50, 0, 0, 51, 0, 52, 53, 54, 55, 56, 15, 0, 0, 57, 0, 16, 0, 0, 0, 0,
0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 5, 0, 0, 32, 33, 34,
37, 38, 0, 0, 0, 2, -26, 0, 0, 0, 39, 40, 3, 0, 0, 0, 0, 0, 0, 0, 0, 4, -26, 0, 5, 0, 0, 32, 33, 34,
0, 0, 45, 46, 14, 0, -23, 48, 49, 60, 50, 0, 0, 51, 0, 52, 53, 54, 55, 56, 15, 0, -23, 57, 0, 16, 0, 0, 0, 0,
37, 38, 0, 0, 0, 2, 0, 0, 0, 0, 39, 40, 3, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 5, 0, -34, 32, 33, 34,
0, 0, 45, 46, 14, 0, 0, 48, 49, 0, 50, 0, 0, 51, 21, 52, 53, 54, 55, 56, 15, 0, 0, 57, 0, 16, 0, 0, 0, 0,
0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 5, 0, 0, 32, 33, 34,
0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 5, 0, 0, 32, 33, 34,
0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 5, 0, 0, 32, 33, 34,
0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 5, 0, 0, 32, 33, 34,
0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 5, 0, 0, 32, 33, 34,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34,
37, 38, 0, 0, 0, 2, 0, 0, 0, 0, 39, 40, 3, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 5, 0, 0, 32, 33, 34,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -28, 0, 0, 34,
0, 0, 45, 46, 14, 0, -25, 48, 49, 73, 50, 0, 0, 51, 0, 52, 53, 54, 55, 56, 15, 0, -25, 57, 0, 16, 0, 0, 0, 0,
37, 38, 0, 0, 0, 2, 0, 0, 0, 0, 39, 40, 3, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 5, 0, 0, 32, 33, 34,
0, 0, 45, 46, 14, 0, 0, 48, 49, 0, 50, 0, 0, 51, 0, 52, 53, 54, 55, 56, 15, 0, 75, 57, 0, 16, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -30, 0, 0, 34,
0, 0, 45, 46, 14, 0, 0, 48, 49, -50, 50, 0, 0, 51, 0, 52, 53, 54, 55, 56, 15, 0, 0, 57, 0, 16, -50, 0, 0, 0,
0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 5, 0, 0, 32, 33, 34,
37, 38, 0, 0, 0, 2, -24, 0, 0, 0, 39, 40, 3, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 5, 0, 0, 32, 33, 34,
37, 38, 0, 0, 0, 2, 0, 0, 0, 0, 39, 40, 3, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 5, 0, 0, 32, 33, 34,
0, 0, 45, 46, 14, 0, 0, 48, 49, -44, 50, 0, 0, 51, 0, 52, 53, 54, 55, 56, 15, 0, 0, 57, 0, 16, -44, 0, 0, 0,
0, 0, -60, -60, -60, 0, -60, -60, -60, -60, -60, 0, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, 0, 0, 0,
0, 0, -61, -61, -61, 0, -61, -61, -61, -61, -61, 0, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, -48, -48, -48, 0, -48, -48, -48, -48, -48, 0, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, 0, 0, 0,
0, 0, -49, -49, -49, 0, -49, -49, -49, -49, -49, 0, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, 0, 0, 0,
0, 0, -47, -47, -47, -47, -47, -47, -47, -47, -47, 0, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, 0, 0, 0,
0, 0, -41, -41, -41, 0, -41, -41, -41, -41, -41, 0, 17, -41, -41, -41, -41, -41, -41, -41, -41, 18, -41, -41, 19, -41, -41, 0, 0, 0,
0, 0, -53, -53, -53, 0, -53, -53, -53, -53, -53, 0, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, 0, 0, 0,
0, 0, 0, 0, 0, -72, 0, 0, 0, 0, 0, 0, -72, 0, 0, 0, 0, 0, 0, 0, 0, -72, 0, 0, -72, 0, 0, -72, -72, -72,
0, 0, 0, 0, 0, -73, 0, 0, 0, 0, 0, 0, -73, 0, 0, 0, 0, 0, 0, 0, 0, -73, 0, 0, -73, 0, 0, -73, -73, -73,
0, 0, 0, 0, 0, -74, 0, 0, 0, 0, 0, 0, -74, 0, 0, 0, 0, 0, 0, 0, 0, -74, 0, 0, -74, 0, 0, -74, -74, -74,
0, 0, 0, 0, 0, -75, 0, 0, 0, 0, 0, 0, -75, 0, 0, 0, 0, 0, 0, 0, 0, -75, 0, 0, -75, 0, 0, -75, -75, -75,
0, 0, -59, -59, -59, 0, -59, -59, -59, -59, -59, 0, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -31, 0, 0, 0,
0, 0, 0, 0, 0, -70, 0, 0, 0, 0, 0, 0, -70, 0, 0, 0, 0, 0, 0, 0, 0, -70, 0, 0, -70, 0, 0, -70, -70, -70,
0, 0, 0, 0, 0, -22, 0, 0, 0, 0, 0, 0, -22, 0, 0, 0, 0, 0, 0, 0, 0, -22, 0, 0, -22, 0, 0, -22, -22, -22,
0, 0, -64, -64, -64, 0, -64, -64, -64, -64, -64, 0, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, 0, 0, 0,
0, 0, 0, 0, 0, -20, 0, 0, 0, 0, 0, 0, -20, 0, 0, 0, 0, 0, 0, 0, 0, -20, 0, 0, -20, 0, 0, -20, -20, -20,
0, 0, 0, 0, 0, -18, 0, 0, 0, 0, 0, 0, -18, 0, 0, 0, 0, 0, 0, 0, 0, -18, 0, 0, -18, 0, 0, -18, -18, -18,
0, 0, 0, 0, 0, -19, 0, 0, 0, 0, 0, 0, -19, 0, 0, 0, 0, 0, 0, 0, 0, -19, 0, 0, -19, 0, 0, -19, -19, -19,
0, 0, 0, 0, 0, -21, 0, 0, 0, 0, 0, 0, -21, 0, 0, 0, 0, 0, 0, 0, 0, -21, 0, 0, -21, 0, 0, -21, -21, -21,
0, 0, 0, 0, 0, -65, 0, 0, 0, 0, 0, 0, -65, 0, 0, 0, 0, 0, 0, 0, 0, -65, 0, 0, -65, 0, 0, -65, -65, -65,
0, 0, 0, 0, 0, -66, 0, 0, 0, 0, 0, 0, -66, 0, 0, 0, 0, 0, 0, 0, 0, -66, 0, 0, -66, 0, 0, -66, -66, -66,
0, 0, 0, 0, 0, -69, 0, 0, 0, 0, 0, 0, -69, 0, 0, 0, 0, 0, 0, 0, 0, -69, 0, 0, -69, 0, 0, -69, -69, -69,
0, 0, 0, 0, 0, -67, 0, 0, 0, 0, 0, 0, -67, 0, 0, 0, 0, 0, 0, 0, 0, -67, 0, 0, -67, 0, 0, -67, -67, -67,
0, 0, 0, 0, 0, -68, 0, 0, 0, 0, 0, 0, -68, 0, 0, 0, 0, 0, 0, 0, 0, -68, 0, 0, -68, 0, 0, -68, -68, -68,
0, 0, 0, 0, 0, -71, 0, 0, 0, 0, 0, 0, -71, 0, 0, 0, 0, 0, 0, 0, 0, -71, 0, 0, -71, 0, 0, -71, -71, -71,
0, 0, -40, -40, -40, 0, -40, -40, -40, -40, -40, 0, 0, -40, -40, -40, -40, -40, -40, -40, -40, 0, -40, -40, 0, -40, -40, 0, 0, 0,
0, 0, -62, -62, -62, 0, -62, -62, -62, -62, -62, 0, -62, -62, -62, -62, -62, -62, -62, -62, -62, -62, -62, -62, -62, -62, -62, 0, 0, 0,
-6, -6, 0, 0, 0, -6, -6, 0, 0, 0, -6, -6, -6, 0, 0, 0, 0, 0, 0, 0, 0, -6, -6, 0, -6, 0, 0, -6, -6, -6,
0, 0, 0, 0, 0, 0, 0, 0, 0, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -33, 0, 0, 0,
0, 0, -63, -63, -63, 0, -63, -63, -63, -63, -63, 0, -63, -63, -63, -63, -63, -63, -63, -63, -63, -63, -63, -63, -63, -63, -63, 0, 0, 0,
-16, -16, 0, 0, 0, -16, 0, 0, 0, 0, -16, -16, -16, 0, 0, 0, 0, 0, 0, 0, 0, -16, 0, 0, -16, 0, -16, -16, -16, -16,
0, 0, -35, -35, -35, 0, -35, -35, -35, -35, -35, 0, 0, -35, -35, -35, -35, -35, -35, -35, -35, 0, -35, -35, 0, -35, -35, 0, 0, 0,
0, 0, -36, -36, -36, 0, -36, -36, -36, -36, -36, 0, 0, -36, -36, -36, -36, -36, -36, -36, -36, 0, -36, -36, 0, -36, -36, 0, 0, 0,
0, 0, -39, -39, -39, 0, -39, -39, -39, -39, -39, 0, 0, -39, -39, -39, -39, -39, -39, -39, -39, 0, -39, -39, 0, -39, -39, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, -38, -38, -38, 0, -38, -38, -38, -38, -38, 0, 0, -38, -38, -38, -38, -38, -38, -38, -38, 0, -38, -38, 0, -38, -38, 0, 0, 0,
0, 0, -54, -54, -54, 26, -54, -54, -54, -54, -54, 0, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -27, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, -7, 0, 0, 0, -7, -7, 0, 0, 0, -7, -7, -7, 0, 0, 0, 0, 0, 0, 0, 0, -7, -7, 0, -7, 0, 0, -7, -7, -7,
-17, -17, 0, 0, 0, -17, 0, 0, 0, 0, -17, -17, -17, 0, 0, 0, 0, 0, 0, 0, 0, -17, 0, 0, -17, 0, -17, -17, -17, -17,
0, 0, -56, -56, -56, 0, -56, -56, -56, -56, -56, 0, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -29, 0, 0, 0,
0, 0, -57, -57, -57, 0, -57, -57, -57, -57, -57, 0, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -11, 0, 0, -11,
0, 0, -37, -37, -37, 0, -37, -37, -37, -37, -37, 0, 0, -37, -37, -37, -37, -37, -37, -37, -37, 0, -37, -37, 0, -37, -37, 0, 0, 0,
0, 0, 0, 0, 0, 0, 82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -12, 0, 0, -12,
0, 0, -55, -55, -55, 0, -55, -55, -55, -55, -55, 0, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, 0, 0, 0,
];
fn __action(state: i8, integer: usize) -> i8 {
__ACTION[(state as usize) * 30 + integer]
}
const __EOF_ACTION: &[i8] = &[
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
-60,
-61,
-80,
-48,
-49,
-47,
0,
0,
0,
0,
0,
0,
-59,
0,
0,
0,
0,
0,
-64,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
-62,
0,
0,
-63,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
];
fn __goto(state: i8, nt: usize) -> i8 {
match nt {
3 => 7,
6 => 22,
9 => 9,
10 => 11,
11 => match state {
25 => 79,
_ => 41,
},
12 => 69,
13 => 42,
14 => match state {
1 => 5,
4 | 9 => 10,
7 => 19,
17 => 21,
20 => 23,
26 => 27,
_ => 8,
},
16 => match state {
22 => 75,
_ => 70,
},
18 => match state {
2 => 40,
16 => 68,
18 | 22 => 71,
_ => 28,
},
19 => 29,
20 => match state {
9 => 60,
_ => 43,
},
22 => 34,
24 => match state {
0 => 30,
6 => 57,
11 => 63,
12 => 64,
13 => 65,
14 => 66,
15 => 67,
24 => 78,
_ => 35,
},
25 => 12,
26 => 6,
_ => 0,
}
}
fn __expected_tokens(__state: i8) -> Vec<::std::string::String> {
const __TERMINAL: &[&str] = &[
r###""!""###,
r###""!!""###,
r###""!=""###,
r###""%""###,
r###""&&""###,
r###""(""###,
r###"")""###,
r###""*""###,
r###""+""###,
r###"",""###,
r###""-""###,
r###""--""###,
r###"".""###,
r###""/""###,
r###"":""###,
r###""<""###,
r###""<=""###,
r###""==""###,
r###"">""###,
r###"">=""###,
r###""?""###,
r###""[""###,
r###""]""###,
r###""in""###,
r###""{""###,
r###""||""###,
r###""}""###,
r###"r#"[0-9]+"#"###,
r###"r#"[0-9]+ [uU]"#"###,
r###"r#"[_a-zA-Z][_a-zA-Z0-9]*"#"###,
];
__TERMINAL.iter().enumerate().filter_map(|(index, terminal)| {
let next_state = __action(__state, index);
if next_state == 0 {
None
} else {
Some(terminal.to_string())
}
}).collect()
}
pub struct __StateMachine<'input>
where
{
input: &'input str,
__phantom: ::std::marker::PhantomData<(&'input ())>,
}
impl<'input> __state_machine::ParserDefinition for __StateMachine<'input>
where
{
type Location = usize;
type Error = &'static str;
type Token = Token<'input>;
type TokenIndex = usize;
type Symbol = __Symbol<'input>;
type Success = Box<Expression>;
type StateIndex = i8;
type Action = i8;
type ReduceIndex = i8;
type NonterminalIndex = usize;
#[inline]
fn start_location(&self) -> Self::Location {
Default::default()
}
#[inline]
fn start_state(&self) -> Self::StateIndex {
0
}
#[inline]
fn token_to_index(&self, token: &Self::Token) -> Option<usize> {
__token_to_integer(token, ::std::marker::PhantomData::<(&())>)
}
#[inline]
fn action(&self, state: i8, integer: usize) -> i8 {
__action(state, integer)
}
#[inline]
fn error_action(&self, state: i8) -> i8 {
__action(state, 30 - 1)
}
#[inline]
fn eof_action(&self, state: i8) -> i8 {
__EOF_ACTION[state as usize]
}
#[inline]
fn goto(&self, state: i8, nt: usize) -> i8 {
__goto(state, nt)
}
fn token_to_symbol(&self, token_index: usize, token: Self::Token) -> Self::Symbol {
__token_to_symbol(token_index, token, ::std::marker::PhantomData::<(&())>)
}
fn expected_tokens(&self, state: i8) -> Vec<String> {
__expected_tokens(state)
}
#[inline]
fn uses_error_recovery(&self) -> bool {
false
}
#[inline]
fn error_recovery_symbol(
&self,
recovery: __state_machine::ErrorRecovery<Self>,
) -> Self::Symbol {
panic!("error recovery not enabled for this grammar")
}
fn reduce(
&mut self,
action: i8,
start_location: Option<&Self::Location>,
states: &mut Vec<i8>,
symbols: &mut Vec<__state_machine::SymbolTriple<Self>>,
) -> Option<__state_machine::ParseResult<Self>> {
__reduce(
self.input,
action,
start_location,
states,
symbols,
::std::marker::PhantomData::<(&())>,
)
}
fn simulate_reduce(&self, action: i8) -> __state_machine::SimulatedReduce<Self> {
panic!("error recovery not enabled for this grammar")
}
}
fn __token_to_integer<
'input,
>(
__token: &Token<'input>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> Option<usize>
{
match *__token {
Token(3, _) if true => Some(0),
Token(4, _) if true => Some(1),
Token(5, _) if true => Some(2),
Token(6, _) if true => Some(3),
Token(7, _) if true => Some(4),
Token(8, _) if true => Some(5),
Token(9, _) if true => Some(6),
Token(10, _) if true => Some(7),
Token(11, _) if true => Some(8),
Token(12, _) if true => Some(9),
Token(13, _) if true => Some(10),
Token(14, _) if true => Some(11),
Token(15, _) if true => Some(12),
Token(16, _) if true => Some(13),
Token(17, _) if true => Some(14),
Token(18, _) if true => Some(15),
Token(19, _) if true => Some(16),
Token(20, _) if true => Some(17),
Token(21, _) if true => Some(18),
Token(22, _) if true => Some(19),
Token(23, _) if true => Some(20),
Token(24, _) if true => Some(21),
Token(25, _) if true => Some(22),
Token(26, _) if true => Some(23),
Token(27, _) if true => Some(24),
Token(28, _) if true => Some(25),
Token(29, _) if true => Some(26),
Token(0, _) if true => Some(27),
Token(1, _) if true => Some(28),
Token(2, _) if true => Some(29),
_ => None,
}
}
fn __token_to_symbol<
'input,
>(
__token_index: usize,
__token: Token<'input>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> __Symbol<'input>
{
match __token_index {
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 => match __token {
Token(3, __tok0) | Token(4, __tok0) | Token(5, __tok0) | Token(6, __tok0) | Token(7, __tok0) | Token(8, __tok0) | Token(9, __tok0) | Token(10, __tok0) | Token(11, __tok0) | Token(12, __tok0) | Token(13, __tok0) | Token(14, __tok0) | Token(15, __tok0) | Token(16, __tok0) | Token(17, __tok0) | Token(18, __tok0) | Token(19, __tok0) | Token(20, __tok0) | Token(21, __tok0) | Token(22, __tok0) | Token(23, __tok0) | Token(24, __tok0) | Token(25, __tok0) | Token(26, __tok0) | Token(27, __tok0) | Token(28, __tok0) | Token(29, __tok0) | Token(0, __tok0) | Token(1, __tok0) | Token(2, __tok0) if true => __Symbol::Variant0(__tok0),
_ => unreachable!(),
},
_ => unreachable!(),
}
}
pub struct PrimaryParser {
builder: __lalrpop_util::lexer::MatcherBuilder,
_priv: (),
}
impl PrimaryParser {
pub fn new() -> PrimaryParser {
let __builder = super::__intern_token::new_builder();
PrimaryParser {
builder: __builder,
_priv: (),
}
}
#[allow(dead_code)]
pub fn parse<
'input,
>(
&self,
input: &'input str,
) -> Result<Box<Expression>, __lalrpop_util::ParseError<usize, Token<'input>, &'static str>>
{
let mut __tokens = self.builder.matcher(input);
__state_machine::Parser::drive(
__StateMachine {
input,
__phantom: ::std::marker::PhantomData::<(&())>,
},
__tokens,
)
}
}
pub(crate) fn __reduce<
'input,
>(
input: &'input str,
__action: i8,
__lookahead_start: Option<&usize>,
__states: &mut ::std::vec::Vec<i8>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> Option<Result<Box<Expression>,__lalrpop_util::ParseError<usize, Token<'input>, &'static str>>>
{
let (__pop_states, __nonterminal) = match __action {
0 => {
__reduce0(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
1 => {
__reduce1(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
2 => {
__reduce2(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
3 => {
__reduce3(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
4 => {
__reduce4(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
5 => {
__reduce5(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
6 => {
__reduce6(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
7 => {
__reduce7(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
8 => {
__reduce8(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
9 => {
__reduce9(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
10 => {
__reduce10(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
11 => {
__reduce11(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
12 => {
__reduce12(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
13 => {
__reduce13(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
14 => {
__reduce14(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
15 => {
__reduce15(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
16 => {
__reduce16(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
17 => {
__reduce17(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
18 => {
__reduce18(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
19 => {
__reduce19(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
20 => {
__reduce20(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
21 => {
__reduce21(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
22 => {
__reduce22(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
23 => {
__reduce23(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
24 => {
__reduce24(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
25 => {
__reduce25(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
26 => {
__reduce26(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
27 => {
__reduce27(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
28 => {
__reduce28(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
29 => {
__reduce29(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
30 => {
__reduce30(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
31 => {
__reduce31(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
32 => {
__reduce32(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
33 => {
__reduce33(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
34 => {
__reduce34(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
35 => {
__reduce35(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
36 => {
__reduce36(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
37 => {
__reduce37(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
38 => {
__reduce38(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
39 => {
__reduce39(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
40 => {
__reduce40(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
41 => {
__reduce41(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
42 => {
__reduce42(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
43 => {
__reduce43(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
44 => {
__reduce44(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
45 => {
__reduce45(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
46 => {
__reduce46(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
47 => {
__reduce47(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
48 => {
__reduce48(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
49 => {
__reduce49(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
50 => {
__reduce50(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
51 => {
__reduce51(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
52 => {
__reduce52(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
53 => {
__reduce53(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
54 => {
__reduce54(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
55 => {
__reduce55(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
56 => {
__reduce56(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
57 => {
__reduce57(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
58 => {
__reduce58(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
59 => {
__reduce59(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
60 => {
__reduce60(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
61 => {
__reduce61(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
62 => {
__reduce62(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
63 => {
__reduce63(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
64 => {
__reduce64(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
65 => {
__reduce65(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
66 => {
__reduce66(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
67 => {
__reduce67(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
68 => {
__reduce68(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
69 => {
__reduce69(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
70 => {
__reduce70(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
71 => {
__reduce71(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
72 => {
__reduce72(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
73 => {
__reduce73(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
74 => {
__reduce74(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
75 => {
__reduce75(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
76 => {
__reduce76(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
77 => {
__reduce77(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
78 => {
__reduce78(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
79 => {
let __sym0 = __pop_Variant2(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action2::<>(input, __sym0);
return Some(Ok(__nt));
}
_ => panic!("invalid action code {}", __action)
};
let __states_len = __states.len();
__states.truncate(__states_len - __pop_states);
let __state = *__states.last().unwrap();
let __next_state = __goto(__state, __nonterminal);
__states.push(__next_state);
None
}
#[inline(never)]
fn __symbol_type_mismatch() -> ! {
panic!("symbol type mismatch")
}
fn __pop_Variant6<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, (Box<Expression>, Box<Expression>), usize)
{
match __symbols.pop() {
Some((__l, __Symbol::Variant6(__v), __r)) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant4<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, (String, Box<Expression>), usize)
{
match __symbols.pop() {
Some((__l, __Symbol::Variant4(__v), __r)) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant8<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, ArithmeticOp, usize)
{
match __symbols.pop() {
Some((__l, __Symbol::Variant8(__v), __r)) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant2<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, Box<Expression>, usize)
{
match __symbols.pop() {
Some((__l, __Symbol::Variant2(__v), __r)) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant15<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, Literal, usize)
{
match __symbols.pop() {
Some((__l, __Symbol::Variant15(__v), __r)) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant18<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, RelationOp, usize)
{
match __symbols.pop() {
Some((__l, __Symbol::Variant18(__v), __r)) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant14<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, String, usize)
{
match __symbols.pop() {
Some((__l, __Symbol::Variant14(__v), __r)) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant19<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, UnaryOp, usize)
{
match __symbols.pop() {
Some((__l, __Symbol::Variant19(__v), __r)) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant11<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, Vec<(Box<Expression>, Box<Expression>)>, usize)
{
match __symbols.pop() {
Some((__l, __Symbol::Variant11(__v), __r)) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant10<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, Vec<(String, Box<Expression>)>, usize)
{
match __symbols.pop() {
Some((__l, __Symbol::Variant10(__v), __r)) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant9<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, Vec<Box<Expression>>, usize)
{
match __symbols.pop() {
Some((__l, __Symbol::Variant9(__v), __r)) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant17<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, i32, usize)
{
match __symbols.pop() {
Some((__l, __Symbol::Variant17(__v), __r)) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant16<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, ::std::option::Option<(Box<Expression>, Box<Expression>)>, usize)
{
match __symbols.pop() {
Some((__l, __Symbol::Variant16(__v), __r)) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant13<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, ::std::option::Option<(String, Box<Expression>)>, usize)
{
match __symbols.pop() {
Some((__l, __Symbol::Variant13(__v), __r)) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant12<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, ::std::option::Option<Box<Expression>>, usize)
{
match __symbols.pop() {
Some((__l, __Symbol::Variant12(__v), __r)) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant1<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, ::std::option::Option<&'input str>, usize)
{
match __symbols.pop() {
Some((__l, __Symbol::Variant1(__v), __r)) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant7<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, ::std::vec::Vec<(Box<Expression>, Box<Expression>)>, usize)
{
match __symbols.pop() {
Some((__l, __Symbol::Variant7(__v), __r)) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant5<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, ::std::vec::Vec<(String, Box<Expression>)>, usize)
{
match __symbols.pop() {
Some((__l, __Symbol::Variant5(__v), __r)) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant3<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, ::std::vec::Vec<Box<Expression>>, usize)
{
match __symbols.pop() {
Some((__l, __Symbol::Variant3(__v), __r)) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant0<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, &'input str, usize)
{
match __symbols.pop() {
Some((__l, __Symbol::Variant0(__v), __r)) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
pub(crate) fn __reduce0<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action45::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant1(__nt), __end));
(1, 0)
}
pub(crate) fn __reduce1<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
let __end = __start.clone();
let __nt = super::__action46::<>(input, &__start, &__end);
__symbols.push((__start, __Symbol::Variant1(__nt), __end));
(0, 0)
}
pub(crate) fn __reduce2<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 2);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant2(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action53::<>(input, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(2, 1)
}
pub(crate) fn __reduce3<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
let __end = __start.clone();
let __nt = super::__action51::<>(input, &__start, &__end);
__symbols.push((__start, __Symbol::Variant3(__nt), __end));
(0, 2)
}
pub(crate) fn __reduce4<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant3(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action52::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant3(__nt), __end));
(1, 2)
}
pub(crate) fn __reduce5<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 2);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant2(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action72::<>(input, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant3(__nt), __end));
(2, 3)
}
pub(crate) fn __reduce6<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 3);
let __sym2 = __pop_Variant0(__symbols);
let __sym1 = __pop_Variant2(__symbols);
let __sym0 = __pop_Variant3(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action73::<>(input, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant3(__nt), __end));
(3, 3)
}
pub(crate) fn __reduce7<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 2);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant4(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action58::<>(input, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant4(__nt), __end));
(2, 4)
}
pub(crate) fn __reduce8<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
let __end = __start.clone();
let __nt = super::__action56::<>(input, &__start, &__end);
__symbols.push((__start, __Symbol::Variant5(__nt), __end));
(0, 5)
}
pub(crate) fn __reduce9<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant5(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action57::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant5(__nt), __end));
(1, 5)
}
pub(crate) fn __reduce10<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 2);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant4(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action76::<>(input, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant5(__nt), __end));
(2, 6)
}
pub(crate) fn __reduce11<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 3);
let __sym2 = __pop_Variant0(__symbols);
let __sym1 = __pop_Variant4(__symbols);
let __sym0 = __pop_Variant5(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action77::<>(input, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant5(__nt), __end));
(3, 6)
}
pub(crate) fn __reduce12<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 2);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant6(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action63::<>(input, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant6(__nt), __end));
(2, 7)
}
pub(crate) fn __reduce13<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
let __end = __start.clone();
let __nt = super::__action61::<>(input, &__start, &__end);
__symbols.push((__start, __Symbol::Variant7(__nt), __end));
(0, 8)
}
pub(crate) fn __reduce14<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant7(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action62::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant7(__nt), __end));
(1, 8)
}
pub(crate) fn __reduce15<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 2);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant6(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action80::<>(input, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant7(__nt), __end));
(2, 9)
}
pub(crate) fn __reduce16<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 3);
let __sym2 = __pop_Variant0(__symbols);
let __sym1 = __pop_Variant6(__symbols);
let __sym0 = __pop_Variant7(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action81::<>(input, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant7(__nt), __end));
(3, 9)
}
pub(crate) fn __reduce17<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action24::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant8(__nt), __end));
(1, 10)
}
pub(crate) fn __reduce18<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action25::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant8(__nt), __end));
(1, 10)
}
pub(crate) fn __reduce19<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action26::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant8(__nt), __end));
(1, 10)
}
pub(crate) fn __reduce20<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action27::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant8(__nt), __end));
(1, 10)
}
pub(crate) fn __reduce21<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action28::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant8(__nt), __end));
(1, 10)
}
pub(crate) fn __reduce22<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant2(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action84::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant9(__nt), __end));
(1, 11)
}
pub(crate) fn __reduce23<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
let __end = __start.clone();
let __nt = super::__action85::<>(input, &__start, &__end);
__symbols.push((__start, __Symbol::Variant9(__nt), __end));
(0, 11)
}
pub(crate) fn __reduce24<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 2);
let __sym1 = __pop_Variant2(__symbols);
let __sym0 = __pop_Variant3(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action86::<>(input, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant9(__nt), __end));
(2, 11)
}
pub(crate) fn __reduce25<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant3(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action87::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant9(__nt), __end));
(1, 11)
}
pub(crate) fn __reduce26<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant4(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action88::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant10(__nt), __end));
(1, 12)
}
pub(crate) fn __reduce27<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
let __end = __start.clone();
let __nt = super::__action89::<>(input, &__start, &__end);
__symbols.push((__start, __Symbol::Variant10(__nt), __end));
(0, 12)
}
pub(crate) fn __reduce28<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 2);
let __sym1 = __pop_Variant4(__symbols);
let __sym0 = __pop_Variant5(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action90::<>(input, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant10(__nt), __end));
(2, 12)
}
pub(crate) fn __reduce29<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant5(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action91::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant10(__nt), __end));
(1, 12)
}
pub(crate) fn __reduce30<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant6(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action92::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant11(__nt), __end));
(1, 13)
}
pub(crate) fn __reduce31<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
let __end = __start.clone();
let __nt = super::__action93::<>(input, &__start, &__end);
__symbols.push((__start, __Symbol::Variant11(__nt), __end));
(0, 13)
}
pub(crate) fn __reduce32<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 2);
let __sym1 = __pop_Variant6(__symbols);
let __sym0 = __pop_Variant7(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action94::<>(input, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant11(__nt), __end));
(2, 13)
}
pub(crate) fn __reduce33<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant7(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action95::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant11(__nt), __end));
(1, 13)
}
pub(crate) fn __reduce34<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 3);
let __sym2 = __pop_Variant2(__symbols);
let __sym1 = __pop_Variant8(__symbols);
let __sym0 = __pop_Variant2(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action5::<>(input, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(3, 14)
}
pub(crate) fn __reduce35<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 3);
let __sym2 = __pop_Variant2(__symbols);
let __sym1 = __pop_Variant18(__symbols);
let __sym0 = __pop_Variant2(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action6::<>(input, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(3, 14)
}
pub(crate) fn __reduce36<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 5);
let __sym4 = __pop_Variant2(__symbols);
let __sym3 = __pop_Variant0(__symbols);
let __sym2 = __pop_Variant2(__symbols);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant2(__symbols);
let __start = __sym0.0.clone();
let __end = __sym4.2.clone();
let __nt = super::__action7::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(5, 14)
}
pub(crate) fn __reduce37<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 3);
let __sym2 = __pop_Variant2(__symbols);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant2(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action8::<>(input, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(3, 14)
}
pub(crate) fn __reduce38<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 3);
let __sym2 = __pop_Variant2(__symbols);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant2(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action9::<>(input, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(3, 14)
}
pub(crate) fn __reduce39<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 2);
let __sym1 = __pop_Variant2(__symbols);
let __sym0 = __pop_Variant19(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action10::<>(input, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(2, 14)
}
pub(crate) fn __reduce40<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant2(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action11::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(1, 14)
}
pub(crate) fn __reduce41<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant2(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action49::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant12(__nt), __end));
(1, 15)
}
pub(crate) fn __reduce42<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
let __end = __start.clone();
let __nt = super::__action50::<>(input, &__start, &__end);
__symbols.push((__start, __Symbol::Variant12(__nt), __end));
(0, 15)
}
pub(crate) fn __reduce43<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 3);
let __sym2 = __pop_Variant2(__symbols);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant14(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action22::<>(input, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant4(__nt), __end));
(3, 16)
}
pub(crate) fn __reduce44<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant4(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action54::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant13(__nt), __end));
(1, 17)
}
pub(crate) fn __reduce45<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
let __end = __start.clone();
let __nt = super::__action55::<>(input, &__start, &__end);
__symbols.push((__start, __Symbol::Variant13(__nt), __end));
(0, 17)
}
pub(crate) fn __reduce46<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action43::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant14(__nt), __end));
(1, 18)
}
pub(crate) fn __reduce47<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action40::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant15(__nt), __end));
(1, 19)
}
pub(crate) fn __reduce48<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action41::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant15(__nt), __end));
(1, 19)
}
pub(crate) fn __reduce49<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 3);
let __sym2 = __pop_Variant2(__symbols);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant2(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action23::<>(input, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant6(__nt), __end));
(3, 20)
}
pub(crate) fn __reduce50<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant6(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action59::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant16(__nt), __end));
(1, 21)
}
pub(crate) fn __reduce51<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
let __end = __start.clone();
let __nt = super::__action60::<>(input, &__start, &__end);
__symbols.push((__start, __Symbol::Variant16(__nt), __end));
(0, 21)
}
pub(crate) fn __reduce52<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant2(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action12::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(1, 22)
}
pub(crate) fn __reduce53<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 3);
let __sym2 = __pop_Variant14(__symbols);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant2(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action13::<>(input, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(3, 22)
}
pub(crate) fn __reduce54<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 6);
let __sym5 = __pop_Variant0(__symbols);
let __sym4 = __pop_Variant9(__symbols);
let __sym3 = __pop_Variant0(__symbols);
let __sym2 = __pop_Variant14(__symbols);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant2(__symbols);
let __start = __sym0.0.clone();
let __end = __sym5.2.clone();
let __nt = super::__action14::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(6, 22)
}
pub(crate) fn __reduce55<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 4);
let __sym3 = __pop_Variant0(__symbols);
let __sym2 = __pop_Variant2(__symbols);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant2(__symbols);
let __start = __sym0.0.clone();
let __end = __sym3.2.clone();
let __nt = super::__action15::<>(input, __sym0, __sym1, __sym2, __sym3);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(4, 22)
}
pub(crate) fn __reduce56<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 4);
let __sym3 = __pop_Variant0(__symbols);
let __sym2 = __pop_Variant10(__symbols);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant2(__symbols);
let __start = __sym0.0.clone();
let __end = __sym3.2.clone();
let __nt = super::__action16::<>(input, __sym0, __sym1, __sym2, __sym3);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(4, 22)
}
pub(crate) fn __reduce57<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action42::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant17(__nt), __end));
(1, 23)
}
pub(crate) fn __reduce58<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 2);
let __sym1 = __pop_Variant14(__symbols);
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action70::<>(input, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(2, 24)
}
pub(crate) fn __reduce59<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant14(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action71::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(1, 24)
}
pub(crate) fn __reduce60<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant15(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action18::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(1, 24)
}
pub(crate) fn __reduce61<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 3);
let __sym2 = __pop_Variant0(__symbols);
let __sym1 = __pop_Variant9(__symbols);
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action19::<>(input, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(3, 24)
}
pub(crate) fn __reduce62<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 3);
let __sym2 = __pop_Variant0(__symbols);
let __sym1 = __pop_Variant11(__symbols);
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action20::<>(input, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(3, 24)
}
pub(crate) fn __reduce63<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 3);
let __sym2 = __pop_Variant0(__symbols);
let __sym1 = __pop_Variant2(__symbols);
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action21::<>(input, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(3, 24)
}
pub(crate) fn __reduce64<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action33::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant18(__nt), __end));
(1, 25)
}
pub(crate) fn __reduce65<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action34::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant18(__nt), __end));
(1, 25)
}
pub(crate) fn __reduce66<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action35::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant18(__nt), __end));
(1, 25)
}
pub(crate) fn __reduce67<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action36::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant18(__nt), __end));
(1, 25)
}
pub(crate) fn __reduce68<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action37::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant18(__nt), __end));
(1, 25)
}
pub(crate) fn __reduce69<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action38::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant18(__nt), __end));
(1, 25)
}
pub(crate) fn __reduce70<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action39::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant18(__nt), __end));
(1, 25)
}
pub(crate) fn __reduce71<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action29::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant19(__nt), __end));
(1, 26)
}
pub(crate) fn __reduce72<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action30::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant19(__nt), __end));
(1, 26)
}
pub(crate) fn __reduce73<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action31::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant19(__nt), __end));
(1, 26)
}
pub(crate) fn __reduce74<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action32::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant19(__nt), __end));
(1, 26)
}
pub(crate) fn __reduce75<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant2(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action0::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(1, 27)
}
pub(crate) fn __reduce76<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant4(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action3::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant4(__nt), __end));
(1, 28)
}
pub(crate) fn __reduce77<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant6(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action4::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant6(__nt), __end));
(1, 29)
}
pub(crate) fn __reduce78<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant2(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action1::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(1, 30)
}
}
pub use self::__parse__Primary::PrimaryParser;
#[cfg_attr(rustfmt, rustfmt_skip)]
mod __intern_token {
#![allow(unused_imports)]
use std::str::FromStr;
use crate::ast::{RelationOp, ArithmeticOp, Expression, UnaryOp, Member, Literal};
#[allow(unused_extern_crates)]
extern crate lalrpop_util as __lalrpop_util;
#[allow(unused_imports)]
use self::__lalrpop_util::state_machine as __state_machine;
pub fn new_builder() -> __lalrpop_util::lexer::MatcherBuilder {
let __strs: &[(&str, bool)] = &[
("^([0-9]+)", false),
("^([0-9]+ [Uu])", false),
("^([A-Z_a-z][0-9A-Z_a-z]*)", false),
("^(!)", false),
("^(!!)", false),
("^(!=)", false),
("^(%)", false),
("^(\\&\\&)", false),
("^(\\()", false),
("^(\\))", false),
("^(\\*)", false),
("^(\\+)", false),
("^(,)", false),
("^(\\-)", false),
("^(\\-\\-)", false),
("^(\\.)", false),
("^(/)", false),
("^(:)", false),
("^(<)", false),
("^(<=)", false),
("^(==)", false),
("^(>)", false),
("^(>=)", false),
("^(\\?)", false),
("^(\\[)", false),
("^(\\])", false),
("^(in)", false),
("^(\\{)", false),
("^(\\|\\|)", false),
("^(\\})", false),
(r"^(\s*)", true),
];
__lalrpop_util::lexer::MatcherBuilder::new(__strs.iter().copied()).unwrap()
}
}
pub use self::__lalrpop_util::lexer::Token;
#[allow(unused_variables)]
fn __action0<
'input,
>(
input: &'input str,
(_, __0, _): (usize, Box<Expression>, usize),
) -> Box<Expression>
{
__0
}
#[allow(unused_variables)]
fn __action1<
'input,
>(
input: &'input str,
(_, __0, _): (usize, Box<Expression>, usize),
) -> Box<Expression>
{
__0
}
#[allow(unused_variables)]
fn __action2<
'input,
>(
input: &'input str,
(_, __0, _): (usize, Box<Expression>, usize),
) -> Box<Expression>
{
__0
}
#[allow(unused_variables)]
fn __action3<
'input,
>(
input: &'input str,
(_, __0, _): (usize, (String, Box<Expression>), usize),
) -> (String, Box<Expression>)
{
__0
}
#[allow(unused_variables)]
fn __action4<
'input,
>(
input: &'input str,
(_, __0, _): (usize, (Box<Expression>, Box<Expression>), usize),
) -> (Box<Expression>, Box<Expression>)
{
__0
}
#[allow(unused_variables)]
fn __action5<
'input,
>(
input: &'input str,
(_, left, _): (usize, Box<Expression>, usize),
(_, op, _): (usize, ArithmeticOp, usize),
(_, right, _): (usize, Box<Expression>, usize),
) -> Box<Expression>
{
Expression::Arithmetic{left:left, op:op, right:right}.into()
}
#[allow(unused_variables)]
fn __action6<
'input,
>(
input: &'input str,
(_, left, _): (usize, Box<Expression>, usize),
(_, op, _): (usize, RelationOp, usize),
(_, right, _): (usize, Box<Expression>, usize),
) -> Box<Expression>
{
Expression::Relation{left:left, op:op, right:right}.into()
}
#[allow(unused_variables)]
fn __action7<
'input,
>(
input: &'input str,
(_, condition, _): (usize, Box<Expression>, usize),
(_, _, _): (usize, &'input str, usize),
(_, left, _): (usize, Box<Expression>, usize),
(_, _, _): (usize, &'input str, usize),
(_, right, _): (usize, Box<Expression>, usize),
) -> Box<Expression>
{
Expression::Ternary{condition:condition, left:left, right:right}.into()
}
#[allow(unused_variables)]
fn __action8<
'input,
>(
input: &'input str,
(_, left, _): (usize, Box<Expression>, usize),
(_, _, _): (usize, &'input str, usize),
(_, right, _): (usize, Box<Expression>, usize),
) -> Box<Expression>
{
Expression::Or{left:left, right:right}.into()
}
#[allow(unused_variables)]
fn __action9<
'input,
>(
input: &'input str,
(_, left, _): (usize, Box<Expression>, usize),
(_, _, _): (usize, &'input str, usize),
(_, right, _): (usize, Box<Expression>, usize),
) -> Box<Expression>
{
Expression::And{left:left, right:right}.into()
}
#[allow(unused_variables)]
fn __action10<
'input,
>(
input: &'input str,
(_, op, _): (usize, UnaryOp, usize),
(_, right, _): (usize, Box<Expression>, usize),
) -> Box<Expression>
{
Expression::Unary{op:op, right:right}.into()
}
#[allow(unused_variables)]
fn __action11<
'input,
>(
input: &'input str,
(_, __0, _): (usize, Box<Expression>, usize),
) -> Box<Expression>
{
__0
}
#[allow(unused_variables)]
fn __action12<
'input,
>(
input: &'input str,
(_, __0, _): (usize, Box<Expression>, usize),
) -> Box<Expression>
{
__0
}
#[allow(unused_variables)]
fn __action13<
'input,
>(
input: &'input str,
(_, primary, _): (usize, Box<Expression>, usize),
(_, _, _): (usize, &'input str, usize),
(_, identifier, _): (usize, String, usize),
) -> Box<Expression>
{
Expression::Member{primary, member: Member::Attribute{identifier}}.into()
}
#[allow(unused_variables)]
fn __action14<
'input,
>(
input: &'input str,
(_, primary, _): (usize, Box<Expression>, usize),
(_, _, _): (usize, &'input str, usize),
(_, identifier, _): (usize, String, usize),
(_, _, _): (usize, &'input str, usize),
(_, arguments, _): (usize, Vec<Box<Expression>>, usize),
(_, _, _): (usize, &'input str, usize),
) -> Box<Expression>
{
Expression::Member{primary, member: Member::Function{identifier, arguments}}.into()
}
#[allow(unused_variables)]
fn __action15<
'input,
>(
input: &'input str,
(_, primary, _): (usize, Box<Expression>, usize),
(_, _, _): (usize, &'input str, usize),
(_, expression, _): (usize, Box<Expression>, usize),
(_, _, _): (usize, &'input str, usize),
) -> Box<Expression>
{
Expression::Member{primary, member: Member::Index{expression}}.into()
}
#[allow(unused_variables)]
fn __action16<
'input,
>(
input: &'input str,
(_, primary, _): (usize, Box<Expression>, usize),
(_, _, _): (usize, &'input str, usize),
(_, fields, _): (usize, Vec<(String, Box<Expression>)>, usize),
(_, _, _): (usize, &'input str, usize),
) -> Box<Expression>
{
Expression::Member{primary, member: Member::Fields{fields}}.into()
}
#[allow(unused_variables)]
fn __action17<
'input,
>(
input: &'input str,
(_, _, _): (usize, ::std::option::Option<&'input str>, usize),
(_, __0, _): (usize, String, usize),
) -> Box<Expression>
{
Expression::Ident(__0).into()
}
#[allow(unused_variables)]
fn __action18<
'input,
>(
input: &'input str,
(_, __0, _): (usize, Literal, usize),
) -> Box<Expression>
{
Expression::Literal(__0).into()
}
#[allow(unused_variables)]
fn __action19<
'input,
>(
input: &'input str,
(_, _, _): (usize, &'input str, usize),
(_, members, _): (usize, Vec<Box<Expression>>, usize),
(_, _, _): (usize, &'input str, usize),
) -> Box<Expression>
{
Expression::List{members:members}.into()
}
#[allow(unused_variables)]
fn __action20<
'input,
>(
input: &'input str,
(_, _, _): (usize, &'input str, usize),
(_, fields, _): (usize, Vec<(Box<Expression>, Box<Expression>)>, usize),
(_, _, _): (usize, &'input str, usize),
) -> Box<Expression>
{
Expression::Map{fields:fields}.into()
}
#[allow(unused_variables)]
fn __action21<
'input,
>(
input: &'input str,
(_, _, _): (usize, &'input str, usize),
(_, __0, _): (usize, Box<Expression>, usize),
(_, _, _): (usize, &'input str, usize),
) -> Box<Expression>
{
__0
}
#[allow(unused_variables)]
fn __action22<
'input,
>(
input: &'input str,
(_, __0, _): (usize, String, usize),
(_, _, _): (usize, &'input str, usize),
(_, __1, _): (usize, Box<Expression>, usize),
) -> (String, Box<Expression>)
{
(__0, __1)
}
#[allow(unused_variables)]
fn __action23<
'input,
>(
input: &'input str,
(_, __0, _): (usize, Box<Expression>, usize),
(_, _, _): (usize, &'input str, usize),
(_, __1, _): (usize, Box<Expression>, usize),
) -> (Box<Expression>, Box<Expression>)
{
(__0, __1)
}
#[allow(unused_variables)]
fn __action24<
'input,
>(
input: &'input str,
(_, __0, _): (usize, &'input str, usize),
) -> ArithmeticOp
{
ArithmeticOp::Add
}
#[allow(unused_variables)]
fn __action25<
'input,
>(
input: &'input str,
(_, __0, _): (usize, &'input str, usize),
) -> ArithmeticOp
{
ArithmeticOp::Subtract
}
#[allow(unused_variables)]
fn __action26<
'input,
>(
input: &'input str,
(_, __0, _): (usize, &'input str, usize),
) -> ArithmeticOp
{
ArithmeticOp::Multiply
}
#[allow(unused_variables)]
fn __action27<
'input,
>(
input: &'input str,
(_, __0, _): (usize, &'input str, usize),
) -> ArithmeticOp
{
ArithmeticOp::Divide
}
#[allow(unused_variables)]
fn __action28<
'input,
>(
input: &'input str,
(_, __0, _): (usize, &'input str, usize),
) -> ArithmeticOp
{
ArithmeticOp::Modulus
}
#[allow(unused_variables)]
fn __action29<
'input,
>(
input: &'input str,
(_, __0, _): (usize, &'input str, usize),
) -> UnaryOp
{
UnaryOp::Not
}
#[allow(unused_variables)]
fn __action30<
'input,
>(
input: &'input str,
(_, __0, _): (usize, &'input str, usize),
) -> UnaryOp
{
UnaryOp::DoubleNot
}
#[allow(unused_variables)]
fn __action31<
'input,
>(
input: &'input str,
(_, __0, _): (usize, &'input str, usize),
) -> UnaryOp
{
UnaryOp::Minus
}
#[allow(unused_variables)]
fn __action32<
'input,
>(
input: &'input str,
(_, __0, _): (usize, &'input str, usize),
) -> UnaryOp
{
UnaryOp::DoubleMinus
}
#[allow(unused_variables)]
fn __action33<
'input,
>(
input: &'input str,
(_, __0, _): (usize, &'input str, usize),
) -> RelationOp
{
RelationOp::LessThan
}
#[allow(unused_variables)]
fn __action34<
'input,
>(
input: &'input str,
(_, __0, _): (usize, &'input str, usize),
) -> RelationOp
{
RelationOp::LessThanEq
}
#[allow(unused_variables)]
fn __action35<
'input,
>(
input: &'input str,
(_, __0, _): (usize, &'input str, usize),
) -> RelationOp
{
RelationOp::GreaterThan
}
#[allow(unused_variables)]
fn __action36<
'input,
>(
input: &'input str,
(_, __0, _): (usize, &'input str, usize),
) -> RelationOp
{
RelationOp::GreaterThanEq
}
#[allow(unused_variables)]
fn __action37<
'input,
>(
input: &'input str,
(_, __0, _): (usize, &'input str, usize),
) -> RelationOp
{
RelationOp::Equals
}
#[allow(unused_variables)]
fn __action38<
'input,
>(
input: &'input str,
(_, __0, _): (usize, &'input str, usize),
) -> RelationOp
{
RelationOp::NotEquals
}
#[allow(unused_variables)]
fn __action39<
'input,
>(
input: &'input str,
(_, __0, _): (usize, &'input str, usize),
) -> RelationOp
{
RelationOp::In
}
#[allow(unused_variables)]
fn __action40<
'input,
>(
input: &'input str,
(_, __0, _): (usize, &'input str, usize),
) -> Literal
{
Literal::Int(__0.parse().unwrap())
}
#[allow(unused_variables)]
fn __action41<
'input,
>(
input: &'input str,
(_, __0, _): (usize, &'input str, usize),
) -> Literal
{
Literal::UInt(__0.parse().unwrap())
}
#[allow(unused_variables)]
fn __action42<
'input,
>(
input: &'input str,
(_, __0, _): (usize, &'input str, usize),
) -> i32
{
i32::from_str(__0).unwrap()
}
#[allow(unused_variables)]
fn __action43<
'input,
>(
input: &'input str,
(_, __0, _): (usize, &'input str, usize),
) -> String
{
String::from(__0)
}
#[allow(unused_variables)]
fn __action44<
'input,
>(
input: &'input str,
(_, v, _): (usize, ::std::vec::Vec<(Box<Expression>, Box<Expression>)>, usize),
(_, e, _): (usize, ::std::option::Option<(Box<Expression>, Box<Expression>)>, usize),
) -> Vec<(Box<Expression>, Box<Expression>)>
{
match e {
None => v,
Some(e) => {
let mut v = v;
v.push(e);
v
}
}
}
#[allow(unused_variables)]
fn __action45<
'input,
>(
input: &'input str,
(_, __0, _): (usize, &'input str, usize),
) -> ::std::option::Option<&'input str>
{
Some(__0)
}
#[allow(unused_variables)]
fn __action46<
'input,
>(
input: &'input str,
__lookbehind: &usize,
__lookahead: &usize,
) -> ::std::option::Option<&'input str>
{
None
}
#[allow(unused_variables)]
fn __action47<
'input,
>(
input: &'input str,
(_, v, _): (usize, ::std::vec::Vec<(String, Box<Expression>)>, usize),
(_, e, _): (usize, ::std::option::Option<(String, Box<Expression>)>, usize),
) -> Vec<(String, Box<Expression>)>
{
match e {
None => v,
Some(e) => {
let mut v = v;
v.push(e);
v
}
}
}
#[allow(unused_variables)]
fn __action48<
'input,
>(
input: &'input str,
(_, v, _): (usize, ::std::vec::Vec<Box<Expression>>, usize),
(_, e, _): (usize, ::std::option::Option<Box<Expression>>, usize),
) -> Vec<Box<Expression>>
{
match e {
None => v,
Some(e) => {
let mut v = v;
v.push(e);
v
}
}
}
#[allow(unused_variables)]
fn __action49<
'input,
>(
input: &'input str,
(_, __0, _): (usize, Box<Expression>, usize),
) -> ::std::option::Option<Box<Expression>>
{
Some(__0)
}
#[allow(unused_variables)]
fn __action50<
'input,
>(
input: &'input str,
__lookbehind: &usize,
__lookahead: &usize,
) -> ::std::option::Option<Box<Expression>>
{
None
}
#[allow(unused_variables)]
fn __action51<
'input,
>(
input: &'input str,
__lookbehind: &usize,
__lookahead: &usize,
) -> ::std::vec::Vec<Box<Expression>>
{
vec![]
}
#[allow(unused_variables)]
fn __action52<
'input,
>(
input: &'input str,
(_, v, _): (usize, ::std::vec::Vec<Box<Expression>>, usize),
) -> ::std::vec::Vec<Box<Expression>>
{
v
}
#[allow(unused_variables)]
fn __action53<
'input,
>(
input: &'input str,
(_, __0, _): (usize, Box<Expression>, usize),
(_, _, _): (usize, &'input str, usize),
) -> Box<Expression>
{
__0
}
#[allow(unused_variables)]
fn __action54<
'input,
>(
input: &'input str,
(_, __0, _): (usize, (String, Box<Expression>), usize),
) -> ::std::option::Option<(String, Box<Expression>)>
{
Some(__0)
}
#[allow(unused_variables)]
fn __action55<
'input,
>(
input: &'input str,
__lookbehind: &usize,
__lookahead: &usize,
) -> ::std::option::Option<(String, Box<Expression>)>
{
None
}
#[allow(unused_variables)]
fn __action56<
'input,
>(
input: &'input str,
__lookbehind: &usize,
__lookahead: &usize,
) -> ::std::vec::Vec<(String, Box<Expression>)>
{
vec![]
}
#[allow(unused_variables)]
fn __action57<
'input,
>(
input: &'input str,
(_, v, _): (usize, ::std::vec::Vec<(String, Box<Expression>)>, usize),
) -> ::std::vec::Vec<(String, Box<Expression>)>
{
v
}
#[allow(unused_variables)]
fn __action58<
'input,
>(
input: &'input str,
(_, __0, _): (usize, (String, Box<Expression>), usize),
(_, _, _): (usize, &'input str, usize),
) -> (String, Box<Expression>)
{
__0
}
#[allow(unused_variables)]
fn __action59<
'input,
>(
input: &'input str,
(_, __0, _): (usize, (Box<Expression>, Box<Expression>), usize),
) -> ::std::option::Option<(Box<Expression>, Box<Expression>)>
{
Some(__0)
}
#[allow(unused_variables)]
fn __action60<
'input,
>(
input: &'input str,
__lookbehind: &usize,
__lookahead: &usize,
) -> ::std::option::Option<(Box<Expression>, Box<Expression>)>
{
None
}
#[allow(unused_variables)]
fn __action61<
'input,
>(
input: &'input str,
__lookbehind: &usize,
__lookahead: &usize,
) -> ::std::vec::Vec<(Box<Expression>, Box<Expression>)>
{
vec![]
}
#[allow(unused_variables)]
fn __action62<
'input,
>(
input: &'input str,
(_, v, _): (usize, ::std::vec::Vec<(Box<Expression>, Box<Expression>)>, usize),
) -> ::std::vec::Vec<(Box<Expression>, Box<Expression>)>
{
v
}
#[allow(unused_variables)]
fn __action63<
'input,
>(
input: &'input str,
(_, __0, _): (usize, (Box<Expression>, Box<Expression>), usize),
(_, _, _): (usize, &'input str, usize),
) -> (Box<Expression>, Box<Expression>)
{
__0
}
#[allow(unused_variables)]
fn __action64<
'input,
>(
input: &'input str,
(_, __0, _): (usize, (Box<Expression>, Box<Expression>), usize),
) -> ::std::vec::Vec<(Box<Expression>, Box<Expression>)>
{
vec![__0]
}
#[allow(unused_variables)]
fn __action65<
'input,
>(
input: &'input str,
(_, v, _): (usize, ::std::vec::Vec<(Box<Expression>, Box<Expression>)>, usize),
(_, e, _): (usize, (Box<Expression>, Box<Expression>), usize),
) -> ::std::vec::Vec<(Box<Expression>, Box<Expression>)>
{
{ let mut v = v; v.push(e); v }
}
#[allow(unused_variables)]
fn __action66<
'input,
>(
input: &'input str,
(_, __0, _): (usize, (String, Box<Expression>), usize),
) -> ::std::vec::Vec<(String, Box<Expression>)>
{
vec![__0]
}
#[allow(unused_variables)]
fn __action67<
'input,
>(
input: &'input str,
(_, v, _): (usize, ::std::vec::Vec<(String, Box<Expression>)>, usize),
(_, e, _): (usize, (String, Box<Expression>), usize),
) -> ::std::vec::Vec<(String, Box<Expression>)>
{
{ let mut v = v; v.push(e); v }
}
#[allow(unused_variables)]
fn __action68<
'input,
>(
input: &'input str,
(_, __0, _): (usize, Box<Expression>, usize),
) -> ::std::vec::Vec<Box<Expression>>
{
vec![__0]
}
#[allow(unused_variables)]
fn __action69<
'input,
>(
input: &'input str,
(_, v, _): (usize, ::std::vec::Vec<Box<Expression>>, usize),
(_, e, _): (usize, Box<Expression>, usize),
) -> ::std::vec::Vec<Box<Expression>>
{
{ let mut v = v; v.push(e); v }
}
#[allow(unused_variables)]
fn __action70<
'input,
>(
input: &'input str,
__0: (usize, &'input str, usize),
__1: (usize, String, usize),
) -> Box<Expression>
{
let __start0 = __0.0.clone();
let __end0 = __0.2.clone();
let __temp0 = __action45(
input,
__0,
);
let __temp0 = (__start0, __temp0, __end0);
__action17(
input,
__temp0,
__1,
)
}
#[allow(unused_variables)]
fn __action71<
'input,
>(
input: &'input str,
__0: (usize, String, usize),
) -> Box<Expression>
{
let __start0 = __0.0.clone();
let __end0 = __0.0.clone();
let __temp0 = __action46(
input,
&__start0,
&__end0,
);
let __temp0 = (__start0, __temp0, __end0);
__action17(
input,
__temp0,
__0,
)
}
#[allow(unused_variables)]
fn __action72<
'input,
>(
input: &'input str,
__0: (usize, Box<Expression>, usize),
__1: (usize, &'input str, usize),
) -> ::std::vec::Vec<Box<Expression>>
{
let __start0 = __0.0.clone();
let __end0 = __1.2.clone();
let __temp0 = __action53(
input,
__0,
__1,
);
let __temp0 = (__start0, __temp0, __end0);
__action68(
input,
__temp0,
)
}
#[allow(unused_variables)]
fn __action73<
'input,
>(
input: &'input str,
__0: (usize, ::std::vec::Vec<Box<Expression>>, usize),
__1: (usize, Box<Expression>, usize),
__2: (usize, &'input str, usize),
) -> ::std::vec::Vec<Box<Expression>>
{
let __start0 = __1.0.clone();
let __end0 = __2.2.clone();
let __temp0 = __action53(
input,
__1,
__2,
);
let __temp0 = (__start0, __temp0, __end0);
__action69(
input,
__0,
__temp0,
)
}
#[allow(unused_variables)]
fn __action74<
'input,
>(
input: &'input str,
__0: (usize, ::std::option::Option<Box<Expression>>, usize),
) -> Vec<Box<Expression>>
{
let __start0 = __0.0.clone();
let __end0 = __0.0.clone();
let __temp0 = __action51(
input,
&__start0,
&__end0,
);
let __temp0 = (__start0, __temp0, __end0);
__action48(
input,
__temp0,
__0,
)
}
#[allow(unused_variables)]
fn __action75<
'input,
>(
input: &'input str,
__0: (usize, ::std::vec::Vec<Box<Expression>>, usize),
__1: (usize, ::std::option::Option<Box<Expression>>, usize),
) -> Vec<Box<Expression>>
{
let __start0 = __0.0.clone();
let __end0 = __0.2.clone();
let __temp0 = __action52(
input,
__0,
);
let __temp0 = (__start0, __temp0, __end0);
__action48(
input,
__temp0,
__1,
)
}
#[allow(unused_variables)]
fn __action76<
'input,
>(
input: &'input str,
__0: (usize, (String, Box<Expression>), usize),
__1: (usize, &'input str, usize),
) -> ::std::vec::Vec<(String, Box<Expression>)>
{
let __start0 = __0.0.clone();
let __end0 = __1.2.clone();
let __temp0 = __action58(
input,
__0,
__1,
);
let __temp0 = (__start0, __temp0, __end0);
__action66(
input,
__temp0,
)
}
#[allow(unused_variables)]
fn __action77<
'input,
>(
input: &'input str,
__0: (usize, ::std::vec::Vec<(String, Box<Expression>)>, usize),
__1: (usize, (String, Box<Expression>), usize),
__2: (usize, &'input str, usize),
) -> ::std::vec::Vec<(String, Box<Expression>)>
{
let __start0 = __1.0.clone();
let __end0 = __2.2.clone();
let __temp0 = __action58(
input,
__1,
__2,
);
let __temp0 = (__start0, __temp0, __end0);
__action67(
input,
__0,
__temp0,
)
}
#[allow(unused_variables)]
fn __action78<
'input,
>(
input: &'input str,
__0: (usize, ::std::option::Option<(String, Box<Expression>)>, usize),
) -> Vec<(String, Box<Expression>)>
{
let __start0 = __0.0.clone();
let __end0 = __0.0.clone();
let __temp0 = __action56(
input,
&__start0,
&__end0,
);
let __temp0 = (__start0, __temp0, __end0);
__action47(
input,
__temp0,
__0,
)
}
#[allow(unused_variables)]
fn __action79<
'input,
>(
input: &'input str,
__0: (usize, ::std::vec::Vec<(String, Box<Expression>)>, usize),
__1: (usize, ::std::option::Option<(String, Box<Expression>)>, usize),
) -> Vec<(String, Box<Expression>)>
{
let __start0 = __0.0.clone();
let __end0 = __0.2.clone();
let __temp0 = __action57(
input,
__0,
);
let __temp0 = (__start0, __temp0, __end0);
__action47(
input,
__temp0,
__1,
)
}
#[allow(unused_variables)]
fn __action80<
'input,
>(
input: &'input str,
__0: (usize, (Box<Expression>, Box<Expression>), usize),
__1: (usize, &'input str, usize),
) -> ::std::vec::Vec<(Box<Expression>, Box<Expression>)>
{
let __start0 = __0.0.clone();
let __end0 = __1.2.clone();
let __temp0 = __action63(
input,
__0,
__1,
);
let __temp0 = (__start0, __temp0, __end0);
__action64(
input,
__temp0,
)
}
#[allow(unused_variables)]
fn __action81<
'input,
>(
input: &'input str,
__0: (usize, ::std::vec::Vec<(Box<Expression>, Box<Expression>)>, usize),
__1: (usize, (Box<Expression>, Box<Expression>), usize),
__2: (usize, &'input str, usize),
) -> ::std::vec::Vec<(Box<Expression>, Box<Expression>)>
{
let __start0 = __1.0.clone();
let __end0 = __2.2.clone();
let __temp0 = __action63(
input,
__1,
__2,
);
let __temp0 = (__start0, __temp0, __end0);
__action65(
input,
__0,
__temp0,
)
}
#[allow(unused_variables)]
fn __action82<
'input,
>(
input: &'input str,
__0: (usize, ::std::option::Option<(Box<Expression>, Box<Expression>)>, usize),
) -> Vec<(Box<Expression>, Box<Expression>)>
{
let __start0 = __0.0.clone();
let __end0 = __0.0.clone();
let __temp0 = __action61(
input,
&__start0,
&__end0,
);
let __temp0 = (__start0, __temp0, __end0);
__action44(
input,
__temp0,
__0,
)
}
#[allow(unused_variables)]
fn __action83<
'input,
>(
input: &'input str,
__0: (usize, ::std::vec::Vec<(Box<Expression>, Box<Expression>)>, usize),
__1: (usize, ::std::option::Option<(Box<Expression>, Box<Expression>)>, usize),
) -> Vec<(Box<Expression>, Box<Expression>)>
{
let __start0 = __0.0.clone();
let __end0 = __0.2.clone();
let __temp0 = __action62(
input,
__0,
);
let __temp0 = (__start0, __temp0, __end0);
__action44(
input,
__temp0,
__1,
)
}
#[allow(unused_variables)]
fn __action84<
'input,
>(
input: &'input str,
__0: (usize, Box<Expression>, usize),
) -> Vec<Box<Expression>>
{
let __start0 = __0.0.clone();
let __end0 = __0.2.clone();
let __temp0 = __action49(
input,
__0,
);
let __temp0 = (__start0, __temp0, __end0);
__action74(
input,
__temp0,
)
}
#[allow(unused_variables)]
fn __action85<
'input,
>(
input: &'input str,
__lookbehind: &usize,
__lookahead: &usize,
) -> Vec<Box<Expression>>
{
let __start0 = __lookbehind.clone();
let __end0 = __lookahead.clone();
let __temp0 = __action50(
input,
&__start0,
&__end0,
);
let __temp0 = (__start0, __temp0, __end0);
__action74(
input,
__temp0,
)
}
#[allow(unused_variables)]
fn __action86<
'input,
>(
input: &'input str,
__0: (usize, ::std::vec::Vec<Box<Expression>>, usize),
__1: (usize, Box<Expression>, usize),
) -> Vec<Box<Expression>>
{
let __start0 = __1.0.clone();
let __end0 = __1.2.clone();
let __temp0 = __action49(
input,
__1,
);
let __temp0 = (__start0, __temp0, __end0);
__action75(
input,
__0,
__temp0,
)
}
#[allow(unused_variables)]
fn __action87<
'input,
>(
input: &'input str,
__0: (usize, ::std::vec::Vec<Box<Expression>>, usize),
) -> Vec<Box<Expression>>
{
let __start0 = __0.2.clone();
let __end0 = __0.2.clone();
let __temp0 = __action50(
input,
&__start0,
&__end0,
);
let __temp0 = (__start0, __temp0, __end0);
__action75(
input,
__0,
__temp0,
)
}
#[allow(unused_variables)]
fn __action88<
'input,
>(
input: &'input str,
__0: (usize, (String, Box<Expression>), usize),
) -> Vec<(String, Box<Expression>)>
{
let __start0 = __0.0.clone();
let __end0 = __0.2.clone();
let __temp0 = __action54(
input,
__0,
);
let __temp0 = (__start0, __temp0, __end0);
__action78(
input,
__temp0,
)
}
#[allow(unused_variables)]
fn __action89<
'input,
>(
input: &'input str,
__lookbehind: &usize,
__lookahead: &usize,
) -> Vec<(String, Box<Expression>)>
{
let __start0 = __lookbehind.clone();
let __end0 = __lookahead.clone();
let __temp0 = __action55(
input,
&__start0,
&__end0,
);
let __temp0 = (__start0, __temp0, __end0);
__action78(
input,
__temp0,
)
}
#[allow(unused_variables)]
fn __action90<
'input,
>(
input: &'input str,
__0: (usize, ::std::vec::Vec<(String, Box<Expression>)>, usize),
__1: (usize, (String, Box<Expression>), usize),
) -> Vec<(String, Box<Expression>)>
{
let __start0 = __1.0.clone();
let __end0 = __1.2.clone();
let __temp0 = __action54(
input,
__1,
);
let __temp0 = (__start0, __temp0, __end0);
__action79(
input,
__0,
__temp0,
)
}
#[allow(unused_variables)]
fn __action91<
'input,
>(
input: &'input str,
__0: (usize, ::std::vec::Vec<(String, Box<Expression>)>, usize),
) -> Vec<(String, Box<Expression>)>
{
let __start0 = __0.2.clone();
let __end0 = __0.2.clone();
let __temp0 = __action55(
input,
&__start0,
&__end0,
);
let __temp0 = (__start0, __temp0, __end0);
__action79(
input,
__0,
__temp0,
)
}
#[allow(unused_variables)]
fn __action92<
'input,
>(
input: &'input str,
__0: (usize, (Box<Expression>, Box<Expression>), usize),
) -> Vec<(Box<Expression>, Box<Expression>)>
{
let __start0 = __0.0.clone();
let __end0 = __0.2.clone();
let __temp0 = __action59(
input,
__0,
);
let __temp0 = (__start0, __temp0, __end0);
__action82(
input,
__temp0,
)
}
#[allow(unused_variables)]
fn __action93<
'input,
>(
input: &'input str,
__lookbehind: &usize,
__lookahead: &usize,
) -> Vec<(Box<Expression>, Box<Expression>)>
{
let __start0 = __lookbehind.clone();
let __end0 = __lookahead.clone();
let __temp0 = __action60(
input,
&__start0,
&__end0,
);
let __temp0 = (__start0, __temp0, __end0);
__action82(
input,
__temp0,
)
}
#[allow(unused_variables)]
fn __action94<
'input,
>(
input: &'input str,
__0: (usize, ::std::vec::Vec<(Box<Expression>, Box<Expression>)>, usize),
__1: (usize, (Box<Expression>, Box<Expression>), usize),
) -> Vec<(Box<Expression>, Box<Expression>)>
{
let __start0 = __1.0.clone();
let __end0 = __1.2.clone();
let __temp0 = __action59(
input,
__1,
);
let __temp0 = (__start0, __temp0, __end0);
__action83(
input,
__0,
__temp0,
)
}
#[allow(unused_variables)]
fn __action95<
'input,
>(
input: &'input str,
__0: (usize, ::std::vec::Vec<(Box<Expression>, Box<Expression>)>, usize),
) -> Vec<(Box<Expression>, Box<Expression>)>
{
let __start0 = __0.2.clone();
let __end0 = __0.2.clone();
let __temp0 = __action60(
input,
&__start0,
&__end0,
);
let __temp0 = (__start0, __temp0, __end0);
__action83(
input,
__0,
__temp0,
)
}
pub trait __ToTriple<'input, > {
fn to_triple(value: Self) -> Result<(usize,Token<'input>,usize), __lalrpop_util::ParseError<usize, Token<'input>, &'static str>>;
}
impl<'input, > __ToTriple<'input, > for (usize, Token<'input>, usize) {
fn to_triple(value: Self) -> Result<(usize,Token<'input>,usize), __lalrpop_util::ParseError<usize, Token<'input>, &'static str>> {
Ok(value)
}
}
impl<'input, > __ToTriple<'input, > for Result<(usize, Token<'input>, usize), &'static str> {
fn to_triple(value: Self) -> Result<(usize,Token<'input>,usize), __lalrpop_util::ParseError<usize, Token<'input>, &'static str>> {
match value {
Ok(v) => Ok(v),
Err(error) => Err(__lalrpop_util::ParseError::User { error }),
}
}
}