use crate::ast::{Expr};
use crate::lex::{Tok};
#[allow(unused_extern_crates)]
extern crate lalrpop_util as __lalrpop_util;
#[allow(unused_imports)]
use self::__lalrpop_util::state_machine as __state_machine;
extern crate core;
extern crate alloc;
#[cfg_attr(rustfmt, rustfmt_skip)]
mod __parse__Solution {
#![allow(non_snake_case, non_camel_case_types, unused_mut, unused_variables, unused_imports, unused_parens)]
use crate::ast::{Expr};
use crate::lex::{Tok};
#[allow(unused_extern_crates)]
extern crate lalrpop_util as __lalrpop_util;
#[allow(unused_imports)]
use self::__lalrpop_util::state_machine as __state_machine;
extern crate core;
extern crate alloc;
use super::__ToTriple;
#[allow(dead_code)]
pub(crate) enum __Symbol<'input>
{
Variant0(&'input str),
Variant1(Tok<'input>),
Variant2(Expr<'input>),
Variant3(alloc::vec::Vec<Expr<'input>>),
Variant4((Expr<'input>, alloc::vec::Vec<Expr<'input>>)),
}
const __ACTION: &[i8] = &[
0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0,
0, 0, 33, 0, 0, 0, 26, 7, 0, 0, 0,
0, 9, 0, 0, 0, 0, 26, 0, 0, 0, 0,
36, 0, 0, 0, 12, 0, 0, 13, 0, 0, 0,
0, 0, 33, 0, 0, 0, 26, 7, 0, 0, 0,
38, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0,
0, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
0, 15, 0, 0, 0, 0, 26, 0, 0, 0, 0,
0, 0, 0, 43, 0, 0, 26, 0, 0, 0, 0,
45, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0,
47, 0, 0, 0, 0, 0, 0, 0, 48, 0, 0,
0, 0, 0, 43, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0,
50, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0,
0, 0, 0, 43, 0, 0, 26, 0, 0, 0, 0,
0, 0, 0, 43, 0, 0, 26, 0, 0, 0, 0,
54, 0, 0, 0, 0, 0, 0, 0, 48, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 0,
0, 0, 0, 0, 22, 0, 26, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58,
0, 0, 0, 43, 0, 0, 26, 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, 58,
0, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-12, -12, 0, -12, -12, 0, -12, -12, -12, 0, 0,
0, 0, -10, 0, 0, 0, -10, -10, 0, 0, 0,
0, 0, -19, 0, 0, 0, -19, -19, 0, 0, 0,
0, 0, -17, 0, 0, 0, -17, -17, 0, 0, 0,
0, 0, -22, 0, 0, 0, -22, -22, 0, 0, 0,
0, 0, -18, 0, 0, 0, -18, -18, 0, 0, 0,
0, 0, -11, 0, 0, 0, -11, -11, 0, 0, 0,
0, 0, -1, 0, 0, 0, -1, -1, 0, 0, 0,
0, -15, 0, -15, -15, 0, -15, 0, 0, 0, 0,
-31, 0, 0, 0, 0, 0, 0, -31, 0, 0, 0,
0, 0, -7, 0, 0, 0, -7, -7, 0, 0, 0,
0, 0, -23, 0, 0, 0, -23, -23, 0, 0, 0,
0, 0, -24, 0, 0, 0, -24, -24, 0, 0, 0,
0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0,
-9, 0, 0, 0, -9, 0, 0, -9, 0, 0, 0,
0, -16, 0, -16, -16, 0, -16, 0, 0, 0, 0,
0, 0, -3, 0, 0, 0, -3, -3, 0, 0, 0,
0, 0, -2, 0, 0, 0, -2, -2, 0, 0, 0,
-32, 0, 0, 0, 0, 0, 0, -32, 0, 0, 0,
0, 0, -8, 0, 0, 0, -8, -8, 0, 0, 0,
-37, 0, 0, 0, 0, 0, 0, 0, -37, 0, 0,
-27, 0, 0, 0, 0, 0, 0, -27, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, -39, 0,
0, 0, -44, 0, 0, 0, -44, -44, 0, 0, 0,
0, 0, -25, 0, 0, 0, -25, -25, 0, 0, 0,
0, 0, -5, 0, 0, 0, -5, -5, 0, 0, 0,
0, 0, -4, 0, 0, 0, -4, -4, 0, 0, 0,
-38, 0, 0, 0, 0, 0, 0, 0, -38, 0, 0,
-28, 0, 0, 0, 0, 0, 0, -28, 0, 0, 0,
-34, 0, 0, 0, 0, 0, 0, 0, -34, 0, 0,
-40, 0, 0, 0, 0, 0, 0, 0, -40, 0, 0,
0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, -43, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, -6, 0, 0, 0, -6, -6, 0, 0, 0,
-33, 0, 0, 0, 0, 0, 0, 0, -33, 0, 0,
0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-26, 0, 0, 0, 0, 0, 0, -26, 0, 0, 0,
];
fn __action(state: i8, integer: usize) -> i8 {
__ACTION[(state as usize) * 11 + integer]
}
const __EOF_ACTION: &[i8] = &[
0,
-41,
0,
0,
-42,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
-45,
0,
-10,
-19,
-17,
-22,
-18,
-11,
-1,
0,
0,
-7,
-23,
-24,
0,
0,
0,
-3,
-2,
0,
-8,
0,
0,
0,
-44,
-25,
-5,
-4,
0,
0,
0,
0,
0,
0,
-6,
0,
0,
0,
];
fn __goto(state: i8, nt: usize) -> i8 {
match nt {
0 => 26,
1 => match state {
11 => 48,
14 => 50,
15 => 51,
20 => 58,
_ => 41,
},
2 => 1,
3 => 27,
4 => match state {
23 => 61,
_ => 38,
},
5 => 28,
6 => match state {
0 => 2,
1 | 4 => 3,
7 | 15 | 18 | 20 => 40,
21 => 59,
_ => 33,
},
8 => match state {
8 => 15,
12 => 18,
14 => 20,
_ => 7,
},
9 => match state {
4 => 36,
_ => 29,
},
11 => 4,
12 => 30,
13 => 5,
14 => match state {
9 | 13 => 43,
_ => 34,
},
16 => match state {
5 => 13,
_ => 9,
},
17 => 10,
18 => match state {
16 => 52,
_ => 45,
},
20 => 16,
21 => 17,
22 => 54,
23 => 24,
24 => match state {
22 => 60,
_ => 56,
},
25 => 31,
_ => 0,
}
}
fn __expected_tokens(__state: i8) -> alloc::vec::Vec<alloc::string::String> {
const __TERMINAL: &[&str] = &[
r###""close_element""###,
r###""comma""###,
r###""comment""###,
r###""digit_and_dot""###,
r###""eq""###,
r###""guid""###,
r###""id""###,
r###""open_element""###,
r###""section_key""###,
r###""section_value""###,
r###""str""###,
];
__TERMINAL.iter().enumerate().filter_map(|(index, terminal)| {
let next_state = __action(__state, index);
if next_state == 0 {
None
} else {
Some(alloc::string::ToString::to_string(terminal))
}
}).collect()
}
pub(crate) struct __StateMachine<'input>
where
{
input: &'input str,
__phantom: core::marker::PhantomData<(&'input ())>,
}
impl<'input> __state_machine::ParserDefinition for __StateMachine<'input>
where
{
type Location = usize;
type Error = ();
type Token = Tok<'input>;
type TokenIndex = usize;
type Symbol = __Symbol<'input>;
type Success = (Expr<'input>, alloc::vec::Vec<Expr<'input>>);
type StateIndex = i8;
type Action = i8;
type ReduceIndex = i8;
type NonterminalIndex = usize;
#[inline]
fn start_location(&self) -> Self::Location {
Default::default()
}
#[inline]
fn start_state(&self) -> Self::StateIndex {
0
}
#[inline]
fn token_to_index(&self, token: &Self::Token) -> Option<usize> {
__token_to_integer(token, core::marker::PhantomData::<(&())>)
}
#[inline]
fn action(&self, state: i8, integer: usize) -> i8 {
__action(state, integer)
}
#[inline]
fn error_action(&self, state: i8) -> i8 {
__action(state, 11 - 1)
}
#[inline]
fn eof_action(&self, state: i8) -> i8 {
__EOF_ACTION[state as usize]
}
#[inline]
fn goto(&self, state: i8, nt: usize) -> i8 {
__goto(state, nt)
}
fn token_to_symbol(&self, token_index: usize, token: Self::Token) -> Self::Symbol {
__token_to_symbol(token_index, token, core::marker::PhantomData::<(&())>)
}
fn expected_tokens(&self, state: i8) -> alloc::vec::Vec<alloc::string::String> {
__expected_tokens(state)
}
#[inline]
fn uses_error_recovery(&self) -> bool {
false
}
#[inline]
fn error_recovery_symbol(
&self,
recovery: __state_machine::ErrorRecovery<Self>,
) -> Self::Symbol {
panic!("error recovery not enabled for this grammar")
}
fn reduce(
&mut self,
action: i8,
start_location: Option<&Self::Location>,
states: &mut alloc::vec::Vec<i8>,
symbols: &mut alloc::vec::Vec<__state_machine::SymbolTriple<Self>>,
) -> Option<__state_machine::ParseResult<Self>> {
__reduce(
self.input,
action,
start_location,
states,
symbols,
core::marker::PhantomData::<(&())>,
)
}
fn simulate_reduce(&self, action: i8) -> __state_machine::SimulatedReduce<Self> {
panic!("error recovery not enabled for this grammar")
}
}
fn __token_to_integer<
'input,
>(
__token: &Tok<'input>,
_: core::marker::PhantomData<(&'input ())>,
) -> Option<usize>
{
match *__token {
Tok::CloseElement(_) if true => Some(0),
Tok::Comma if true => Some(1),
Tok::Comment(_) if true => Some(2),
Tok::DigitsAndDots(_) if true => Some(3),
Tok::Eq if true => Some(4),
Tok::Guid(_) if true => Some(5),
Tok::Id(_) if true => Some(6),
Tok::OpenElement(_) if true => Some(7),
Tok::SectionKey(_) if true => Some(8),
Tok::SectionValue(_) if true => Some(9),
Tok::Str(_) if true => Some(10),
_ => None,
}
}
fn __token_to_symbol<
'input,
>(
__token_index: usize,
__token: Tok<'input>,
_: core::marker::PhantomData<(&'input ())>,
) -> __Symbol<'input>
{
match __token_index {
0 | 2 | 3 | 5 | 6 | 7 | 8 | 9 | 10 => match __token {
Tok::CloseElement(__tok0) | Tok::Comment(__tok0) | Tok::DigitsAndDots(__tok0) | Tok::Guid(__tok0) | Tok::Id(__tok0) | Tok::OpenElement(__tok0) | Tok::SectionKey(__tok0) | Tok::SectionValue(__tok0) | Tok::Str(__tok0) if true => __Symbol::Variant0(__tok0),
_ => unreachable!(),
},
1 | 4 => __Symbol::Variant1(__token),
_ => unreachable!(),
}
}
pub struct SolutionParser {
_priv: (),
}
impl SolutionParser {
pub fn new() -> SolutionParser {
SolutionParser {
_priv: (),
}
}
#[allow(dead_code)]
pub fn parse<
'input,
__TOKEN: __ToTriple<'input, >,
__TOKENS: IntoIterator<Item=__TOKEN>,
>(
&self,
input: &'input str,
__tokens0: __TOKENS,
) -> Result<(Expr<'input>, alloc::vec::Vec<Expr<'input>>), __lalrpop_util::ParseError<usize, Tok<'input>, ()>>
{
let __tokens = __tokens0.into_iter();
let mut __tokens = __tokens.map(|t| __ToTriple::to_triple(t));
__state_machine::Parser::drive(
__StateMachine {
input,
__phantom: core::marker::PhantomData::<(&())>,
},
__tokens,
)
}
}
pub(crate) fn __reduce<
'input,
>(
input: &'input str,
__action: i8,
__lookahead_start: Option<&usize>,
__states: &mut alloc::vec::Vec<i8>,
__symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: core::marker::PhantomData<(&'input ())>,
) -> Option<Result<(Expr<'input>, alloc::vec::Vec<Expr<'input>>),__lalrpop_util::ParseError<usize, Tok<'input>, ()>>>
{
let (__pop_states, __nonterminal) = match __action {
0 => {
__reduce0(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
1 => {
__reduce1(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
2 => {
__reduce2(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
3 => {
__reduce3(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
4 => {
__reduce4(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
5 => {
__reduce5(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
6 => {
__reduce6(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
7 => {
__reduce7(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
8 => {
__reduce8(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
9 => {
__reduce9(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
10 => {
__reduce10(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
11 => {
__reduce11(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
12 => {
__reduce12(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
13 => {
__reduce13(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
14 => {
__reduce14(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
15 => {
__reduce15(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
16 => {
__reduce16(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
17 => {
__reduce17(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
18 => {
__reduce18(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
19 => {
__reduce19(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
20 => {
__reduce20(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
21 => {
__reduce21(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
22 => {
__reduce22(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
23 => {
__reduce23(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
24 => {
__reduce24(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
25 => {
__reduce25(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
26 => {
__reduce26(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
27 => {
__reduce27(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
28 => {
__reduce28(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
29 => {
__reduce29(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
30 => {
__reduce30(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
31 => {
__reduce31(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
32 => {
__reduce32(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
33 => {
__reduce33(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
34 => {
__reduce34(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
35 => {
__reduce35(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
36 => {
__reduce36(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
37 => {
__reduce37(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
38 => {
__reduce38(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
39 => {
__reduce39(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
40 => {
__reduce40(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
41 => {
__reduce41(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
42 => {
__reduce42(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
43 => {
__reduce43(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
44 => {
let __sym0 = __pop_Variant4(__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_Variant4<
'input,
>(
__symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, (Expr<'input>, alloc::vec::Vec<Expr<'input>>), usize)
{
match __symbols.pop() {
Some((__l, __Symbol::Variant4(__v), __r)) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant2<
'input,
>(
__symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, Expr<'input>, usize)
{
match __symbols.pop() {
Some((__l, __Symbol::Variant2(__v), __r)) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant1<
'input,
>(
__symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, Tok<'input>, usize)
{
match __symbols.pop() {
Some((__l, __Symbol::Variant1(__v), __r)) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant3<
'input,
>(
__symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, alloc::vec::Vec<Expr<'input>>, usize)
{
match __symbols.pop() {
Some((__l, __Symbol::Variant3(__v), __r)) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant0<
'input,
>(
__symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, &'input str, usize)
{
match __symbols.pop() {
Some((__l, __Symbol::Variant0(__v), __r)) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
pub(crate) fn __reduce0<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: core::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action15::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(1, 0)
}
pub(crate) fn __reduce1<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: core::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action16::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(1, 1)
}
pub(crate) fn __reduce2<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: core::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 3);
let __sym2 = __pop_Variant2(__symbols);
let __sym1 = __pop_Variant1(__symbols);
let __sym0 = __pop_Variant2(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action38::<>(input, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(3, 2)
}
pub(crate) fn __reduce3<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: core::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 4);
let __sym3 = __pop_Variant2(__symbols);
let __sym2 = __pop_Variant3(__symbols);
let __sym1 = __pop_Variant1(__symbols);
let __sym0 = __pop_Variant2(__symbols);
let __start = __sym0.0.clone();
let __end = __sym3.2.clone();
let __nt = super::__action39::<>(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 alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: core::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 4);
let __sym3 = __pop_Variant2(__symbols);
let __sym2 = __pop_Variant1(__symbols);
let __sym1 = __pop_Variant3(__symbols);
let __sym0 = __pop_Variant2(__symbols);
let __start = __sym0.0.clone();
let __end = __sym3.2.clone();
let __nt = super::__action40::<>(input, __sym0, __sym1, __sym2, __sym3);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(4, 2)
}
pub(crate) fn __reduce5<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: core::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 5);
let __sym4 = __pop_Variant2(__symbols);
let __sym3 = __pop_Variant3(__symbols);
let __sym2 = __pop_Variant1(__symbols);
let __sym1 = __pop_Variant3(__symbols);
let __sym0 = __pop_Variant2(__symbols);
let __start = __sym0.0.clone();
let __end = __sym4.2.clone();
let __nt = super::__action41::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(5, 2)
}
pub(crate) fn __reduce6<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: core::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 2);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant2(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action44::<>(input, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(2, 3)
}
pub(crate) fn __reduce7<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: core::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 3);
let __sym2 = __pop_Variant0(__symbols);
let __sym1 = __pop_Variant3(__symbols);
let __sym0 = __pop_Variant2(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action45::<>(input, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(3, 3)
}
pub(crate) fn __reduce8<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: core::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action17::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(1, 4)
}
pub(crate) fn __reduce9<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: core::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant2(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action5::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(1, 5)
}
pub(crate) fn __reduce10<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: core::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant2(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action6::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(1, 5)
}
pub(crate) fn __reduce11<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: core::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action18::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(1, 6)
}
pub(crate) fn __reduce12<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: core::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
let __end = __start.clone();
let __nt = super::__action28::<>(input, &__start, &__end);
__symbols.push((__start, __Symbol::Variant3(__nt), __end));
(0, 7)
}
pub(crate) fn __reduce13<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: core::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant3(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action29::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant3(__nt), __end));
(1, 7)
}
pub(crate) fn __reduce14<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: core::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant2(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action22::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant3(__nt), __end));
(1, 8)
}
pub(crate) fn __reduce15<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: core::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 2);
let __sym1 = __pop_Variant2(__symbols);
let __sym0 = __pop_Variant3(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action23::<>(input, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant3(__nt), __end));
(2, 8)
}
pub(crate) fn __reduce16<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: core::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant2(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action2::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(1, 9)
}
pub(crate) fn __reduce17<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: core::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant2(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action3::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(1, 9)
}
pub(crate) fn __reduce18<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: core::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant2(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action4::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(1, 9)
}
pub(crate) fn __reduce19<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: core::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
let __end = __start.clone();
let __nt = super::__action30::<>(input, &__start, &__end);
__symbols.push((__start, __Symbol::Variant3(__nt), __end));
(0, 10)
}
pub(crate) fn __reduce20<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: core::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant3(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action31::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant3(__nt), __end));
(1, 10)
}
pub(crate) fn __reduce21<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: core::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant2(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action32::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant3(__nt), __end));
(1, 11)
}
pub(crate) fn __reduce22<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: core::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 2);
let __sym1 = __pop_Variant2(__symbols);
let __sym0 = __pop_Variant3(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action33::<>(input, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant3(__nt), __end));
(2, 11)
}
pub(crate) fn __reduce23<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: core::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 2);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant2(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action46::<>(input, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(2, 12)
}
pub(crate) fn __reduce24<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: core::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 3);
let __sym2 = __pop_Variant0(__symbols);
let __sym1 = __pop_Variant3(__symbols);
let __sym0 = __pop_Variant2(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action47::<>(input, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(3, 12)
}
pub(crate) fn __reduce25<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: core::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 8);
let __sym7 = __pop_Variant2(__symbols);
let __sym6 = __pop_Variant1(__symbols);
let __sym5 = __pop_Variant2(__symbols);
let __sym4 = __pop_Variant1(__symbols);
let __sym3 = __pop_Variant2(__symbols);
let __sym2 = __pop_Variant1(__symbols);
let __sym1 = __pop_Variant2(__symbols);
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym7.2.clone();
let __nt = super::__action11::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(8, 13)
}
pub(crate) fn __reduce26<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: core::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 2);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant2(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action48::<>(input, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(2, 14)
}
pub(crate) fn __reduce27<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: core::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 3);
let __sym2 = __pop_Variant0(__symbols);
let __sym1 = __pop_Variant3(__symbols);
let __sym0 = __pop_Variant2(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action49::<>(input, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(3, 14)
}
pub(crate) fn __reduce28<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: core::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
let __end = __start.clone();
let __nt = super::__action26::<>(input, &__start, &__end);
__symbols.push((__start, __Symbol::Variant3(__nt), __end));
(0, 15)
}
pub(crate) fn __reduce29<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: core::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant3(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action27::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant3(__nt), __end));
(1, 15)
}
pub(crate) fn __reduce30<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: core::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant2(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action34::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant3(__nt), __end));
(1, 16)
}
pub(crate) fn __reduce31<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: core::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 2);
let __sym1 = __pop_Variant2(__symbols);
let __sym0 = __pop_Variant3(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action35::<>(input, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant3(__nt), __end));
(2, 16)
}
pub(crate) fn __reduce32<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: core::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 4);
let __sym3 = __pop_Variant2(__symbols);
let __sym2 = __pop_Variant1(__symbols);
let __sym1 = __pop_Variant3(__symbols);
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym3.2.clone();
let __nt = super::__action13::<>(input, __sym0, __sym1, __sym2, __sym3);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(4, 17)
}
pub(crate) fn __reduce33<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: core::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 2);
let __sym1 = __pop_Variant2(__symbols);
let __sym0 = __pop_Variant2(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action14::<>(input, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(2, 18)
}
pub(crate) fn __reduce34<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: core::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
let __end = __start.clone();
let __nt = super::__action24::<>(input, &__start, &__end);
__symbols.push((__start, __Symbol::Variant3(__nt), __end));
(0, 19)
}
pub(crate) fn __reduce35<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: core::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant3(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action25::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant3(__nt), __end));
(1, 19)
}
pub(crate) fn __reduce36<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: core::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant2(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action36::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant3(__nt), __end));
(1, 20)
}
pub(crate) fn __reduce37<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: core::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 2);
let __sym1 = __pop_Variant2(__symbols);
let __sym0 = __pop_Variant3(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action37::<>(input, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant3(__nt), __end));
(2, 20)
}
pub(crate) fn __reduce38<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: core::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action20::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(1, 21)
}
pub(crate) fn __reduce39<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: core::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action21::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(1, 22)
}
pub(crate) fn __reduce40<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: core::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant2(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action42::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant4(__nt), __end));
(1, 23)
}
pub(crate) fn __reduce41<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: core::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 2);
let __sym1 = __pop_Variant3(__symbols);
let __sym0 = __pop_Variant2(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action43::<>(input, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant4(__nt), __end));
(2, 23)
}
pub(crate) fn __reduce42<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: core::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action19::<>(input, __sym0);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(1, 24)
}
pub(crate) fn __reduce43<
'input,
>(
input: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: core::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 3);
let __sym2 = __pop_Variant2(__symbols);
let __sym1 = __pop_Variant1(__symbols);
let __sym0 = __pop_Variant2(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action8::<>(input, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant2(__nt), __end));
(3, 25)
}
}
pub use self::__parse__Solution::SolutionParser;
#[allow(unused_variables)]
fn __action0<
'input,
>(
input: &'input str,
(_, __0, _): (usize, (Expr<'input>, alloc::vec::Vec<Expr<'input>>), usize),
) -> (Expr<'input>, alloc::vec::Vec<Expr<'input>>)
{
__0
}
#[allow(unused_variables)]
fn __action1<
'input,
>(
input: &'input str,
(_, __0, _): (usize, Expr<'input>, usize),
(_, __1, _): (usize, alloc::vec::Vec<Expr<'input>>, usize),
) -> (Expr<'input>, alloc::vec::Vec<Expr<'input>>)
{
(__0, __1)
}
#[allow(unused_variables)]
fn __action2<
'input,
>(
input: &'input str,
(_, __0, _): (usize, Expr<'input>, usize),
) -> Expr<'input>
{
__0
}
#[allow(unused_variables)]
fn __action3<
'input,
>(
input: &'input str,
(_, __0, _): (usize, Expr<'input>, usize),
) -> Expr<'input>
{
__0
}
#[allow(unused_variables)]
fn __action4<
'input,
>(
input: &'input str,
(_, __0, _): (usize, Expr<'input>, usize),
) -> Expr<'input>
{
__0
}
#[allow(unused_variables)]
fn __action5<
'input,
>(
input: &'input str,
(_, __0, _): (usize, Expr<'input>, usize),
) -> Expr<'input>
{
__0
}
#[allow(unused_variables)]
fn __action6<
'input,
>(
input: &'input str,
(_, __0, _): (usize, Expr<'input>, usize),
) -> Expr<'input>
{
__0
}
#[allow(unused_variables)]
fn __action7<
'input,
>(
input: &'input str,
(_, id1, _): (usize, Expr<'input>, usize),
(_, id2, _): (usize, alloc::vec::Vec<Expr<'input>>, usize),
(_, _, _): (usize, Tok<'input>, usize),
(_, id3, _): (usize, alloc::vec::Vec<Expr<'input>>, usize),
(_, v, _): (usize, Expr<'input>, usize),
) -> Expr<'input>
{
Expr::FirstLine(Box::new(v))
}
#[allow(unused_variables)]
fn __action8<
'input,
>(
input: &'input str,
(_, id, _): (usize, Expr<'input>, usize),
(_, _, _): (usize, Tok<'input>, usize),
(_, r, _): (usize, Expr<'input>, usize),
) -> Expr<'input>
{
Expr::Version(Box::new(id),Box::new(r))
}
#[allow(unused_variables)]
fn __action9<
'input,
>(
input: &'input str,
(_, b, _): (usize, Expr<'input>, usize),
(_, s, _): (usize, alloc::vec::Vec<Expr<'input>>, usize),
(_, _, _): (usize, &'input str, usize),
) -> Expr<'input>
{
Expr::Project(Box::new(b), s)
}
#[allow(unused_variables)]
fn __action10<
'input,
>(
input: &'input str,
(_, id, _): (usize, Expr<'input>, usize),
(_, s, _): (usize, alloc::vec::Vec<Expr<'input>>, usize),
(_, _, _): (usize, &'input str, usize),
) -> Expr<'input>
{
Expr::Global(s)
}
#[allow(unused_variables)]
fn __action11<
'input,
>(
input: &'input str,
(_, _, _): (usize, &'input str, usize),
(_, t, _): (usize, Expr<'input>, usize),
(_, _, _): (usize, Tok<'input>, usize),
(_, n, _): (usize, Expr<'input>, usize),
(_, _, _): (usize, Tok<'input>, usize),
(_, p, _): (usize, Expr<'input>, usize),
(_, _, _): (usize, Tok<'input>, usize),
(_, id, _): (usize, Expr<'input>, usize),
) -> Expr<'input>
{
{
Expr::ProjectBegin(Box::new(t),Box::new(n),Box::new(p),Box::new(id))
}
}
#[allow(unused_variables)]
fn __action12<
'input,
>(
input: &'input str,
(_, b, _): (usize, Expr<'input>, usize),
(_, c, _): (usize, alloc::vec::Vec<Expr<'input>>, usize),
(_, _, _): (usize, &'input str, usize),
) -> Expr<'input>
{
Expr::Section(Box::new(b), c)
}
#[allow(unused_variables)]
fn __action13<
'input,
>(
input: &'input str,
(_, _, _): (usize, &'input str, usize),
(_, name, _): (usize, alloc::vec::Vec<Expr<'input>>, usize),
(_, _, _): (usize, Tok<'input>, usize),
(_, stage, _): (usize, Expr<'input>, usize),
) -> Expr<'input>
{
{
Expr::SectionBegin(name, Box::new(stage))
}
}
#[allow(unused_variables)]
fn __action14<
'input,
>(
input: &'input str,
(_, k, _): (usize, Expr<'input>, usize),
(_, v, _): (usize, Expr<'input>, usize),
) -> Expr<'input>
{
{
Expr::SectionContent(Box::new(k), Box::new(v))
}
}
#[allow(unused_variables)]
fn __action15<
'input,
>(
input: &'input str,
(_, __0, _): (usize, &'input str, usize),
) -> Expr<'input>
{
Expr::Comment(__0)
}
#[allow(unused_variables)]
fn __action16<
'input,
>(
input: &'input str,
(_, __0, _): (usize, &'input str, usize),
) -> Expr<'input>
{
Expr::DigitOrDot(__0)
}
#[allow(unused_variables)]
fn __action17<
'input,
>(
input: &'input str,
(_, __0, _): (usize, &'input str, usize),
) -> Expr<'input>
{
Expr::Guid(__0)
}
#[allow(unused_variables)]
fn __action18<
'input,
>(
input: &'input str,
(_, __0, _): (usize, &'input str, usize),
) -> Expr<'input>
{
Expr::Identifier(__0)
}
#[allow(unused_variables)]
fn __action19<
'input,
>(
input: &'input str,
(_, __0, _): (usize, &'input str, usize),
) -> Expr<'input>
{
Expr::Str(__0)
}
#[allow(unused_variables)]
fn __action20<
'input,
>(
input: &'input str,
(_, __0, _): (usize, &'input str, usize),
) -> Expr<'input>
{
Expr::Str(__0)
}
#[allow(unused_variables)]
fn __action21<
'input,
>(
input: &'input str,
(_, __0, _): (usize, &'input str, usize),
) -> Expr<'input>
{
Expr::Str(__0)
}
#[allow(unused_variables)]
fn __action22<
'input,
>(
input: &'input str,
(_, __0, _): (usize, Expr<'input>, usize),
) -> alloc::vec::Vec<Expr<'input>>
{
alloc::vec![__0]
}
#[allow(unused_variables)]
fn __action23<
'input,
>(
input: &'input str,
(_, v, _): (usize, alloc::vec::Vec<Expr<'input>>, usize),
(_, e, _): (usize, Expr<'input>, usize),
) -> alloc::vec::Vec<Expr<'input>>
{
{ let mut v = v; v.push(e); v }
}
#[allow(unused_variables)]
fn __action24<
'input,
>(
input: &'input str,
__lookbehind: &usize,
__lookahead: &usize,
) -> alloc::vec::Vec<Expr<'input>>
{
alloc::vec![]
}
#[allow(unused_variables)]
fn __action25<
'input,
>(
input: &'input str,
(_, v, _): (usize, alloc::vec::Vec<Expr<'input>>, usize),
) -> alloc::vec::Vec<Expr<'input>>
{
v
}
#[allow(unused_variables)]
fn __action26<
'input,
>(
input: &'input str,
__lookbehind: &usize,
__lookahead: &usize,
) -> alloc::vec::Vec<Expr<'input>>
{
alloc::vec![]
}
#[allow(unused_variables)]
fn __action27<
'input,
>(
input: &'input str,
(_, v, _): (usize, alloc::vec::Vec<Expr<'input>>, usize),
) -> alloc::vec::Vec<Expr<'input>>
{
v
}
#[allow(unused_variables)]
fn __action28<
'input,
>(
input: &'input str,
__lookbehind: &usize,
__lookahead: &usize,
) -> alloc::vec::Vec<Expr<'input>>
{
alloc::vec![]
}
#[allow(unused_variables)]
fn __action29<
'input,
>(
input: &'input str,
(_, v, _): (usize, alloc::vec::Vec<Expr<'input>>, usize),
) -> alloc::vec::Vec<Expr<'input>>
{
v
}
#[allow(unused_variables)]
fn __action30<
'input,
>(
input: &'input str,
__lookbehind: &usize,
__lookahead: &usize,
) -> alloc::vec::Vec<Expr<'input>>
{
alloc::vec![]
}
#[allow(unused_variables)]
fn __action31<
'input,
>(
input: &'input str,
(_, v, _): (usize, alloc::vec::Vec<Expr<'input>>, usize),
) -> alloc::vec::Vec<Expr<'input>>
{
v
}
#[allow(unused_variables)]
fn __action32<
'input,
>(
input: &'input str,
(_, __0, _): (usize, Expr<'input>, usize),
) -> alloc::vec::Vec<Expr<'input>>
{
alloc::vec![__0]
}
#[allow(unused_variables)]
fn __action33<
'input,
>(
input: &'input str,
(_, v, _): (usize, alloc::vec::Vec<Expr<'input>>, usize),
(_, e, _): (usize, Expr<'input>, usize),
) -> alloc::vec::Vec<Expr<'input>>
{
{ let mut v = v; v.push(e); v }
}
#[allow(unused_variables)]
fn __action34<
'input,
>(
input: &'input str,
(_, __0, _): (usize, Expr<'input>, usize),
) -> alloc::vec::Vec<Expr<'input>>
{
alloc::vec![__0]
}
#[allow(unused_variables)]
fn __action35<
'input,
>(
input: &'input str,
(_, v, _): (usize, alloc::vec::Vec<Expr<'input>>, usize),
(_, e, _): (usize, Expr<'input>, usize),
) -> alloc::vec::Vec<Expr<'input>>
{
{ let mut v = v; v.push(e); v }
}
#[allow(unused_variables)]
fn __action36<
'input,
>(
input: &'input str,
(_, __0, _): (usize, Expr<'input>, usize),
) -> alloc::vec::Vec<Expr<'input>>
{
alloc::vec![__0]
}
#[allow(unused_variables)]
fn __action37<
'input,
>(
input: &'input str,
(_, v, _): (usize, alloc::vec::Vec<Expr<'input>>, usize),
(_, e, _): (usize, Expr<'input>, usize),
) -> alloc::vec::Vec<Expr<'input>>
{
{ let mut v = v; v.push(e); v }
}
#[allow(unused_variables)]
fn __action38<
'input,
>(
input: &'input str,
__0: (usize, Expr<'input>, usize),
__1: (usize, Tok<'input>, usize),
__2: (usize, Expr<'input>, usize),
) -> Expr<'input>
{
let __start0 = __0.2.clone();
let __end0 = __1.0.clone();
let __start1 = __1.2.clone();
let __end1 = __2.0.clone();
let __temp0 = __action28(
input,
&__start0,
&__end0,
);
let __temp0 = (__start0, __temp0, __end0);
let __temp1 = __action28(
input,
&__start1,
&__end1,
);
let __temp1 = (__start1, __temp1, __end1);
__action7(
input,
__0,
__temp0,
__1,
__temp1,
__2,
)
}
#[allow(unused_variables)]
fn __action39<
'input,
>(
input: &'input str,
__0: (usize, Expr<'input>, usize),
__1: (usize, Tok<'input>, usize),
__2: (usize, alloc::vec::Vec<Expr<'input>>, usize),
__3: (usize, Expr<'input>, usize),
) -> Expr<'input>
{
let __start0 = __0.2.clone();
let __end0 = __1.0.clone();
let __start1 = __2.0.clone();
let __end1 = __2.2.clone();
let __temp0 = __action28(
input,
&__start0,
&__end0,
);
let __temp0 = (__start0, __temp0, __end0);
let __temp1 = __action29(
input,
__2,
);
let __temp1 = (__start1, __temp1, __end1);
__action7(
input,
__0,
__temp0,
__1,
__temp1,
__3,
)
}
#[allow(unused_variables)]
fn __action40<
'input,
>(
input: &'input str,
__0: (usize, Expr<'input>, usize),
__1: (usize, alloc::vec::Vec<Expr<'input>>, usize),
__2: (usize, Tok<'input>, usize),
__3: (usize, Expr<'input>, usize),
) -> Expr<'input>
{
let __start0 = __1.0.clone();
let __end0 = __1.2.clone();
let __start1 = __2.2.clone();
let __end1 = __3.0.clone();
let __temp0 = __action29(
input,
__1,
);
let __temp0 = (__start0, __temp0, __end0);
let __temp1 = __action28(
input,
&__start1,
&__end1,
);
let __temp1 = (__start1, __temp1, __end1);
__action7(
input,
__0,
__temp0,
__2,
__temp1,
__3,
)
}
#[allow(unused_variables)]
fn __action41<
'input,
>(
input: &'input str,
__0: (usize, Expr<'input>, usize),
__1: (usize, alloc::vec::Vec<Expr<'input>>, usize),
__2: (usize, Tok<'input>, usize),
__3: (usize, alloc::vec::Vec<Expr<'input>>, usize),
__4: (usize, Expr<'input>, usize),
) -> Expr<'input>
{
let __start0 = __1.0.clone();
let __end0 = __1.2.clone();
let __start1 = __3.0.clone();
let __end1 = __3.2.clone();
let __temp0 = __action29(
input,
__1,
);
let __temp0 = (__start0, __temp0, __end0);
let __temp1 = __action29(
input,
__3,
);
let __temp1 = (__start1, __temp1, __end1);
__action7(
input,
__0,
__temp0,
__2,
__temp1,
__4,
)
}
#[allow(unused_variables)]
fn __action42<
'input,
>(
input: &'input str,
__0: (usize, Expr<'input>, usize),
) -> (Expr<'input>, alloc::vec::Vec<Expr<'input>>)
{
let __start0 = __0.2.clone();
let __end0 = __0.2.clone();
let __temp0 = __action30(
input,
&__start0,
&__end0,
);
let __temp0 = (__start0, __temp0, __end0);
__action1(
input,
__0,
__temp0,
)
}
#[allow(unused_variables)]
fn __action43<
'input,
>(
input: &'input str,
__0: (usize, Expr<'input>, usize),
__1: (usize, alloc::vec::Vec<Expr<'input>>, usize),
) -> (Expr<'input>, alloc::vec::Vec<Expr<'input>>)
{
let __start0 = __1.0.clone();
let __end0 = __1.2.clone();
let __temp0 = __action31(
input,
__1,
);
let __temp0 = (__start0, __temp0, __end0);
__action1(
input,
__0,
__temp0,
)
}
#[allow(unused_variables)]
fn __action44<
'input,
>(
input: &'input str,
__0: (usize, Expr<'input>, usize),
__1: (usize, &'input str, usize),
) -> Expr<'input>
{
let __start0 = __0.2.clone();
let __end0 = __1.0.clone();
let __temp0 = __action26(
input,
&__start0,
&__end0,
);
let __temp0 = (__start0, __temp0, __end0);
__action10(
input,
__0,
__temp0,
__1,
)
}
#[allow(unused_variables)]
fn __action45<
'input,
>(
input: &'input str,
__0: (usize, Expr<'input>, usize),
__1: (usize, alloc::vec::Vec<Expr<'input>>, usize),
__2: (usize, &'input str, usize),
) -> Expr<'input>
{
let __start0 = __1.0.clone();
let __end0 = __1.2.clone();
let __temp0 = __action27(
input,
__1,
);
let __temp0 = (__start0, __temp0, __end0);
__action10(
input,
__0,
__temp0,
__2,
)
}
#[allow(unused_variables)]
fn __action46<
'input,
>(
input: &'input str,
__0: (usize, Expr<'input>, usize),
__1: (usize, &'input str, usize),
) -> Expr<'input>
{
let __start0 = __0.2.clone();
let __end0 = __1.0.clone();
let __temp0 = __action26(
input,
&__start0,
&__end0,
);
let __temp0 = (__start0, __temp0, __end0);
__action9(
input,
__0,
__temp0,
__1,
)
}
#[allow(unused_variables)]
fn __action47<
'input,
>(
input: &'input str,
__0: (usize, Expr<'input>, usize),
__1: (usize, alloc::vec::Vec<Expr<'input>>, usize),
__2: (usize, &'input str, usize),
) -> Expr<'input>
{
let __start0 = __1.0.clone();
let __end0 = __1.2.clone();
let __temp0 = __action27(
input,
__1,
);
let __temp0 = (__start0, __temp0, __end0);
__action9(
input,
__0,
__temp0,
__2,
)
}
#[allow(unused_variables)]
fn __action48<
'input,
>(
input: &'input str,
__0: (usize, Expr<'input>, usize),
__1: (usize, &'input str, usize),
) -> Expr<'input>
{
let __start0 = __0.2.clone();
let __end0 = __1.0.clone();
let __temp0 = __action24(
input,
&__start0,
&__end0,
);
let __temp0 = (__start0, __temp0, __end0);
__action12(
input,
__0,
__temp0,
__1,
)
}
#[allow(unused_variables)]
fn __action49<
'input,
>(
input: &'input str,
__0: (usize, Expr<'input>, usize),
__1: (usize, alloc::vec::Vec<Expr<'input>>, usize),
__2: (usize, &'input str, usize),
) -> Expr<'input>
{
let __start0 = __1.0.clone();
let __end0 = __1.2.clone();
let __temp0 = __action25(
input,
__1,
);
let __temp0 = (__start0, __temp0, __end0);
__action12(
input,
__0,
__temp0,
__2,
)
}
pub trait __ToTriple<'input, > {
fn to_triple(value: Self) -> Result<(usize,Tok<'input>,usize), __lalrpop_util::ParseError<usize, Tok<'input>, ()>>;
}
impl<'input, > __ToTriple<'input, > for (usize, Tok<'input>, usize) {
fn to_triple(value: Self) -> Result<(usize,Tok<'input>,usize), __lalrpop_util::ParseError<usize, Tok<'input>, ()>> {
Ok(value)
}
}
impl<'input, > __ToTriple<'input, > for Result<(usize, Tok<'input>, usize), ()> {
fn to_triple(value: Self) -> Result<(usize,Tok<'input>,usize), __lalrpop_util::ParseError<usize, Tok<'input>, ()>> {
match value {
Ok(v) => Ok(v),
Err(error) => Err(__lalrpop_util::ParseError::User { error }),
}
}
}