use crate::{Identifier, hir::{HirProgram, HirDeclaration, HirStructure, HirFunction, HirExpression, HirConstant, HirStatement, HirType}};
#[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__Program {
#![allow(non_snake_case, non_camel_case_types, unused_mut, unused_variables, unused_imports, unused_parens)]
use crate::{Identifier, hir::{HirProgram, HirDeclaration, HirStructure, HirFunction, HirExpression, HirConstant, HirStatement, HirType}};
#[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(((Identifier, &'input str, HirType), &'input str)),
Variant2(::std::vec::Vec<((Identifier, &'input str, HirType), &'input str)>),
Variant3((HirExpression, &'input str)),
Variant4(::std::vec::Vec<(HirExpression, &'input str)>),
Variant5(HirDeclaration),
Variant6(::std::vec::Vec<HirDeclaration>),
Variant7((Identifier, &'input str, HirType)),
Variant8(::std::option::Option<(Identifier, &'input str, HirType)>),
Variant9((&'input str, &'input str)),
Variant10(::std::vec::Vec<(&'input str, &'input str)>),
Variant11(Vec<HirStatement>),
Variant12(HirStatement),
Variant13(char),
Variant14(HirConstant),
Variant15(HirExpression),
Variant16(::std::option::Option<HirExpression>),
Variant17(HirFunction),
Variant18(::std::vec::Vec<HirFunction>),
Variant19(Identifier),
Variant20(Vec<(Identifier, &'input str, HirType)>),
Variant21(Vec<HirExpression>),
Variant22(f64),
Variant23(HirProgram),
Variant24(::std::option::Option<HirStatement>),
Variant25(::std::vec::Vec<HirStatement>),
Variant26(String),
Variant27(HirStructure),
Variant28(HirType),
}
const __ACTION: &[i16] = &[
0, 0, 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, -126, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109,
0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 129, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 130, 131, 109,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 134, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109,
17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 129, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 130, 131, 109,
17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 129, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 130, 131, 109,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 138, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 138, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 131, 0,
17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 129, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 130, 131, 109,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 138, 0, 0, 0,
17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 129, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 130, 131, 109,
17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 129, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 130, 131, 109,
0, 0, 0, 36, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 147, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 148, 0, 0, 149, 0, 0, 0, 0, 0, 0, 0, 109,
40, 0, 0, 41, 0, 42, 0, 43, 0, 0, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 162, 0, 0, 163, 0, 0, 0, 0, 0, 0, 0, 0, 164, 45, 0, 46, 0, 0, 47, 0, 48, 0, 0, 49, 0, 0, 165, 138, 130, 131, 109,
0, 0, 0, 0, 0, 0, 167, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109,
17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 129, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 130, 131, 109,
17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 129, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 130, 131, 109,
17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 129, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 130, 131, 109,
17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 129, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 130, 131, 109,
17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 129, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 130, 131, 109,
17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 129, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 130, 131, 109,
17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 129, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 130, 131, 109,
17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 129, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 130, 131, 109,
17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 129, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 130, 131, 109,
17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 129, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 130, 131, 109,
17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 129, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 130, 131, 109,
17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 129, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 130, 131, 109,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 138, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0,
0, 0, 0, 36, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 147, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 148, 0, 0, 149, 0, 0, 0, 0, 0, 0, 0, 109,
0, 0, 0, 36, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 147, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 148, 0, 0, 149, 0, 0, 0, 0, 0, 0, 0, 109,
67, -74, 0, 0, -74, 68, -74, -74, -74, 0, -74, -74, -74, -74, 0, 0, -74, -74, -74, 69, -74, -74, -74, 0, -74, 0, 0, -74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -74, -74, 0, 0, 0, 0,
40, 0, 0, 41, 0, 42, 0, 43, 0, 0, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 162, 0, 0, 163, 0, 0, 0, 0, 0, 0, 0, 0, 164, 45, 0, 46, 0, 0, 47, 0, 48, 0, 0, 49, 0, 0, 196, 138, 130, 131, 109,
40, 0, 0, 41, 0, 42, 0, 0, 0, 0, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 162, 0, 0, 163, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 138, 130, 131, 109,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109,
40, 0, 0, 41, 0, 42, 0, 71, 0, 0, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 162, 0, 0, 163, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 138, 130, 131, 109,
40, 0, 0, 41, 0, 42, 0, 71, 0, 0, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 162, 0, 0, 163, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 138, 130, 131, 109,
40, 0, 0, 41, 0, 42, 0, 0, 0, 0, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 162, 0, 0, 163, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 138, 130, 131, 109,
40, 0, 0, 41, 0, 42, 0, 71, 0, 0, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 162, 0, 0, 163, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 138, 130, 131, 109,
40, 0, 0, 41, 0, 42, 0, 71, 0, 0, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 162, 0, 0, 163, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 138, 130, 131, 109,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109,
40, 0, 0, 41, 0, 42, 0, 71, 0, 0, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 162, 75, 0, 163, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 138, 130, 131, 109,
40, 0, 0, 41, 0, 42, 0, 71, 0, 0, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 162, 0, 0, 163, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 138, 130, 131, 109,
0, 0, 0, 36, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 147, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 148, 0, 0, 149, 0, 0, 0, 0, 0, 0, 0, 109,
40, 0, 0, 41, 0, 42, 0, 0, 0, 0, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 162, 0, 0, 163, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 138, 130, 131, 109,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109,
40, 0, 0, 41, 0, 42, 0, 0, 0, 0, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 162, 0, 0, 163, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 138, 130, 131, 109,
40, 0, 0, 41, 0, 42, 0, 71, 0, 0, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 162, 0, 0, 163, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 138, 130, 131, 109,
0, 0, 0, 36, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 147, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 148, 0, 0, 149, 0, 0, 0, 0, 0, 0, 0, 109,
40, 0, 0, 41, 0, 42, 0, 0, 0, 0, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 162, 0, 0, 163, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 138, 130, 131, 109,
40, 0, 0, 41, 0, 42, 0, 0, 0, 0, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 162, 0, 0, 163, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 138, 130, 131, 109,
40, 0, 0, 41, 0, 42, 0, 0, 0, 0, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 162, 0, 0, 163, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 138, 130, 131, 109,
40, 0, 0, 41, 0, 42, 0, 0, 0, 0, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 162, 0, 0, 163, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 138, 130, 131, 109,
40, 0, 0, 41, 0, 42, 0, 0, 0, 0, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 162, 0, 0, 163, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 138, 130, 131, 109,
40, 0, 0, 41, 0, 42, 0, 0, 0, 0, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 162, 0, 0, 163, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 138, 130, 131, 109,
40, 0, 0, 41, 0, 42, 0, 0, 0, 0, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 162, 0, 0, 163, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 138, 130, 131, 109,
40, 0, 0, 41, 0, 42, 0, 0, 0, 0, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 162, 0, 0, 163, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 138, 130, 131, 109,
40, 0, 0, 41, 0, 42, 0, 0, 0, 0, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 162, 0, 0, 163, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 138, 130, 131, 109,
40, 0, 0, 41, 0, 42, 0, 0, 0, 0, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 162, 0, 0, 163, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 138, 130, 131, 109,
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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
40, 0, 0, 41, 0, 42, 232, 71, 0, 0, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 162, 0, 0, 163, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 138, 130, 131, 109,
40, 0, 0, 41, 0, 42, 0, 71, 0, 0, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 162, 0, 0, 163, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 138, 130, 131, 109,
67, -74, 0, 0, -74, 68, -74, -74, -74, -74, -74, -74, -74, -74, -74, 0, -74, -74, -74, -74, -74, -74, -74, 0, -74, -74, 0, -74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -74, -74, -74, 0, 0, 0, 0,
40, 0, 0, 41, 0, 42, 0, 0, 0, 0, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 162, 0, 0, 163, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 138, 130, 131, 109,
40, 0, 0, 41, 0, 42, 0, 71, 0, 0, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 162, 0, 0, 163, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 138, 130, 131, 109,
40, 0, 0, 41, 0, 42, 0, 43, 0, 0, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 162, 0, 0, 163, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 0, 0, 0, 0, 47, 0, 48, 0, 0, 0, 0, 0, 0, 138, 130, 131, 109,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0,
40, 0, 0, 41, 0, 42, 0, 71, 0, 0, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 162, 0, 241, 163, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 138, 130, 131, 109,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0,
0, 0, 0, 36, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 147, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 148, 0, 0, 149, 0, 0, 0, 0, 0, 0, 0, 109,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 247, 0, 0, 0, 0,
0, 0, 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, -125, 0, 0, 0, 0,
0, -90, 0, 0, -90, 68, -90, 0, -90, 0, -90, 0, 0, 0, 0, 0, -90, -90, -90, 91, -90, -90, -90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -90, -90, 0, 0, 0, 0,
0, -88, 0, 0, -88, 68, -88, 0, -88, -88, -88, 0, 0, 0, -88, 0, -88, -88, -88, -88, -88, -88, -88, 0, 0, -88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -88, -88, -88, 0, 0, 0, 0,
40, 0, 0, 41, 0, 42, 253, 71, 0, 0, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 162, 0, 0, 163, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 138, 130, 131, 109,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109,
40, 0, 0, 41, 0, 42, 0, 71, 0, 0, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 162, 0, 0, 163, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 138, 130, 131, 109,
40, 0, 0, 41, 0, 42, 0, 71, 0, 0, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 162, 0, 0, 163, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 138, 130, 131, 109,
40, 0, 0, 41, 0, 42, 0, 71, 0, 0, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 162, 0, 0, 163, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 138, 130, 131, 109,
0, 0, 0, 36, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 147, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 148, 0, 0, 149, 0, 0, 0, 0, 0, 0, 0, 109,
40, 0, 0, 41, 0, 42, 0, 71, 0, 0, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 162, 0, 0, 163, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 138, 130, 131, 109,
40, 0, 0, 41, 0, 42, 0, 71, 0, 0, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 162, 0, 263, 163, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 138, 130, 131, 109,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 268, 0, 0, 0, 0,
40, 0, 0, 41, 0, 42, 0, 71, 0, 0, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 162, 0, 0, 163, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 138, 130, 131, 109,
0, -90, 0, 0, -90, 68, -90, 0, -90, -90, -90, 0, 0, 0, -90, 0, -90, -90, -90, -90, -90, -90, -90, 0, 0, -90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -90, -90, -90, 0, 0, 0, 0,
40, 0, 0, 41, 0, 42, 0, 71, 0, 0, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 162, 0, 0, 163, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 138, 130, 131, 109,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0,
40, 0, 0, 41, 0, 42, 0, 71, 0, 0, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 162, 0, 0, 163, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 138, 130, 131, 109,
40, 0, 0, 41, 0, 42, 0, 71, 0, 0, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 162, 0, 0, 163, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 138, 130, 131, 109,
40, 0, 0, 41, 0, 42, 0, 43, 0, 0, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 162, 0, 0, 163, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 0, 0, 0, 0, 47, 0, 48, 0, 0, 0, 0, 0, 0, 138, 130, 131, 109,
0, 0, 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, -125, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0,
0, 0, -14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -14, 0, 0, 0, -14, 0, 0, 0, 0, 0, 0, 0, 0, 0, -14, 0, 0, 0, 0, -14, 0, 0, 0, 0,
0, 0, -64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -64, 0, 0, 0, -64, 0, 0, 0, 0, 0, 0, 0, 0, 0, -64, 0, 0, 0, 0, -64, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, -65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -65, 0, 0, 0, -65, 0, 0, 0, 0, 0, 0, 0, 0, 0, -65, 0, 0, 0, 0, -65, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 106, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, -15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -15, 0, 0, 0, -15, 0, 0, 0, 0, 0, 0, 0, 0, 0, -15, 0, 0, 0, 0, -15, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 111, 0, 0, 0, 112, 113, 0, 0, 0, 114, 115, 116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 117,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-110, -110, 0, 0, -110, -110, -110, -110, -110, -110, -110, -110, -110, -110, -110, 118, -110, -110, -110, -110, -110, -110, -110, 0, -110, -110, 0, -110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -110, -110, -110, 0, 0, 0, 0,
0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-111, -111, 0, 0, -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, 119, -111, -111, -111, -111, -111, -111, -111, 0, -111, -111, 0, -111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -111, -111, -111, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -22,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -23,
0, -37, 0, 0, -37, 0, -37, -37, -37, 0, -37, 0, 0, -37, 0, 0, -37, -37, -37, 0, -37, -37, -37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -37, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 143, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, -45, 0, 0, -45, 0, -45, 22, -45, 0, -45, 0, 0, 23, 0, 0, -45, -45, -45, 0, -45, -45, -45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -45, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, -33, 0, 0, 0, 0, 0, 0, 0, 0, 0, -33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, -55, 0, 0, -55, 0, -55, 0, 24, 0, 25, 0, 0, 0, 0, 0, -55, -55, -55, 0, -55, -55, -55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -55, 0, 0, 0, 0, 0,
0, 0, 0, 0, 26, 0, -42, 0, 0, 0, 0, 0, 0, 0, 0, 0, -42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, 0, 0,
0, 28, 0, 0, -52, 0, -52, 0, 0, 0, 0, 0, 0, 0, 0, 0, -52, 29, 30, 0, 31, 32, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -52, 0, 0, 0, 0, 0,
0, -35, 0, 0, -35, 0, -35, -35, -35, 0, -35, 0, 0, -35, 0, 0, -35, -35, -35, 0, -35, -35, -35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -35, 0, 0, 0, 0, 0,
0, -36, 0, 0, -36, 0, -36, -36, -36, 0, -36, 0, 0, -36, 0, 0, -36, -36, -36, 0, -36, -36, -36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -36, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, -32, 0, 0, -32, 0, -32, -32, -32, -32, -32, -32, -32, -32, -32, 0, -32, -32, -32, -32, -32, -32, -32, 0, -32, -32, 0, -32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -32, -32, -32, 0, 0, 0, 0,
0, -124, 0, 0, -124, 0, -124, -124, -124, -124, -124, -124, -124, -124, -124, 0, -124, -124, -124, -124, -124, -124, -124, 0, -124, -124, 0, -124, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -124, -124, -124, 0, 0, 0, 0,
0, 0, -104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -104, 0, 0, 0, -104, 0, 0, 0, 0, 0, 0, 0, 0, 0, -104, 0, 0, 0, 0, -104, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -113, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -113, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 168, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 169, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 170, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, -145, 0, 0, -145, 0, -145, -145, -145, -145, -145, -145, -145, -145, -145, 0, -145, -145, -145, -145, -145, -145, -145, 0, -145, -145, 0, -145, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -145, -145, -145, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 171, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 172, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 173, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 174, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, -63, 0, 0, 0, -63, 0, 0, 0, 0, 0, 0, 0, 0, 0, -63, 0, 0, 0, 0, -63, 0, 0, 0, 0,
0, -39, 0, 0, -39, 0, -39, -39, -39, 0, -39, 0, 0, -39, 0, 0, -39, -39, -39, 0, -39, -39, -39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -39, 0, 0, 0, 0, 0,
0, -38, 0, 0, -38, 0, -38, -38, -38, 0, -38, 0, 0, -38, 0, 0, -38, -38, -38, 0, -38, -38, -38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -38, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, -153, 0, 0, -153, 0, 0, 0, 0, -153, 0, -153, 0, 0, -153, 0, 0, 0, 0, 0, -153, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -153, 0, -153, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, -152, 0, 0, -152, 0, 0, 0, 0, -152, 0, -152, 0, 0, -152, 0, 0, 0, 0, 0, -152, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -152, 0, -152, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, -151, 0, 0, -151, 0, 0, 0, 0, -151, 0, -151, 0, 0, -151, 0, 0, 0, 0, 0, -151, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -151, 0, -151, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, -150, 0, 0, -150, 0, 0, 0, 0, -150, 0, -150, 0, 0, -150, 0, 0, 0, 0, 0, -150, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -150, 0, -150, 0, 0, 0, 0,
-139, 0, 0, -139, 0, -139, 0, -139, 0, 0, -139, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -139, 0, 0, -139, 0, 0, 0, 0, 0, 0, 0, 0, -139, -139, 0, -139, 0, 0, -139, 0, -139, 0, 0, -139, 0, 0, -139, -139, -139, -139, -139,
0, -78, 0, 0, -78, 0, -78, -78, -78, -78, -78, -78, -78, -78, -78, 0, -78, -78, -78, -78, -78, -78, -78, 0, -78, -78, 0, -78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -78, -78, -78, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, -136, 0, 0, 0, 0, 0, 0, 0, 0, 0, -136, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -136, 0, 0, 0, 0,
0, -93, 0, 0, -93, 0, -93, 51, -93, 0, -93, 52, 53, 54, 0, 0, -93, -93, -93, 0, -93, -93, -93, 0, 55, 0, 0, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -93, -93, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, -68, 0, 0, -68, 0, 0, 0, 0, -68, 0, -68, 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, -68, 0, -68, 0, 0, 0, 0,
0, -103, 0, 0, -103, 0, -103, 0, 57, -103, 58, 0, 0, 0, -103, 0, -103, -103, -103, -103, -103, -103, -103, 0, 0, -103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -103, -103, -103, 0, 0, 0, 0,
0, 0, 0, 0, 59, 0, -85, 0, 0, -85, 0, 0, 0, 0, -85, 0, -85, 0, 0, -85, 0, 0, 0, 0, 0, -85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -85, 60, -85, 0, 0, 0, 0,
0, 61, 0, 0, -100, 0, -100, 0, 0, -100, 0, 0, 0, 0, -100, 0, -100, 62, 63, -100, 64, 65, 66, 0, 0, -100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -100, -100, -100, 0, 0, 0, 0,
0, -77, 0, 0, -77, 0, -77, -77, -77, -77, -77, -77, -77, -77, -77, 0, -77, -77, -77, -77, -77, -77, -77, 0, -77, -77, 0, -77, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -77, -77, -77, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 193, 0, 0, 0, 0,
-143, 0, 0, -143, 0, -143, 0, -143, 0, 0, -143, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -143, 0, 0, -143, 0, 0, 0, 0, 0, 0, 0, 0, -143, -143, 0, -143, 0, 0, -143, 0, -143, 0, 0, -143, 0, 0, -143, -143, -143, -143, -143,
0, -75, 0, 0, -75, 0, -75, -75, -75, -75, -75, -75, -75, -75, -75, 0, -75, -75, -75, -75, -75, -75, -75, 0, -75, -75, 0, -75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -75, -75, -75, 0, 0, 0, 0,
0, -76, 0, 0, -76, 0, -76, -76, -76, -76, -76, -76, -76, -76, -76, 0, -76, -76, -76, -76, -76, -76, -76, 0, -76, -76, 0, -76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -76, -76, -76, 0, 0, 0, 0,
0, 0, 0, 0, 0, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 73, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-26, 0, -26, -26, 0, -26, 0, -26, 0, 0, -26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -26, 0, 0, -26, 0, 0, 0, -26, -26, 0, 0, -26, -26, -26, 0, -26, 0, 0, -26, 0, -26, -26, 0, -26, 0, 0, -26, -26, -26, -26, -26,
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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -115, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 78, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 209, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 210, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 211, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 212, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 213, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, -43, 0, 0, -43, 0, -43, 0, -43, 0, -43, 0, 0, 0, 0, 0, -43, -43, -43, 0, -43, -43, -43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -43, 0, 0, 0, 0, 0,
0, -44, 0, 0, -44, 0, -44, 0, -44, 0, -44, 0, 0, 0, 0, 0, -44, -44, -44, 0, -44, -44, -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, -44, 0, 0, 0, 0, 0,
0, -53, 0, 0, -53, 0, -53, 0, 0, 0, 0, 0, 0, 0, 0, 0, -53, -53, -53, 0, -53, -53, -53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -53, 0, 0, 0, 0, 0,
0, -54, 0, 0, -54, 0, -54, 0, 0, 0, 0, 0, 0, 0, 0, 0, -54, -54, -54, 0, -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, -54, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, -40, 0, 0, 0, 0, 0, 0, 0, 0, 0, -40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, -41, 0, 0, 0, 0, 0, 0, 0, 0, 0, -41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, -47, 0, -47, 0, 0, 0, 0, 0, 0, 0, 0, 0, -47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -47, 0, 0, 0, 0, 0,
0, 0, 0, 0, -51, 0, -51, 0, 0, 0, 0, 0, 0, 0, 0, 0, -51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -51, 0, 0, 0, 0, 0,
0, 0, 0, 0, -50, 0, -50, 0, 0, 0, 0, 0, 0, 0, 0, 0, -50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -50, 0, 0, 0, 0, 0,
0, 0, 0, 0, -46, 0, -46, 0, 0, 0, 0, 0, 0, 0, 0, 0, -46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -46, 0, 0, 0, 0, 0,
0, 0, 0, 0, -49, 0, -49, 0, 0, 0, 0, 0, 0, 0, 0, 0, -49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -49, 0, 0, 0, 0, 0,
0, 0, 0, 0, -48, 0, -48, 0, 0, 0, 0, 0, 0, 0, 0, 0, -48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -48, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 214, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, -105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -105, 0, 0, 0, -105, 0, 0, 0, 0, 0, 0, 0, 0, 0, -105, 0, 0, 0, 0, -105, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, -148, 0, 0, -148, 0, 0, 0, 0, -148, 0, -148, 0, 0, -148, 0, 0, 0, 0, 0, -148, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -148, 0, -148, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, -149, 0, 0, -149, 0, 0, 0, 0, -149, 0, -149, 0, 0, -149, 0, 0, 0, 0, 0, -149, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -149, 0, -149, 0, 0, 0, 0,
0, -72, 0, 0, -72, 0, -72, -72, -72, -72, -72, -72, -72, -72, -72, 0, -72, -72, -72, -72, -72, -72, -72, 0, -72, -72, 0, -72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -72, -72, -72, 0, 0, 0, 0,
-140, 0, 0, -140, 0, -140, 0, -140, 0, 0, -140, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -140, 0, 0, -140, 0, 0, 0, 0, 0, 0, 0, 0, -140, -140, 0, -140, 0, 0, -140, 0, -140, 0, 0, -140, 0, 0, -140, -140, -140, -140, -140,
-24, 0, -24, -24, 0, -24, 0, -24, 0, 0, -24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -24, 0, 0, -24, 0, 0, 0, -24, -24, 0, 0, -24, -24, -24, 0, -24, 0, 0, -24, 0, -24, -24, 0, -24, 0, 0, -24, -24, -24, -24, -24,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 234, 0, 0, 0, 0,
-144, 0, 0, -144, 0, -144, 0, -144, 0, 0, -144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -144, 0, 0, -144, 0, 0, 0, 0, 0, 0, 0, 0, -144, -144, 0, -144, 0, 0, -144, 0, -144, 0, 0, -144, 0, 0, -144, -144, -144, -144, -144,
-27, 0, -27, -27, 0, -27, 0, -27, 0, 0, -27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -27, 0, 0, -27, 0, 0, 0, -27, -27, 0, 0, -27, -27, -27, 0, -27, 0, 0, -27, 0, -27, -27, 0, -27, 0, 0, -27, -27, -27, -27, -27,
0, -79, 0, 0, -79, 0, -79, -79, -79, -79, -79, -79, -79, -79, -79, 0, -79, -79, -79, -79, -79, -79, -79, 0, -79, -79, 0, -79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -79, -79, -79, 0, 0, 0, 0,
0, -80, 0, 0, -80, 0, -80, -80, -80, -80, -80, -80, -80, -80, -80, 0, -80, -80, -80, -80, -80, -80, -80, 0, -80, -80, 0, -80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -80, -80, -80, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 235, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, -93, 0, 0, -93, 0, -93, 51, -93, -93, -93, 83, 53, 54, -93, 0, -93, -93, -93, -93, -93, -93, -93, 0, 84, -93, 0, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -93, -93, -93, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, -67, 0, 0, 0, 0, 0, 0, 0, 0, 0, -67, 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, -67, 0, 0, 0, 0,
0, -82, 0, 0, -82, 0, -82, -82, -82, -82, -82, -82, -82, -82, -82, 0, -82, -82, -82, -82, -82, -82, -82, 0, -82, -82, 0, -82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -82, -82, -82, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 0, 0, 0, 0, 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, -128, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, -127, 0, 0, 0, 0, 0, 0, 0, 0, 0, -127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -127, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 244, 0, 0, 245, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, -56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -56, 0, 0, 0, -56, 0, 0, 0, 0, 0, 0, 0, 0, 0, -56, 0, 0, 0, 0, -56, 0, 0, 0, 0,
0, 0, -60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -60, 0, 0, 0, -60, 0, 0, 0, 0, 0, 0, 0, 0, 0, -60, 0, 0, 0, 0, -60, 0, 0, 0, 0,
0, 0, -57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -57, 0, 0, 0, -57, 0, 0, 0, 0, 0, 0, 0, 0, 0, -57, 0, 0, 0, 0, -57, 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, -59, 0, 0, 0, -59, 0, 0, 0, 0, 0, 0, 0, 0, 0, -59, 0, 0, 0, 0, -59, 0, 0, 0, 0,
0, 0, -58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -58, 0, 0, 0, -58, 0, 0, 0, 0, 0, 0, 0, 0, 0, -58, 0, 0, 0, 0, -58, 0, 0, 0, 0,
0, -34, 0, 0, -34, 0, -34, -34, -34, 0, -34, 0, 0, -34, 0, 0, -34, -34, -34, 0, -34, -34, -34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -34, 0, 0, 0, 0, 0,
0, -91, 0, 0, -91, 0, -91, 0, -91, -91, -91, 0, 0, 0, -91, 0, -91, -91, -91, -91, -91, -91, -91, 0, 0, -91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -91, -91, -91, 0, 0, 0, 0,
0, -92, 0, 0, -92, 0, -92, 0, -92, -92, -92, 0, 0, 0, -92, 0, -92, -92, -92, -92, -92, -92, -92, 0, 0, -92, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -92, -92, -92, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 251, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, -66, 0, 0, 0, 0, -66, 0, -66, 0, 0, -66, 0, 0, 0, 0, 0, -66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -66, 0, -66, 0, 0, 0, 0,
0, -93, 0, 0, -93, 0, -93, 51, -93, -93, -93, 83, 53, 54, -93, 0, -93, -93, -93, -93, -93, -93, -93, 0, 84, -93, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -93, -93, -93, 0, 0, 0, 0,
0, -101, 0, 0, -101, 0, -101, 0, 0, -101, 0, 0, 0, 0, -101, 0, -101, -101, -101, -101, -101, -101, -101, 0, 0, -101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -101, -101, -101, 0, 0, 0, 0,
0, -102, 0, 0, -102, 0, -102, 0, 0, -102, 0, 0, 0, 0, -102, 0, -102, -102, -102, -102, -102, -102, -102, 0, 0, -102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -102, -102, -102, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, -83, 0, 0, -83, 0, 0, 0, 0, -83, 0, -83, 0, 0, -83, 0, 0, 0, 0, 0, -83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -83, 0, -83, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, -84, 0, 0, -84, 0, 0, 0, 0, -84, 0, -84, 0, 0, -84, 0, 0, 0, 0, 0, -84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -84, 0, -84, 0, 0, 0, 0,
0, 0, 0, 0, -95, 0, -95, 0, 0, -95, 0, 0, 0, 0, -95, 0, -95, 0, 0, -95, 0, 0, 0, 0, 0, -95, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -95, -95, -95, 0, 0, 0, 0,
0, 0, 0, 0, -99, 0, -99, 0, 0, -99, 0, 0, 0, 0, -99, 0, -99, 0, 0, -99, 0, 0, 0, 0, 0, -99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -99, -99, -99, 0, 0, 0, 0,
0, 0, 0, 0, -98, 0, -98, 0, 0, -98, 0, 0, 0, 0, -98, 0, -98, 0, 0, -98, 0, 0, 0, 0, 0, -98, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -98, -98, -98, 0, 0, 0, 0,
0, 0, 0, 0, -94, 0, -94, 0, 0, -94, 0, 0, 0, 0, -94, 0, -94, 0, 0, -94, 0, 0, 0, 0, 0, -94, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -94, -94, -94, 0, 0, 0, 0,
0, 0, 0, 0, -97, 0, -97, 0, 0, -97, 0, 0, 0, 0, -97, 0, -97, 0, 0, -97, 0, 0, 0, 0, 0, -97, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -97, -97, -97, 0, 0, 0, 0,
0, 0, 0, 0, -96, 0, -96, 0, 0, -96, 0, 0, 0, 0, -96, 0, -96, 0, 0, -96, 0, 0, 0, 0, 0, -96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -96, -96, -96, 0, 0, 0, 0,
0, -73, 0, 0, -73, 0, -73, -73, -73, -73, -73, -73, -73, -73, -73, 0, -73, -73, -73, -73, -73, -73, -73, 0, -73, -73, 0, -73, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -73, -73, -73, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 254, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, -117, 0, 0, -117, 0, -117, -117, -117, -117, -117, -117, -117, -117, -117, 0, -117, -117, -117, -117, -117, -117, -117, 0, -117, -117, 0, -117, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -117, -117, -117, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, -132, 0, 0, 0, 0, 0, 0, 0, 0, 0, -132, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -132, 0, 0, 0, 0,
-25, 0, -25, -25, 0, -25, 0, -25, 0, 0, -25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -25, 0, 0, -25, 0, 0, 0, -25, -25, 0, 0, -25, -25, -25, 0, -25, 0, 0, -25, 0, -25, -25, 0, -25, 0, 0, -25, -25, -25, -25, -25,
0, -81, 0, 0, -81, 0, -81, -81, -81, -81, -81, -81, -81, -81, -81, 0, -81, -81, -81, -81, -81, -81, -81, 0, -81, -81, 0, -81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -81, -81, -81, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, -67, 0, 0, -67, 0, 0, 0, 0, -67, 0, -67, 0, 0, -67, 0, 0, 0, 0, 0, -67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -67, 0, -67, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 258, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 93, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, -30, 0, -30, 0, -30, 0, 0, -30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -30, 0, 0, -30, 0, 0, 0, 0, 94, 0, 0, 0, -30, -30, 0, -30, 0, 0, -30, 0, -30, 0, 0, -30, 0, 0, -30, -30, -30, -30, -30,
0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 264, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, -121, 0, 0, 0, 0, 0, 0, 0, 0, 0, -121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -121, 0, 0, 0, 0,
-29, 0, 0, -29, 0, -29, 0, -29, 0, 0, -29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -29, 0, 0, -29, 0, 0, 0, 0, 0, 0, 0, 0, -29, -29, 0, -29, 0, 0, -29, 0, -29, 0, 0, -29, 0, 0, -29, -29, -29, -29, -29,
0, 0, 0, 0, 0, 0, 265, 0, 0, 266, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -112, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, -4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -4,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -108, 0, 0, 0, 0,
0, 0, -146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -146, 0, 0, 0, -146, 0, 0, 0, 0, 0, 0, 0, 0, 0, -146, 0, 0, 0, 0, -146, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 269, 0, 0, 0, 0,
0, -89, 0, 0, -89, 0, -89, 0, -89, -89, -89, 0, 0, 0, -89, 0, -89, -89, -89, -89, -89, -89, -89, 0, 0, -89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -89, -89, -89, 0, 0, 0, 0,
0, -87, 0, 0, -87, 0, -87, 0, -87, -87, -87, 0, 0, 0, -87, 0, -87, -87, -87, -87, -87, -87, -87, 0, 0, -87, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -87, -87, -87, 0, 0, 0, 0,
0, -86, 0, 0, -86, 0, -86, 0, -86, 0, -86, 0, 0, 0, 0, 0, -86, -86, -86, 95, -86, -86, -86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -86, -86, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 271, 0, 0, 272, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, -119, 0, 0, -119, 0, -119, -119, -119, -119, -119, -119, -119, -119, -119, 0, -119, -119, -119, -119, -119, -119, -119, 0, -119, -119, 0, -119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -119, -119, -119, 0, 0, 0, 0,
0, -116, 0, 0, -116, 0, -116, -116, -116, -116, -116, -116, -116, -116, -116, 0, -116, -116, -116, -116, -116, -116, -116, 0, -116, -116, 0, -116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -116, -116, -116, 0, 0, 0, 0,
-9, 0, 0, -9, 0, -9, -9, -9, 0, 0, -9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -9, 0, -9, -9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -9, -9, -9, -9,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 273, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, -133, 0, 0, 0, 0, 0, 0, 0, 0, 0, -133, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -133, 0, 0, 0, 0,
0, -71, 0, 0, -71, 0, -71, -71, -71, -71, -71, -71, -71, -71, -71, 0, -71, -71, -71, -71, -71, -71, -71, 0, -71, -71, 0, -71, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -71, -71, -71, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, -129, 0, 0, 0, 0, 0, 0, 0, 0, 0, -129, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -129, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, -130, 0, 0, 0, 0, 0, 0, 0, 0, 0, -130, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -130, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 272, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 276, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, -123, 0, 0, 0, 0, 0, 0, 0, 0, 0, -123, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -123, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, -120, 0, 0, 0, 0, 0, 0, 0, 0, 0, -120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -120, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -114, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, -5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -5,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -109, 0, 0, 0, 0,
0, 0, -147, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -147, 0, 0, 0, -147, 0, 0, 0, 0, 0, 0, 0, 0, 0, -147, 0, 0, 0, 0, -147, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 277, 0, 0, 0, 0, 0, 278, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, -135, 0, 0, 0, 0, 0, 0, 0, 0, 0, -135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -135, 0, 0, 0, 0,
0, -118, 0, 0, -118, 0, -118, -118, -118, -118, -118, -118, -118, -118, -118, 0, -118, -118, -118, -118, -118, -118, -118, 0, -118, -118, 0, -118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -118, -118, -118, 0, 0, 0, 0,
-10, 0, 0, -10, 0, -10, -10, -10, 0, 0, -10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -10, 0, -10, -10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -10, -10, -10, -10,
0, -86, 0, 0, -86, 0, -86, 0, -86, -86, -86, 0, 0, 0, -86, 0, -86, -86, -86, -86, -86, -86, -86, 0, 0, -86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -86, -86, -86, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-31, 0, 0, -31, 0, -31, 0, -31, 0, 0, -31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -31, 0, 0, -31, 0, 0, 0, 0, 0, 0, 0, 0, -31, -31, 0, -31, 0, 0, -31, 0, -31, 0, 0, -31, 0, 0, -31, -31, -31, -31, -31,
0, 0, 0, 0, 0, 0, -122, 0, 0, 0, 0, 0, 0, 0, 0, 0, -122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -122, 0, 0, 0, 0,
0, 0, -61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -61, 0, 0, 0, -61, 0, 0, 0, 0, 0, 0, 0, 0, 0, -61, 0, 0, 0, 0, -61, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 98, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, -134, 0, 0, 0, 0, 0, 0, 0, 0, 0, -134, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -134, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, -131, 0, 0, 0, 0, 0, 0, 0, 0, 0, -131, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -131, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 283, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 285, 0, 0, 0, 0, 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, -28, 0, -28, 0, -28, 0, 0, -28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -28, 0, 0, -28, 0, 0, 0, 0, 0, 0, 0, 0, -28, -28, 0, -28, 0, 0, -28, 0, -28, 0, 0, -28, 0, 0, -28, -28, -28, -28, -28,
0, 0, -62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -62, 0, 0, 0, -62, 0, 0, 0, 0, 0, 0, 0, 0, 0, -62, 0, 0, 0, 0, -62, 0, 0, 0, 0,
];
fn __action(state: i16, integer: usize) -> i16 {
__ACTION[(state as usize) * 54 + integer]
}
const __EOF_ACTION: &[i16] = &[
-125,
-126,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
-14,
-64,
-154,
-65,
0,
-15,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
-104,
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,
-26,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
-105,
0,
0,
0,
0,
-24,
0,
0,
-27,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
-56,
-60,
-57,
-59,
-58,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
-25,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
-146,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
-147,
0,
0,
0,
0,
0,
0,
0,
0,
-61,
0,
0,
0,
0,
0,
0,
0,
-62,
];
fn __goto(state: i16, nt: usize) -> i16 {
match nt {
2 => 20,
5 => match state {
74 => 88,
_ => 81,
},
8 => 1,
13 => 106,
14 => match state {
34 => 187,
73 => 238,
75 => 241,
93 => 274,
98 => 283,
_ => 131,
},
15 => 149,
16 => match state {
6 | 9..=10 | 14 | 16..=17 | 21..=32 => 119,
_ => 150,
},
17 => match state {
9 => 134,
10 => 135,
14 => 140,
_ => 120,
},
18 => match state {
16 => 143,
17 => 144,
21 => 174,
22 => 175,
_ => 121,
},
19 => 122,
20 => match state {
23 => 176,
24 => 177,
_ => 123,
},
21 => match state {
25 => 178,
26 => 179,
_ => 124,
},
22 => match state {
27 => 180,
28 => 181,
29 => 182,
30 => 183,
31 => 184,
32 => 185,
_ => 125,
},
23 => match state {
1 => 104,
_ => 99,
},
24 => match state {
45 => 73,
48 => 75,
41 => 198,
42 => 200,
44 => 203,
47 => 205,
54 => 216,
67 => 230,
68 => 232,
71 => 236,
74 => 239,
81 => 251,
83 => 255,
84 => 256,
85 => 258,
87 => 260,
88 => 261,
90 => 269,
92 => 273,
94 => 278,
95 => 279,
_ => 151,
},
26 => match state {
19 | 38 | 72 | 96 => 152,
39 => 196,
43 => 202,
50 => 214,
53 => 215,
56..=65 | 70 => 218,
_ => 199,
},
27 => match state {
42 => 201,
70 => 235,
_ => 153,
},
28 => match state {
56 => 219,
57 => 220,
_ => 154,
},
29 => match state {
58 => 221,
59 => 222,
_ => 155,
},
30 => match state {
60 => 223,
61 => 224,
62 => 225,
63 => 226,
64 => 227,
65 => 228,
_ => 156,
},
31 => match state {
77 => 245,
89 => 266,
_ => 100,
},
33 => 89,
34 => match state {
3 => 5,
19 | 38 | 72 | 96 => 37,
51 => 79,
52 => 80,
82 => 91,
2 => 107,
4 => 109,
6 | 9..=10 | 14 | 16..=17 | 21..=32 => 126,
8 => 132,
18 | 35..=36 | 49 | 55 | 76 | 86 => 145,
20 => 165,
40 => 197,
46 => 204,
_ => 69,
},
35 => 7,
36 => match state {
66 => 229,
79 | 91 => 248,
80 => 249,
_ => 190,
},
37 => 206,
38 => match state {
6 | 9..=10 | 14 | 16..=17 | 21..=32 => 127,
13 => 139,
_ => 157,
},
39 => match state {
78 => 247,
97 => 281,
_ => 101,
},
40 => match state {
38 => 193,
72 => 237,
96 => 280,
_ => 158,
},
42 => match state {
38 => 194,
_ => 159,
},
44 => 38,
45 => match state {
11 => 136,
12 => 138,
15 => 141,
33 => 186,
_ => 160,
},
46 => 102,
47 => match state {
35 => 188,
36 => 189,
49 => 207,
55 => 217,
76 => 242,
86 => 259,
_ => 34,
},
_ => 0,
}
}
fn __expected_tokens(__state: i16) -> 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###""@""###,
r###""[""###,
r###""]""###,
r###""alloc""###,
r###""as""###,
r###""assert""###,
r###""char""###,
r###""const""###,
r###""else""###,
r###""error""###,
r###""extern""###,
r###""fn""###,
r###""for""###,
r###""free""###,
r###""heap""###,
r###""if""###,
r###""include""###,
r###""isdef""###,
r###""let""###,
r###""num""###,
r###""return""###,
r###""type""###,
r###""void""###,
r###""while""###,
r###""{""###,
r###""||""###,
r###""}""###,
r###"r#"\"(\\\\.|[^\"])*\""#"###,
r###"r#"\'(\\\\.|[^\'])\'"#"###,
r###"r#"([0-9]+([.][0-9]*)?|[.][0-9]+)"#"###,
r###"r#"[a-zA-Z_][a-zA-Z0-9_]*"#"###,
];
__TERMINAL.iter().enumerate().filter_map(|(index, terminal)| {
let next_state = __action(__state, index);
if next_state == 0 {
None
} else {
Some(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 = HirProgram;
type StateIndex = i16;
type Action = i16;
type ReduceIndex = i16;
type NonterminalIndex = usize;
#[inline]
fn start_location(&self) -> Self::Location {
Default::default()
}
#[inline]
fn start_state(&self) -> Self::StateIndex {
0
}
#[inline]
fn token_to_index(&self, token: &Self::Token) -> Option<usize> {
__token_to_integer(token, ::std::marker::PhantomData::<(&())>)
}
#[inline]
fn action(&self, state: i16, integer: usize) -> i16 {
__action(state, integer)
}
#[inline]
fn error_action(&self, state: i16) -> i16 {
__action(state, 54 - 1)
}
#[inline]
fn eof_action(&self, state: i16) -> i16 {
__EOF_ACTION[state as usize]
}
#[inline]
fn goto(&self, state: i16, nt: usize) -> i16 {
__goto(state, nt)
}
fn token_to_symbol(&self, token_index: usize, token: Self::Token) -> Self::Symbol {
__token_to_symbol(token_index, token, ::std::marker::PhantomData::<(&())>)
}
fn expected_tokens(&self, state: i16) -> 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: i16,
start_location: Option<&Self::Location>,
states: &mut Vec<i16>,
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: i16) -> __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(4, _) if true => Some(0),
Token(5, _) if true => Some(1),
Token(6, _) if true => Some(2),
Token(7, _) if true => Some(3),
Token(8, _) if true => Some(4),
Token(9, _) if true => Some(5),
Token(10, _) if true => Some(6),
Token(11, _) if true => Some(7),
Token(12, _) if true => Some(8),
Token(13, _) if true => Some(9),
Token(14, _) if true => Some(10),
Token(15, _) if true => Some(11),
Token(16, _) if true => Some(12),
Token(17, _) if true => Some(13),
Token(18, _) if true => Some(14),
Token(19, _) if true => Some(15),
Token(20, _) if true => Some(16),
Token(21, _) if true => Some(17),
Token(22, _) if true => Some(18),
Token(23, _) if true => Some(19),
Token(24, _) if true => Some(20),
Token(25, _) if true => Some(21),
Token(26, _) if true => Some(22),
Token(27, _) if true => Some(23),
Token(28, _) if true => Some(24),
Token(29, _) if true => Some(25),
Token(30, _) if true => Some(26),
Token(31, _) if true => Some(27),
Token(32, _) if true => Some(28),
Token(33, _) if true => Some(29),
Token(34, _) if true => Some(30),
Token(35, _) if true => Some(31),
Token(36, _) if true => Some(32),
Token(37, _) if true => Some(33),
Token(38, _) if true => Some(34),
Token(39, _) if true => Some(35),
Token(40, _) if true => Some(36),
Token(41, _) if true => Some(37),
Token(42, _) if true => Some(38),
Token(43, _) if true => Some(39),
Token(44, _) if true => Some(40),
Token(45, _) if true => Some(41),
Token(46, _) if true => Some(42),
Token(47, _) if true => Some(43),
Token(48, _) if true => Some(44),
Token(49, _) if true => Some(45),
Token(50, _) if true => Some(46),
Token(51, _) if true => Some(47),
Token(52, _) if true => Some(48),
Token(53, _) if true => Some(49),
Token(0, _) if true => Some(50),
Token(1, _) if true => Some(51),
Token(2, _) if true => Some(52),
Token(3, _) if true => Some(53),
_ => 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 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 => match __token {
Token(4, __tok0) | Token(5, __tok0) | Token(6, __tok0) | Token(7, __tok0) | Token(8, __tok0) | Token(9, __tok0) | Token(10, __tok0) | Token(11, __tok0) | Token(12, __tok0) | Token(13, __tok0) | Token(14, __tok0) | Token(15, __tok0) | Token(16, __tok0) | Token(17, __tok0) | Token(18, __tok0) | Token(19, __tok0) | Token(20, __tok0) | Token(21, __tok0) | Token(22, __tok0) | Token(23, __tok0) | Token(24, __tok0) | Token(25, __tok0) | Token(26, __tok0) | Token(27, __tok0) | Token(28, __tok0) | Token(29, __tok0) | Token(30, __tok0) | Token(31, __tok0) | Token(32, __tok0) | Token(33, __tok0) | Token(34, __tok0) | Token(35, __tok0) | Token(36, __tok0) | Token(37, __tok0) | Token(38, __tok0) | Token(39, __tok0) | Token(40, __tok0) | Token(41, __tok0) | Token(42, __tok0) | Token(43, __tok0) | Token(44, __tok0) | Token(45, __tok0) | Token(46, __tok0) | Token(47, __tok0) | Token(48, __tok0) | Token(49, __tok0) | Token(50, __tok0) | Token(51, __tok0) | Token(52, __tok0) | Token(53, __tok0) | Token(0, __tok0) | Token(1, __tok0) | Token(2, __tok0) | Token(3, __tok0) if true => __Symbol::Variant0(__tok0),
_ => unreachable!(),
},
_ => unreachable!(),
}
}
pub struct ProgramParser {
builder: __lalrpop_util::lexer::MatcherBuilder,
_priv: (),
}
impl ProgramParser {
pub fn new() -> ProgramParser {
let __builder = super::__intern_token::new_builder();
ProgramParser {
builder: __builder,
_priv: (),
}
}
#[allow(dead_code)]
pub fn parse<
'input,
>(
&self,
input: &'input str,
) -> Result<HirProgram, __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: i16,
__lookahead_start: Option<&usize>,
__states: &mut ::std::vec::Vec<i16>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<(&'input ())>,
) -> Option<Result<HirProgram,__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 => {
__reduce79(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
80 => {
__reduce80(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
81 => {
__reduce81(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
82 => {
__reduce82(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
83 => {
__reduce83(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
84 => {
__reduce84(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
85 => {
__reduce85(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
86 => {
__reduce86(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
87 => {
__reduce87(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
88 => {
__reduce88(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
89 => {
__reduce89(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
90 => {
__reduce90(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
91 => {
__reduce91(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
92 => {
__reduce92(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
93 => {
__reduce93(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
94 => {
__reduce94(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
95 => {
__reduce95(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
96 => {
__reduce96(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
97 => {
__reduce97(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
98 => {
__reduce98(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
99 => {
__reduce99(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
100 => {
__reduce100(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
101 => {
__reduce101(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
102 => {
__reduce102(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
103 => {
__reduce103(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
104 => {
__reduce104(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
105 => {
__reduce105(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
106 => {
__reduce106(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
107 => {
__reduce107(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
108 => {
__reduce108(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
109 => {
__reduce109(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
110 => {
__reduce110(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
111 => {
__reduce111(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
112 => {
__reduce112(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
113 => {
__reduce113(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
114 => {
__reduce114(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
115 => {
__reduce115(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
116 => {
__reduce116(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
117 => {
__reduce117(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
118 => {
__reduce118(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
119 => {
__reduce119(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
120 => {
__reduce120(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
121 => {
__reduce121(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
122 => {
__reduce122(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
123 => {
__reduce123(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
124 => {
__reduce124(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
125 => {
__reduce125(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
126 => {
__reduce126(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
127 => {
__reduce127(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
128 => {
__reduce128(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
129 => {
__reduce129(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
130 => {
__reduce130(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
131 => {
__reduce131(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
132 => {
__reduce132(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
133 => {
__reduce133(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
134 => {
__reduce134(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
135 => {
__reduce135(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
136 => {
__reduce136(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
137 => {
__reduce137(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
138 => {
__reduce138(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
139 => {
__reduce139(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
140 => {
__reduce140(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
141 => {
__reduce141(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
142 => {
__reduce142(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
143 => {
__reduce143(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
144 => {
__reduce144(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
145 => {
__reduce145(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
146 => {
__reduce146(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
147 => {
__reduce147(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
148 => {
__reduce148(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
149 => {
__reduce149(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
150 => {
__reduce150(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
151 => {
__reduce151(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
152 => {
__reduce152(input, __lookahead_start, __symbols, ::std::marker::PhantomData::<(&())>)
}
153 => {
let __sym0 = __pop_Variant23(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action0::<>(input, __sym0);
return Some(Ok(__nt));
}
_ => panic!("invalid action code {}", __action)
};
let __states_len = __states.len();
__states.truncate(__states_len - __pop_states);
let __state = *__states.last().unwrap();
let __next_state = __goto(__state, __nonterminal);
__states.push(__next_state);
None
}
#[inline(never)]
fn __symbol_type_mismatch() -> ! {
panic!("symbol type mismatch")
}
fn __pop_Variant1<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, ((Identifier, &'input str, HirType), &'input str), usize)
{
match __symbols.pop().unwrap() {
(__l, __Symbol::Variant1(__v), __r) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant3<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, (HirExpression, &'input str), usize)
{
match __symbols.pop().unwrap() {
(__l, __Symbol::Variant3(__v), __r) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant7<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, (Identifier, &'input str, HirType), usize)
{
match __symbols.pop().unwrap() {
(__l, __Symbol::Variant7(__v), __r) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant9<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, (&'input str, &'input str), usize)
{
match __symbols.pop().unwrap() {
(__l, __Symbol::Variant9(__v), __r) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant14<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, HirConstant, usize)
{
match __symbols.pop().unwrap() {
(__l, __Symbol::Variant14(__v), __r) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant5<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, HirDeclaration, usize)
{
match __symbols.pop().unwrap() {
(__l, __Symbol::Variant5(__v), __r) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant15<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, HirExpression, usize)
{
match __symbols.pop().unwrap() {
(__l, __Symbol::Variant15(__v), __r) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant17<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, HirFunction, usize)
{
match __symbols.pop().unwrap() {
(__l, __Symbol::Variant17(__v), __r) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant23<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, HirProgram, usize)
{
match __symbols.pop().unwrap() {
(__l, __Symbol::Variant23(__v), __r) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant12<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, HirStatement, usize)
{
match __symbols.pop().unwrap() {
(__l, __Symbol::Variant12(__v), __r) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant27<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, HirStructure, usize)
{
match __symbols.pop().unwrap() {
(__l, __Symbol::Variant27(__v), __r) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant28<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, HirType, usize)
{
match __symbols.pop().unwrap() {
(__l, __Symbol::Variant28(__v), __r) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant19<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, Identifier, usize)
{
match __symbols.pop().unwrap() {
(__l, __Symbol::Variant19(__v), __r) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant26<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, String, usize)
{
match __symbols.pop().unwrap() {
(__l, __Symbol::Variant26(__v), __r) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant20<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, Vec<(Identifier, &'input str, HirType)>, usize)
{
match __symbols.pop().unwrap() {
(__l, __Symbol::Variant20(__v), __r) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant21<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, Vec<HirExpression>, usize)
{
match __symbols.pop().unwrap() {
(__l, __Symbol::Variant21(__v), __r) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant11<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, Vec<HirStatement>, usize)
{
match __symbols.pop().unwrap() {
(__l, __Symbol::Variant11(__v), __r) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant13<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, char, usize)
{
match __symbols.pop().unwrap() {
(__l, __Symbol::Variant13(__v), __r) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant22<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, f64, usize)
{
match __symbols.pop().unwrap() {
(__l, __Symbol::Variant22(__v), __r) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant8<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, ::std::option::Option<(Identifier, &'input str, HirType)>, usize)
{
match __symbols.pop().unwrap() {
(__l, __Symbol::Variant8(__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<HirExpression>, usize)
{
match __symbols.pop().unwrap() {
(__l, __Symbol::Variant16(__v), __r) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant24<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, ::std::option::Option<HirStatement>, usize)
{
match __symbols.pop().unwrap() {
(__l, __Symbol::Variant24(__v), __r) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant2<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, ::std::vec::Vec<((Identifier, &'input str, HirType), &'input str)>, usize)
{
match __symbols.pop().unwrap() {
(__l, __Symbol::Variant2(__v), __r) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant4<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, ::std::vec::Vec<(HirExpression, &'input str)>, usize)
{
match __symbols.pop().unwrap() {
(__l, __Symbol::Variant4(__v), __r) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant10<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, ::std::vec::Vec<(&'input str, &'input str)>, usize)
{
match __symbols.pop().unwrap() {
(__l, __Symbol::Variant10(__v), __r) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant6<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, ::std::vec::Vec<HirDeclaration>, usize)
{
match __symbols.pop().unwrap() {
(__l, __Symbol::Variant6(__v), __r) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant18<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, ::std::vec::Vec<HirFunction>, usize)
{
match __symbols.pop().unwrap() {
(__l, __Symbol::Variant18(__v), __r) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant25<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, ::std::vec::Vec<HirStatement>, usize)
{
match __symbols.pop().unwrap() {
(__l, __Symbol::Variant25(__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().unwrap() {
(__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)
{
assert!(__symbols.len() >= 4);
let __sym3 = __pop_Variant0(__symbols);
let __sym2 = __pop_Variant28(__symbols);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant19(__symbols);
let __start = __sym0.0.clone();
let __end = __sym3.2.clone();
let __nt = super::__action139::<>(input, __sym0, __sym1, __sym2, __sym3);
__symbols.push((__start, __Symbol::Variant1(__nt), __end));
(4, 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::__action123::<>(input, &__start, &__end);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(0, 1)
}
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)
{
let __sym0 = __pop_Variant2(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action124::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(1, 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)
{
assert!(__symbols.len() >= 4);
let __sym3 = __pop_Variant0(__symbols);
let __sym2 = __pop_Variant28(__symbols);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant19(__symbols);
let __start = __sym0.0.clone();
let __end = __sym3.2.clone();
let __nt = super::__action141::<>(input, __sym0, __sym1, __sym2, __sym3);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(4, 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)
{
assert!(__symbols.len() >= 5);
let __sym4 = __pop_Variant0(__symbols);
let __sym3 = __pop_Variant28(__symbols);
let __sym2 = __pop_Variant0(__symbols);
let __sym1 = __pop_Variant19(__symbols);
let __sym0 = __pop_Variant2(__symbols);
let __start = __sym0.0.clone();
let __end = __sym4.2.clone();
let __nt = super::__action142::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(5, 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_Variant15(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action134::<>(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)
{
let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
let __end = __start.clone();
let __nt = super::__action132::<>(input, &__start, &__end);
__symbols.push((__start, __Symbol::Variant4(__nt), __end));
(0, 4)
}
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)
{
let __sym0 = __pop_Variant4(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action133::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant4(__nt), __end));
(1, 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)
{
assert!(__symbols.len() >= 2);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant15(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action145::<>(input, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant4(__nt), __end));
(2, 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)
{
assert!(__symbols.len() >= 3);
let __sym2 = __pop_Variant0(__symbols);
let __sym1 = __pop_Variant15(__symbols);
let __sym0 = __pop_Variant4(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action146::<>(input, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant4(__nt), __end));
(3, 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)
{
let __sym0 = __pop_Variant5(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action116::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant5(__nt), __end));
(1, 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)
{
let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
let __end = __start.clone();
let __nt = super::__action114::<>(input, &__start, &__end);
__symbols.push((__start, __Symbol::Variant6(__nt), __end));
(0, 7)
}
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)
{
let __sym0 = __pop_Variant6(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action115::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant6(__nt), __end));
(1, 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 __sym0 = __pop_Variant5(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action151::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant6(__nt), __end));
(1, 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)
{
assert!(__symbols.len() >= 2);
let __sym1 = __pop_Variant5(__symbols);
let __sym0 = __pop_Variant6(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action152::<>(input, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant6(__nt), __end));
(2, 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() >= 3);
let __sym2 = __pop_Variant28(__symbols);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant19(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action110::<>(input, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant7(__nt), __end));
(3, 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_Variant28(__symbols);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant19(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action140::<>(input, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant8(__nt), __end));
(3, 10)
}
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 __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
let __end = __start.clone();
let __nt = super::__action122::<>(input, &__start, &__end);
__symbols.push((__start, __Symbol::Variant8(__nt), __end));
(0, 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)
{
assert!(__symbols.len() >= 2);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action113::<>(input, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant9(__nt), __end));
(2, 11)
}
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 __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
let __end = __start.clone();
let __nt = super::__action111::<>(input, &__start, &__end);
__symbols.push((__start, __Symbol::Variant10(__nt), __end));
(0, 12)
}
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_Variant10(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action112::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant10(__nt), __end));
(1, 12)
}
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)
{
assert!(__symbols.len() >= 2);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action159::<>(input, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant10(__nt), __end));
(2, 13)
}
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)
{
assert!(__symbols.len() >= 3);
let __sym2 = __pop_Variant0(__symbols);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant10(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action160::<>(input, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant10(__nt), __end));
(3, 13)
}
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)
{
assert!(__symbols.len() >= 3);
let __sym2 = __pop_Variant0(__symbols);
let __sym1 = __pop_Variant12(__symbols);
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action175::<>(input, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant11(__nt), __end));
(3, 14)
}
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() >= 4);
let __sym3 = __pop_Variant0(__symbols);
let __sym2 = __pop_Variant12(__symbols);
let __sym1 = __pop_Variant25(__symbols);
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym3.2.clone();
let __nt = super::__action176::<>(input, __sym0, __sym1, __sym2, __sym3);
__symbols.push((__start, __Symbol::Variant11(__nt), __end));
(4, 14)
}
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)
{
assert!(__symbols.len() >= 2);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action177::<>(input, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant11(__nt), __end));
(2, 14)
}
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)
{
assert!(__symbols.len() >= 3);
let __sym2 = __pop_Variant0(__symbols);
let __sym1 = __pop_Variant25(__symbols);
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action178::<>(input, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant11(__nt), __end));
(3, 14)
}
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)
{
assert!(__symbols.len() >= 9);
let __sym8 = __pop_Variant11(__symbols);
let __sym7 = __pop_Variant0(__symbols);
let __sym6 = __pop_Variant12(__symbols);
let __sym5 = __pop_Variant0(__symbols);
let __sym4 = __pop_Variant15(__symbols);
let __sym3 = __pop_Variant0(__symbols);
let __sym2 = __pop_Variant12(__symbols);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym8.2.clone();
let __nt = super::__action51::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7, __sym8);
__symbols.push((__start, __Symbol::Variant12(__nt), __end));
(9, 15)
}
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() >= 3);
let __sym2 = __pop_Variant11(__symbols);
let __sym1 = __pop_Variant15(__symbols);
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action52::<>(input, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant12(__nt), __end));
(3, 15)
}
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)
{
assert!(__symbols.len() >= 3);
let __sym2 = __pop_Variant11(__symbols);
let __sym1 = __pop_Variant15(__symbols);
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action53::<>(input, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant12(__nt), __end));
(3, 15)
}
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)
{
assert!(__symbols.len() >= 5);
let __sym4 = __pop_Variant11(__symbols);
let __sym3 = __pop_Variant0(__symbols);
let __sym2 = __pop_Variant11(__symbols);
let __sym1 = __pop_Variant15(__symbols);
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym4.2.clone();
let __nt = super::__action54::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4);
__symbols.push((__start, __Symbol::Variant12(__nt), __end));
(5, 15)
}
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 __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action13::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant13(__nt), __end));
(1, 16)
}
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)
{
let __sym0 = __pop_Variant14(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action16::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant14(__nt), __end));
(1, 17)
}
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)
{
assert!(__symbols.len() >= 4);
let __sym3 = __pop_Variant0(__symbols);
let __sym2 = __pop_Variant26(__symbols);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym3.2.clone();
let __nt = super::__action17::<>(input, __sym0, __sym1, __sym2, __sym3);
__symbols.push((__start, __Symbol::Variant14(__nt), __end));
(4, 18)
}
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)
{
let __sym0 = __pop_Variant19(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action18::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant14(__nt), __end));
(1, 18)
}
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)
{
let __sym0 = __pop_Variant22(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action19::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant14(__nt), __end));
(1, 18)
}
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)
{
let __sym0 = __pop_Variant13(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action20::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant14(__nt), __end));
(1, 18)
}
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() >= 2);
let __sym1 = __pop_Variant14(__symbols);
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action21::<>(input, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant14(__nt), __end));
(2, 18)
}
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() >= 2);
let __sym1 = __pop_Variant14(__symbols);
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action22::<>(input, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant14(__nt), __end));
(2, 18)
}
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() >= 3);
let __sym2 = __pop_Variant14(__symbols);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant14(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action23::<>(input, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant14(__nt), __end));
(3, 19)
}
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)
{
assert!(__symbols.len() >= 3);
let __sym2 = __pop_Variant14(__symbols);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant14(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action24::<>(input, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant14(__nt), __end));
(3, 19)
}
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_Variant14(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action25::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant14(__nt), __end));
(1, 19)
}
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)
{
assert!(__symbols.len() >= 3);
let __sym2 = __pop_Variant14(__symbols);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant14(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action36::<>(input, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant14(__nt), __end));
(3, 20)
}
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_Variant14(__symbols);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant14(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action37::<>(input, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant14(__nt), __end));
(3, 20)
}
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_Variant14(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action38::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant14(__nt), __end));
(1, 20)
}
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)
{
assert!(__symbols.len() >= 3);
let __sym2 = __pop_Variant14(__symbols);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant14(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action26::<>(input, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant14(__nt), __end));
(3, 21)
}
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)
{
assert!(__symbols.len() >= 3);
let __sym2 = __pop_Variant14(__symbols);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant14(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action27::<>(input, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant14(__nt), __end));
(3, 21)
}
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)
{
assert!(__symbols.len() >= 3);
let __sym2 = __pop_Variant14(__symbols);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant14(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action28::<>(input, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant14(__nt), __end));
(3, 21)
}
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)
{
assert!(__symbols.len() >= 3);
let __sym2 = __pop_Variant14(__symbols);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant14(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action29::<>(input, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant14(__nt), __end));
(3, 21)
}
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_Variant14(__symbols);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant14(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action30::<>(input, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant14(__nt), __end));
(3, 21)
}
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)
{
assert!(__symbols.len() >= 3);
let __sym2 = __pop_Variant14(__symbols);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant14(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action31::<>(input, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant14(__nt), __end));
(3, 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 __sym0 = __pop_Variant14(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action32::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant14(__nt), __end));
(1, 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)
{
assert!(__symbols.len() >= 3);
let __sym2 = __pop_Variant14(__symbols);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant14(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action33::<>(input, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant14(__nt), __end));
(3, 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_Variant14(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action34::<>(input, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant14(__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)
{
let __sym0 = __pop_Variant14(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action35::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant14(__nt), __end));
(1, 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() >= 7);
let __sym6 = __pop_Variant0(__symbols);
let __sym5 = __pop_Variant0(__symbols);
let __sym4 = __pop_Variant14(__symbols);
let __sym3 = __pop_Variant0(__symbols);
let __sym2 = __pop_Variant0(__symbols);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym6.2.clone();
let __nt = super::__action2::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6);
__symbols.push((__start, __Symbol::Variant5(__nt), __end));
(7, 23)
}
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() >= 7);
let __sym6 = __pop_Variant0(__symbols);
let __sym5 = __pop_Variant0(__symbols);
let __sym4 = __pop_Variant26(__symbols);
let __sym3 = __pop_Variant0(__symbols);
let __sym2 = __pop_Variant0(__symbols);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym6.2.clone();
let __nt = super::__action3::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6);
__symbols.push((__start, __Symbol::Variant5(__nt), __end));
(7, 23)
}
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)
{
assert!(__symbols.len() >= 7);
let __sym6 = __pop_Variant0(__symbols);
let __sym5 = __pop_Variant0(__symbols);
let __sym4 = __pop_Variant26(__symbols);
let __sym3 = __pop_Variant0(__symbols);
let __sym2 = __pop_Variant0(__symbols);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym6.2.clone();
let __nt = super::__action4::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6);
__symbols.push((__start, __Symbol::Variant5(__nt), __end));
(7, 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() >= 7);
let __sym6 = __pop_Variant0(__symbols);
let __sym5 = __pop_Variant0(__symbols);
let __sym4 = __pop_Variant22(__symbols);
let __sym3 = __pop_Variant0(__symbols);
let __sym2 = __pop_Variant0(__symbols);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym6.2.clone();
let __nt = super::__action5::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6);
__symbols.push((__start, __Symbol::Variant5(__nt), __end));
(7, 23)
}
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)
{
assert!(__symbols.len() >= 7);
let __sym6 = __pop_Variant0(__symbols);
let __sym5 = __pop_Variant0(__symbols);
let __sym4 = __pop_Variant26(__symbols);
let __sym3 = __pop_Variant0(__symbols);
let __sym2 = __pop_Variant0(__symbols);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym6.2.clone();
let __nt = super::__action6::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6);
__symbols.push((__start, __Symbol::Variant5(__nt), __end));
(7, 23)
}
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)
{
assert!(__symbols.len() >= 10);
let __sym9 = __pop_Variant0(__symbols);
let __sym8 = __pop_Variant0(__symbols);
let __sym7 = __pop_Variant23(__symbols);
let __sym6 = __pop_Variant0(__symbols);
let __sym5 = __pop_Variant0(__symbols);
let __sym4 = __pop_Variant14(__symbols);
let __sym3 = __pop_Variant0(__symbols);
let __sym2 = __pop_Variant0(__symbols);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym9.2.clone();
let __nt = super::__action7::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7, __sym8, __sym9);
__symbols.push((__start, __Symbol::Variant5(__nt), __end));
(10, 23)
}
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() >= 14);
let __sym13 = __pop_Variant0(__symbols);
let __sym12 = __pop_Variant0(__symbols);
let __sym11 = __pop_Variant23(__symbols);
let __sym10 = __pop_Variant0(__symbols);
let __sym9 = __pop_Variant0(__symbols);
let __sym8 = __pop_Variant0(__symbols);
let __sym7 = __pop_Variant23(__symbols);
let __sym6 = __pop_Variant0(__symbols);
let __sym5 = __pop_Variant0(__symbols);
let __sym4 = __pop_Variant14(__symbols);
let __sym3 = __pop_Variant0(__symbols);
let __sym2 = __pop_Variant0(__symbols);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym13.2.clone();
let __nt = super::__action8::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7, __sym8, __sym9, __sym10, __sym11, __sym12, __sym13);
__symbols.push((__start, __Symbol::Variant5(__nt), __end));
(14, 23)
}
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() >= 5);
let __sym4 = __pop_Variant0(__symbols);
let __sym3 = __pop_Variant14(__symbols);
let __sym2 = __pop_Variant0(__symbols);
let __sym1 = __pop_Variant19(__symbols);
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym4.2.clone();
let __nt = super::__action9::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4);
__symbols.push((__start, __Symbol::Variant5(__nt), __end));
(5, 23)
}
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)
{
let __sym0 = __pop_Variant17(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action10::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant5(__nt), __end));
(1, 23)
}
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_Variant27(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action11::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant5(__nt), __end));
(1, 23)
}
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)
{
assert!(__symbols.len() >= 3);
let __sym2 = __pop_Variant28(__symbols);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant15(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action65::<>(input, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant15(__nt), __end));
(3, 24)
}
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)
{
assert!(__symbols.len() >= 2);
let __sym1 = __pop_Variant15(__symbols);
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action66::<>(input, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant15(__nt), __end));
(2, 24)
}
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_Variant15(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action67::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant15(__nt), __end));
(1, 24)
}
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_Variant15(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action130::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant16(__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 __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
let __end = __start.clone();
let __nt = super::__action131::<>(input, &__start, &__end);
__symbols.push((__start, __Symbol::Variant16(__nt), __end));
(0, 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)
{
assert!(__symbols.len() >= 4);
let __sym3 = __pop_Variant0(__symbols);
let __sym2 = __pop_Variant15(__symbols);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym3.2.clone();
let __nt = super::__action68::<>(input, __sym0, __sym1, __sym2, __sym3);
__symbols.push((__start, __Symbol::Variant15(__nt), __end));
(4, 26)
}
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)
{
assert!(__symbols.len() >= 2);
let __sym1 = __pop_Variant21(__symbols);
let __sym0 = __pop_Variant19(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action69::<>(input, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant15(__nt), __end));
(2, 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)
{
assert!(__symbols.len() >= 3);
let __sym2 = __pop_Variant21(__symbols);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant19(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action70::<>(input, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant15(__nt), __end));
(3, 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_Variant19(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action71::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant15(__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_Variant26(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action72::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant15(__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_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action73::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant15(__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_Variant22(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action74::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant15(__nt), __end));
(1, 26)
}
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_Variant13(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action75::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant15(__nt), __end));
(1, 26)
}
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)
{
assert!(__symbols.len() >= 2);
let __sym1 = __pop_Variant15(__symbols);
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action76::<>(input, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant15(__nt), __end));
(2, 26)
}
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)
{
assert!(__symbols.len() >= 2);
let __sym1 = __pop_Variant19(__symbols);
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action77::<>(input, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant15(__nt), __end));
(2, 26)
}
pub(crate) fn __reduce80<
'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_Variant15(__symbols);
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action78::<>(input, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant15(__nt), __end));
(3, 26)
}
pub(crate) fn __reduce81<
'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_Variant15(__symbols);
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action79::<>(input, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant15(__nt), __end));
(2, 26)
}
pub(crate) fn __reduce82<
'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_Variant15(__symbols);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant15(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action80::<>(input, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant15(__nt), __end));
(3, 27)
}
pub(crate) fn __reduce83<
'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_Variant15(__symbols);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant15(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action81::<>(input, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant15(__nt), __end));
(3, 27)
}
pub(crate) fn __reduce84<
'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::__action82::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant15(__nt), __end));
(1, 27)
}
pub(crate) fn __reduce85<
'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_Variant15(__symbols);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant15(__symbols);
let __start = __sym0.0.clone();
let __end = __sym3.2.clone();
let __nt = super::__action93::<>(input, __sym0, __sym1, __sym2, __sym3);
__symbols.push((__start, __Symbol::Variant15(__nt), __end));
(4, 28)
}
pub(crate) fn __reduce86<
'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_Variant21(__symbols);
let __sym2 = __pop_Variant19(__symbols);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant15(__symbols);
let __start = __sym0.0.clone();
let __end = __sym3.2.clone();
let __nt = super::__action94::<>(input, __sym0, __sym1, __sym2, __sym3);
__symbols.push((__start, __Symbol::Variant15(__nt), __end));
(4, 28)
}
pub(crate) fn __reduce87<
'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_Variant19(__symbols);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant15(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action95::<>(input, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant15(__nt), __end));
(3, 28)
}
pub(crate) fn __reduce88<
'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_Variant21(__symbols);
let __sym2 = __pop_Variant19(__symbols);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant15(__symbols);
let __start = __sym0.0.clone();
let __end = __sym3.2.clone();
let __nt = super::__action96::<>(input, __sym0, __sym1, __sym2, __sym3);
__symbols.push((__start, __Symbol::Variant15(__nt), __end));
(4, 28)
}
pub(crate) fn __reduce89<
'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_Variant19(__symbols);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant15(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action97::<>(input, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant15(__nt), __end));
(3, 28)
}
pub(crate) fn __reduce90<
'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_Variant15(__symbols);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant15(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action98::<>(input, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant15(__nt), __end));
(3, 28)
}
pub(crate) fn __reduce91<
'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_Variant15(__symbols);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant15(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action99::<>(input, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant15(__nt), __end));
(3, 28)
}
pub(crate) fn __reduce92<
'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::__action100::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant15(__nt), __end));
(1, 28)
}
pub(crate) fn __reduce93<
'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_Variant15(__symbols);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant15(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action83::<>(input, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant15(__nt), __end));
(3, 29)
}
pub(crate) fn __reduce94<
'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_Variant15(__symbols);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant15(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action84::<>(input, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant15(__nt), __end));
(3, 29)
}
pub(crate) fn __reduce95<
'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_Variant15(__symbols);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant15(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action85::<>(input, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant15(__nt), __end));
(3, 29)
}
pub(crate) fn __reduce96<
'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_Variant15(__symbols);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant15(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action86::<>(input, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant15(__nt), __end));
(3, 29)
}
pub(crate) fn __reduce97<
'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_Variant15(__symbols);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant15(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action87::<>(input, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant15(__nt), __end));
(3, 29)
}
pub(crate) fn __reduce98<
'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_Variant15(__symbols);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant15(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action88::<>(input, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant15(__nt), __end));
(3, 29)
}
pub(crate) fn __reduce99<
'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::__action89::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant15(__nt), __end));
(1, 29)
}
pub(crate) fn __reduce100<
'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_Variant15(__symbols);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant15(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action90::<>(input, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant15(__nt), __end));
(3, 30)
}
pub(crate) fn __reduce101<
'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_Variant15(__symbols);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant15(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action91::<>(input, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant15(__nt), __end));
(3, 30)
}
pub(crate) fn __reduce102<
'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::__action92::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant15(__nt), __end));
(1, 30)
}
pub(crate) fn __reduce103<
'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_Variant11(__symbols);
let __sym2 = __pop_Variant20(__symbols);
let __sym1 = __pop_Variant19(__symbols);
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym3.2.clone();
let __nt = super::__action39::<>(input, __sym0, __sym1, __sym2, __sym3);
__symbols.push((__start, __Symbol::Variant17(__nt), __end));
(4, 31)
}
pub(crate) fn __reduce104<
'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_Variant11(__symbols);
let __sym4 = __pop_Variant28(__symbols);
let __sym3 = __pop_Variant0(__symbols);
let __sym2 = __pop_Variant20(__symbols);
let __sym1 = __pop_Variant19(__symbols);
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym5.2.clone();
let __nt = super::__action40::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5);
__symbols.push((__start, __Symbol::Variant17(__nt), __end));
(6, 31)
}
pub(crate) fn __reduce105<
'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::__action107::<>(input, &__start, &__end);
__symbols.push((__start, __Symbol::Variant18(__nt), __end));
(0, 32)
}
pub(crate) fn __reduce106<
'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_Variant18(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action108::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant18(__nt), __end));
(1, 32)
}
pub(crate) fn __reduce107<
'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_Variant17(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action126::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant18(__nt), __end));
(1, 33)
}
pub(crate) fn __reduce108<
'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_Variant17(__symbols);
let __sym0 = __pop_Variant18(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action127::<>(input, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant18(__nt), __end));
(2, 33)
}
pub(crate) fn __reduce109<
'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::__action161::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant19(__nt), __end));
(1, 34)
}
pub(crate) fn __reduce110<
'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_Variant10(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action162::<>(input, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant19(__nt), __end));
(2, 34)
}
pub(crate) fn __reduce111<
'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_Variant0(__symbols);
let __sym3 = __pop_Variant28(__symbols);
let __sym2 = __pop_Variant0(__symbols);
let __sym1 = __pop_Variant19(__symbols);
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym4.2.clone();
let __nt = super::__action155::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4);
__symbols.push((__start, __Symbol::Variant20(__nt), __end));
(5, 35)
}
pub(crate) fn __reduce112<
'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_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action156::<>(input, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant20(__nt), __end));
(2, 35)
}
pub(crate) fn __reduce113<
'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_Variant28(__symbols);
let __sym3 = __pop_Variant0(__symbols);
let __sym2 = __pop_Variant19(__symbols);
let __sym1 = __pop_Variant2(__symbols);
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym5.2.clone();
let __nt = super::__action157::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5);
__symbols.push((__start, __Symbol::Variant20(__nt), __end));
(6, 35)
}
pub(crate) fn __reduce114<
'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::__action158::<>(input, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant20(__nt), __end));
(3, 35)
}
pub(crate) fn __reduce115<
'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_Variant15(__symbols);
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action163::<>(input, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant21(__nt), __end));
(3, 36)
}
pub(crate) fn __reduce116<
'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_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action164::<>(input, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant21(__nt), __end));
(2, 36)
}
pub(crate) fn __reduce117<
'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_Variant15(__symbols);
let __sym1 = __pop_Variant4(__symbols);
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym3.2.clone();
let __nt = super::__action165::<>(input, __sym0, __sym1, __sym2, __sym3);
__symbols.push((__start, __Symbol::Variant21(__nt), __end));
(4, 36)
}
pub(crate) fn __reduce118<
'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_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action166::<>(input, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant21(__nt), __end));
(3, 36)
}
pub(crate) fn __reduce119<
'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_Variant15(__symbols);
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action167::<>(input, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant21(__nt), __end));
(3, 37)
}
pub(crate) fn __reduce120<
'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_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action168::<>(input, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant21(__nt), __end));
(2, 37)
}
pub(crate) fn __reduce121<
'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_Variant15(__symbols);
let __sym1 = __pop_Variant4(__symbols);
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym3.2.clone();
let __nt = super::__action169::<>(input, __sym0, __sym1, __sym2, __sym3);
__symbols.push((__start, __Symbol::Variant21(__nt), __end));
(4, 37)
}
pub(crate) fn __reduce122<
'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_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action170::<>(input, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant21(__nt), __end));
(3, 37)
}
pub(crate) fn __reduce123<
'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::__action14::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant22(__nt), __end));
(1, 38)
}
pub(crate) fn __reduce124<
'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::__action153::<>(input, &__start, &__end);
__symbols.push((__start, __Symbol::Variant23(__nt), __end));
(0, 39)
}
pub(crate) fn __reduce125<
'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::__action154::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant23(__nt), __end));
(1, 39)
}
pub(crate) fn __reduce126<
'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_Variant21(__symbols);
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action55::<>(input, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant12(__nt), __end));
(2, 40)
}
pub(crate) fn __reduce127<
'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_Variant15(__symbols);
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action56::<>(input, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant12(__nt), __end));
(2, 40)
}
pub(crate) fn __reduce128<
'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_Variant15(__symbols);
let __sym2 = __pop_Variant0(__symbols);
let __sym1 = __pop_Variant15(__symbols);
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym3.2.clone();
let __nt = super::__action57::<>(input, __sym0, __sym1, __sym2, __sym3);
__symbols.push((__start, __Symbol::Variant12(__nt), __end));
(4, 40)
}
pub(crate) fn __reduce129<
'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_Variant15(__symbols);
let __sym2 = __pop_Variant0(__symbols);
let __sym1 = __pop_Variant19(__symbols);
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym3.2.clone();
let __nt = super::__action58::<>(input, __sym0, __sym1, __sym2, __sym3);
__symbols.push((__start, __Symbol::Variant12(__nt), __end));
(4, 40)
}
pub(crate) fn __reduce130<
'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_Variant15(__symbols);
let __sym4 = __pop_Variant0(__symbols);
let __sym3 = __pop_Variant28(__symbols);
let __sym2 = __pop_Variant0(__symbols);
let __sym1 = __pop_Variant19(__symbols);
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym5.2.clone();
let __nt = super::__action59::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5);
__symbols.push((__start, __Symbol::Variant12(__nt), __end));
(6, 40)
}
pub(crate) fn __reduce131<
'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_Variant15(__symbols);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant19(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action60::<>(input, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant12(__nt), __end));
(3, 40)
}
pub(crate) fn __reduce132<
'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_Variant15(__symbols);
let __sym2 = __pop_Variant0(__symbols);
let __sym1 = __pop_Variant15(__symbols);
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym3.2.clone();
let __nt = super::__action61::<>(input, __sym0, __sym1, __sym2, __sym3);
__symbols.push((__start, __Symbol::Variant12(__nt), __end));
(4, 40)
}
pub(crate) fn __reduce133<
'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_Variant15(__symbols);
let __sym4 = __pop_Variant0(__symbols);
let __sym3 = __pop_Variant0(__symbols);
let __sym2 = __pop_Variant15(__symbols);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant15(__symbols);
let __start = __sym0.0.clone();
let __end = __sym5.2.clone();
let __nt = super::__action62::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5);
__symbols.push((__start, __Symbol::Variant12(__nt), __end));
(6, 40)
}
pub(crate) fn __reduce134<
'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_Variant15(__symbols);
let __sym3 = __pop_Variant0(__symbols);
let __sym2 = __pop_Variant19(__symbols);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant15(__symbols);
let __start = __sym0.0.clone();
let __end = __sym4.2.clone();
let __nt = super::__action63::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4);
__symbols.push((__start, __Symbol::Variant12(__nt), __end));
(5, 40)
}
pub(crate) fn __reduce135<
'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::__action64::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant12(__nt), __end));
(1, 40)
}
pub(crate) fn __reduce136<
'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_Variant12(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action103::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant24(__nt), __end));
(1, 41)
}
pub(crate) fn __reduce137<
'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::__action104::<>(input, &__start, &__end);
__symbols.push((__start, __Symbol::Variant24(__nt), __end));
(0, 41)
}
pub(crate) fn __reduce138<
'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_Variant12(__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, 42)
}
pub(crate) fn __reduce139<
'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_Variant12(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action50::<>(input, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant12(__nt), __end));
(2, 42)
}
pub(crate) fn __reduce140<
'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::__action105::<>(input, &__start, &__end);
__symbols.push((__start, __Symbol::Variant25(__nt), __end));
(0, 43)
}
pub(crate) fn __reduce141<
'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_Variant25(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action106::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant25(__nt), __end));
(1, 43)
}
pub(crate) fn __reduce142<
'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_Variant12(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action128::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant25(__nt), __end));
(1, 44)
}
pub(crate) fn __reduce143<
'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_Variant12(__symbols);
let __sym0 = __pop_Variant25(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action129::<>(input, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant25(__nt), __end));
(2, 44)
}
pub(crate) fn __reduce144<
'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::__action12::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant26(__nt), __end));
(1, 45)
}
pub(crate) fn __reduce145<
'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() >= 7);
let __sym6 = __pop_Variant0(__symbols);
let __sym5 = __pop_Variant0(__symbols);
let __sym4 = __pop_Variant0(__symbols);
let __sym3 = __pop_Variant14(__symbols);
let __sym2 = __pop_Variant0(__symbols);
let __sym1 = __pop_Variant19(__symbols);
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym6.2.clone();
let __nt = super::__action171::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6);
__symbols.push((__start, __Symbol::Variant27(__nt), __end));
(7, 46)
}
pub(crate) fn __reduce146<
'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() >= 8);
let __sym7 = __pop_Variant0(__symbols);
let __sym6 = __pop_Variant18(__symbols);
let __sym5 = __pop_Variant0(__symbols);
let __sym4 = __pop_Variant0(__symbols);
let __sym3 = __pop_Variant14(__symbols);
let __sym2 = __pop_Variant0(__symbols);
let __sym1 = __pop_Variant19(__symbols);
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym7.2.clone();
let __nt = super::__action172::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7);
__symbols.push((__start, __Symbol::Variant27(__nt), __end));
(8, 46)
}
pub(crate) fn __reduce147<
'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_Variant28(__symbols);
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action43::<>(input, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant28(__nt), __end));
(2, 47)
}
pub(crate) fn __reduce148<
'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_Variant28(__symbols);
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action44::<>(input, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant28(__nt), __end));
(2, 47)
}
pub(crate) fn __reduce149<
'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::Variant28(__nt), __end));
(1, 47)
}
pub(crate) fn __reduce150<
'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::__action46::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant28(__nt), __end));
(1, 47)
}
pub(crate) fn __reduce151<
'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::__action47::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant28(__nt), __end));
(1, 47)
}
pub(crate) fn __reduce152<
'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_Variant19(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action48::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant28(__nt), __end));
(1, 47)
}
}
pub use self::__parse__Program::ProgramParser;
#[cfg_attr(rustfmt, rustfmt_skip)]
mod __intern_token {
#![allow(unused_imports)]
use crate::{Identifier, hir::{HirProgram, HirDeclaration, HirStructure, HirFunction, HirExpression, HirConstant, HirStatement, HirType}};
#[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)] = &[
("^(\"(\\\\[\u{0}-\t\u{b}-\u{10ffff}]|[\u{0}-!\\#-\u{10ffff}])*\")", false),
("^(\'(\\\\[\u{0}-\t\u{b}-\u{10ffff}]|[\u{0}-\\&\\(-\u{10ffff}])\')", false),
("^(([0-9]+([\\.][0-9]*)?|[\\.][0-9]+))", 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),
("^(@)", false),
("^(\\[)", false),
("^(\\])", false),
("^(alloc)", false),
("^(as)", false),
("^(assert)", false),
("^(char)", false),
("^(const)", false),
("^(else)", false),
("^(error)", false),
("^(extern)", false),
("^(fn)", false),
("^(for)", false),
("^(free)", false),
("^(heap)", false),
("^(if)", false),
("^(include)", false),
("^(isdef)", false),
("^(let)", false),
("^(num)", false),
("^(return)", false),
("^(type)", false),
("^(void)", false),
("^(while)", 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, HirProgram, usize),
) -> HirProgram
{
__0
}
#[allow(unused_variables)]
fn __action1<
'input,
>(
input: &'input str,
(_, __0, _): (usize, ::std::vec::Vec<HirDeclaration>, usize),
) -> HirProgram
{
HirProgram::new(__0, 512)
}
#[allow(unused_variables)]
fn __action2<
'input,
>(
input: &'input str,
(_, _, _): (usize, &'input str, usize),
(_, _, _): (usize, &'input str, usize),
(_, _, _): (usize, &'input str, usize),
(_, _, _): (usize, &'input str, usize),
(_, __0, _): (usize, HirConstant, usize),
(_, _, _): (usize, &'input str, usize),
(_, _, _): (usize, &'input str, usize),
) -> HirDeclaration
{
HirDeclaration::Assert(__0)
}
#[allow(unused_variables)]
fn __action3<
'input,
>(
input: &'input str,
(_, _, _): (usize, &'input str, usize),
(_, _, _): (usize, &'input str, usize),
(_, _, _): (usize, &'input str, usize),
(_, _, _): (usize, &'input str, usize),
(_, __0, _): (usize, String, usize),
(_, _, _): (usize, &'input str, usize),
(_, _, _): (usize, &'input str, usize),
) -> HirDeclaration
{
HirDeclaration::Extern(__0)
}
#[allow(unused_variables)]
fn __action4<
'input,
>(
input: &'input str,
(_, _, _): (usize, &'input str, usize),
(_, _, _): (usize, &'input str, usize),
(_, _, _): (usize, &'input str, usize),
(_, _, _): (usize, &'input str, usize),
(_, __0, _): (usize, String, usize),
(_, _, _): (usize, &'input str, usize),
(_, _, _): (usize, &'input str, usize),
) -> HirDeclaration
{
HirDeclaration::Include(__0)
}
#[allow(unused_variables)]
fn __action5<
'input,
>(
input: &'input str,
(_, _, _): (usize, &'input str, usize),
(_, _, _): (usize, &'input str, usize),
(_, _, _): (usize, &'input str, usize),
(_, _, _): (usize, &'input str, usize),
(_, __0, _): (usize, f64, usize),
(_, _, _): (usize, &'input str, usize),
(_, _, _): (usize, &'input str, usize),
) -> HirDeclaration
{
HirDeclaration::HeapSize(__0 as i32)
}
#[allow(unused_variables)]
fn __action6<
'input,
>(
input: &'input str,
(_, _, _): (usize, &'input str, usize),
(_, _, _): (usize, &'input str, usize),
(_, _, _): (usize, &'input str, usize),
(_, _, _): (usize, &'input str, usize),
(_, __0, _): (usize, String, usize),
(_, _, _): (usize, &'input str, usize),
(_, _, _): (usize, &'input str, usize),
) -> HirDeclaration
{
HirDeclaration::Error(__0)
}
#[allow(unused_variables)]
fn __action7<
'input,
>(
input: &'input str,
(_, _, _): (usize, &'input str, usize),
(_, _, _): (usize, &'input str, usize),
(_, _, _): (usize, &'input str, usize),
(_, _, _): (usize, &'input str, usize),
(_, cond, _): (usize, HirConstant, usize),
(_, _, _): (usize, &'input str, usize),
(_, _, _): (usize, &'input str, usize),
(_, code, _): (usize, HirProgram, usize),
(_, _, _): (usize, &'input str, usize),
(_, _, _): (usize, &'input str, usize),
) -> HirDeclaration
{
HirDeclaration::If(cond, code)
}
#[allow(unused_variables)]
fn __action8<
'input,
>(
input: &'input str,
(_, _, _): (usize, &'input str, usize),
(_, _, _): (usize, &'input str, usize),
(_, _, _): (usize, &'input str, usize),
(_, _, _): (usize, &'input str, usize),
(_, cond, _): (usize, HirConstant, usize),
(_, _, _): (usize, &'input str, usize),
(_, _, _): (usize, &'input str, usize),
(_, then_code, _): (usize, HirProgram, usize),
(_, _, _): (usize, &'input str, usize),
(_, _, _): (usize, &'input str, usize),
(_, _, _): (usize, &'input str, usize),
(_, else_code, _): (usize, HirProgram, usize),
(_, _, _): (usize, &'input str, usize),
(_, _, _): (usize, &'input str, usize),
) -> HirDeclaration
{
HirDeclaration::IfElse(cond, then_code, else_code)
}
#[allow(unused_variables)]
fn __action9<
'input,
>(
input: &'input str,
(_, _, _): (usize, &'input str, usize),
(_, name, _): (usize, Identifier, usize),
(_, _, _): (usize, &'input str, usize),
(_, expr, _): (usize, HirConstant, usize),
(_, _, _): (usize, &'input str, usize),
) -> HirDeclaration
{
HirDeclaration::Constant(name, expr)
}
#[allow(unused_variables)]
fn __action10<
'input,
>(
input: &'input str,
(_, __0, _): (usize, HirFunction, usize),
) -> HirDeclaration
{
HirDeclaration::Function(__0)
}
#[allow(unused_variables)]
fn __action11<
'input,
>(
input: &'input str,
(_, __0, _): (usize, HirStructure, usize),
) -> HirDeclaration
{
HirDeclaration::Structure(__0)
}
#[allow(unused_variables)]
fn __action12<
'input,
>(
input: &'input str,
(_, s, _): (usize, &'input str, usize),
) -> String
{
String::from(&s[1..s.len()-1]).replace("\\\"", "\"").replace("\\n", "\n").replace("\\r", "\r").replace("\\t", "\t").replace("\\0", "\0")
}
#[allow(unused_variables)]
fn __action13<
'input,
>(
input: &'input str,
(_, s, _): (usize, &'input str, usize),
) -> char
{
s.replace("\\'", "'").replace("\\n", "\n").replace("\\r", "\r").replace("\\t", "\t").replace("\\0", "\0").chars().nth(1).unwrap() as char
}
#[allow(unused_variables)]
fn __action14<
'input,
>(
input: &'input str,
(_, __0, _): (usize, &'input str, usize),
) -> f64
{
__0.to_string().parse::<f64>().unwrap()
}
#[allow(unused_variables)]
fn __action15<
'input,
>(
input: &'input str,
(_, head, _): (usize, ::std::vec::Vec<(&'input str, &'input str)>, usize),
(_, tail, _): (usize, &'input str, usize),
) -> Identifier
{
{
let mut result = String::new();
for (a, b) in head {
result += a;
result += b;
}
result += tail;
result
}
}
#[allow(unused_variables)]
fn __action16<
'input,
>(
input: &'input str,
(_, __0, _): (usize, HirConstant, usize),
) -> HirConstant
{
__0
}
#[allow(unused_variables)]
fn __action17<
'input,
>(
input: &'input str,
(_, _, _): (usize, &'input str, usize),
(_, _, _): (usize, &'input str, usize),
(_, __0, _): (usize, String, usize),
(_, _, _): (usize, &'input str, usize),
) -> HirConstant
{
HirConstant::IsDefined(__0)
}
#[allow(unused_variables)]
fn __action18<
'input,
>(
input: &'input str,
(_, __0, _): (usize, Identifier, usize),
) -> HirConstant
{
HirConstant::Constant(__0)
}
#[allow(unused_variables)]
fn __action19<
'input,
>(
input: &'input str,
(_, __0, _): (usize, f64, usize),
) -> HirConstant
{
HirConstant::Float(__0)
}
#[allow(unused_variables)]
fn __action20<
'input,
>(
input: &'input str,
(_, __0, _): (usize, char, usize),
) -> HirConstant
{
HirConstant::Character(__0)
}
#[allow(unused_variables)]
fn __action21<
'input,
>(
input: &'input str,
(_, _, _): (usize, &'input str, usize),
(_, __0, _): (usize, HirConstant, usize),
) -> HirConstant
{
HirConstant::Subtract(Box::new(HirConstant::Float(0.0)), Box::new(__0))
}
#[allow(unused_variables)]
fn __action22<
'input,
>(
input: &'input str,
(_, _, _): (usize, &'input str, usize),
(_, __0, _): (usize, HirConstant, usize),
) -> HirConstant
{
HirConstant::Not(Box::new(__0))
}
#[allow(unused_variables)]
fn __action23<
'input,
>(
input: &'input str,
(_, l, _): (usize, HirConstant, usize),
(_, _, _): (usize, &'input str, usize),
(_, r, _): (usize, HirConstant, usize),
) -> HirConstant
{
HirConstant::And(Box::new(l), Box::new(r))
}
#[allow(unused_variables)]
fn __action24<
'input,
>(
input: &'input str,
(_, l, _): (usize, HirConstant, usize),
(_, _, _): (usize, &'input str, usize),
(_, r, _): (usize, HirConstant, usize),
) -> HirConstant
{
HirConstant::Or(Box::new(l), Box::new(r))
}
#[allow(unused_variables)]
fn __action25<
'input,
>(
input: &'input str,
(_, __0, _): (usize, HirConstant, usize),
) -> HirConstant
{
__0
}
#[allow(unused_variables)]
fn __action26<
'input,
>(
input: &'input str,
(_, l, _): (usize, HirConstant, usize),
(_, _, _): (usize, &'input str, usize),
(_, r, _): (usize, HirConstant, usize),
) -> HirConstant
{
HirConstant::Equal(Box::new(l), Box::new(r))
}
#[allow(unused_variables)]
fn __action27<
'input,
>(
input: &'input str,
(_, l, _): (usize, HirConstant, usize),
(_, _, _): (usize, &'input str, usize),
(_, r, _): (usize, HirConstant, usize),
) -> HirConstant
{
HirConstant::NotEqual(Box::new(l), Box::new(r))
}
#[allow(unused_variables)]
fn __action28<
'input,
>(
input: &'input str,
(_, l, _): (usize, HirConstant, usize),
(_, _, _): (usize, &'input str, usize),
(_, r, _): (usize, HirConstant, usize),
) -> HirConstant
{
HirConstant::GreaterEqual(Box::new(l), Box::new(r))
}
#[allow(unused_variables)]
fn __action29<
'input,
>(
input: &'input str,
(_, l, _): (usize, HirConstant, usize),
(_, _, _): (usize, &'input str, usize),
(_, r, _): (usize, HirConstant, usize),
) -> HirConstant
{
HirConstant::Greater(Box::new(l), Box::new(r))
}
#[allow(unused_variables)]
fn __action30<
'input,
>(
input: &'input str,
(_, l, _): (usize, HirConstant, usize),
(_, _, _): (usize, &'input str, usize),
(_, r, _): (usize, HirConstant, usize),
) -> HirConstant
{
HirConstant::LessEqual(Box::new(l), Box::new(r))
}
#[allow(unused_variables)]
fn __action31<
'input,
>(
input: &'input str,
(_, l, _): (usize, HirConstant, usize),
(_, _, _): (usize, &'input str, usize),
(_, r, _): (usize, HirConstant, usize),
) -> HirConstant
{
HirConstant::Less(Box::new(l), Box::new(r))
}
#[allow(unused_variables)]
fn __action32<
'input,
>(
input: &'input str,
(_, __0, _): (usize, HirConstant, usize),
) -> HirConstant
{
__0
}
#[allow(unused_variables)]
fn __action33<
'input,
>(
input: &'input str,
(_, l, _): (usize, HirConstant, usize),
(_, _, _): (usize, &'input str, usize),
(_, r, _): (usize, HirConstant, usize),
) -> HirConstant
{
HirConstant::Add(Box::new(l), Box::new(r))
}
#[allow(unused_variables)]
fn __action34<
'input,
>(
input: &'input str,
(_, l, _): (usize, HirConstant, usize),
(_, _, _): (usize, &'input str, usize),
(_, r, _): (usize, HirConstant, usize),
) -> HirConstant
{
HirConstant::Subtract(Box::new(l), Box::new(r))
}
#[allow(unused_variables)]
fn __action35<
'input,
>(
input: &'input str,
(_, __0, _): (usize, HirConstant, usize),
) -> HirConstant
{
__0
}
#[allow(unused_variables)]
fn __action36<
'input,
>(
input: &'input str,
(_, l, _): (usize, HirConstant, usize),
(_, _, _): (usize, &'input str, usize),
(_, r, _): (usize, HirConstant, usize),
) -> HirConstant
{
HirConstant::Multiply(Box::new(l), Box::new(r))
}
#[allow(unused_variables)]
fn __action37<
'input,
>(
input: &'input str,
(_, l, _): (usize, HirConstant, usize),
(_, _, _): (usize, &'input str, usize),
(_, r, _): (usize, HirConstant, usize),
) -> HirConstant
{
HirConstant::Divide(Box::new(l), Box::new(r))
}
#[allow(unused_variables)]
fn __action38<
'input,
>(
input: &'input str,
(_, __0, _): (usize, HirConstant, usize),
) -> HirConstant
{
__0
}
#[allow(unused_variables)]
fn __action39<
'input,
>(
input: &'input str,
(_, _, _): (usize, &'input str, usize),
(_, name, _): (usize, Identifier, usize),
(_, args, _): (usize, Vec<(Identifier, &'input str, HirType)>, usize),
(_, body, _): (usize, Vec<HirStatement>, usize),
) -> HirFunction
{
HirFunction::new(name, args.iter().map(|(a, _, t)| (a.clone(), t.clone())).collect(), HirType::Void, body)
}
#[allow(unused_variables)]
fn __action40<
'input,
>(
input: &'input str,
(_, _, _): (usize, &'input str, usize),
(_, name, _): (usize, Identifier, usize),
(_, args, _): (usize, Vec<(Identifier, &'input str, HirType)>, usize),
(_, _, _): (usize, &'input str, usize),
(_, return_type, _): (usize, HirType, usize),
(_, body, _): (usize, Vec<HirStatement>, usize),
) -> HirFunction
{
HirFunction::new(name, args.iter().map(|(a, _, t)| (a.clone(), t.clone())).collect(), return_type, body)
}
#[allow(unused_variables)]
fn __action41<
'input,
>(
input: &'input str,
(_, _, _): (usize, &'input str, usize),
(_, name, _): (usize, Identifier, usize),
(_, _, _): (usize, &'input str, usize),
(_, size, _): (usize, HirConstant, usize),
(_, _, _): (usize, &'input str, usize),
(_, _, _): (usize, &'input str, usize),
(_, methods, _): (usize, ::std::vec::Vec<HirFunction>, usize),
(_, _, _): (usize, &'input str, usize),
) -> HirStructure
{
HirStructure::new(name, size, methods)
}
#[allow(unused_variables)]
fn __action42<
'input,
>(
input: &'input str,
(_, _, _): (usize, &'input str, usize),
(_, head, _): (usize, ::std::vec::Vec<HirStatement>, usize),
(_, tail, _): (usize, ::std::option::Option<HirStatement>, usize),
(_, _, _): (usize, &'input str, usize),
) -> Vec<HirStatement>
{
{
let mut result = Vec::new();
for stmt in head { result.push(stmt) }
if let Some(stmt) = tail { result.push(stmt) }
result
}
}
#[allow(unused_variables)]
fn __action43<
'input,
>(
input: &'input str,
(_, _, _): (usize, &'input str, usize),
(_, t, _): (usize, HirType, usize),
) -> HirType
{
HirType::Pointer(Box::new(t))
}
#[allow(unused_variables)]
fn __action44<
'input,
>(
input: &'input str,
(_, _, _): (usize, &'input str, usize),
(_, t, _): (usize, HirType, usize),
) -> HirType
{
HirType::Pointer(Box::new(HirType::Pointer(Box::new(t))))
}
#[allow(unused_variables)]
fn __action45<
'input,
>(
input: &'input str,
(_, __0, _): (usize, &'input str, usize),
) -> HirType
{
HirType::Void
}
#[allow(unused_variables)]
fn __action46<
'input,
>(
input: &'input str,
(_, __0, _): (usize, &'input str, usize),
) -> HirType
{
HirType::Float
}
#[allow(unused_variables)]
fn __action47<
'input,
>(
input: &'input str,
(_, __0, _): (usize, &'input str, usize),
) -> HirType
{
HirType::Character
}
#[allow(unused_variables)]
fn __action48<
'input,
>(
input: &'input str,
(_, __0, _): (usize, Identifier, usize),
) -> HirType
{
HirType::Structure(__0)
}
#[allow(unused_variables)]
fn __action49<
'input,
>(
input: &'input str,
(_, __0, _): (usize, HirStatement, usize),
) -> HirStatement
{
__0
}
#[allow(unused_variables)]
fn __action50<
'input,
>(
input: &'input str,
(_, __0, _): (usize, HirStatement, usize),
(_, _, _): (usize, &'input str, usize),
) -> HirStatement
{
__0
}
#[allow(unused_variables)]
fn __action51<
'input,
>(
input: &'input str,
(_, _, _): (usize, &'input str, usize),
(_, _, _): (usize, &'input str, usize),
(_, pre, _): (usize, HirStatement, usize),
(_, _, _): (usize, &'input str, usize),
(_, cond, _): (usize, HirExpression, usize),
(_, _, _): (usize, &'input str, usize),
(_, post, _): (usize, HirStatement, usize),
(_, _, _): (usize, &'input str, usize),
(_, body, _): (usize, Vec<HirStatement>, usize),
) -> HirStatement
{
HirStatement::For(Box::new(pre), cond, Box::new(post), body)
}
#[allow(unused_variables)]
fn __action52<
'input,
>(
input: &'input str,
(_, _, _): (usize, &'input str, usize),
(_, cond, _): (usize, HirExpression, usize),
(_, body, _): (usize, Vec<HirStatement>, usize),
) -> HirStatement
{
HirStatement::While(cond, body)
}
#[allow(unused_variables)]
fn __action53<
'input,
>(
input: &'input str,
(_, _, _): (usize, &'input str, usize),
(_, cond, _): (usize, HirExpression, usize),
(_, body, _): (usize, Vec<HirStatement>, usize),
) -> HirStatement
{
HirStatement::If(cond, body)
}
#[allow(unused_variables)]
fn __action54<
'input,
>(
input: &'input str,
(_, _, _): (usize, &'input str, usize),
(_, cond, _): (usize, HirExpression, usize),
(_, then_body, _): (usize, Vec<HirStatement>, usize),
(_, _, _): (usize, &'input str, usize),
(_, else_body, _): (usize, Vec<HirStatement>, usize),
) -> HirStatement
{
HirStatement::IfElse(cond, then_body, else_body)
}
#[allow(unused_variables)]
fn __action55<
'input,
>(
input: &'input str,
(_, _, _): (usize, &'input str, usize),
(_, exprs, _): (usize, Vec<HirExpression>, usize),
) -> HirStatement
{
HirStatement::Return(exprs)
}
#[allow(unused_variables)]
fn __action56<
'input,
>(
input: &'input str,
(_, _, _): (usize, &'input str, usize),
(_, expr, _): (usize, HirExpression, usize),
) -> HirStatement
{
HirStatement::Return(vec![expr])
}
#[allow(unused_variables)]
fn __action57<
'input,
>(
input: &'input str,
(_, _, _): (usize, &'input str, usize),
(_, addr, _): (usize, HirExpression, usize),
(_, _, _): (usize, &'input str, usize),
(_, size, _): (usize, HirExpression, usize),
) -> HirStatement
{
HirStatement::Free(addr, size)
}
#[allow(unused_variables)]
fn __action58<
'input,
>(
input: &'input str,
(_, _, _): (usize, &'input str, usize),
(_, name, _): (usize, Identifier, usize),
(_, _, _): (usize, &'input str, usize),
(_, expr, _): (usize, HirExpression, usize),
) -> HirStatement
{
HirStatement::AutoDefine(name, expr)
}
#[allow(unused_variables)]
fn __action59<
'input,
>(
input: &'input str,
(_, _, _): (usize, &'input str, usize),
(_, name, _): (usize, Identifier, usize),
(_, _, _): (usize, &'input str, usize),
(_, t, _): (usize, HirType, usize),
(_, _, _): (usize, &'input str, usize),
(_, expr, _): (usize, HirExpression, usize),
) -> HirStatement
{
HirStatement::Define(name, t, expr)
}
#[allow(unused_variables)]
fn __action60<
'input,
>(
input: &'input str,
(_, name, _): (usize, Identifier, usize),
(_, _, _): (usize, &'input str, usize),
(_, expr, _): (usize, HirExpression, usize),
) -> HirStatement
{
HirStatement::AssignVariable(name, expr)
}
#[allow(unused_variables)]
fn __action61<
'input,
>(
input: &'input str,
(_, _, _): (usize, &'input str, usize),
(_, lhs, _): (usize, HirExpression, usize),
(_, _, _): (usize, &'input str, usize),
(_, rhs, _): (usize, HirExpression, usize),
) -> HirStatement
{
HirStatement::AssignAddress(lhs, rhs)
}
#[allow(unused_variables)]
fn __action62<
'input,
>(
input: &'input str,
(_, ptr, _): (usize, HirExpression, usize),
(_, _, _): (usize, &'input str, usize),
(_, idx, _): (usize, HirExpression, usize),
(_, _, _): (usize, &'input str, usize),
(_, _, _): (usize, &'input str, usize),
(_, rhs, _): (usize, HirExpression, usize),
) -> HirStatement
{
HirStatement::AssignAddress(HirExpression::Index(Box::new(ptr), Box::new(idx)), rhs)
}
#[allow(unused_variables)]
fn __action63<
'input,
>(
input: &'input str,
(_, instance, _): (usize, HirExpression, usize),
(_, _, _): (usize, &'input str, usize),
(_, name, _): (usize, Identifier, usize),
(_, _, _): (usize, &'input str, usize),
(_, rhs, _): (usize, HirExpression, usize),
) -> HirStatement
{
HirStatement::AssignAddress(HirExpression::Method(Box::new(instance), name, vec![]), rhs)
}
#[allow(unused_variables)]
fn __action64<
'input,
>(
input: &'input str,
(_, __0, _): (usize, HirExpression, usize),
) -> HirStatement
{
HirStatement::Expression(__0)
}
#[allow(unused_variables)]
fn __action65<
'input,
>(
input: &'input str,
(_, expr, _): (usize, HirExpression, usize),
(_, _, _): (usize, &'input str, usize),
(_, t, _): (usize, HirType, usize),
) -> HirExpression
{
HirExpression::TypeCast(Box::new(expr), t)
}
#[allow(unused_variables)]
fn __action66<
'input,
>(
input: &'input str,
(_, _, _): (usize, &'input str, usize),
(_, ptr, _): (usize, HirExpression, usize),
) -> HirExpression
{
HirExpression::Deref(Box::new(ptr))
}
#[allow(unused_variables)]
fn __action67<
'input,
>(
input: &'input str,
(_, __0, _): (usize, HirExpression, usize),
) -> HirExpression
{
__0
}
#[allow(unused_variables)]
fn __action68<
'input,
>(
input: &'input str,
(_, _, _): (usize, &'input str, usize),
(_, _, _): (usize, &'input str, usize),
(_, size, _): (usize, HirExpression, usize),
(_, _, _): (usize, &'input str, usize),
) -> HirExpression
{
HirExpression::Alloc(Box::new(size))
}
#[allow(unused_variables)]
fn __action69<
'input,
>(
input: &'input str,
(_, name, _): (usize, Identifier, usize),
(_, args, _): (usize, Vec<HirExpression>, usize),
) -> HirExpression
{
HirExpression::Call(name, args)
}
#[allow(unused_variables)]
fn __action70<
'input,
>(
input: &'input str,
(_, name, _): (usize, Identifier, usize),
(_, _, _): (usize, &'input str, usize),
(_, args, _): (usize, Vec<HirExpression>, usize),
) -> HirExpression
{
HirExpression::ForeignCall(name, args)
}
#[allow(unused_variables)]
fn __action71<
'input,
>(
input: &'input str,
(_, __0, _): (usize, Identifier, usize),
) -> HirExpression
{
HirExpression::Variable(__0)
}
#[allow(unused_variables)]
fn __action72<
'input,
>(
input: &'input str,
(_, __0, _): (usize, String, usize),
) -> HirExpression
{
HirExpression::String(__0)
}
#[allow(unused_variables)]
fn __action73<
'input,
>(
input: &'input str,
(_, __0, _): (usize, &'input str, usize),
) -> HirExpression
{
HirExpression::Void
}
#[allow(unused_variables)]
fn __action74<
'input,
>(
input: &'input str,
(_, __0, _): (usize, f64, usize),
) -> HirExpression
{
HirExpression::Constant(HirConstant::Float(__0))
}
#[allow(unused_variables)]
fn __action75<
'input,
>(
input: &'input str,
(_, __0, _): (usize, char, usize),
) -> HirExpression
{
HirExpression::Constant(HirConstant::Character(__0))
}
#[allow(unused_variables)]
fn __action76<
'input,
>(
input: &'input str,
(_, _, _): (usize, &'input str, usize),
(_, __0, _): (usize, HirExpression, usize),
) -> HirExpression
{
HirExpression::Not(Box::new(__0))
}
#[allow(unused_variables)]
fn __action77<
'input,
>(
input: &'input str,
(_, _, _): (usize, &'input str, usize),
(_, name, _): (usize, Identifier, usize),
) -> HirExpression
{
HirExpression::Refer(name)
}
#[allow(unused_variables)]
fn __action78<
'input,
>(
input: &'input str,
(_, _, _): (usize, &'input str, usize),
(_, __0, _): (usize, HirExpression, usize),
(_, _, _): (usize, &'input str, usize),
) -> HirExpression
{
__0
}
#[allow(unused_variables)]
fn __action79<
'input,
>(
input: &'input str,
(_, _, _): (usize, &'input str, usize),
(_, __0, _): (usize, HirExpression, usize),
) -> HirExpression
{
HirExpression::Subtract(Box::new(HirExpression::Constant(HirConstant::Float(0.0))), Box::new(__0))
}
#[allow(unused_variables)]
fn __action80<
'input,
>(
input: &'input str,
(_, l, _): (usize, HirExpression, usize),
(_, _, _): (usize, &'input str, usize),
(_, r, _): (usize, HirExpression, usize),
) -> HirExpression
{
HirExpression::And(Box::new(l), Box::new(r))
}
#[allow(unused_variables)]
fn __action81<
'input,
>(
input: &'input str,
(_, l, _): (usize, HirExpression, usize),
(_, _, _): (usize, &'input str, usize),
(_, r, _): (usize, HirExpression, usize),
) -> HirExpression
{
HirExpression::Or(Box::new(l), Box::new(r))
}
#[allow(unused_variables)]
fn __action82<
'input,
>(
input: &'input str,
(_, __0, _): (usize, HirExpression, usize),
) -> HirExpression
{
__0
}
#[allow(unused_variables)]
fn __action83<
'input,
>(
input: &'input str,
(_, l, _): (usize, HirExpression, usize),
(_, _, _): (usize, &'input str, usize),
(_, r, _): (usize, HirExpression, usize),
) -> HirExpression
{
HirExpression::Equal(Box::new(l), Box::new(r))
}
#[allow(unused_variables)]
fn __action84<
'input,
>(
input: &'input str,
(_, l, _): (usize, HirExpression, usize),
(_, _, _): (usize, &'input str, usize),
(_, r, _): (usize, HirExpression, usize),
) -> HirExpression
{
HirExpression::NotEqual(Box::new(l), Box::new(r))
}
#[allow(unused_variables)]
fn __action85<
'input,
>(
input: &'input str,
(_, l, _): (usize, HirExpression, usize),
(_, _, _): (usize, &'input str, usize),
(_, r, _): (usize, HirExpression, usize),
) -> HirExpression
{
HirExpression::GreaterEqual(Box::new(l), Box::new(r))
}
#[allow(unused_variables)]
fn __action86<
'input,
>(
input: &'input str,
(_, l, _): (usize, HirExpression, usize),
(_, _, _): (usize, &'input str, usize),
(_, r, _): (usize, HirExpression, usize),
) -> HirExpression
{
HirExpression::Greater(Box::new(l), Box::new(r))
}
#[allow(unused_variables)]
fn __action87<
'input,
>(
input: &'input str,
(_, l, _): (usize, HirExpression, usize),
(_, _, _): (usize, &'input str, usize),
(_, r, _): (usize, HirExpression, usize),
) -> HirExpression
{
HirExpression::LessEqual(Box::new(l), Box::new(r))
}
#[allow(unused_variables)]
fn __action88<
'input,
>(
input: &'input str,
(_, l, _): (usize, HirExpression, usize),
(_, _, _): (usize, &'input str, usize),
(_, r, _): (usize, HirExpression, usize),
) -> HirExpression
{
HirExpression::Less(Box::new(l), Box::new(r))
}
#[allow(unused_variables)]
fn __action89<
'input,
>(
input: &'input str,
(_, __0, _): (usize, HirExpression, usize),
) -> HirExpression
{
__0
}
#[allow(unused_variables)]
fn __action90<
'input,
>(
input: &'input str,
(_, l, _): (usize, HirExpression, usize),
(_, _, _): (usize, &'input str, usize),
(_, r, _): (usize, HirExpression, usize),
) -> HirExpression
{
HirExpression::Add(Box::new(l), Box::new(r))
}
#[allow(unused_variables)]
fn __action91<
'input,
>(
input: &'input str,
(_, l, _): (usize, HirExpression, usize),
(_, _, _): (usize, &'input str, usize),
(_, r, _): (usize, HirExpression, usize),
) -> HirExpression
{
HirExpression::Subtract(Box::new(l), Box::new(r))
}
#[allow(unused_variables)]
fn __action92<
'input,
>(
input: &'input str,
(_, __0, _): (usize, HirExpression, usize),
) -> HirExpression
{
__0
}
#[allow(unused_variables)]
fn __action93<
'input,
>(
input: &'input str,
(_, ptr, _): (usize, HirExpression, usize),
(_, _, _): (usize, &'input str, usize),
(_, idx, _): (usize, HirExpression, usize),
(_, _, _): (usize, &'input str, usize),
) -> HirExpression
{
HirExpression::Deref(Box::new(HirExpression::Index(Box::new(ptr), Box::new(idx))))
}
#[allow(unused_variables)]
fn __action94<
'input,
>(
input: &'input str,
(_, instance, _): (usize, HirExpression, usize),
(_, _, _): (usize, &'input str, usize),
(_, name, _): (usize, Identifier, usize),
(_, args, _): (usize, Vec<HirExpression>, usize),
) -> HirExpression
{
HirExpression::Method(Box::new(instance), name, args)
}
#[allow(unused_variables)]
fn __action95<
'input,
>(
input: &'input str,
(_, instance, _): (usize, HirExpression, usize),
(_, _, _): (usize, &'input str, usize),
(_, name, _): (usize, Identifier, usize),
) -> HirExpression
{
HirExpression::Method(Box::new(instance), name, vec![])
}
#[allow(unused_variables)]
fn __action96<
'input,
>(
input: &'input str,
(_, instance, _): (usize, HirExpression, usize),
(_, _, _): (usize, &'input str, usize),
(_, name, _): (usize, Identifier, usize),
(_, args, _): (usize, Vec<HirExpression>, usize),
) -> HirExpression
{
HirExpression::Deref(Box::new(HirExpression::Method(Box::new(instance), name, args)))
}
#[allow(unused_variables)]
fn __action97<
'input,
>(
input: &'input str,
(_, instance, _): (usize, HirExpression, usize),
(_, _, _): (usize, &'input str, usize),
(_, name, _): (usize, Identifier, usize),
) -> HirExpression
{
HirExpression::Deref(Box::new(HirExpression::Method(Box::new(instance), name, vec![])))
}
#[allow(unused_variables)]
fn __action98<
'input,
>(
input: &'input str,
(_, l, _): (usize, HirExpression, usize),
(_, _, _): (usize, &'input str, usize),
(_, r, _): (usize, HirExpression, usize),
) -> HirExpression
{
HirExpression::Multiply(Box::new(l), Box::new(r))
}
#[allow(unused_variables)]
fn __action99<
'input,
>(
input: &'input str,
(_, l, _): (usize, HirExpression, usize),
(_, _, _): (usize, &'input str, usize),
(_, r, _): (usize, HirExpression, usize),
) -> HirExpression
{
HirExpression::Divide(Box::new(l), Box::new(r))
}
#[allow(unused_variables)]
fn __action100<
'input,
>(
input: &'input str,
(_, __0, _): (usize, HirExpression, usize),
) -> HirExpression
{
__0
}
#[allow(unused_variables)]
fn __action101<
'input,
>(
input: &'input str,
(_, first, _): (usize, &'input str, usize),
(_, list, _): (usize, ::std::vec::Vec<(HirExpression, &'input str)>, usize),
(_, end, _): (usize, ::std::option::Option<HirExpression>, usize),
(_, last, _): (usize, &'input str, usize),
) -> Vec<HirExpression>
{
{
match end {
None => list.iter().map(|(v, s)| v.clone()).collect(),
Some(val) => {
let mut list: Vec<_> = list.iter().map(|(v, s)| v.clone()).collect();
list.push(val);
list
}
}
}
}
#[allow(unused_variables)]
fn __action102<
'input,
>(
input: &'input str,
(_, first, _): (usize, &'input str, usize),
(_, list, _): (usize, ::std::vec::Vec<(HirExpression, &'input str)>, usize),
(_, end, _): (usize, ::std::option::Option<HirExpression>, usize),
(_, last, _): (usize, &'input str, usize),
) -> Vec<HirExpression>
{
{
match end {
None => list.iter().map(|(v, s)| v.clone()).collect(),
Some(val) => {
let mut list: Vec<_> = list.iter().map(|(v, s)| v.clone()).collect();
list.push(val);
list
}
}
}
}
#[allow(unused_variables)]
fn __action103<
'input,
>(
input: &'input str,
(_, __0, _): (usize, HirStatement, usize),
) -> ::std::option::Option<HirStatement>
{
Some(__0)
}
#[allow(unused_variables)]
fn __action104<
'input,
>(
input: &'input str,
__lookbehind: &usize,
__lookahead: &usize,
) -> ::std::option::Option<HirStatement>
{
None
}
#[allow(unused_variables)]
fn __action105<
'input,
>(
input: &'input str,
__lookbehind: &usize,
__lookahead: &usize,
) -> ::std::vec::Vec<HirStatement>
{
vec![]
}
#[allow(unused_variables)]
fn __action106<
'input,
>(
input: &'input str,
(_, v, _): (usize, ::std::vec::Vec<HirStatement>, usize),
) -> ::std::vec::Vec<HirStatement>
{
v
}
#[allow(unused_variables)]
fn __action107<
'input,
>(
input: &'input str,
__lookbehind: &usize,
__lookahead: &usize,
) -> ::std::vec::Vec<HirFunction>
{
vec![]
}
#[allow(unused_variables)]
fn __action108<
'input,
>(
input: &'input str,
(_, v, _): (usize, ::std::vec::Vec<HirFunction>, usize),
) -> ::std::vec::Vec<HirFunction>
{
v
}
#[allow(unused_variables)]
fn __action109<
'input,
>(
input: &'input str,
(_, first, _): (usize, &'input str, usize),
(_, list, _): (usize, ::std::vec::Vec<((Identifier, &'input str, HirType), &'input str)>, usize),
(_, end, _): (usize, ::std::option::Option<(Identifier, &'input str, HirType)>, usize),
(_, last, _): (usize, &'input str, usize),
) -> Vec<(Identifier, &'input str, HirType)>
{
{
match end {
None => list.iter().map(|(v, s)| v.clone()).collect(),
Some(val) => {
let mut list: Vec<_> = list.iter().map(|(v, s)| v.clone()).collect();
list.push(val);
list
}
}
}
}
#[allow(unused_variables)]
fn __action110<
'input,
>(
input: &'input str,
(_, __0, _): (usize, Identifier, usize),
(_, __1, _): (usize, &'input str, usize),
(_, __2, _): (usize, HirType, usize),
) -> (Identifier, &'input str, HirType)
{
(__0, __1, __2)
}
#[allow(unused_variables)]
fn __action111<
'input,
>(
input: &'input str,
__lookbehind: &usize,
__lookahead: &usize,
) -> ::std::vec::Vec<(&'input str, &'input str)>
{
vec![]
}
#[allow(unused_variables)]
fn __action112<
'input,
>(
input: &'input str,
(_, v, _): (usize, ::std::vec::Vec<(&'input str, &'input str)>, usize),
) -> ::std::vec::Vec<(&'input str, &'input str)>
{
v
}
#[allow(unused_variables)]
fn __action113<
'input,
>(
input: &'input str,
(_, __0, _): (usize, &'input str, usize),
(_, __1, _): (usize, &'input str, usize),
) -> (&'input str, &'input str)
{
(__0, __1)
}
#[allow(unused_variables)]
fn __action114<
'input,
>(
input: &'input str,
__lookbehind: &usize,
__lookahead: &usize,
) -> ::std::vec::Vec<HirDeclaration>
{
vec![]
}
#[allow(unused_variables)]
fn __action115<
'input,
>(
input: &'input str,
(_, v, _): (usize, ::std::vec::Vec<HirDeclaration>, usize),
) -> ::std::vec::Vec<HirDeclaration>
{
v
}
#[allow(unused_variables)]
fn __action116<
'input,
>(
input: &'input str,
(_, __0, _): (usize, HirDeclaration, usize),
) -> HirDeclaration
{
__0
}
#[allow(unused_variables)]
fn __action117<
'input,
>(
input: &'input str,
(_, __0, _): (usize, HirDeclaration, usize),
) -> ::std::vec::Vec<HirDeclaration>
{
vec![__0]
}
#[allow(unused_variables)]
fn __action118<
'input,
>(
input: &'input str,
(_, v, _): (usize, ::std::vec::Vec<HirDeclaration>, usize),
(_, e, _): (usize, HirDeclaration, usize),
) -> ::std::vec::Vec<HirDeclaration>
{
{ let mut v = v; v.push(e); v }
}
#[allow(unused_variables)]
fn __action119<
'input,
>(
input: &'input str,
(_, __0, _): (usize, (&'input str, &'input str), usize),
) -> ::std::vec::Vec<(&'input str, &'input str)>
{
vec![__0]
}
#[allow(unused_variables)]
fn __action120<
'input,
>(
input: &'input str,
(_, v, _): (usize, ::std::vec::Vec<(&'input str, &'input str)>, usize),
(_, e, _): (usize, (&'input str, &'input str), usize),
) -> ::std::vec::Vec<(&'input str, &'input str)>
{
{ let mut v = v; v.push(e); v }
}
#[allow(unused_variables)]
fn __action121<
'input,
>(
input: &'input str,
(_, __0, _): (usize, (Identifier, &'input str, HirType), usize),
) -> ::std::option::Option<(Identifier, &'input str, HirType)>
{
Some(__0)
}
#[allow(unused_variables)]
fn __action122<
'input,
>(
input: &'input str,
__lookbehind: &usize,
__lookahead: &usize,
) -> ::std::option::Option<(Identifier, &'input str, HirType)>
{
None
}
#[allow(unused_variables)]
fn __action123<
'input,
>(
input: &'input str,
__lookbehind: &usize,
__lookahead: &usize,
) -> ::std::vec::Vec<((Identifier, &'input str, HirType), &'input str)>
{
vec![]
}
#[allow(unused_variables)]
fn __action124<
'input,
>(
input: &'input str,
(_, v, _): (usize, ::std::vec::Vec<((Identifier, &'input str, HirType), &'input str)>, usize),
) -> ::std::vec::Vec<((Identifier, &'input str, HirType), &'input str)>
{
v
}
#[allow(unused_variables)]
fn __action125<
'input,
>(
input: &'input str,
(_, __0, _): (usize, (Identifier, &'input str, HirType), usize),
(_, __1, _): (usize, &'input str, usize),
) -> ((Identifier, &'input str, HirType), &'input str)
{
(__0, __1)
}
#[allow(unused_variables)]
fn __action126<
'input,
>(
input: &'input str,
(_, __0, _): (usize, HirFunction, usize),
) -> ::std::vec::Vec<HirFunction>
{
vec![__0]
}
#[allow(unused_variables)]
fn __action127<
'input,
>(
input: &'input str,
(_, v, _): (usize, ::std::vec::Vec<HirFunction>, usize),
(_, e, _): (usize, HirFunction, usize),
) -> ::std::vec::Vec<HirFunction>
{
{ let mut v = v; v.push(e); v }
}
#[allow(unused_variables)]
fn __action128<
'input,
>(
input: &'input str,
(_, __0, _): (usize, HirStatement, usize),
) -> ::std::vec::Vec<HirStatement>
{
vec![__0]
}
#[allow(unused_variables)]
fn __action129<
'input,
>(
input: &'input str,
(_, v, _): (usize, ::std::vec::Vec<HirStatement>, usize),
(_, e, _): (usize, HirStatement, usize),
) -> ::std::vec::Vec<HirStatement>
{
{ let mut v = v; v.push(e); v }
}
#[allow(unused_variables)]
fn __action130<
'input,
>(
input: &'input str,
(_, __0, _): (usize, HirExpression, usize),
) -> ::std::option::Option<HirExpression>
{
Some(__0)
}
#[allow(unused_variables)]
fn __action131<
'input,
>(
input: &'input str,
__lookbehind: &usize,
__lookahead: &usize,
) -> ::std::option::Option<HirExpression>
{
None
}
#[allow(unused_variables)]
fn __action132<
'input,
>(
input: &'input str,
__lookbehind: &usize,
__lookahead: &usize,
) -> ::std::vec::Vec<(HirExpression, &'input str)>
{
vec![]
}
#[allow(unused_variables)]
fn __action133<
'input,
>(
input: &'input str,
(_, v, _): (usize, ::std::vec::Vec<(HirExpression, &'input str)>, usize),
) -> ::std::vec::Vec<(HirExpression, &'input str)>
{
v
}
#[allow(unused_variables)]
fn __action134<
'input,
>(
input: &'input str,
(_, __0, _): (usize, HirExpression, usize),
(_, __1, _): (usize, &'input str, usize),
) -> (HirExpression, &'input str)
{
(__0, __1)
}
#[allow(unused_variables)]
fn __action135<
'input,
>(
input: &'input str,
(_, __0, _): (usize, (HirExpression, &'input str), usize),
) -> ::std::vec::Vec<(HirExpression, &'input str)>
{
vec![__0]
}
#[allow(unused_variables)]
fn __action136<
'input,
>(
input: &'input str,
(_, v, _): (usize, ::std::vec::Vec<(HirExpression, &'input str)>, usize),
(_, e, _): (usize, (HirExpression, &'input str), usize),
) -> ::std::vec::Vec<(HirExpression, &'input str)>
{
{ let mut v = v; v.push(e); v }
}
#[allow(unused_variables)]
fn __action137<
'input,
>(
input: &'input str,
(_, __0, _): (usize, ((Identifier, &'input str, HirType), &'input str), usize),
) -> ::std::vec::Vec<((Identifier, &'input str, HirType), &'input str)>
{
vec![__0]
}
#[allow(unused_variables)]
fn __action138<
'input,
>(
input: &'input str,
(_, v, _): (usize, ::std::vec::Vec<((Identifier, &'input str, HirType), &'input str)>, usize),
(_, e, _): (usize, ((Identifier, &'input str, HirType), &'input str), usize),
) -> ::std::vec::Vec<((Identifier, &'input str, HirType), &'input str)>
{
{ let mut v = v; v.push(e); v }
}
#[allow(unused_variables)]
fn __action139<
'input,
>(
input: &'input str,
__0: (usize, Identifier, usize),
__1: (usize, &'input str, usize),
__2: (usize, HirType, usize),
__3: (usize, &'input str, usize),
) -> ((Identifier, &'input str, HirType), &'input str)
{
let __start0 = __0.0.clone();
let __end0 = __2.2.clone();
let __temp0 = __action110(
input,
__0,
__1,
__2,
);
let __temp0 = (__start0, __temp0, __end0);
__action125(
input,
__temp0,
__3,
)
}
#[allow(unused_variables)]
fn __action140<
'input,
>(
input: &'input str,
__0: (usize, Identifier, usize),
__1: (usize, &'input str, usize),
__2: (usize, HirType, usize),
) -> ::std::option::Option<(Identifier, &'input str, HirType)>
{
let __start0 = __0.0.clone();
let __end0 = __2.2.clone();
let __temp0 = __action110(
input,
__0,
__1,
__2,
);
let __temp0 = (__start0, __temp0, __end0);
__action121(
input,
__temp0,
)
}
#[allow(unused_variables)]
fn __action141<
'input,
>(
input: &'input str,
__0: (usize, Identifier, usize),
__1: (usize, &'input str, usize),
__2: (usize, HirType, usize),
__3: (usize, &'input str, usize),
) -> ::std::vec::Vec<((Identifier, &'input str, HirType), &'input str)>
{
let __start0 = __0.0.clone();
let __end0 = __3.2.clone();
let __temp0 = __action139(
input,
__0,
__1,
__2,
__3,
);
let __temp0 = (__start0, __temp0, __end0);
__action137(
input,
__temp0,
)
}
#[allow(unused_variables)]
fn __action142<
'input,
>(
input: &'input str,
__0: (usize, ::std::vec::Vec<((Identifier, &'input str, HirType), &'input str)>, usize),
__1: (usize, Identifier, usize),
__2: (usize, &'input str, usize),
__3: (usize, HirType, usize),
__4: (usize, &'input str, usize),
) -> ::std::vec::Vec<((Identifier, &'input str, HirType), &'input str)>
{
let __start0 = __1.0.clone();
let __end0 = __4.2.clone();
let __temp0 = __action139(
input,
__1,
__2,
__3,
__4,
);
let __temp0 = (__start0, __temp0, __end0);
__action138(
input,
__0,
__temp0,
)
}
#[allow(unused_variables)]
fn __action143<
'input,
>(
input: &'input str,
__0: (usize, &'input str, usize),
__1: (usize, ::std::option::Option<(Identifier, &'input str, HirType)>, usize),
__2: (usize, &'input str, usize),
) -> Vec<(Identifier, &'input str, HirType)>
{
let __start0 = __0.2.clone();
let __end0 = __1.0.clone();
let __temp0 = __action123(
input,
&__start0,
&__end0,
);
let __temp0 = (__start0, __temp0, __end0);
__action109(
input,
__0,
__temp0,
__1,
__2,
)
}
#[allow(unused_variables)]
fn __action144<
'input,
>(
input: &'input str,
__0: (usize, &'input str, usize),
__1: (usize, ::std::vec::Vec<((Identifier, &'input str, HirType), &'input str)>, usize),
__2: (usize, ::std::option::Option<(Identifier, &'input str, HirType)>, usize),
__3: (usize, &'input str, usize),
) -> Vec<(Identifier, &'input str, HirType)>
{
let __start0 = __1.0.clone();
let __end0 = __1.2.clone();
let __temp0 = __action124(
input,
__1,
);
let __temp0 = (__start0, __temp0, __end0);
__action109(
input,
__0,
__temp0,
__2,
__3,
)
}
#[allow(unused_variables)]
fn __action145<
'input,
>(
input: &'input str,
__0: (usize, HirExpression, usize),
__1: (usize, &'input str, usize),
) -> ::std::vec::Vec<(HirExpression, &'input str)>
{
let __start0 = __0.0.clone();
let __end0 = __1.2.clone();
let __temp0 = __action134(
input,
__0,
__1,
);
let __temp0 = (__start0, __temp0, __end0);
__action135(
input,
__temp0,
)
}
#[allow(unused_variables)]
fn __action146<
'input,
>(
input: &'input str,
__0: (usize, ::std::vec::Vec<(HirExpression, &'input str)>, usize),
__1: (usize, HirExpression, usize),
__2: (usize, &'input str, usize),
) -> ::std::vec::Vec<(HirExpression, &'input str)>
{
let __start0 = __1.0.clone();
let __end0 = __2.2.clone();
let __temp0 = __action134(
input,
__1,
__2,
);
let __temp0 = (__start0, __temp0, __end0);
__action136(
input,
__0,
__temp0,
)
}
#[allow(unused_variables)]
fn __action147<
'input,
>(
input: &'input str,
__0: (usize, &'input str, usize),
__1: (usize, ::std::option::Option<HirExpression>, usize),
__2: (usize, &'input str, usize),
) -> Vec<HirExpression>
{
let __start0 = __0.2.clone();
let __end0 = __1.0.clone();
let __temp0 = __action132(
input,
&__start0,
&__end0,
);
let __temp0 = (__start0, __temp0, __end0);
__action101(
input,
__0,
__temp0,
__1,
__2,
)
}
#[allow(unused_variables)]
fn __action148<
'input,
>(
input: &'input str,
__0: (usize, &'input str, usize),
__1: (usize, ::std::vec::Vec<(HirExpression, &'input str)>, usize),
__2: (usize, ::std::option::Option<HirExpression>, usize),
__3: (usize, &'input str, usize),
) -> Vec<HirExpression>
{
let __start0 = __1.0.clone();
let __end0 = __1.2.clone();
let __temp0 = __action133(
input,
__1,
);
let __temp0 = (__start0, __temp0, __end0);
__action101(
input,
__0,
__temp0,
__2,
__3,
)
}
#[allow(unused_variables)]
fn __action149<
'input,
>(
input: &'input str,
__0: (usize, &'input str, usize),
__1: (usize, ::std::option::Option<HirExpression>, usize),
__2: (usize, &'input str, usize),
) -> Vec<HirExpression>
{
let __start0 = __0.2.clone();
let __end0 = __1.0.clone();
let __temp0 = __action132(
input,
&__start0,
&__end0,
);
let __temp0 = (__start0, __temp0, __end0);
__action102(
input,
__0,
__temp0,
__1,
__2,
)
}
#[allow(unused_variables)]
fn __action150<
'input,
>(
input: &'input str,
__0: (usize, &'input str, usize),
__1: (usize, ::std::vec::Vec<(HirExpression, &'input str)>, usize),
__2: (usize, ::std::option::Option<HirExpression>, usize),
__3: (usize, &'input str, usize),
) -> Vec<HirExpression>
{
let __start0 = __1.0.clone();
let __end0 = __1.2.clone();
let __temp0 = __action133(
input,
__1,
);
let __temp0 = (__start0, __temp0, __end0);
__action102(
input,
__0,
__temp0,
__2,
__3,
)
}
#[allow(unused_variables)]
fn __action151<
'input,
>(
input: &'input str,
__0: (usize, HirDeclaration, usize),
) -> ::std::vec::Vec<HirDeclaration>
{
let __start0 = __0.0.clone();
let __end0 = __0.2.clone();
let __temp0 = __action116(
input,
__0,
);
let __temp0 = (__start0, __temp0, __end0);
__action117(
input,
__temp0,
)
}
#[allow(unused_variables)]
fn __action152<
'input,
>(
input: &'input str,
__0: (usize, ::std::vec::Vec<HirDeclaration>, usize),
__1: (usize, HirDeclaration, usize),
) -> ::std::vec::Vec<HirDeclaration>
{
let __start0 = __1.0.clone();
let __end0 = __1.2.clone();
let __temp0 = __action116(
input,
__1,
);
let __temp0 = (__start0, __temp0, __end0);
__action118(
input,
__0,
__temp0,
)
}
#[allow(unused_variables)]
fn __action153<
'input,
>(
input: &'input str,
__lookbehind: &usize,
__lookahead: &usize,
) -> HirProgram
{
let __start0 = __lookbehind.clone();
let __end0 = __lookahead.clone();
let __temp0 = __action114(
input,
&__start0,
&__end0,
);
let __temp0 = (__start0, __temp0, __end0);
__action1(
input,
__temp0,
)
}
#[allow(unused_variables)]
fn __action154<
'input,
>(
input: &'input str,
__0: (usize, ::std::vec::Vec<HirDeclaration>, usize),
) -> HirProgram
{
let __start0 = __0.0.clone();
let __end0 = __0.2.clone();
let __temp0 = __action115(
input,
__0,
);
let __temp0 = (__start0, __temp0, __end0);
__action1(
input,
__temp0,
)
}
#[allow(unused_variables)]
fn __action155<
'input,
>(
input: &'input str,
__0: (usize, &'input str, usize),
__1: (usize, Identifier, usize),
__2: (usize, &'input str, usize),
__3: (usize, HirType, usize),
__4: (usize, &'input str, usize),
) -> Vec<(Identifier, &'input str, HirType)>
{
let __start0 = __1.0.clone();
let __end0 = __3.2.clone();
let __temp0 = __action140(
input,
__1,
__2,
__3,
);
let __temp0 = (__start0, __temp0, __end0);
__action143(
input,
__0,
__temp0,
__4,
)
}
#[allow(unused_variables)]
fn __action156<
'input,
>(
input: &'input str,
__0: (usize, &'input str, usize),
__1: (usize, &'input str, usize),
) -> Vec<(Identifier, &'input str, HirType)>
{
let __start0 = __0.2.clone();
let __end0 = __1.0.clone();
let __temp0 = __action122(
input,
&__start0,
&__end0,
);
let __temp0 = (__start0, __temp0, __end0);
__action143(
input,
__0,
__temp0,
__1,
)
}
#[allow(unused_variables)]
fn __action157<
'input,
>(
input: &'input str,
__0: (usize, &'input str, usize),
__1: (usize, ::std::vec::Vec<((Identifier, &'input str, HirType), &'input str)>, usize),
__2: (usize, Identifier, usize),
__3: (usize, &'input str, usize),
__4: (usize, HirType, usize),
__5: (usize, &'input str, usize),
) -> Vec<(Identifier, &'input str, HirType)>
{
let __start0 = __2.0.clone();
let __end0 = __4.2.clone();
let __temp0 = __action140(
input,
__2,
__3,
__4,
);
let __temp0 = (__start0, __temp0, __end0);
__action144(
input,
__0,
__1,
__temp0,
__5,
)
}
#[allow(unused_variables)]
fn __action158<
'input,
>(
input: &'input str,
__0: (usize, &'input str, usize),
__1: (usize, ::std::vec::Vec<((Identifier, &'input str, HirType), &'input str)>, usize),
__2: (usize, &'input str, usize),
) -> Vec<(Identifier, &'input str, HirType)>
{
let __start0 = __1.2.clone();
let __end0 = __2.0.clone();
let __temp0 = __action122(
input,
&__start0,
&__end0,
);
let __temp0 = (__start0, __temp0, __end0);
__action144(
input,
__0,
__1,
__temp0,
__2,
)
}
#[allow(unused_variables)]
fn __action159<
'input,
>(
input: &'input str,
__0: (usize, &'input str, usize),
__1: (usize, &'input str, usize),
) -> ::std::vec::Vec<(&'input str, &'input str)>
{
let __start0 = __0.0.clone();
let __end0 = __1.2.clone();
let __temp0 = __action113(
input,
__0,
__1,
);
let __temp0 = (__start0, __temp0, __end0);
__action119(
input,
__temp0,
)
}
#[allow(unused_variables)]
fn __action160<
'input,
>(
input: &'input str,
__0: (usize, ::std::vec::Vec<(&'input str, &'input str)>, usize),
__1: (usize, &'input str, usize),
__2: (usize, &'input str, usize),
) -> ::std::vec::Vec<(&'input str, &'input str)>
{
let __start0 = __1.0.clone();
let __end0 = __2.2.clone();
let __temp0 = __action113(
input,
__1,
__2,
);
let __temp0 = (__start0, __temp0, __end0);
__action120(
input,
__0,
__temp0,
)
}
#[allow(unused_variables)]
fn __action161<
'input,
>(
input: &'input str,
__0: (usize, &'input str, usize),
) -> Identifier
{
let __start0 = __0.0.clone();
let __end0 = __0.0.clone();
let __temp0 = __action111(
input,
&__start0,
&__end0,
);
let __temp0 = (__start0, __temp0, __end0);
__action15(
input,
__temp0,
__0,
)
}
#[allow(unused_variables)]
fn __action162<
'input,
>(
input: &'input str,
__0: (usize, ::std::vec::Vec<(&'input str, &'input str)>, usize),
__1: (usize, &'input str, usize),
) -> Identifier
{
let __start0 = __0.0.clone();
let __end0 = __0.2.clone();
let __temp0 = __action112(
input,
__0,
);
let __temp0 = (__start0, __temp0, __end0);
__action15(
input,
__temp0,
__1,
)
}
#[allow(unused_variables)]
fn __action163<
'input,
>(
input: &'input str,
__0: (usize, &'input str, usize),
__1: (usize, HirExpression, usize),
__2: (usize, &'input str, usize),
) -> Vec<HirExpression>
{
let __start0 = __1.0.clone();
let __end0 = __1.2.clone();
let __temp0 = __action130(
input,
__1,
);
let __temp0 = (__start0, __temp0, __end0);
__action147(
input,
__0,
__temp0,
__2,
)
}
#[allow(unused_variables)]
fn __action164<
'input,
>(
input: &'input str,
__0: (usize, &'input str, usize),
__1: (usize, &'input str, usize),
) -> Vec<HirExpression>
{
let __start0 = __0.2.clone();
let __end0 = __1.0.clone();
let __temp0 = __action131(
input,
&__start0,
&__end0,
);
let __temp0 = (__start0, __temp0, __end0);
__action147(
input,
__0,
__temp0,
__1,
)
}
#[allow(unused_variables)]
fn __action165<
'input,
>(
input: &'input str,
__0: (usize, &'input str, usize),
__1: (usize, ::std::vec::Vec<(HirExpression, &'input str)>, usize),
__2: (usize, HirExpression, usize),
__3: (usize, &'input str, usize),
) -> Vec<HirExpression>
{
let __start0 = __2.0.clone();
let __end0 = __2.2.clone();
let __temp0 = __action130(
input,
__2,
);
let __temp0 = (__start0, __temp0, __end0);
__action148(
input,
__0,
__1,
__temp0,
__3,
)
}
#[allow(unused_variables)]
fn __action166<
'input,
>(
input: &'input str,
__0: (usize, &'input str, usize),
__1: (usize, ::std::vec::Vec<(HirExpression, &'input str)>, usize),
__2: (usize, &'input str, usize),
) -> Vec<HirExpression>
{
let __start0 = __1.2.clone();
let __end0 = __2.0.clone();
let __temp0 = __action131(
input,
&__start0,
&__end0,
);
let __temp0 = (__start0, __temp0, __end0);
__action148(
input,
__0,
__1,
__temp0,
__2,
)
}
#[allow(unused_variables)]
fn __action167<
'input,
>(
input: &'input str,
__0: (usize, &'input str, usize),
__1: (usize, HirExpression, usize),
__2: (usize, &'input str, usize),
) -> Vec<HirExpression>
{
let __start0 = __1.0.clone();
let __end0 = __1.2.clone();
let __temp0 = __action130(
input,
__1,
);
let __temp0 = (__start0, __temp0, __end0);
__action149(
input,
__0,
__temp0,
__2,
)
}
#[allow(unused_variables)]
fn __action168<
'input,
>(
input: &'input str,
__0: (usize, &'input str, usize),
__1: (usize, &'input str, usize),
) -> Vec<HirExpression>
{
let __start0 = __0.2.clone();
let __end0 = __1.0.clone();
let __temp0 = __action131(
input,
&__start0,
&__end0,
);
let __temp0 = (__start0, __temp0, __end0);
__action149(
input,
__0,
__temp0,
__1,
)
}
#[allow(unused_variables)]
fn __action169<
'input,
>(
input: &'input str,
__0: (usize, &'input str, usize),
__1: (usize, ::std::vec::Vec<(HirExpression, &'input str)>, usize),
__2: (usize, HirExpression, usize),
__3: (usize, &'input str, usize),
) -> Vec<HirExpression>
{
let __start0 = __2.0.clone();
let __end0 = __2.2.clone();
let __temp0 = __action130(
input,
__2,
);
let __temp0 = (__start0, __temp0, __end0);
__action150(
input,
__0,
__1,
__temp0,
__3,
)
}
#[allow(unused_variables)]
fn __action170<
'input,
>(
input: &'input str,
__0: (usize, &'input str, usize),
__1: (usize, ::std::vec::Vec<(HirExpression, &'input str)>, usize),
__2: (usize, &'input str, usize),
) -> Vec<HirExpression>
{
let __start0 = __1.2.clone();
let __end0 = __2.0.clone();
let __temp0 = __action131(
input,
&__start0,
&__end0,
);
let __temp0 = (__start0, __temp0, __end0);
__action150(
input,
__0,
__1,
__temp0,
__2,
)
}
#[allow(unused_variables)]
fn __action171<
'input,
>(
input: &'input str,
__0: (usize, &'input str, usize),
__1: (usize, Identifier, usize),
__2: (usize, &'input str, usize),
__3: (usize, HirConstant, usize),
__4: (usize, &'input str, usize),
__5: (usize, &'input str, usize),
__6: (usize, &'input str, usize),
) -> HirStructure
{
let __start0 = __5.2.clone();
let __end0 = __6.0.clone();
let __temp0 = __action107(
input,
&__start0,
&__end0,
);
let __temp0 = (__start0, __temp0, __end0);
__action41(
input,
__0,
__1,
__2,
__3,
__4,
__5,
__temp0,
__6,
)
}
#[allow(unused_variables)]
fn __action172<
'input,
>(
input: &'input str,
__0: (usize, &'input str, usize),
__1: (usize, Identifier, usize),
__2: (usize, &'input str, usize),
__3: (usize, HirConstant, usize),
__4: (usize, &'input str, usize),
__5: (usize, &'input str, usize),
__6: (usize, ::std::vec::Vec<HirFunction>, usize),
__7: (usize, &'input str, usize),
) -> HirStructure
{
let __start0 = __6.0.clone();
let __end0 = __6.2.clone();
let __temp0 = __action108(
input,
__6,
);
let __temp0 = (__start0, __temp0, __end0);
__action41(
input,
__0,
__1,
__2,
__3,
__4,
__5,
__temp0,
__7,
)
}
#[allow(unused_variables)]
fn __action173<
'input,
>(
input: &'input str,
__0: (usize, &'input str, usize),
__1: (usize, ::std::vec::Vec<HirStatement>, usize),
__2: (usize, HirStatement, usize),
__3: (usize, &'input str, usize),
) -> Vec<HirStatement>
{
let __start0 = __2.0.clone();
let __end0 = __2.2.clone();
let __temp0 = __action103(
input,
__2,
);
let __temp0 = (__start0, __temp0, __end0);
__action42(
input,
__0,
__1,
__temp0,
__3,
)
}
#[allow(unused_variables)]
fn __action174<
'input,
>(
input: &'input str,
__0: (usize, &'input str, usize),
__1: (usize, ::std::vec::Vec<HirStatement>, usize),
__2: (usize, &'input str, usize),
) -> Vec<HirStatement>
{
let __start0 = __1.2.clone();
let __end0 = __2.0.clone();
let __temp0 = __action104(
input,
&__start0,
&__end0,
);
let __temp0 = (__start0, __temp0, __end0);
__action42(
input,
__0,
__1,
__temp0,
__2,
)
}
#[allow(unused_variables)]
fn __action175<
'input,
>(
input: &'input str,
__0: (usize, &'input str, usize),
__1: (usize, HirStatement, usize),
__2: (usize, &'input str, usize),
) -> Vec<HirStatement>
{
let __start0 = __0.2.clone();
let __end0 = __1.0.clone();
let __temp0 = __action105(
input,
&__start0,
&__end0,
);
let __temp0 = (__start0, __temp0, __end0);
__action173(
input,
__0,
__temp0,
__1,
__2,
)
}
#[allow(unused_variables)]
fn __action176<
'input,
>(
input: &'input str,
__0: (usize, &'input str, usize),
__1: (usize, ::std::vec::Vec<HirStatement>, usize),
__2: (usize, HirStatement, usize),
__3: (usize, &'input str, usize),
) -> Vec<HirStatement>
{
let __start0 = __1.0.clone();
let __end0 = __1.2.clone();
let __temp0 = __action106(
input,
__1,
);
let __temp0 = (__start0, __temp0, __end0);
__action173(
input,
__0,
__temp0,
__2,
__3,
)
}
#[allow(unused_variables)]
fn __action177<
'input,
>(
input: &'input str,
__0: (usize, &'input str, usize),
__1: (usize, &'input str, usize),
) -> Vec<HirStatement>
{
let __start0 = __0.2.clone();
let __end0 = __1.0.clone();
let __temp0 = __action105(
input,
&__start0,
&__end0,
);
let __temp0 = (__start0, __temp0, __end0);
__action174(
input,
__0,
__temp0,
__1,
)
}
#[allow(unused_variables)]
fn __action178<
'input,
>(
input: &'input str,
__0: (usize, &'input str, usize),
__1: (usize, ::std::vec::Vec<HirStatement>, usize),
__2: (usize, &'input str, usize),
) -> Vec<HirStatement>
{
let __start0 = __1.0.clone();
let __end0 = __1.2.clone();
let __temp0 = __action106(
input,
__1,
);
let __temp0 = (__start0, __temp0, __end0);
__action174(
input,
__0,
__temp0,
__2,
)
}
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 }),
}
}
}