use crate::program::posix::{ast, lex};
#[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__Command {
#![allow(non_snake_case, non_camel_case_types, unused_mut, unused_variables, unused_imports, unused_parens, clippy::all)]
use crate::program::posix::{ast, lex};
#[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(lex::Token<'input>),
Variant1(usize),
Variant2(&'input str),
Variant3(alloc::vec::Vec<&'input str>),
Variant4(alloc::vec::Vec<lex::Token<'input>>),
Variant5(ast::Assignment),
Variant6(alloc::vec::Vec<ast::Assignment>),
Variant7(ast::Command),
Variant8(ast::Redirect),
Variant9(ast::Program),
Variant10(alloc::vec::Vec<ast::Redirect>),
}
const __ACTION: &[i8] = &[
0, 0, 0, 5, 0, 41, 0, 0, 0, 0, 0, 0, 42, 43, 0, 0, 44, 0, 45, 46, 47, 48, 6, 0, 49, 0, 0, 0, 0, 7, 0, 8, 0, 9, 50, 51, 0, 0, 0,
0, -56, 0, 0, 0, 0, -56, -56, 0, 0, -56, -56, 42, 43, 0, 0, 44, 0, 45, 46, 47, 48, 6, 0, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -56, -56, 0,
0, -54, 0, 0, 0, 0, -54, -54, 0, 0, -54, -54, 42, 43, 0, 0, 44, 0, 45, 46, 47, 48, 6, 0, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -54, -54, 0,
0, -55, 0, 0, 0, 0, -55, -55, 0, 0, -55, -55, 42, 43, 0, 0, 44, 0, 45, 46, 47, 48, 6, 0, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -55, -55, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42, 43, 0, 0, 44, 0, 45, 46, 47, 48, 6, 0, 49, 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, 42, 43, 0, 0, 44, 0, 45, 46, 47, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 5, 0, 41, 0, 0, 0, 0, 0, 0, 42, 43, 0, 0, 44, 0, 45, 46, 47, 48, 6, 0, 49, 0, 0, 0, 0, 7, 0, 8, 0, 9, 50, 51, 0, 0, 0,
0, 0, 0, 5, 0, 41, 0, 0, 0, 0, 0, 0, 42, 43, 0, 0, 44, 0, 45, 46, 47, 48, 6, 0, 49, 0, 0, 0, 0, 7, 0, 8, 0, 9, 50, 51, 0, 0, 0,
0, -57, 0, 0, 0, 0, -57, -57, 0, 0, -57, -57, 42, 43, 0, 0, 44, 0, 45, 46, 47, 48, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -57, -57, 0,
0, -60, 0, 0, 0, 0, -60, -60, 0, 0, -60, -60, 42, 43, 0, 0, 44, 0, 45, 46, 47, 48, 6, 0, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -60, -60, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42, 43, 0, 0, 44, 0, 45, 46, 47, 48, 6, 0, 55, 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, 42, 43, 0, 0, 44, 0, 45, 46, 47, 48, 6, 0, 49, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 42, 43, 0, 0, 44, 0, 45, 46, 47, 48, 6, 0, 49, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42, 43, 0, 0, 44, 0, 45, 46, 47, 48, 6, 0, 49, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, -58, 0, 0, 0, 0, -58, -58, 0, 0, -58, -58, 42, 43, 0, 0, 44, 0, 45, 46, 47, 48, 6, 0, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -58, -58, 0,
0, 0, 0, 5, 0, 41, 0, 0, 0, 0, 80, 0, 42, 43, 0, 0, 44, 0, 45, 46, 47, 48, 6, 0, 49, 0, 0, 0, 0, 7, 0, 8, 0, 9, 50, 51, 0, 0, 0,
0, -64, 0, 0, 0, 0, -64, -64, 0, 0, -64, -64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -64, -64, 0,
0, -61, 0, 0, 0, 0, -61, -61, 0, 0, -61, -61, 42, 43, 0, 0, 44, 0, 45, 46, 47, 48, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -61, -61, 0,
0, -62, 0, 0, 0, 0, -62, -62, 0, 0, -62, -62, 42, 43, 0, 0, 44, 0, 45, 46, 47, 48, 6, 0, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -62, -62, 0,
0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42, 43, 0, 0, 44, 0, 45, 46, 47, 48, 6, 0, 49, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, -59, 0, 0, 0, 0, -59, -59, 0, 0, -59, -59, 42, 43, 0, 0, 44, 0, 45, 46, 47, 48, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -59, -59, 0,
0, 0, 0, 5, 0, 41, 0, 0, 0, 0, 0, 0, 42, 43, 0, 0, 44, 0, 45, 46, 47, 48, 6, 0, 49, 0, 0, -23, -23, 7, -23, 8, -23, 9, 50, 51, 0, 0, -23,
0, 0, 0, 5, 0, 41, 0, 0, 0, 0, 0, 0, 42, 43, 0, 0, 44, 0, 45, 46, 47, 48, 6, 0, 49, 0, 0, 0, 0, 7, 0, 8, 0, 9, 50, 51, 0, 0, 0,
0, -63, 0, 0, 0, 0, -63, -63, 0, 0, -63, -63, 42, 43, 0, 0, 44, 0, 45, 46, 47, 48, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -63, -63, 0,
0, -34, 0, 5, 0, 41, 0, 0, 0, 0, -34, -34, 42, 43, 0, 0, 44, 0, 45, 46, 47, 48, 6, 0, 49, 0, 0, 0, 0, 7, 0, 8, 0, 9, 50, 51, 0, 0, 0,
0, -44, 0, 5, 0, 41, 0, 0, 0, 0, -44, -44, 42, 43, 0, 0, 44, 0, 45, 46, 47, 48, 6, 0, 49, 0, 0, 0, 0, 7, 0, 8, 0, 9, 50, 51, 0, 0, 0,
0, -46, 0, 5, 0, 41, 0, 0, 0, 0, -46, -46, 42, 43, 0, 0, 44, 0, 45, 46, 47, 48, 6, 0, 49, 0, 0, 0, 0, 7, 0, 8, 0, 9, 50, 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, 30, 31, 0, 93, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 5, 0, 41, 0, 0, 0, 0, 0, 0, 42, 43, 0, 0, 44, 0, 45, 46, 47, 48, 6, 0, 49, 0, 0, 0, 0, 7, 0, 8, 0, 9, 50, 51, 0, 0, 0,
0, 0, 0, 5, 0, 41, 0, 0, 0, 0, 0, 0, 42, 43, 0, 0, 44, 0, 45, 46, 47, 48, 6, 0, 49, 0, 0, 0, 0, 7, 0, 8, 0, 9, 50, 51, 0, 0, 0,
0, 0, 0, 5, 0, 41, 0, 0, 0, 0, 0, 0, 42, 43, 0, 0, 44, 0, 45, 46, 47, 48, 6, 0, 49, 0, 0, 0, 0, 7, 0, 8, 0, 9, 50, 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, 30, 31, 0, -24, 0, 0, 0, 0, 0, 0, 0, 0,
0, -10, 0, 0, 0, 0, -10, -10, 0, 0, -10, -10, -10, -10, 0, 0, -10, 0, -10, -10, -10, -10, -10, 0, -10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -10, -10, 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, 14, 0,
0, -48, 0, 0, 0, 0, -48, -48, 0, 0, -48, -48, -48, -48, 0, 0, -48, 0, -48, -48, -48, -48, -48, 0, -48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -48, -48, 0,
0, -21, 0, 0, 0, 0, -21, -21, 0, 0, -21, -21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -21, 0,
0, -39, 0, 0, 0, 0, -39, -39, 0, 0, -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, 15, -39, 0,
0, -52, 0, 0, 0, 0, -52, -52, 0, 0, -52, -52, -52, -52, 0, 0, -52, 0, -52, -52, -52, -52, -52, 0, -52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -52, -52, 0,
0, -42, 0, 0, 0, 0, -42, -42, 0, 0, -42, -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, -42, -42, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, -1, 0, 0, 0, 0, -1, -1, 0, 0, -1, -1, -1, -1, 0, 0, -1, 65, -1, -1, -1, -1, -1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, -2, 0, 0, 0, 0, -2, -2, 0, 0, -2, -2, -2, -2, 0, 0, -2, 0, -2, -2, -2, -2, -2, 0, -2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, -2, 0,
0, -11, 0, 0, 0, 0, -11, -11, 0, 0, -11, -11, -11, -11, 0, 0, -11, 0, -11, -11, -11, -11, -11, 0, -11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -11, -11, 0,
0, -53, 0, 0, 0, 0, -53, -53, 0, 0, -53, -53, -53, -53, 0, 0, -53, 0, -53, -53, -53, -53, -53, 0, -53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -53, -53, 0,
0, -1, 0, 0, 0, 0, -1, -1, 0, 0, -1, -1, -1, -1, 0, 0, -1, 0, -1, -1, -1, -1, -1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, 0,
0, -38, 0, 0, 0, 0, -38, -38, 0, 0, -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, 15, -38, 0,
0, -27, 0, 0, 0, 0, -27, -27, 0, 0, -27, -27, -27, -27, 0, 0, -27, 0, -27, -27, -27, -27, -27, 0, -27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -27, -27, 0,
0, -28, 0, 0, 0, 0, -28, -28, 0, 0, -28, -28, -28, -28, 0, 0, -28, 0, -28, -28, -28, -28, -28, 0, -28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -28, -28, 0,
0, -33, 0, 0, 0, 0, -33, -33, 0, 0, -33, -33, -33, -33, 0, 0, -33, 0, -33, -33, -33, -33, -33, 0, -33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -33, -33, 0,
0, -29, 0, 0, 0, 0, -29, -29, 0, 0, -29, -29, -29, -29, 0, 0, -29, 0, -29, -29, -29, -29, -29, 0, -29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -29, -29, 0,
0, -30, 0, 0, 0, 0, -30, -30, 0, 0, -30, -30, -30, -30, 0, 0, -30, 0, -30, -30, -30, -30, -30, 0, -30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -30, -30, 0,
0, -31, 0, 0, 0, 0, -31, -31, 0, 0, -31, -31, -31, -31, 0, 0, -31, 0, -31, -31, -31, -31, -31, 0, -31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -31, -31, 0,
0, -32, 0, 0, 0, 0, -32, -32, 0, 0, -32, -32, -32, -32, 0, 0, -32, 0, -32, -32, -32, -32, -32, 0, -32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -32, -32, 0,
0, -49, 0, 0, 0, 0, -49, -49, 0, 0, -49, -49, -49, -49, 0, 0, -49, 0, -49, -49, -49, -49, -49, 0, -49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -49, -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, 81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 13, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 24, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84,
0, -19, 0, 0, 0, 0, -19, -19, 0, 0, -19, -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, -19, 0,
0, -20, 0, 0, 0, 0, -20, -20, 0, 0, -20, -20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -20, 0,
0, -40, 0, 0, 0, 0, -40, -40, 0, 0, -40, -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, -40, -40, 0,
0, -5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -5, -5, 0, 0, -5, 0, -5, -5, -5, -5, -5, 0, -5, 0, 0, 0, 0, -5, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, -35, 0, 0, 0, 0, 26, 13, 0, 0, -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, 14, 0,
0, -37, 0, 0, 0, 0, 0, 0, 0, 0, -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, 0, 0,
0, -47, 0, 0, 0, 0, 0, 0, 0, 0, -47, -47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 27, 0, 0, 0, 0, 0, 0, 0, 0, 87, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, -15, 0, 0, 0, 0, -15, -15, 0, 0, -15, -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, -15, 0,
0, -7, 0, 0, 0, 0, -7, -7, 0, 0, -7, -7, -7, -7, 0, 0, -7, 0, -7, -7, -7, -7, -7, 0, -7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -7, -7, 0,
0, -16, 0, 0, 0, 0, -16, -16, 0, 0, -16, -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, -16, 0,
0, -13, 0, 0, 0, 0, -13, -13, 0, 0, -13, -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, -13, 0,
0, -12, 0, 0, 0, 0, -12, -12, 0, 0, -12, -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, -12, 0,
0, -41, 0, 0, 0, 0, -41, -41, 0, 0, -41, -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, -41, -41, 0,
0, -6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -6, -6, 0, 0, -6, 0, -6, -6, -6, -6, -6, 0, -6, 0, 0, 0, 0, -6, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, -14, 0, 0, 0, 0, -14, -14, 0, 0, -14, -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, -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, -22, -22, 0, -22, 0, -22, 0, 0, 0, 0, 0, -22,
0, -36, 0, 0, 0, 0, 0, 0, 0, 0, -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, 0, 0,
0, -43, 0, 0, 0, 0, 0, 0, 0, 0, -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, 0, 0,
0, -45, 0, 0, 0, 0, 0, 0, 0, 0, -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, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 0, 0, 0, 0, 0, 0, 0, 0,
0, -18, 0, 0, 0, 0, -18, -18, 0, 0, -18, -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, -18, 0,
0, -17, 0, 0, 0, 0, -17, -17, 0, 0, -17, -17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -17, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 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,
];
fn __action(state: i8, integer: usize) -> i8 {
__ACTION[(state as usize) * 39 + integer]
}
const __EOF_ACTION: &[i8] = &[
0,
-56,
-54,
-55,
0,
0,
0,
0,
0,
-57,
-60,
0,
0,
0,
0,
-58,
0,
-64,
-61,
-62,
0,
-59,
0,
0,
-63,
0,
0,
0,
0,
0,
0,
0,
0,
-10,
-65,
-48,
-21,
-39,
-52,
-42,
0,
0,
0,
0,
0,
0,
0,
0,
-1,
0,
0,
-2,
-11,
-53,
-1,
-38,
-27,
-28,
-33,
-29,
-30,
-31,
-32,
-49,
0,
0,
0,
0,
0,
0,
0,
-19,
-20,
-40,
0,
0,
0,
0,
0,
-15,
-7,
-16,
-13,
-12,
-41,
0,
-14,
0,
0,
0,
0,
0,
-18,
-17,
0,
0,
0,
];
fn __goto(state: i8, nt: usize) -> i8 {
match nt {
0 => match state {
2 => 10,
3 => 15,
11 => 19,
_ => 1,
},
2 => 20,
3 => match state {
2 | 17 => 52,
_ => 33,
},
5 => match state {
6 => 17,
_ => 2,
},
6 => match state {
0 => 34,
16 | 25..=27 => 75,
_ => 66,
},
7 => match state {
31 => 32,
7 => 67,
8 => 68,
22 => 87,
29 => 94,
30 => 95,
_ => 28,
},
8 => match state {
32 => 96,
_ => 91,
},
9 => match state {
5 => 63,
_ => 35,
},
10 => 76,
11 => match state {
25 => 88,
26 => 89,
27 => 90,
_ => 77,
},
12 => match state {
12 => 71,
13 => 72,
_ => 36,
},
13 => match state {
4 => 55,
_ => 37,
},
14 => 78,
15 => match state {
3 | 9 | 11 | 18 | 21 | 24 => 53,
_ => 38,
},
17 => match state {
1 => 9,
2 => 11,
10 => 18,
15 => 21,
19 => 24,
_ => 3,
},
18 => match state {
14 => 73,
20 => 84,
_ => 39,
},
_ => 0,
}
}
fn __expected_tokens(__state: i8) -> alloc::vec::Vec<alloc::string::String> {
const __TERMINAL: &[&str] = &[
r###""\t""###,
r###""\n""###,
r###"" ""###,
r###""!""###,
r###""\"""###,
r###""$""###,
r###""&""###,
r###""&&""###,
r###""'""###,
r###""(""###,
r###"")""###,
r###"";""###,
r###""<""###,
r###""<&""###,
r###""<<""###,
r###""<<-""###,
r###""<>""###,
r###""=""###,
r###"">""###,
r###"">&""###,
r###"">>""###,
r###"">|""###,
r###""IO_NUMBER""###,
r###""TEXT""###,
r###""WORD""###,
r###""\\""###,
r###""`""###,
r###""elif""###,
r###""else""###,
r###""export""###,
r###""fi""###,
r###""if""###,
r###""then""###,
r###""{""###,
r###""{#""###,
r###""{#!""###,
r###""|""###,
r###""||""###,
r###""}""###,
];
__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
{
text: &'input str,
__phantom: core::marker::PhantomData<(&'input ())>,
}
impl<'input> __state_machine::ParserDefinition for __StateMachine<'input>
where
{
type Location = usize;
type Error = lex::Error;
type Token = lex::Token<'input>;
type TokenIndex = usize;
type Symbol = __Symbol<'input>;
type Success = ast::Command;
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, 39 - 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.text,
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: &lex::Token<'input>,
_: core::marker::PhantomData<(&'input ())>,
) -> Option<usize>
{
match *__token {
lex::Token::Tab if true => Some(0),
lex::Token::Linefeed if true => Some(1),
lex::Token::Space if true => Some(2),
lex::Token::Bang if true => Some(3),
lex::Token::DoubleQuote if true => Some(4),
lex::Token::Dollar if true => Some(5),
lex::Token::Amper if true => Some(6),
lex::Token::And if true => Some(7),
lex::Token::SingleQuote if true => Some(8),
lex::Token::LParen if true => Some(9),
lex::Token::RParen if true => Some(10),
lex::Token::Semi if true => Some(11),
lex::Token::Less if true => Some(12),
lex::Token::LessAnd if true => Some(13),
lex::Token::DLess if true => Some(14),
lex::Token::DLessDash if true => Some(15),
lex::Token::LessGreat if true => Some(16),
lex::Token::Equals if true => Some(17),
lex::Token::Great if true => Some(18),
lex::Token::GreatAnd if true => Some(19),
lex::Token::DGreat if true => Some(20),
lex::Token::Clobber if true => Some(21),
lex::Token::IoNumber(_) if true => Some(22),
lex::Token::Text(_) if true => Some(23),
lex::Token::Word(_) if true => Some(24),
lex::Token::Backslash if true => Some(25),
lex::Token::Backtick if true => Some(26),
lex::Token::Elif if true => Some(27),
lex::Token::Else if true => Some(28),
lex::Token::Export if true => Some(29),
lex::Token::Fi if true => Some(30),
lex::Token::If if true => Some(31),
lex::Token::Then if true => Some(32),
lex::Token::LBrace if true => Some(33),
lex::Token::HashLang(_) if true => Some(34),
lex::Token::Shebang(_) if true => Some(35),
lex::Token::Pipe if true => Some(36),
lex::Token::Or if true => Some(37),
lex::Token::RBrace if true => Some(38),
_ => None,
}
}
fn __token_to_symbol<
'input,
>(
__token_index: usize,
__token: lex::Token<'input>,
_: core::marker::PhantomData<(&'input ())>,
) -> __Symbol<'input>
{
match __token_index {
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 36 | 37 | 38 => __Symbol::Variant0(__token),
22 => match __token {
lex::Token::IoNumber(__tok0) if true => __Symbol::Variant1(__tok0),
_ => unreachable!(),
},
23 | 24 | 34 | 35 => match __token {
lex::Token::Text(__tok0) | lex::Token::Word(__tok0) | lex::Token::HashLang(__tok0) | lex::Token::Shebang(__tok0) if true => __Symbol::Variant2(__tok0),
_ => unreachable!(),
},
_ => unreachable!(),
}
}
pub struct CommandParser {
_priv: (),
}
impl CommandParser {
pub fn new() -> CommandParser {
CommandParser {
_priv: (),
}
}
#[allow(dead_code)]
pub fn parse<
'input,
__TOKEN: __ToTriple<'input, >,
__TOKENS: IntoIterator<Item=__TOKEN>,
>(
&self,
text: &'input str,
__tokens0: __TOKENS,
) -> Result<ast::Command, __lalrpop_util::ParseError<usize, lex::Token<'input>, lex::Error>>
{
let __tokens = __tokens0.into_iter();
let mut __tokens = __tokens.map(|t| __ToTriple::to_triple(t));
__state_machine::Parser::drive(
__StateMachine {
text,
__phantom: core::marker::PhantomData::<(&())>,
},
__tokens,
)
}
}
pub(crate) fn __reduce<
'input,
>(
text: &'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<ast::Command,__lalrpop_util::ParseError<usize, lex::Token<'input>, lex::Error>>>
{
let (__pop_states, __nonterminal) = match __action {
0 => {
__reduce0(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
1 => {
__reduce1(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
2 => {
__reduce2(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
3 => {
__reduce3(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
4 => {
__reduce4(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
5 => {
__reduce5(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
6 => {
__reduce6(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
7 => {
__reduce7(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
8 => {
__reduce8(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
9 => {
__reduce9(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
10 => {
__reduce10(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
11 => {
__reduce11(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
12 => {
__reduce12(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
13 => {
__reduce13(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
14 => {
__reduce14(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
15 => {
__reduce15(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
16 => {
__reduce16(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
17 => {
__reduce17(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
18 => {
__reduce18(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
19 => {
__reduce19(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
20 => {
__reduce20(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
21 => {
__reduce21(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
22 => {
__reduce22(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
23 => {
__reduce23(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
24 => {
__reduce24(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
25 => {
__reduce25(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
26 => {
__reduce26(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
27 => {
__reduce27(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
28 => {
__reduce28(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
29 => {
__reduce29(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
30 => {
__reduce30(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
31 => {
__reduce31(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
32 => {
__reduce32(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
33 => {
__reduce33(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
34 => {
__reduce34(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
35 => {
__reduce35(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
36 => {
__reduce36(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
37 => {
__reduce37(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
38 => {
__reduce38(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
39 => {
__reduce39(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
40 => {
__reduce40(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
41 => {
__reduce41(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
42 => {
__reduce42(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
43 => {
__reduce43(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
44 => {
__reduce44(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
45 => {
__reduce45(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
46 => {
__reduce46(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
47 => {
__reduce47(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
48 => {
__reduce48(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
49 => {
__reduce49(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
50 => {
__reduce50(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
51 => {
__reduce51(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
52 => {
__reduce52(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
53 => {
__reduce53(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
54 => {
__reduce54(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
55 => {
__reduce55(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
56 => {
__reduce56(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
57 => {
__reduce57(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
58 => {
__reduce58(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
59 => {
__reduce59(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
60 => {
__reduce60(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
61 => {
__reduce61(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
62 => {
__reduce62(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
63 => {
__reduce63(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
64 => {
let __sym0 = __pop_Variant7(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action1::<>(text, __sym0);
return Some(Ok(__nt));
}
65 => {
__reduce65(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
_ => panic!("invalid action code {}", __action)
};
let __states_len = __states.len();
__states.truncate(__states_len - __pop_states);
let __state = *__states.last().unwrap();
let __next_state = __goto(__state, __nonterminal);
__states.push(__next_state);
None
}
#[inline(never)]
fn __symbol_type_mismatch() -> ! {
panic!("symbol type mismatch")
}
fn __pop_Variant6<
'input,
>(
__symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, alloc::vec::Vec<ast::Assignment>, usize)
{
match __symbols.pop() {
Some((__l, __Symbol::Variant6(__v), __r)) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant10<
'input,
>(
__symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, alloc::vec::Vec<ast::Redirect>, usize)
{
match __symbols.pop() {
Some((__l, __Symbol::Variant10(__v), __r)) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant4<
'input,
>(
__symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, alloc::vec::Vec<lex::Token<'input>>, usize)
{
match __symbols.pop() {
Some((__l, __Symbol::Variant4(__v), __r)) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant3<
'input,
>(
__symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, alloc::vec::Vec<&'input str>, usize)
{
match __symbols.pop() {
Some((__l, __Symbol::Variant3(__v), __r)) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant5<
'input,
>(
__symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, ast::Assignment, usize)
{
match __symbols.pop() {
Some((__l, __Symbol::Variant5(__v), __r)) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant7<
'input,
>(
__symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, ast::Command, usize)
{
match __symbols.pop() {
Some((__l, __Symbol::Variant7(__v), __r)) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant9<
'input,
>(
__symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, ast::Program, usize)
{
match __symbols.pop() {
Some((__l, __Symbol::Variant9(__v), __r)) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant8<
'input,
>(
__symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, ast::Redirect, usize)
{
match __symbols.pop() {
Some((__l, __Symbol::Variant8(__v), __r)) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant0<
'input,
>(
__symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, lex::Token<'input>, usize)
{
match __symbols.pop() {
Some((__l, __Symbol::Variant0(__v), __r)) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant1<
'input,
>(
__symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, usize, usize)
{
match __symbols.pop() {
Some((__l, __Symbol::Variant1(__v), __r)) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant2<
'input,
>(
__symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, &'input str, usize)
{
match __symbols.pop() {
Some((__l, __Symbol::Variant2(__v), __r)) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
pub(crate) fn __reduce0<
'input,
>(
text: &'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::__action44::<>(text, __sym0);
__symbols.push((__start, __Symbol::Variant3(__nt), __end));
(1, 0)
}
pub(crate) fn __reduce1<
'input,
>(
text: &'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::__action45::<>(text, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant3(__nt), __end));
(2, 0)
}
pub(crate) fn __reduce2<
'input,
>(
text: &'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::__action54::<>(text, &__start, &__end);
__symbols.push((__start, __Symbol::Variant4(__nt), __end));
(0, 1)
}
pub(crate) fn __reduce3<
'input,
>(
text: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: core::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant4(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action55::<>(text, __sym0);
__symbols.push((__start, __Symbol::Variant4(__nt), __end));
(1, 1)
}
pub(crate) fn __reduce4<
'input,
>(
text: &'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::__action56::<>(text, __sym0);
__symbols.push((__start, __Symbol::Variant4(__nt), __end));
(1, 2)
}
pub(crate) fn __reduce5<
'input,
>(
text: &'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_Variant4(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action57::<>(text, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant4(__nt), __end));
(2, 2)
}
pub(crate) fn __reduce6<
'input,
>(
text: &'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_Variant0(__symbols);
let __sym0 = __pop_Variant2(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action43::<>(text, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant5(__nt), __end));
(3, 3)
}
pub(crate) fn __reduce7<
'input,
>(
text: &'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::__action48::<>(text, &__start, &__end);
__symbols.push((__start, __Symbol::Variant6(__nt), __end));
(0, 4)
}
pub(crate) fn __reduce8<
'input,
>(
text: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: core::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant6(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action49::<>(text, __sym0);
__symbols.push((__start, __Symbol::Variant6(__nt), __end));
(1, 4)
}
pub(crate) fn __reduce9<
'input,
>(
text: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: core::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant5(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action52::<>(text, __sym0);
__symbols.push((__start, __Symbol::Variant6(__nt), __end));
(1, 5)
}
pub(crate) fn __reduce10<
'input,
>(
text: &'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_Variant5(__symbols);
let __sym0 = __pop_Variant6(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action53::<>(text, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant6(__nt), __end));
(2, 5)
}
pub(crate) fn __reduce11<
'input,
>(
text: &'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_Variant2(__symbols);
let __sym0 = __pop_Variant2(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action13::<>(text, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant7(__nt), __end));
(3, 6)
}
pub(crate) fn __reduce12<
'input,
>(
text: &'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_Variant2(__symbols);
let __sym0 = __pop_Variant2(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action14::<>(text, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant7(__nt), __end));
(3, 6)
}
pub(crate) fn __reduce13<
'input,
>(
text: &'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_Variant0(__symbols);
let __sym2 = __pop_Variant9(__symbols);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym3.2.clone();
let __nt = super::__action15::<>(text, __sym0, __sym1, __sym2, __sym3);
__symbols.push((__start, __Symbol::Variant7(__nt), __end));
(4, 6)
}
pub(crate) fn __reduce14<
'input,
>(
text: &'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_Variant0(__symbols);
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action16::<>(text, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant7(__nt), __end));
(3, 6)
}
pub(crate) fn __reduce15<
'input,
>(
text: &'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_Variant7(__symbols);
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action17::<>(text, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant7(__nt), __end));
(3, 6)
}
pub(crate) fn __reduce16<
'input,
>(
text: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: core::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 6);
let __sym5 = __pop_Variant0(__symbols);
let __sym4 = __pop_Variant7(__symbols);
let __sym3 = __pop_Variant7(__symbols);
let __sym2 = __pop_Variant0(__symbols);
let __sym1 = __pop_Variant7(__symbols);
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym5.2.clone();
let __nt = super::__action18::<>(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5);
__symbols.push((__start, __Symbol::Variant7(__nt), __end));
(6, 6)
}
pub(crate) fn __reduce17<
'input,
>(
text: &'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_Variant0(__symbols);
let __sym3 = __pop_Variant7(__symbols);
let __sym2 = __pop_Variant0(__symbols);
let __sym1 = __pop_Variant7(__symbols);
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym4.2.clone();
let __nt = super::__action19::<>(text, __sym0, __sym1, __sym2, __sym3, __sym4);
__symbols.push((__start, __Symbol::Variant7(__nt), __end));
(5, 6)
}
pub(crate) fn __reduce18<
'input,
>(
text: &'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_Variant7(__symbols);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant7(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action20::<>(text, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant7(__nt), __end));
(3, 6)
}
pub(crate) fn __reduce19<
'input,
>(
text: &'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_Variant7(__symbols);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant7(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action21::<>(text, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant7(__nt), __end));
(3, 6)
}
pub(crate) fn __reduce20<
'input,
>(
text: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: core::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant7(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action22::<>(text, __sym0);
__symbols.push((__start, __Symbol::Variant7(__nt), __end));
(1, 6)
}
pub(crate) fn __reduce21<
'input,
>(
text: &'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_Variant7(__symbols);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant7(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action11::<>(text, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant7(__nt), __end));
(3, 7)
}
pub(crate) fn __reduce22<
'input,
>(
text: &'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_Variant7(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action12::<>(text, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant7(__nt), __end));
(2, 7)
}
pub(crate) fn __reduce23<
'input,
>(
text: &'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_Variant7(__symbols);
let __sym2 = __pop_Variant0(__symbols);
let __sym1 = __pop_Variant7(__symbols);
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym3.2.clone();
let __nt = super::__action23::<>(text, __sym0, __sym1, __sym2, __sym3);
__symbols.push((__start, __Symbol::Variant7(__nt), __end));
(4, 8)
}
pub(crate) fn __reduce24<
'input,
>(
text: &'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_Variant7(__symbols);
let __sym3 = __pop_Variant7(__symbols);
let __sym2 = __pop_Variant0(__symbols);
let __sym1 = __pop_Variant7(__symbols);
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym4.2.clone();
let __nt = super::__action24::<>(text, __sym0, __sym1, __sym2, __sym3, __sym4);
__symbols.push((__start, __Symbol::Variant7(__nt), __end));
(5, 8)
}
pub(crate) fn __reduce25<
'input,
>(
text: &'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_Variant7(__symbols);
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action25::<>(text, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant7(__nt), __end));
(2, 8)
}
pub(crate) fn __reduce26<
'input,
>(
text: &'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_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action36::<>(text, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant8(__nt), __end));
(2, 9)
}
pub(crate) fn __reduce27<
'input,
>(
text: &'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_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action37::<>(text, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant8(__nt), __end));
(2, 9)
}
pub(crate) fn __reduce28<
'input,
>(
text: &'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_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action38::<>(text, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant8(__nt), __end));
(2, 9)
}
pub(crate) fn __reduce29<
'input,
>(
text: &'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_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action39::<>(text, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant8(__nt), __end));
(2, 9)
}
pub(crate) fn __reduce30<
'input,
>(
text: &'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_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action40::<>(text, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant8(__nt), __end));
(2, 9)
}
pub(crate) fn __reduce31<
'input,
>(
text: &'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_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action41::<>(text, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant8(__nt), __end));
(2, 9)
}
pub(crate) fn __reduce32<
'input,
>(
text: &'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_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action42::<>(text, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant8(__nt), __end));
(2, 9)
}
pub(crate) fn __reduce33<
'input,
>(
text: &'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_Variant7(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action9::<>(text, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant7(__nt), __end));
(2, 10)
}
pub(crate) fn __reduce34<
'input,
>(
text: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: core::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant7(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action10::<>(text, __sym0);
__symbols.push((__start, __Symbol::Variant7(__nt), __end));
(1, 10)
}
pub(crate) fn __reduce35<
'input,
>(
text: &'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_Variant9(__symbols);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant7(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action7::<>(text, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant9(__nt), __end));
(3, 11)
}
pub(crate) fn __reduce36<
'input,
>(
text: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: core::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant7(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action8::<>(text, __sym0);
__symbols.push((__start, __Symbol::Variant9(__nt), __end));
(1, 11)
}
pub(crate) fn __reduce37<
'input,
>(
text: &'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_Variant7(__symbols);
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action26::<>(text, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant7(__nt), __end));
(2, 12)
}
pub(crate) fn __reduce38<
'input,
>(
text: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: core::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant7(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action27::<>(text, __sym0);
__symbols.push((__start, __Symbol::Variant7(__nt), __end));
(1, 12)
}
pub(crate) fn __reduce39<
'input,
>(
text: &'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_Variant7(__symbols);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant7(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action58::<>(text, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant7(__nt), __end));
(3, 13)
}
pub(crate) fn __reduce40<
'input,
>(
text: &'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_Variant7(__symbols);
let __sym2 = __pop_Variant4(__symbols);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant7(__symbols);
let __start = __sym0.0.clone();
let __end = __sym3.2.clone();
let __nt = super::__action59::<>(text, __sym0, __sym1, __sym2, __sym3);
__symbols.push((__start, __Symbol::Variant7(__nt), __end));
(4, 13)
}
pub(crate) fn __reduce41<
'input,
>(
text: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: core::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant7(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action29::<>(text, __sym0);
__symbols.push((__start, __Symbol::Variant7(__nt), __end));
(1, 13)
}
pub(crate) fn __reduce42<
'input,
>(
text: &'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_Variant9(__symbols);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant9(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action2::<>(text, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant9(__nt), __end));
(3, 14)
}
pub(crate) fn __reduce43<
'input,
>(
text: &'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_Variant9(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action3::<>(text, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant9(__nt), __end));
(2, 14)
}
pub(crate) fn __reduce44<
'input,
>(
text: &'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_Variant9(__symbols);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant9(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action4::<>(text, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant9(__nt), __end));
(3, 14)
}
pub(crate) fn __reduce45<
'input,
>(
text: &'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_Variant9(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action5::<>(text, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant9(__nt), __end));
(2, 14)
}
pub(crate) fn __reduce46<
'input,
>(
text: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: core::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant9(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action6::<>(text, __sym0);
__symbols.push((__start, __Symbol::Variant9(__nt), __end));
(1, 14)
}
pub(crate) fn __reduce47<
'input,
>(
text: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: core::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant8(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action34::<>(text, __sym0);
__symbols.push((__start, __Symbol::Variant8(__nt), __end));
(1, 15)
}
pub(crate) fn __reduce48<
'input,
>(
text: &'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_Variant8(__symbols);
let __sym0 = __pop_Variant1(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action35::<>(text, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant8(__nt), __end));
(2, 15)
}
pub(crate) fn __reduce49<
'input,
>(
text: &'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::__action46::<>(text, &__start, &__end);
__symbols.push((__start, __Symbol::Variant10(__nt), __end));
(0, 16)
}
pub(crate) fn __reduce50<
'input,
>(
text: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: core::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant10(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action47::<>(text, __sym0);
__symbols.push((__start, __Symbol::Variant10(__nt), __end));
(1, 16)
}
pub(crate) fn __reduce51<
'input,
>(
text: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: core::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant8(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action50::<>(text, __sym0);
__symbols.push((__start, __Symbol::Variant10(__nt), __end));
(1, 17)
}
pub(crate) fn __reduce52<
'input,
>(
text: &'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_Variant8(__symbols);
let __sym0 = __pop_Variant10(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action51::<>(text, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant10(__nt), __end));
(2, 17)
}
pub(crate) fn __reduce53<
'input,
>(
text: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: core::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant6(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action30::<>(text, __sym0);
__symbols.push((__start, __Symbol::Variant7(__nt), __end));
(1, 18)
}
pub(crate) fn __reduce54<
'input,
>(
text: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: core::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant10(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action31::<>(text, __sym0);
__symbols.push((__start, __Symbol::Variant7(__nt), __end));
(1, 18)
}
pub(crate) fn __reduce55<
'input,
>(
text: &'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::__action62::<>(text, __sym0);
__symbols.push((__start, __Symbol::Variant7(__nt), __end));
(1, 18)
}
pub(crate) fn __reduce56<
'input,
>(
text: &'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_Variant10(__symbols);
let __sym0 = __pop_Variant3(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action63::<>(text, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant7(__nt), __end));
(2, 18)
}
pub(crate) fn __reduce57<
'input,
>(
text: &'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_Variant10(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action64::<>(text, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant7(__nt), __end));
(2, 18)
}
pub(crate) fn __reduce58<
'input,
>(
text: &'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_Variant10(__symbols);
let __sym1 = __pop_Variant3(__symbols);
let __sym0 = __pop_Variant10(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action65::<>(text, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant7(__nt), __end));
(3, 18)
}
pub(crate) fn __reduce59<
'input,
>(
text: &'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_Variant6(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action66::<>(text, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant7(__nt), __end));
(2, 18)
}
pub(crate) fn __reduce60<
'input,
>(
text: &'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_Variant10(__symbols);
let __sym1 = __pop_Variant3(__symbols);
let __sym0 = __pop_Variant6(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action67::<>(text, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant7(__nt), __end));
(3, 18)
}
pub(crate) fn __reduce61<
'input,
>(
text: &'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_Variant3(__symbols);
let __sym1 = __pop_Variant10(__symbols);
let __sym0 = __pop_Variant6(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action68::<>(text, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant7(__nt), __end));
(3, 18)
}
pub(crate) fn __reduce62<
'input,
>(
text: &'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_Variant10(__symbols);
let __sym2 = __pop_Variant3(__symbols);
let __sym1 = __pop_Variant10(__symbols);
let __sym0 = __pop_Variant6(__symbols);
let __start = __sym0.0.clone();
let __end = __sym3.2.clone();
let __nt = super::__action69::<>(text, __sym0, __sym1, __sym2, __sym3);
__symbols.push((__start, __Symbol::Variant7(__nt), __end));
(4, 18)
}
pub(crate) fn __reduce63<
'input,
>(
text: &'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_Variant6(__symbols);
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action33::<>(text, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant7(__nt), __end));
(2, 18)
}
pub(crate) fn __reduce65<
'input,
>(
text: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: core::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant9(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action0::<>(text, __sym0);
__symbols.push((__start, __Symbol::Variant9(__nt), __end));
(1, 20)
}
}
pub use self::__parse__Command::CommandParser;
#[cfg_attr(rustfmt, rustfmt_skip)]
mod __parse__Program {
#![allow(non_snake_case, non_camel_case_types, unused_mut, unused_variables, unused_imports, unused_parens, clippy::all)]
use crate::program::posix::{ast, lex};
#[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(lex::Token<'input>),
Variant1(usize),
Variant2(&'input str),
Variant3(alloc::vec::Vec<&'input str>),
Variant4(alloc::vec::Vec<lex::Token<'input>>),
Variant5(ast::Assignment),
Variant6(alloc::vec::Vec<ast::Assignment>),
Variant7(ast::Command),
Variant8(ast::Redirect),
Variant9(ast::Program),
Variant10(alloc::vec::Vec<ast::Redirect>),
}
const __ACTION: &[i8] = &[
0, 0, 0, 5, 0, 44, 0, 0, 0, 0, 0, 0, 45, 46, 0, 0, 47, 0, 48, 49, 50, 51, 6, 0, 52, 0, 0, 0, 0, 7, 0, 8, 0, 9, 53, 54, 0, 0, 0,
0, -56, 0, 0, 0, 0, -56, -56, 0, 0, -56, -56, 45, 46, 0, 0, 47, 0, 48, 49, 50, 51, 6, 0, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -56, -56, 0,
0, -54, 0, 0, 0, 0, -54, -54, 0, 0, -54, -54, 45, 46, 0, 0, 47, 0, 48, 49, 50, 51, 6, 0, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -54, -54, 0,
0, -55, 0, 0, 0, 0, -55, -55, 0, 0, -55, -55, 45, 46, 0, 0, 47, 0, 48, 49, 50, 51, 6, 0, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -55, -55, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 46, 0, 0, 47, 0, 48, 49, 50, 51, 6, 0, 52, 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, 45, 46, 0, 0, 47, 0, 48, 49, 50, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 5, 0, 44, 0, 0, 0, 0, 0, 0, 45, 46, 0, 0, 47, 0, 48, 49, 50, 51, 6, 0, 52, 0, 0, 0, 0, 7, 0, 8, 0, 9, 53, 54, 0, 0, 0,
0, 0, 0, 5, 0, 44, 0, 0, 0, 0, 0, 0, 45, 46, 0, 0, 47, 0, 48, 49, 50, 51, 6, 0, 52, 0, 0, 0, 0, 7, 0, 8, 0, 9, 53, 54, 0, 0, 0,
0, -57, 0, 0, 0, 0, -57, -57, 0, 0, -57, -57, 45, 46, 0, 0, 47, 0, 48, 49, 50, 51, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -57, -57, 0,
0, -60, 0, 0, 0, 0, -60, -60, 0, 0, -60, -60, 45, 46, 0, 0, 47, 0, 48, 49, 50, 51, 6, 0, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -60, -60, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 46, 0, 0, 47, 0, 48, 49, 50, 51, 6, 0, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, -34, 0, 5, 0, 44, 0, 0, 0, 0, -34, -34, 45, 46, 0, 0, 47, 0, 48, 49, 50, 51, 6, 0, 52, 0, 0, 0, 0, 7, 0, 8, 0, 9, 53, 54, 0, 0, 0,
0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 45, 46, 0, 0, 47, 0, 48, 49, 50, 51, 6, 0, 52, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 45, 46, 0, 0, 47, 0, 48, 49, 50, 51, 6, 0, 52, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 46, 0, 0, 47, 0, 48, 49, 50, 51, 6, 0, 52, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, -44, 0, 5, 0, 44, 0, 0, 0, 0, -44, -44, 45, 46, 0, 0, 47, 0, 48, 49, 50, 51, 6, 0, 52, 0, 0, 0, 0, 7, 0, 8, 0, 9, 53, 54, 0, 0, 0,
0, -46, 0, 5, 0, 44, 0, 0, 0, 0, -46, -46, 45, 46, 0, 0, 47, 0, 48, 49, 50, 51, 6, 0, 52, 0, 0, 0, 0, 7, 0, 8, 0, 9, 53, 54, 0, 0, 0,
0, -58, 0, 0, 0, 0, -58, -58, 0, 0, -58, -58, 45, 46, 0, 0, 47, 0, 48, 49, 50, 51, 6, 0, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -58, -58, 0,
0, 0, 0, 5, 0, 44, 0, 0, 0, 0, 83, 0, 45, 46, 0, 0, 47, 0, 48, 49, 50, 51, 6, 0, 52, 0, 0, 0, 0, 7, 0, 8, 0, 9, 53, 54, 0, 0, 0,
0, -64, 0, 0, 0, 0, -64, -64, 0, 0, -64, -64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -64, -64, 0,
0, -61, 0, 0, 0, 0, -61, -61, 0, 0, -61, -61, 45, 46, 0, 0, 47, 0, 48, 49, 50, 51, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -61, -61, 0,
0, -62, 0, 0, 0, 0, -62, -62, 0, 0, -62, -62, 45, 46, 0, 0, 47, 0, 48, 49, 50, 51, 6, 0, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -62, -62, 0,
0, 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 46, 0, 0, 47, 0, 48, 49, 50, 51, 6, 0, 52, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, -59, 0, 0, 0, 0, -59, -59, 0, 0, -59, -59, 45, 46, 0, 0, 47, 0, 48, 49, 50, 51, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -59, -59, 0,
0, 0, 0, 5, 0, 44, 0, 0, 0, 0, 0, 0, 45, 46, 0, 0, 47, 0, 48, 49, 50, 51, 6, 0, 52, 0, 0, -23, -23, 7, -23, 8, -23, 9, 53, 54, 0, 0, -23,
0, 0, 0, 5, 0, 44, 0, 0, 0, 0, 0, 0, 45, 46, 0, 0, 47, 0, 48, 49, 50, 51, 6, 0, 52, 0, 0, 0, 0, 7, 0, 8, 0, 9, 53, 54, 0, 0, 0,
0, -63, 0, 0, 0, 0, -63, -63, 0, 0, -63, -63, 45, 46, 0, 0, 47, 0, 48, 49, 50, 51, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -63, -63, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 31, 0, 93, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 5, 0, 44, 0, 0, 0, 0, 0, 0, 45, 46, 0, 0, 47, 0, 48, 49, 50, 51, 6, 0, 52, 0, 0, 0, 0, 7, 0, 8, 0, 9, 53, 54, 0, 0, 0,
0, 0, 0, 5, 0, 44, 0, 0, 0, 0, 0, 0, 45, 46, 0, 0, 47, 0, 48, 49, 50, 51, 6, 0, 52, 0, 0, 0, 0, 7, 0, 8, 0, 9, 53, 54, 0, 0, 0,
0, 0, 0, 5, 0, 44, 0, 0, 0, 0, 0, 0, 45, 46, 0, 0, 47, 0, 48, 49, 50, 51, 6, 0, 52, 0, 0, 0, 0, 7, 0, 8, 0, 9, 53, 54, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 31, 0, -24, 0, 0, 0, 0, 0, 0, 0, 0,
0, -10, 0, 0, 0, 0, -10, -10, 0, 0, -10, -10, -10, -10, 0, 0, -10, 0, -10, -10, -10, -10, -10, 0, -10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -10, -10, 0,
0, -35, 0, 0, 0, 0, 13, 14, 0, 0, -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, 15, 0,
0, -48, 0, 0, 0, 0, -48, -48, 0, 0, -48, -48, -48, -48, 0, 0, -48, 0, -48, -48, -48, -48, -48, 0, -48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -48, -48, 0,
0, -37, 0, 0, 0, 0, 0, 0, 0, 0, -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, 0, 0,
0, -47, 0, 0, 0, 0, 0, 0, 0, 0, -47, -47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, -21, 0, 0, 0, 0, -21, -21, 0, 0, -21, -21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -21, 0,
0, -39, 0, 0, 0, 0, -39, -39, 0, 0, -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, 16, -39, 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, -52, 0, 0, 0, 0, -52, -52, 0, 0, -52, -52, -52, -52, 0, 0, -52, 0, -52, -52, -52, -52, -52, 0, -52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -52, -52, 0,
0, -42, 0, 0, 0, 0, -42, -42, 0, 0, -42, -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, -42, -42, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, -1, 0, 0, 0, 0, -1, -1, 0, 0, -1, -1, -1, -1, 0, 0, -1, 68, -1, -1, -1, -1, -1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, -2, 0, 0, 0, 0, -2, -2, 0, 0, -2, -2, -2, -2, 0, 0, -2, 0, -2, -2, -2, -2, -2, 0, -2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, -2, 0,
0, -11, 0, 0, 0, 0, -11, -11, 0, 0, -11, -11, -11, -11, 0, 0, -11, 0, -11, -11, -11, -11, -11, 0, -11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -11, -11, 0,
0, -53, 0, 0, 0, 0, -53, -53, 0, 0, -53, -53, -53, -53, 0, 0, -53, 0, -53, -53, -53, -53, -53, 0, -53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -53, -53, 0,
0, -1, 0, 0, 0, 0, -1, -1, 0, 0, -1, -1, -1, -1, 0, 0, -1, 0, -1, -1, -1, -1, -1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, 0,
0, -38, 0, 0, 0, 0, -38, -38, 0, 0, -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, 16, -38, 0,
0, -27, 0, 0, 0, 0, -27, -27, 0, 0, -27, -27, -27, -27, 0, 0, -27, 0, -27, -27, -27, -27, -27, 0, -27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -27, -27, 0,
0, -28, 0, 0, 0, 0, -28, -28, 0, 0, -28, -28, -28, -28, 0, 0, -28, 0, -28, -28, -28, -28, -28, 0, -28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -28, -28, 0,
0, -33, 0, 0, 0, 0, -33, -33, 0, 0, -33, -33, -33, -33, 0, 0, -33, 0, -33, -33, -33, -33, -33, 0, -33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -33, -33, 0,
0, -29, 0, 0, 0, 0, -29, -29, 0, 0, -29, -29, -29, -29, 0, 0, -29, 0, -29, -29, -29, -29, -29, 0, -29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -29, -29, 0,
0, -30, 0, 0, 0, 0, -30, -30, 0, 0, -30, -30, -30, -30, 0, 0, -30, 0, -30, -30, -30, -30, -30, 0, -30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -30, -30, 0,
0, -31, 0, 0, 0, 0, -31, -31, 0, 0, -31, -31, -31, -31, 0, 0, -31, 0, -31, -31, -31, -31, -31, 0, -31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -31, -31, 0,
0, -32, 0, 0, 0, 0, -32, -32, 0, 0, -32, -32, -32, -32, 0, 0, -32, 0, -32, -32, -32, -32, -32, 0, -32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -32, -32, 0,
0, -49, 0, 0, 0, 0, -49, -49, 0, 0, -49, -49, -49, -49, 0, 0, -49, 0, -49, -49, -49, -49, -49, 0, -49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -49, -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, 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 14, 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, 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, 27, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 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, 87,
0, -36, 0, 0, 0, 0, 0, 0, 0, 0, -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, 0, 0,
0, -19, 0, 0, 0, 0, -19, -19, 0, 0, -19, -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, -19, 0,
0, -20, 0, 0, 0, 0, -20, -20, 0, 0, -20, -20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -20, 0,
0, -40, 0, 0, 0, 0, -40, -40, 0, 0, -40, -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, -40, -40, 0,
0, -5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -5, -5, 0, 0, -5, 0, -5, -5, -5, -5, -5, 0, -5, 0, 0, 0, 0, -5, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, -43, 0, 0, 0, 0, 0, 0, 0, 0, -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, 0, 0,
0, -45, 0, 0, 0, 0, 0, 0, 0, 0, -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, 0, 0,
0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 90, 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, -15, 0, 0, 0, 0, -15, -15, 0, 0, -15, -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, -15, 0,
0, -7, 0, 0, 0, 0, -7, -7, 0, 0, -7, -7, -7, -7, 0, 0, -7, 0, -7, -7, -7, -7, -7, 0, -7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -7, -7, 0,
0, -16, 0, 0, 0, 0, -16, -16, 0, 0, -16, -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, -16, 0,
0, -13, 0, 0, 0, 0, -13, -13, 0, 0, -13, -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, -13, 0,
0, -12, 0, 0, 0, 0, -12, -12, 0, 0, -12, -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, -12, 0,
0, -41, 0, 0, 0, 0, -41, -41, 0, 0, -41, -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, -41, -41, 0,
0, -6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -6, -6, 0, 0, -6, 0, -6, -6, -6, -6, -6, 0, -6, 0, 0, 0, 0, -6, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, -14, 0, 0, 0, 0, -14, -14, 0, 0, -14, -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, -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, -22, -22, 0, -22, 0, -22, 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, 94, 0, 0, 0, 0, 0, 0, 0, 0,
0, -18, 0, 0, 0, 0, -18, -18, 0, 0, -18, -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, -18, 0,
0, -17, 0, 0, 0, 0, -17, -17, 0, 0, -17, -17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -17, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 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,
];
fn __action(state: i8, integer: usize) -> i8 {
__ACTION[(state as usize) * 39 + integer]
}
const __EOF_ACTION: &[i8] = &[
0,
-56,
-54,
-55,
0,
0,
0,
0,
0,
-57,
-60,
0,
-34,
0,
0,
0,
-44,
-46,
-58,
0,
-64,
-61,
-62,
0,
-59,
0,
0,
-63,
0,
0,
0,
0,
0,
-10,
-35,
-48,
-37,
-47,
-21,
-39,
-66,
-52,
-42,
0,
0,
0,
0,
0,
0,
0,
0,
-1,
0,
0,
-2,
-11,
-53,
-1,
-38,
-27,
-28,
-33,
-29,
-30,
-31,
-32,
-49,
0,
0,
0,
0,
0,
0,
0,
-36,
-19,
-20,
-40,
0,
-43,
-45,
0,
-15,
-7,
-16,
-13,
-12,
-41,
0,
-14,
0,
0,
-18,
-17,
0,
0,
0,
];
fn __goto(state: i8, nt: usize) -> i8 {
match nt {
0 => match state {
2 => 10,
3 => 18,
11 => 22,
_ => 1,
},
2 => 23,
3 => match state {
2 | 20 => 55,
_ => 33,
},
5 => match state {
6 => 20,
_ => 2,
},
6 => match state {
7..=8 | 25..=26 | 29..=31 => 69,
_ => 34,
},
7 => match state {
31 => 32,
7 => 70,
8 => 71,
25 => 90,
29 => 94,
30 => 95,
_ => 28,
},
8 => match state {
32 => 96,
_ => 91,
},
9 => match state {
5 => 66,
_ => 35,
},
10 => 36,
11 => match state {
12 => 74,
16 => 79,
17 => 80,
_ => 37,
},
12 => match state {
13 => 75,
14 => 76,
_ => 38,
},
13 => match state {
4 => 58,
_ => 39,
},
14 => match state {
19 => 81,
_ => 40,
},
15 => match state {
3 | 9 | 11 | 21 | 24 | 27 => 56,
_ => 41,
},
17 => match state {
1 => 9,
2 => 11,
10 => 21,
18 => 24,
22 => 27,
_ => 3,
},
18 => match state {
15 => 77,
23 => 87,
_ => 42,
},
_ => 0,
}
}
fn __expected_tokens(__state: i8) -> alloc::vec::Vec<alloc::string::String> {
const __TERMINAL: &[&str] = &[
r###""\t""###,
r###""\n""###,
r###"" ""###,
r###""!""###,
r###""\"""###,
r###""$""###,
r###""&""###,
r###""&&""###,
r###""'""###,
r###""(""###,
r###"")""###,
r###"";""###,
r###""<""###,
r###""<&""###,
r###""<<""###,
r###""<<-""###,
r###""<>""###,
r###""=""###,
r###"">""###,
r###"">&""###,
r###"">>""###,
r###"">|""###,
r###""IO_NUMBER""###,
r###""TEXT""###,
r###""WORD""###,
r###""\\""###,
r###""`""###,
r###""elif""###,
r###""else""###,
r###""export""###,
r###""fi""###,
r###""if""###,
r###""then""###,
r###""{""###,
r###""{#""###,
r###""{#!""###,
r###""|""###,
r###""||""###,
r###""}""###,
];
__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
{
text: &'input str,
__phantom: core::marker::PhantomData<(&'input ())>,
}
impl<'input> __state_machine::ParserDefinition for __StateMachine<'input>
where
{
type Location = usize;
type Error = lex::Error;
type Token = lex::Token<'input>;
type TokenIndex = usize;
type Symbol = __Symbol<'input>;
type Success = ast::Program;
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, 39 - 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.text,
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: &lex::Token<'input>,
_: core::marker::PhantomData<(&'input ())>,
) -> Option<usize>
{
match *__token {
lex::Token::Tab if true => Some(0),
lex::Token::Linefeed if true => Some(1),
lex::Token::Space if true => Some(2),
lex::Token::Bang if true => Some(3),
lex::Token::DoubleQuote if true => Some(4),
lex::Token::Dollar if true => Some(5),
lex::Token::Amper if true => Some(6),
lex::Token::And if true => Some(7),
lex::Token::SingleQuote if true => Some(8),
lex::Token::LParen if true => Some(9),
lex::Token::RParen if true => Some(10),
lex::Token::Semi if true => Some(11),
lex::Token::Less if true => Some(12),
lex::Token::LessAnd if true => Some(13),
lex::Token::DLess if true => Some(14),
lex::Token::DLessDash if true => Some(15),
lex::Token::LessGreat if true => Some(16),
lex::Token::Equals if true => Some(17),
lex::Token::Great if true => Some(18),
lex::Token::GreatAnd if true => Some(19),
lex::Token::DGreat if true => Some(20),
lex::Token::Clobber if true => Some(21),
lex::Token::IoNumber(_) if true => Some(22),
lex::Token::Text(_) if true => Some(23),
lex::Token::Word(_) if true => Some(24),
lex::Token::Backslash if true => Some(25),
lex::Token::Backtick if true => Some(26),
lex::Token::Elif if true => Some(27),
lex::Token::Else if true => Some(28),
lex::Token::Export if true => Some(29),
lex::Token::Fi if true => Some(30),
lex::Token::If if true => Some(31),
lex::Token::Then if true => Some(32),
lex::Token::LBrace if true => Some(33),
lex::Token::HashLang(_) if true => Some(34),
lex::Token::Shebang(_) if true => Some(35),
lex::Token::Pipe if true => Some(36),
lex::Token::Or if true => Some(37),
lex::Token::RBrace if true => Some(38),
_ => None,
}
}
fn __token_to_symbol<
'input,
>(
__token_index: usize,
__token: lex::Token<'input>,
_: core::marker::PhantomData<(&'input ())>,
) -> __Symbol<'input>
{
match __token_index {
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 36 | 37 | 38 => __Symbol::Variant0(__token),
22 => match __token {
lex::Token::IoNumber(__tok0) if true => __Symbol::Variant1(__tok0),
_ => unreachable!(),
},
23 | 24 | 34 | 35 => match __token {
lex::Token::Text(__tok0) | lex::Token::Word(__tok0) | lex::Token::HashLang(__tok0) | lex::Token::Shebang(__tok0) if true => __Symbol::Variant2(__tok0),
_ => unreachable!(),
},
_ => unreachable!(),
}
}
pub struct ProgramParser {
_priv: (),
}
impl ProgramParser {
pub fn new() -> ProgramParser {
ProgramParser {
_priv: (),
}
}
#[allow(dead_code)]
pub fn parse<
'input,
__TOKEN: __ToTriple<'input, >,
__TOKENS: IntoIterator<Item=__TOKEN>,
>(
&self,
text: &'input str,
__tokens0: __TOKENS,
) -> Result<ast::Program, __lalrpop_util::ParseError<usize, lex::Token<'input>, lex::Error>>
{
let __tokens = __tokens0.into_iter();
let mut __tokens = __tokens.map(|t| __ToTriple::to_triple(t));
__state_machine::Parser::drive(
__StateMachine {
text,
__phantom: core::marker::PhantomData::<(&())>,
},
__tokens,
)
}
}
pub(crate) fn __reduce<
'input,
>(
text: &'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<ast::Program,__lalrpop_util::ParseError<usize, lex::Token<'input>, lex::Error>>>
{
let (__pop_states, __nonterminal) = match __action {
0 => {
__reduce0(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
1 => {
__reduce1(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
2 => {
__reduce2(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
3 => {
__reduce3(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
4 => {
__reduce4(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
5 => {
__reduce5(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
6 => {
__reduce6(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
7 => {
__reduce7(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
8 => {
__reduce8(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
9 => {
__reduce9(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
10 => {
__reduce10(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
11 => {
__reduce11(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
12 => {
__reduce12(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
13 => {
__reduce13(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
14 => {
__reduce14(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
15 => {
__reduce15(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
16 => {
__reduce16(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
17 => {
__reduce17(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
18 => {
__reduce18(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
19 => {
__reduce19(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
20 => {
__reduce20(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
21 => {
__reduce21(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
22 => {
__reduce22(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
23 => {
__reduce23(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
24 => {
__reduce24(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
25 => {
__reduce25(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
26 => {
__reduce26(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
27 => {
__reduce27(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
28 => {
__reduce28(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
29 => {
__reduce29(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
30 => {
__reduce30(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
31 => {
__reduce31(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
32 => {
__reduce32(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
33 => {
__reduce33(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
34 => {
__reduce34(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
35 => {
__reduce35(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
36 => {
__reduce36(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
37 => {
__reduce37(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
38 => {
__reduce38(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
39 => {
__reduce39(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
40 => {
__reduce40(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
41 => {
__reduce41(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
42 => {
__reduce42(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
43 => {
__reduce43(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
44 => {
__reduce44(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
45 => {
__reduce45(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
46 => {
__reduce46(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
47 => {
__reduce47(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
48 => {
__reduce48(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
49 => {
__reduce49(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
50 => {
__reduce50(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
51 => {
__reduce51(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
52 => {
__reduce52(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
53 => {
__reduce53(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
54 => {
__reduce54(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
55 => {
__reduce55(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
56 => {
__reduce56(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
57 => {
__reduce57(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
58 => {
__reduce58(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
59 => {
__reduce59(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
60 => {
__reduce60(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
61 => {
__reduce61(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
62 => {
__reduce62(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
63 => {
__reduce63(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
64 => {
__reduce64(text, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
}
65 => {
let __sym0 = __pop_Variant9(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action0::<>(text, __sym0);
return Some(Ok(__nt));
}
_ => panic!("invalid action code {}", __action)
};
let __states_len = __states.len();
__states.truncate(__states_len - __pop_states);
let __state = *__states.last().unwrap();
let __next_state = __goto(__state, __nonterminal);
__states.push(__next_state);
None
}
#[inline(never)]
fn __symbol_type_mismatch() -> ! {
panic!("symbol type mismatch")
}
fn __pop_Variant6<
'input,
>(
__symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, alloc::vec::Vec<ast::Assignment>, usize)
{
match __symbols.pop() {
Some((__l, __Symbol::Variant6(__v), __r)) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant10<
'input,
>(
__symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, alloc::vec::Vec<ast::Redirect>, usize)
{
match __symbols.pop() {
Some((__l, __Symbol::Variant10(__v), __r)) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant4<
'input,
>(
__symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, alloc::vec::Vec<lex::Token<'input>>, usize)
{
match __symbols.pop() {
Some((__l, __Symbol::Variant4(__v), __r)) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant3<
'input,
>(
__symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, alloc::vec::Vec<&'input str>, usize)
{
match __symbols.pop() {
Some((__l, __Symbol::Variant3(__v), __r)) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant5<
'input,
>(
__symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, ast::Assignment, usize)
{
match __symbols.pop() {
Some((__l, __Symbol::Variant5(__v), __r)) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant7<
'input,
>(
__symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, ast::Command, usize)
{
match __symbols.pop() {
Some((__l, __Symbol::Variant7(__v), __r)) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant9<
'input,
>(
__symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, ast::Program, usize)
{
match __symbols.pop() {
Some((__l, __Symbol::Variant9(__v), __r)) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant8<
'input,
>(
__symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, ast::Redirect, usize)
{
match __symbols.pop() {
Some((__l, __Symbol::Variant8(__v), __r)) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant0<
'input,
>(
__symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, lex::Token<'input>, usize)
{
match __symbols.pop() {
Some((__l, __Symbol::Variant0(__v), __r)) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant1<
'input,
>(
__symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, usize, usize)
{
match __symbols.pop() {
Some((__l, __Symbol::Variant1(__v), __r)) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
fn __pop_Variant2<
'input,
>(
__symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, &'input str, usize)
{
match __symbols.pop() {
Some((__l, __Symbol::Variant2(__v), __r)) => (__l, __v, __r),
_ => __symbol_type_mismatch()
}
}
pub(crate) fn __reduce0<
'input,
>(
text: &'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::__action44::<>(text, __sym0);
__symbols.push((__start, __Symbol::Variant3(__nt), __end));
(1, 0)
}
pub(crate) fn __reduce1<
'input,
>(
text: &'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::__action45::<>(text, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant3(__nt), __end));
(2, 0)
}
pub(crate) fn __reduce2<
'input,
>(
text: &'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::__action54::<>(text, &__start, &__end);
__symbols.push((__start, __Symbol::Variant4(__nt), __end));
(0, 1)
}
pub(crate) fn __reduce3<
'input,
>(
text: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: core::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant4(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action55::<>(text, __sym0);
__symbols.push((__start, __Symbol::Variant4(__nt), __end));
(1, 1)
}
pub(crate) fn __reduce4<
'input,
>(
text: &'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::__action56::<>(text, __sym0);
__symbols.push((__start, __Symbol::Variant4(__nt), __end));
(1, 2)
}
pub(crate) fn __reduce5<
'input,
>(
text: &'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_Variant4(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action57::<>(text, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant4(__nt), __end));
(2, 2)
}
pub(crate) fn __reduce6<
'input,
>(
text: &'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_Variant0(__symbols);
let __sym0 = __pop_Variant2(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action43::<>(text, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant5(__nt), __end));
(3, 3)
}
pub(crate) fn __reduce7<
'input,
>(
text: &'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::__action48::<>(text, &__start, &__end);
__symbols.push((__start, __Symbol::Variant6(__nt), __end));
(0, 4)
}
pub(crate) fn __reduce8<
'input,
>(
text: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: core::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant6(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action49::<>(text, __sym0);
__symbols.push((__start, __Symbol::Variant6(__nt), __end));
(1, 4)
}
pub(crate) fn __reduce9<
'input,
>(
text: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: core::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant5(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action52::<>(text, __sym0);
__symbols.push((__start, __Symbol::Variant6(__nt), __end));
(1, 5)
}
pub(crate) fn __reduce10<
'input,
>(
text: &'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_Variant5(__symbols);
let __sym0 = __pop_Variant6(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action53::<>(text, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant6(__nt), __end));
(2, 5)
}
pub(crate) fn __reduce11<
'input,
>(
text: &'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_Variant2(__symbols);
let __sym0 = __pop_Variant2(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action13::<>(text, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant7(__nt), __end));
(3, 6)
}
pub(crate) fn __reduce12<
'input,
>(
text: &'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_Variant2(__symbols);
let __sym0 = __pop_Variant2(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action14::<>(text, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant7(__nt), __end));
(3, 6)
}
pub(crate) fn __reduce13<
'input,
>(
text: &'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_Variant0(__symbols);
let __sym2 = __pop_Variant9(__symbols);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym3.2.clone();
let __nt = super::__action15::<>(text, __sym0, __sym1, __sym2, __sym3);
__symbols.push((__start, __Symbol::Variant7(__nt), __end));
(4, 6)
}
pub(crate) fn __reduce14<
'input,
>(
text: &'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_Variant0(__symbols);
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action16::<>(text, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant7(__nt), __end));
(3, 6)
}
pub(crate) fn __reduce15<
'input,
>(
text: &'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_Variant7(__symbols);
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action17::<>(text, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant7(__nt), __end));
(3, 6)
}
pub(crate) fn __reduce16<
'input,
>(
text: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: core::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
assert!(__symbols.len() >= 6);
let __sym5 = __pop_Variant0(__symbols);
let __sym4 = __pop_Variant7(__symbols);
let __sym3 = __pop_Variant7(__symbols);
let __sym2 = __pop_Variant0(__symbols);
let __sym1 = __pop_Variant7(__symbols);
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym5.2.clone();
let __nt = super::__action18::<>(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5);
__symbols.push((__start, __Symbol::Variant7(__nt), __end));
(6, 6)
}
pub(crate) fn __reduce17<
'input,
>(
text: &'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_Variant0(__symbols);
let __sym3 = __pop_Variant7(__symbols);
let __sym2 = __pop_Variant0(__symbols);
let __sym1 = __pop_Variant7(__symbols);
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym4.2.clone();
let __nt = super::__action19::<>(text, __sym0, __sym1, __sym2, __sym3, __sym4);
__symbols.push((__start, __Symbol::Variant7(__nt), __end));
(5, 6)
}
pub(crate) fn __reduce18<
'input,
>(
text: &'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_Variant7(__symbols);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant7(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action20::<>(text, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant7(__nt), __end));
(3, 6)
}
pub(crate) fn __reduce19<
'input,
>(
text: &'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_Variant7(__symbols);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant7(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action21::<>(text, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant7(__nt), __end));
(3, 6)
}
pub(crate) fn __reduce20<
'input,
>(
text: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: core::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant7(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action22::<>(text, __sym0);
__symbols.push((__start, __Symbol::Variant7(__nt), __end));
(1, 6)
}
pub(crate) fn __reduce21<
'input,
>(
text: &'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_Variant7(__symbols);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant7(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action11::<>(text, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant7(__nt), __end));
(3, 7)
}
pub(crate) fn __reduce22<
'input,
>(
text: &'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_Variant7(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action12::<>(text, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant7(__nt), __end));
(2, 7)
}
pub(crate) fn __reduce23<
'input,
>(
text: &'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_Variant7(__symbols);
let __sym2 = __pop_Variant0(__symbols);
let __sym1 = __pop_Variant7(__symbols);
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym3.2.clone();
let __nt = super::__action23::<>(text, __sym0, __sym1, __sym2, __sym3);
__symbols.push((__start, __Symbol::Variant7(__nt), __end));
(4, 8)
}
pub(crate) fn __reduce24<
'input,
>(
text: &'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_Variant7(__symbols);
let __sym3 = __pop_Variant7(__symbols);
let __sym2 = __pop_Variant0(__symbols);
let __sym1 = __pop_Variant7(__symbols);
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym4.2.clone();
let __nt = super::__action24::<>(text, __sym0, __sym1, __sym2, __sym3, __sym4);
__symbols.push((__start, __Symbol::Variant7(__nt), __end));
(5, 8)
}
pub(crate) fn __reduce25<
'input,
>(
text: &'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_Variant7(__symbols);
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action25::<>(text, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant7(__nt), __end));
(2, 8)
}
pub(crate) fn __reduce26<
'input,
>(
text: &'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_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action36::<>(text, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant8(__nt), __end));
(2, 9)
}
pub(crate) fn __reduce27<
'input,
>(
text: &'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_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action37::<>(text, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant8(__nt), __end));
(2, 9)
}
pub(crate) fn __reduce28<
'input,
>(
text: &'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_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action38::<>(text, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant8(__nt), __end));
(2, 9)
}
pub(crate) fn __reduce29<
'input,
>(
text: &'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_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action39::<>(text, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant8(__nt), __end));
(2, 9)
}
pub(crate) fn __reduce30<
'input,
>(
text: &'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_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action40::<>(text, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant8(__nt), __end));
(2, 9)
}
pub(crate) fn __reduce31<
'input,
>(
text: &'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_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action41::<>(text, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant8(__nt), __end));
(2, 9)
}
pub(crate) fn __reduce32<
'input,
>(
text: &'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_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action42::<>(text, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant8(__nt), __end));
(2, 9)
}
pub(crate) fn __reduce33<
'input,
>(
text: &'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_Variant7(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action9::<>(text, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant7(__nt), __end));
(2, 10)
}
pub(crate) fn __reduce34<
'input,
>(
text: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: core::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant7(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action10::<>(text, __sym0);
__symbols.push((__start, __Symbol::Variant7(__nt), __end));
(1, 10)
}
pub(crate) fn __reduce35<
'input,
>(
text: &'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_Variant9(__symbols);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant7(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action7::<>(text, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant9(__nt), __end));
(3, 11)
}
pub(crate) fn __reduce36<
'input,
>(
text: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: core::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant7(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action8::<>(text, __sym0);
__symbols.push((__start, __Symbol::Variant9(__nt), __end));
(1, 11)
}
pub(crate) fn __reduce37<
'input,
>(
text: &'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_Variant7(__symbols);
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action26::<>(text, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant7(__nt), __end));
(2, 12)
}
pub(crate) fn __reduce38<
'input,
>(
text: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: core::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant7(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action27::<>(text, __sym0);
__symbols.push((__start, __Symbol::Variant7(__nt), __end));
(1, 12)
}
pub(crate) fn __reduce39<
'input,
>(
text: &'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_Variant7(__symbols);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant7(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action58::<>(text, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant7(__nt), __end));
(3, 13)
}
pub(crate) fn __reduce40<
'input,
>(
text: &'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_Variant7(__symbols);
let __sym2 = __pop_Variant4(__symbols);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant7(__symbols);
let __start = __sym0.0.clone();
let __end = __sym3.2.clone();
let __nt = super::__action59::<>(text, __sym0, __sym1, __sym2, __sym3);
__symbols.push((__start, __Symbol::Variant7(__nt), __end));
(4, 13)
}
pub(crate) fn __reduce41<
'input,
>(
text: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: core::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant7(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action29::<>(text, __sym0);
__symbols.push((__start, __Symbol::Variant7(__nt), __end));
(1, 13)
}
pub(crate) fn __reduce42<
'input,
>(
text: &'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_Variant9(__symbols);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant9(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action2::<>(text, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant9(__nt), __end));
(3, 14)
}
pub(crate) fn __reduce43<
'input,
>(
text: &'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_Variant9(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action3::<>(text, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant9(__nt), __end));
(2, 14)
}
pub(crate) fn __reduce44<
'input,
>(
text: &'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_Variant9(__symbols);
let __sym1 = __pop_Variant0(__symbols);
let __sym0 = __pop_Variant9(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action4::<>(text, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant9(__nt), __end));
(3, 14)
}
pub(crate) fn __reduce45<
'input,
>(
text: &'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_Variant9(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action5::<>(text, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant9(__nt), __end));
(2, 14)
}
pub(crate) fn __reduce46<
'input,
>(
text: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: core::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant9(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action6::<>(text, __sym0);
__symbols.push((__start, __Symbol::Variant9(__nt), __end));
(1, 14)
}
pub(crate) fn __reduce47<
'input,
>(
text: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: core::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant8(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action34::<>(text, __sym0);
__symbols.push((__start, __Symbol::Variant8(__nt), __end));
(1, 15)
}
pub(crate) fn __reduce48<
'input,
>(
text: &'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_Variant8(__symbols);
let __sym0 = __pop_Variant1(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action35::<>(text, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant8(__nt), __end));
(2, 15)
}
pub(crate) fn __reduce49<
'input,
>(
text: &'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::__action46::<>(text, &__start, &__end);
__symbols.push((__start, __Symbol::Variant10(__nt), __end));
(0, 16)
}
pub(crate) fn __reduce50<
'input,
>(
text: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: core::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant10(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action47::<>(text, __sym0);
__symbols.push((__start, __Symbol::Variant10(__nt), __end));
(1, 16)
}
pub(crate) fn __reduce51<
'input,
>(
text: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: core::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant8(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action50::<>(text, __sym0);
__symbols.push((__start, __Symbol::Variant10(__nt), __end));
(1, 17)
}
pub(crate) fn __reduce52<
'input,
>(
text: &'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_Variant8(__symbols);
let __sym0 = __pop_Variant10(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action51::<>(text, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant10(__nt), __end));
(2, 17)
}
pub(crate) fn __reduce53<
'input,
>(
text: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: core::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant6(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action30::<>(text, __sym0);
__symbols.push((__start, __Symbol::Variant7(__nt), __end));
(1, 18)
}
pub(crate) fn __reduce54<
'input,
>(
text: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: core::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant10(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action31::<>(text, __sym0);
__symbols.push((__start, __Symbol::Variant7(__nt), __end));
(1, 18)
}
pub(crate) fn __reduce55<
'input,
>(
text: &'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::__action62::<>(text, __sym0);
__symbols.push((__start, __Symbol::Variant7(__nt), __end));
(1, 18)
}
pub(crate) fn __reduce56<
'input,
>(
text: &'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_Variant10(__symbols);
let __sym0 = __pop_Variant3(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action63::<>(text, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant7(__nt), __end));
(2, 18)
}
pub(crate) fn __reduce57<
'input,
>(
text: &'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_Variant10(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action64::<>(text, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant7(__nt), __end));
(2, 18)
}
pub(crate) fn __reduce58<
'input,
>(
text: &'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_Variant10(__symbols);
let __sym1 = __pop_Variant3(__symbols);
let __sym0 = __pop_Variant10(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action65::<>(text, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant7(__nt), __end));
(3, 18)
}
pub(crate) fn __reduce59<
'input,
>(
text: &'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_Variant6(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action66::<>(text, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant7(__nt), __end));
(2, 18)
}
pub(crate) fn __reduce60<
'input,
>(
text: &'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_Variant10(__symbols);
let __sym1 = __pop_Variant3(__symbols);
let __sym0 = __pop_Variant6(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action67::<>(text, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant7(__nt), __end));
(3, 18)
}
pub(crate) fn __reduce61<
'input,
>(
text: &'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_Variant3(__symbols);
let __sym1 = __pop_Variant10(__symbols);
let __sym0 = __pop_Variant6(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action68::<>(text, __sym0, __sym1, __sym2);
__symbols.push((__start, __Symbol::Variant7(__nt), __end));
(3, 18)
}
pub(crate) fn __reduce62<
'input,
>(
text: &'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_Variant10(__symbols);
let __sym2 = __pop_Variant3(__symbols);
let __sym1 = __pop_Variant10(__symbols);
let __sym0 = __pop_Variant6(__symbols);
let __start = __sym0.0.clone();
let __end = __sym3.2.clone();
let __nt = super::__action69::<>(text, __sym0, __sym1, __sym2, __sym3);
__symbols.push((__start, __Symbol::Variant7(__nt), __end));
(4, 18)
}
pub(crate) fn __reduce63<
'input,
>(
text: &'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_Variant6(__symbols);
let __sym0 = __pop_Variant0(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action33::<>(text, __sym0, __sym1);
__symbols.push((__start, __Symbol::Variant7(__nt), __end));
(2, 18)
}
pub(crate) fn __reduce64<
'input,
>(
text: &'input str,
__lookahead_start: Option<&usize>,
__symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: core::marker::PhantomData<(&'input ())>,
) -> (usize, usize)
{
let __sym0 = __pop_Variant7(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action1::<>(text, __sym0);
__symbols.push((__start, __Symbol::Variant7(__nt), __end));
(1, 19)
}
}
pub use self::__parse__Program::ProgramParser;
#[allow(unused_variables)]
fn __action0<
'input,
>(
text: &'input str,
(_, __0, _): (usize, ast::Program, usize),
) -> ast::Program
{
__0
}
#[allow(unused_variables)]
fn __action1<
'input,
>(
text: &'input str,
(_, __0, _): (usize, ast::Command, usize),
) -> ast::Command
{
__0
}
#[allow(unused_variables)]
fn __action2<
'input,
>(
text: &'input str,
(_, p, _): (usize, ast::Program, usize),
(_, _, _): (usize, lex::Token<'input>, usize),
(_, l, _): (usize, ast::Program, usize),
) -> ast::Program
{
p.append(&l)
}
#[allow(unused_variables)]
fn __action3<
'input,
>(
text: &'input str,
(_, p, _): (usize, ast::Program, usize),
(_, _, _): (usize, lex::Token<'input>, usize),
) -> ast::Program
{
p
}
#[allow(unused_variables)]
fn __action4<
'input,
>(
text: &'input str,
(_, p, _): (usize, ast::Program, usize),
(_, _, _): (usize, lex::Token<'input>, usize),
(_, g, _): (usize, ast::Program, usize),
) -> ast::Program
{
p.append(&g)
}
#[allow(unused_variables)]
fn __action5<
'input,
>(
text: &'input str,
(_, p, _): (usize, ast::Program, usize),
(_, _, _): (usize, lex::Token<'input>, usize),
) -> ast::Program
{
p
}
#[allow(unused_variables)]
fn __action6<
'input,
>(
text: &'input str,
(_, __0, _): (usize, ast::Program, usize),
) -> ast::Program
{
__0
}
#[allow(unused_variables)]
fn __action7<
'input,
>(
text: &'input str,
(_, cs, _): (usize, ast::Command, usize),
(_, _, _): (usize, lex::Token<'input>, usize),
(_, j, _): (usize, ast::Program, usize),
) -> ast::Program
{
{
j.insert(&ast::Command::Background(Box::new(cs)))
}
}
#[allow(unused_variables)]
fn __action8<
'input,
>(
text: &'input str,
(_, __0, _): (usize, ast::Command, usize),
) -> ast::Program
{
ast::Program(vec![__0])
}
#[allow(unused_variables)]
fn __action9<
'input,
>(
text: &'input str,
(_, cs, _): (usize, ast::Command, usize),
(_, _, _): (usize, lex::Token<'input>, usize),
) -> ast::Command
{
{
ast::Command::Background(Box::new(cs))
}
}
#[allow(unused_variables)]
fn __action10<
'input,
>(
text: &'input str,
(_, __0, _): (usize, ast::Command, usize),
) -> ast::Command
{
__0
}
#[allow(unused_variables)]
fn __action11<
'input,
>(
text: &'input str,
(_, cs, _): (usize, ast::Command, usize),
(_, _, _): (usize, lex::Token<'input>, usize),
(_, c, _): (usize, ast::Command, usize),
) -> ast::Command
{
{
match c {
c @ ast::Command::Compound(_) => c.insert(&cs),
c => ast::Command::Compound(vec![cs, c]),
}
}
}
#[allow(unused_variables)]
fn __action12<
'input,
>(
text: &'input str,
(_, cs, _): (usize, ast::Command, usize),
(_, _, _): (usize, lex::Token<'input>, usize),
) -> ast::Command
{
{
ast::Command::Compound(vec![cs])
}
}
#[allow(unused_variables)]
fn __action13<
'input,
>(
text: &'input str,
(_, s, _): (usize, &'input str, usize),
(_, t, _): (usize, &'input str, usize),
(_, _, _): (usize, lex::Token<'input>, usize),
) -> ast::Command
{
{
let i = ast::Interpreter::Shebang(s.into());
ast::Command::Lang(i, t.into())
}
}
#[allow(unused_variables)]
fn __action14<
'input,
>(
text: &'input str,
(_, l, _): (usize, &'input str, usize),
(_, t, _): (usize, &'input str, usize),
(_, _, _): (usize, lex::Token<'input>, usize),
) -> ast::Command
{
{
let i = if l.is_empty() {
ast::Interpreter::Alternate
} else {
ast::Interpreter::HashLang(l.into())
};
ast::Command::Lang(i, t.into())
}
}
#[allow(unused_variables)]
fn __action15<
'input,
>(
text: &'input str,
(_, _, _): (usize, lex::Token<'input>, usize),
(_, _, _): (usize, lex::Token<'input>, usize),
(_, p, _): (usize, ast::Program, usize),
(_, _, _): (usize, lex::Token<'input>, usize),
) -> ast::Command
{
ast::Command::Subshell(Box::new(p))
}
#[allow(unused_variables)]
fn __action16<
'input,
>(
text: &'input str,
(_, __0, _): (usize, lex::Token<'input>, usize),
(_, __1, _): (usize, lex::Token<'input>, usize),
(_, __2, _): (usize, lex::Token<'input>, usize),
) -> ast::Command
{
ast::Command::Subshell(Box::new(ast::Program(vec![])))
}
#[allow(unused_variables)]
fn __action17<
'input,
>(
text: &'input str,
(_, _, _): (usize, lex::Token<'input>, usize),
(_, c, _): (usize, ast::Command, usize),
(_, _, _): (usize, lex::Token<'input>, usize),
) -> ast::Command
{
c
}
#[allow(unused_variables)]
fn __action18<
'input,
>(
text: &'input str,
(_, _, _): (usize, lex::Token<'input>, usize),
(_, cond, _): (usize, ast::Command, usize),
(_, _, _): (usize, lex::Token<'input>, usize),
(_, then, _): (usize, ast::Command, usize),
(_, els, _): (usize, ast::Command, usize),
(_, _, _): (usize, lex::Token<'input>, usize),
) -> ast::Command
{
{
let left = ast::Command::And(Box::new(cond), Box::new(then));
ast::Command::Or(Box::new(left), Box::new(els))
}
}
#[allow(unused_variables)]
fn __action19<
'input,
>(
text: &'input str,
(_, _, _): (usize, lex::Token<'input>, usize),
(_, cond, _): (usize, ast::Command, usize),
(_, _, _): (usize, lex::Token<'input>, usize),
(_, then, _): (usize, ast::Command, usize),
(_, _, _): (usize, lex::Token<'input>, usize),
) -> ast::Command
{
{
ast::Command::And(Box::new(cond), Box::new(then))
}
}
#[allow(unused_variables)]
fn __action20<
'input,
>(
text: &'input str,
(_, cs, _): (usize, ast::Command, usize),
(_, _, _): (usize, lex::Token<'input>, usize),
(_, p, _): (usize, ast::Command, usize),
) -> ast::Command
{
{
ast::Command::And(Box::new(cs), Box::new(p))
}
}
#[allow(unused_variables)]
fn __action21<
'input,
>(
text: &'input str,
(_, cs, _): (usize, ast::Command, usize),
(_, _, _): (usize, lex::Token<'input>, usize),
(_, p, _): (usize, ast::Command, usize),
) -> ast::Command
{
{
ast::Command::Or(Box::new(cs), Box::new(p))
}
}
#[allow(unused_variables)]
fn __action22<
'input,
>(
text: &'input str,
(_, __0, _): (usize, ast::Command, usize),
) -> ast::Command
{
__0
}
#[allow(unused_variables)]
fn __action23<
'input,
>(
text: &'input str,
(_, _, _): (usize, lex::Token<'input>, usize),
(_, elif, _): (usize, ast::Command, usize),
(_, _, _): (usize, lex::Token<'input>, usize),
(_, then, _): (usize, ast::Command, usize),
) -> ast::Command
{
{
ast::Command::And(Box::new(elif), Box::new(then))
}
}
#[allow(unused_variables)]
fn __action24<
'input,
>(
text: &'input str,
(_, _, _): (usize, lex::Token<'input>, usize),
(_, elif, _): (usize, ast::Command, usize),
(_, _, _): (usize, lex::Token<'input>, usize),
(_, then, _): (usize, ast::Command, usize),
(_, els, _): (usize, ast::Command, usize),
) -> ast::Command
{
{
let left = ast::Command::And(Box::new(elif), Box::new(then));
ast::Command::Or(Box::new(left), Box::new(els))
}
}
#[allow(unused_variables)]
fn __action25<
'input,
>(
text: &'input str,
(_, _, _): (usize, lex::Token<'input>, usize),
(_, els, _): (usize, ast::Command, usize),
) -> ast::Command
{
els
}
#[allow(unused_variables)]
fn __action26<
'input,
>(
text: &'input str,
(_, _, _): (usize, lex::Token<'input>, usize),
(_, ps, _): (usize, ast::Command, usize),
) -> ast::Command
{
{
ast::Command::Not(Box::new(ps))
}
}
#[allow(unused_variables)]
fn __action27<
'input,
>(
text: &'input str,
(_, ps, _): (usize, ast::Command, usize),
) -> ast::Command
{
ps
}
#[allow(unused_variables)]
fn __action28<
'input,
>(
text: &'input str,
(_, ps, _): (usize, ast::Command, usize),
(_, _, _): (usize, lex::Token<'input>, usize),
(_, _, _): (usize, alloc::vec::Vec<lex::Token<'input>>, usize),
(_, c, _): (usize, ast::Command, usize),
) -> ast::Command
{
{
ast::Command::Pipeline(Box::new(ps), Box::new(c))
}
}
#[allow(unused_variables)]
fn __action29<
'input,
>(
text: &'input str,
(_, c, _): (usize, ast::Command, usize),
) -> ast::Command
{
c
}
#[allow(unused_variables)]
fn __action30<
'input,
>(
text: &'input str,
(_, assignments, _): (usize, alloc::vec::Vec<ast::Assignment>, usize),
) -> ast::Command
{
{
ast::Command::Simple(assignments, vec![], vec![])
}
}
#[allow(unused_variables)]
fn __action31<
'input,
>(
text: &'input str,
(_, redirects, _): (usize, alloc::vec::Vec<ast::Redirect>, usize),
) -> ast::Command
{
{
ast::Command::Simple(vec![], vec![], redirects)
}
}
#[allow(unused_variables)]
fn __action32<
'input,
>(
text: &'input str,
(_, assignments, _): (usize, alloc::vec::Vec<ast::Assignment>, usize),
(_, mut prefix, _): (usize, alloc::vec::Vec<ast::Redirect>, usize),
(_, words, _): (usize, alloc::vec::Vec<&'input str>, usize),
(_, mut suffix, _): (usize, alloc::vec::Vec<ast::Redirect>, usize),
) -> ast::Command
{
{
let redirects = { prefix.append(&mut suffix); prefix };
ast::Command::Simple(assignments, words.iter().map(|w| {
ast::Word(w.to_string())
}).collect(), redirects)
}
}
#[allow(unused_variables)]
fn __action33<
'input,
>(
text: &'input str,
(_, _, _): (usize, lex::Token<'input>, usize),
(_, assignments, _): (usize, alloc::vec::Vec<ast::Assignment>, usize),
) -> ast::Command
{
{
ast::Command::Simple(assignments, vec![], vec![])
}
}
#[allow(unused_variables)]
fn __action34<
'input,
>(
text: &'input str,
(_, __0, _): (usize, ast::Redirect, usize),
) -> ast::Redirect
{
__0
}
#[allow(unused_variables)]
fn __action35<
'input,
>(
text: &'input str,
(_, n, _): (usize, usize, usize),
(_, mut r, _): (usize, ast::Redirect, usize),
) -> ast::Redirect
{
{ *r.fd() = n as i32; r }
}
#[allow(unused_variables)]
fn __action36<
'input,
>(
text: &'input str,
(_, _, _): (usize, lex::Token<'input>, usize),
(_, f, _): (usize, &'input str, usize),
) -> ast::Redirect
{
ast::Redirect::Read {
n: 0,
duplicate: false,
filename: f.into(),
}
}
#[allow(unused_variables)]
fn __action37<
'input,
>(
text: &'input str,
(_, _, _): (usize, lex::Token<'input>, usize),
(_, f, _): (usize, &'input str, usize),
) -> ast::Redirect
{
ast::Redirect::Read {
n: 0,
duplicate: true,
filename: f.into(),
}
}
#[allow(unused_variables)]
fn __action38<
'input,
>(
text: &'input str,
(_, _, _): (usize, lex::Token<'input>, usize),
(_, f, _): (usize, &'input str, usize),
) -> ast::Redirect
{
ast::Redirect::Write {
n: 1,
duplicate: false,
clobber: false,
append: false,
filename: f.into(),
}
}
#[allow(unused_variables)]
fn __action39<
'input,
>(
text: &'input str,
(_, _, _): (usize, lex::Token<'input>, usize),
(_, f, _): (usize, &'input str, usize),
) -> ast::Redirect
{
ast::Redirect::Write {
n: 1,
duplicate: true,
clobber: false,
append: false,
filename: f.into(),
}
}
#[allow(unused_variables)]
fn __action40<
'input,
>(
text: &'input str,
(_, _, _): (usize, lex::Token<'input>, usize),
(_, f, _): (usize, &'input str, usize),
) -> ast::Redirect
{
ast::Redirect::Write {
n: 1,
duplicate: false,
clobber: false,
append: true,
filename: f.into(),
}
}
#[allow(unused_variables)]
fn __action41<
'input,
>(
text: &'input str,
(_, _, _): (usize, lex::Token<'input>, usize),
(_, f, _): (usize, &'input str, usize),
) -> ast::Redirect
{
ast::Redirect::Write {
n: 1,
duplicate: false,
clobber: true,
append: false,
filename: f.into(),
}
}
#[allow(unused_variables)]
fn __action42<
'input,
>(
text: &'input str,
(_, _, _): (usize, lex::Token<'input>, usize),
(_, f, _): (usize, &'input str, usize),
) -> ast::Redirect
{
ast::Redirect::RW {
n: 0,
filename: f.into(),
}
}
#[allow(unused_variables)]
fn __action43<
'input,
>(
text: &'input str,
(_, k, _): (usize, &'input str, usize),
(_, _, _): (usize, lex::Token<'input>, usize),
(_, v, _): (usize, &'input str, usize),
) -> ast::Assignment
{
ast::Assignment(k.into(), v.into())
}
#[allow(unused_variables)]
fn __action44<
'input,
>(
text: &'input str,
(_, __0, _): (usize, &'input str, usize),
) -> alloc::vec::Vec<&'input str>
{
alloc::vec![__0]
}
#[allow(unused_variables)]
fn __action45<
'input,
>(
text: &'input str,
(_, v, _): (usize, alloc::vec::Vec<&'input str>, usize),
(_, e, _): (usize, &'input str, usize),
) -> alloc::vec::Vec<&'input str>
{
{ let mut v = v; v.push(e); v }
}
#[allow(unused_variables)]
fn __action46<
'input,
>(
text: &'input str,
__lookbehind: &usize,
__lookahead: &usize,
) -> alloc::vec::Vec<ast::Redirect>
{
alloc::vec![]
}
#[allow(unused_variables)]
fn __action47<
'input,
>(
text: &'input str,
(_, v, _): (usize, alloc::vec::Vec<ast::Redirect>, usize),
) -> alloc::vec::Vec<ast::Redirect>
{
v
}
#[allow(unused_variables)]
fn __action48<
'input,
>(
text: &'input str,
__lookbehind: &usize,
__lookahead: &usize,
) -> alloc::vec::Vec<ast::Assignment>
{
alloc::vec![]
}
#[allow(unused_variables)]
fn __action49<
'input,
>(
text: &'input str,
(_, v, _): (usize, alloc::vec::Vec<ast::Assignment>, usize),
) -> alloc::vec::Vec<ast::Assignment>
{
v
}
#[allow(unused_variables)]
fn __action50<
'input,
>(
text: &'input str,
(_, __0, _): (usize, ast::Redirect, usize),
) -> alloc::vec::Vec<ast::Redirect>
{
alloc::vec![__0]
}
#[allow(unused_variables)]
fn __action51<
'input,
>(
text: &'input str,
(_, v, _): (usize, alloc::vec::Vec<ast::Redirect>, usize),
(_, e, _): (usize, ast::Redirect, usize),
) -> alloc::vec::Vec<ast::Redirect>
{
{ let mut v = v; v.push(e); v }
}
#[allow(unused_variables)]
fn __action52<
'input,
>(
text: &'input str,
(_, __0, _): (usize, ast::Assignment, usize),
) -> alloc::vec::Vec<ast::Assignment>
{
alloc::vec![__0]
}
#[allow(unused_variables)]
fn __action53<
'input,
>(
text: &'input str,
(_, v, _): (usize, alloc::vec::Vec<ast::Assignment>, usize),
(_, e, _): (usize, ast::Assignment, usize),
) -> alloc::vec::Vec<ast::Assignment>
{
{ let mut v = v; v.push(e); v }
}
#[allow(unused_variables)]
fn __action54<
'input,
>(
text: &'input str,
__lookbehind: &usize,
__lookahead: &usize,
) -> alloc::vec::Vec<lex::Token<'input>>
{
alloc::vec![]
}
#[allow(unused_variables)]
fn __action55<
'input,
>(
text: &'input str,
(_, v, _): (usize, alloc::vec::Vec<lex::Token<'input>>, usize),
) -> alloc::vec::Vec<lex::Token<'input>>
{
v
}
#[allow(unused_variables)]
fn __action56<
'input,
>(
text: &'input str,
(_, __0, _): (usize, lex::Token<'input>, usize),
) -> alloc::vec::Vec<lex::Token<'input>>
{
alloc::vec![__0]
}
#[allow(unused_variables)]
fn __action57<
'input,
>(
text: &'input str,
(_, v, _): (usize, alloc::vec::Vec<lex::Token<'input>>, usize),
(_, e, _): (usize, lex::Token<'input>, usize),
) -> alloc::vec::Vec<lex::Token<'input>>
{
{ let mut v = v; v.push(e); v }
}
#[allow(unused_variables)]
fn __action58<
'input,
>(
text: &'input str,
__0: (usize, ast::Command, usize),
__1: (usize, lex::Token<'input>, usize),
__2: (usize, ast::Command, usize),
) -> ast::Command
{
let __start0 = __1.2.clone();
let __end0 = __2.0.clone();
let __temp0 = __action54(
text,
&__start0,
&__end0,
);
let __temp0 = (__start0, __temp0, __end0);
__action28(
text,
__0,
__1,
__temp0,
__2,
)
}
#[allow(unused_variables)]
fn __action59<
'input,
>(
text: &'input str,
__0: (usize, ast::Command, usize),
__1: (usize, lex::Token<'input>, usize),
__2: (usize, alloc::vec::Vec<lex::Token<'input>>, usize),
__3: (usize, ast::Command, usize),
) -> ast::Command
{
let __start0 = __2.0.clone();
let __end0 = __2.2.clone();
let __temp0 = __action55(
text,
__2,
);
let __temp0 = (__start0, __temp0, __end0);
__action28(
text,
__0,
__1,
__temp0,
__3,
)
}
#[allow(unused_variables)]
fn __action60<
'input,
>(
text: &'input str,
__0: (usize, alloc::vec::Vec<ast::Redirect>, usize),
__1: (usize, alloc::vec::Vec<&'input str>, usize),
__2: (usize, alloc::vec::Vec<ast::Redirect>, usize),
) -> ast::Command
{
let __start0 = __0.0.clone();
let __end0 = __0.0.clone();
let __temp0 = __action48(
text,
&__start0,
&__end0,
);
let __temp0 = (__start0, __temp0, __end0);
__action32(
text,
__temp0,
__0,
__1,
__2,
)
}
#[allow(unused_variables)]
fn __action61<
'input,
>(
text: &'input str,
__0: (usize, alloc::vec::Vec<ast::Assignment>, usize),
__1: (usize, alloc::vec::Vec<ast::Redirect>, usize),
__2: (usize, alloc::vec::Vec<&'input str>, usize),
__3: (usize, alloc::vec::Vec<ast::Redirect>, usize),
) -> ast::Command
{
let __start0 = __0.0.clone();
let __end0 = __0.2.clone();
let __temp0 = __action49(
text,
__0,
);
let __temp0 = (__start0, __temp0, __end0);
__action32(
text,
__temp0,
__1,
__2,
__3,
)
}
#[allow(unused_variables)]
fn __action62<
'input,
>(
text: &'input str,
__0: (usize, alloc::vec::Vec<&'input str>, usize),
) -> ast::Command
{
let __start0 = __0.0.clone();
let __end0 = __0.0.clone();
let __start1 = __0.2.clone();
let __end1 = __0.2.clone();
let __temp0 = __action46(
text,
&__start0,
&__end0,
);
let __temp0 = (__start0, __temp0, __end0);
let __temp1 = __action46(
text,
&__start1,
&__end1,
);
let __temp1 = (__start1, __temp1, __end1);
__action60(
text,
__temp0,
__0,
__temp1,
)
}
#[allow(unused_variables)]
fn __action63<
'input,
>(
text: &'input str,
__0: (usize, alloc::vec::Vec<&'input str>, usize),
__1: (usize, alloc::vec::Vec<ast::Redirect>, usize),
) -> ast::Command
{
let __start0 = __0.0.clone();
let __end0 = __0.0.clone();
let __start1 = __1.0.clone();
let __end1 = __1.2.clone();
let __temp0 = __action46(
text,
&__start0,
&__end0,
);
let __temp0 = (__start0, __temp0, __end0);
let __temp1 = __action47(
text,
__1,
);
let __temp1 = (__start1, __temp1, __end1);
__action60(
text,
__temp0,
__0,
__temp1,
)
}
#[allow(unused_variables)]
fn __action64<
'input,
>(
text: &'input str,
__0: (usize, alloc::vec::Vec<ast::Redirect>, usize),
__1: (usize, alloc::vec::Vec<&'input str>, usize),
) -> ast::Command
{
let __start0 = __0.0.clone();
let __end0 = __0.2.clone();
let __start1 = __1.2.clone();
let __end1 = __1.2.clone();
let __temp0 = __action47(
text,
__0,
);
let __temp0 = (__start0, __temp0, __end0);
let __temp1 = __action46(
text,
&__start1,
&__end1,
);
let __temp1 = (__start1, __temp1, __end1);
__action60(
text,
__temp0,
__1,
__temp1,
)
}
#[allow(unused_variables)]
fn __action65<
'input,
>(
text: &'input str,
__0: (usize, alloc::vec::Vec<ast::Redirect>, usize),
__1: (usize, alloc::vec::Vec<&'input str>, usize),
__2: (usize, alloc::vec::Vec<ast::Redirect>, usize),
) -> ast::Command
{
let __start0 = __0.0.clone();
let __end0 = __0.2.clone();
let __start1 = __2.0.clone();
let __end1 = __2.2.clone();
let __temp0 = __action47(
text,
__0,
);
let __temp0 = (__start0, __temp0, __end0);
let __temp1 = __action47(
text,
__2,
);
let __temp1 = (__start1, __temp1, __end1);
__action60(
text,
__temp0,
__1,
__temp1,
)
}
#[allow(unused_variables)]
fn __action66<
'input,
>(
text: &'input str,
__0: (usize, alloc::vec::Vec<ast::Assignment>, usize),
__1: (usize, alloc::vec::Vec<&'input str>, usize),
) -> ast::Command
{
let __start0 = __0.2.clone();
let __end0 = __1.0.clone();
let __start1 = __1.2.clone();
let __end1 = __1.2.clone();
let __temp0 = __action46(
text,
&__start0,
&__end0,
);
let __temp0 = (__start0, __temp0, __end0);
let __temp1 = __action46(
text,
&__start1,
&__end1,
);
let __temp1 = (__start1, __temp1, __end1);
__action61(
text,
__0,
__temp0,
__1,
__temp1,
)
}
#[allow(unused_variables)]
fn __action67<
'input,
>(
text: &'input str,
__0: (usize, alloc::vec::Vec<ast::Assignment>, usize),
__1: (usize, alloc::vec::Vec<&'input str>, usize),
__2: (usize, alloc::vec::Vec<ast::Redirect>, usize),
) -> ast::Command
{
let __start0 = __0.2.clone();
let __end0 = __1.0.clone();
let __start1 = __2.0.clone();
let __end1 = __2.2.clone();
let __temp0 = __action46(
text,
&__start0,
&__end0,
);
let __temp0 = (__start0, __temp0, __end0);
let __temp1 = __action47(
text,
__2,
);
let __temp1 = (__start1, __temp1, __end1);
__action61(
text,
__0,
__temp0,
__1,
__temp1,
)
}
#[allow(unused_variables)]
fn __action68<
'input,
>(
text: &'input str,
__0: (usize, alloc::vec::Vec<ast::Assignment>, usize),
__1: (usize, alloc::vec::Vec<ast::Redirect>, usize),
__2: (usize, alloc::vec::Vec<&'input str>, usize),
) -> ast::Command
{
let __start0 = __1.0.clone();
let __end0 = __1.2.clone();
let __start1 = __2.2.clone();
let __end1 = __2.2.clone();
let __temp0 = __action47(
text,
__1,
);
let __temp0 = (__start0, __temp0, __end0);
let __temp1 = __action46(
text,
&__start1,
&__end1,
);
let __temp1 = (__start1, __temp1, __end1);
__action61(
text,
__0,
__temp0,
__2,
__temp1,
)
}
#[allow(unused_variables)]
fn __action69<
'input,
>(
text: &'input str,
__0: (usize, alloc::vec::Vec<ast::Assignment>, usize),
__1: (usize, alloc::vec::Vec<ast::Redirect>, usize),
__2: (usize, alloc::vec::Vec<&'input str>, usize),
__3: (usize, alloc::vec::Vec<ast::Redirect>, usize),
) -> ast::Command
{
let __start0 = __1.0.clone();
let __end0 = __1.2.clone();
let __start1 = __3.0.clone();
let __end1 = __3.2.clone();
let __temp0 = __action47(
text,
__1,
);
let __temp0 = (__start0, __temp0, __end0);
let __temp1 = __action47(
text,
__3,
);
let __temp1 = (__start1, __temp1, __end1);
__action61(
text,
__0,
__temp0,
__2,
__temp1,
)
}
pub trait __ToTriple<'input, >
{
fn to_triple(value: Self) -> Result<(usize,lex::Token<'input>,usize), __lalrpop_util::ParseError<usize, lex::Token<'input>, lex::Error>>;
}
impl<'input, > __ToTriple<'input, > for (usize, lex::Token<'input>, usize)
{
fn to_triple(value: Self) -> Result<(usize,lex::Token<'input>,usize), __lalrpop_util::ParseError<usize, lex::Token<'input>, lex::Error>> {
Ok(value)
}
}
impl<'input, > __ToTriple<'input, > for Result<(usize, lex::Token<'input>, usize), lex::Error>
{
fn to_triple(value: Self) -> Result<(usize,lex::Token<'input>,usize), __lalrpop_util::ParseError<usize, lex::Token<'input>, lex::Error>> {
match value {
Ok(v) => Ok(v),
Err(error) => Err(__lalrpop_util::ParseError::User { error }),
}
}
}