use parol_runtime::{
ParolError, ParseTree, TokenStream,
parser::{
LLKParser, LookaheadDFA, ParseType, Production, Trans, parse_tree_type::TreeConstruct,
},
};
use scnr2::scanner;
use std::path::Path;
use crate::grammar::Grammar;
use crate::grammar_trait::GrammarAuto;
pub const TERMINAL_NAMES: &[&str; 67] = &[
"EndOfInput",
"Newline",
"Whitespace",
"LineComment",
"BlockComment",
"Hash",
"MapBind",
"Integer",
"Float",
"Inf",
"NaN",
"True",
"False",
"Null",
"Hole",
"Str",
"LitStr",
"Text",
"InlineCode1",
"LitStr3Start",
"LitStr2Start",
"LitStr1Start",
"DelimCodeStart3",
"DelimCodeStart2",
"DelimCodeStart1",
"CodeBlockStart3",
"CodeBlockStart4",
"CodeBlockStart5",
"CodeBlockStart6",
"CodeBlockEnd3",
"Backtick2",
"CodeBlockEnd4",
"Backtick3",
"CodeBlockEnd5",
"Backtick4",
"CodeBlockEnd6",
"Backtick5",
"NoBacktick",
"LitStr3End",
"LitStr2End",
"LitStr1End",
"SQuote",
"NoSQuote",
"DelimCodeEnd3",
"DelimCodeEnd2",
"DelimCodeEnd1",
"BacktickDelim",
"GrammarNewline",
"Ws",
"At",
"Ext",
"Dot",
"Begin",
"End",
"ArrayBegin",
"ArrayEnd",
"Caret",
"LParen",
"RParen",
"NewlineBind",
"Bind",
"Comma",
"Continue",
"NewlineTextStart",
"TextStart",
"Ident",
"Error",
];
scanner! {
GrammarScanner {
mode INITIAL {
token r"\r\n|\r|\n" => 1; token r"[\s--\r\n]+" => 2; token r"//.*(\r\n|\r|\n)?" => 3; token r"/\*/?([^/]|[^*]/)*\*/" => 4; token r"\#" => 5; token r"=>" => 6; token r"[-+]?\d[\d_]*" => 7; token r"[-+]?\d[\d_]*\.\d+([eE][-+]?\d+)?(f32|f64)?|[-+]?\d[\d_]*[eE][-+]?\d+(f32|f64)?" => 8; token r"[-+]?[Ii]nf" => 9; token r"[Nn]a[Nn]" => 10; token r"true" => 11; token r"false" => 12; token r"null" => 13; token r"![\p{XID_Start}_]?[\p{XID_Continue}-]*" => 14; token r#""([^"]|\\")*""# => 15; token r"'[^']*'" => 16; token r"[a-zA-Z0-9-_]*`[^`\r\n]*`" => 18; token r"<<<'" => 19; token r"<<'" => 20; token r"<'" => 21; token r"[a-zA-Z0-9-_]*<<<`" => 22; token r"[a-zA-Z0-9-_]*<<`" => 23; token r"[a-zA-Z0-9-_]*<`" => 24; token r"`{3}[a-zA-Z0-9-_]*[\s--\r\n]*(\r\n|\r|\n)" => 25; token r"`{4}[a-zA-Z0-9-_]*[\s--\r\n]*(\r\n|\r|\n)" => 26; token r"`{5}[a-zA-Z0-9-_]*[\s--\r\n]*(\r\n|\r|\n)" => 27; token r"`{6}[a-zA-Z0-9-_]*[\s--\r\n]*(\r\n|\r|\n)" => 28; token r"@" => 49; token r"\$" => 50; token r"\." => 51; token r"\{" => 52; token r"\}" => 53; token r"\[" => 54; token r"\]" => 55; token r"\^" => 56; token r"\(" => 57; token r"\)" => 58; token r"=" => 60; token r"," => 61; token r"\\" => 62; token r":" => 64; token r"[\p{XID_Start}_][\p{XID_Continue}-]*" => 65; token r"." => 66; on 19 push InLitStr3;
on 20 push InLitStr2;
on 21 push InLitStr1;
on 22 enter InDelimCode3;
on 23 enter InDelimCode2;
on 24 enter InDelimCode1;
on 25 enter InCodeBlock3;
on 26 enter InCodeBlock4;
on 27 enter InCodeBlock5;
on 28 enter InCodeBlock6;
on 49 enter Header;
on 64 enter Text;
}
mode Header {
token r"[\s--\r\n]+" => 2; token r"[-+]?\d[\d_]*" => 7; token r"[-+]?\d[\d_]*\.\d+([eE][-+]?\d+)?(f32|f64)?|[-+]?\d[\d_]*[eE][-+]?\d+(f32|f64)?" => 8; token r"true" => 11; token r"false" => 12; token r"null" => 13; token r"![\p{XID_Start}_]?[\p{XID_Continue}-]*" => 14; token r#""([^"]|\\")*""# => 15; token r"'[^']*'" => 16; token r"<<<'" => 19; token r"<<'" => 20; token r"<'" => 21; token r"\r\n|\r|\n" => 47; token r"@" => 49; token r"\$" => 50; token r"\." => 51; token r"\{" => 52; token r"\[" => 54; token r"\]" => 55; token r"\^" => 56; token r"\(" => 57; token r"\)" => 58; token r"(\r\n|\r|\n)*=" => 59; token r"," => 61; token r"(\r\n|\r|\n)*:" => 63; token r"[\p{XID_Start}_][\p{XID_Continue}-]*" => 65; token r"." => 66; on 19 push InLitStr3;
on 20 push InLitStr2;
on 21 push InLitStr1;
on 47 enter INITIAL;
on 52 enter INITIAL;
on 59 enter INITIAL;
on 63 enter Text;
}
mode Text {
token r"[^\r\n]*" => 17; token r"\r\n|\r|\n" => 47; token r"[\s--\r\n]+" => 48; token r"." => 66; on 17 enter INITIAL;
on 47 enter INITIAL;
}
mode InCodeBlock3 {
token r"`{3}" => 29; token r"`{1,2}" => 30; token r"[^`]+" => 37; token r"." => 66; on 29 enter INITIAL;
}
mode InCodeBlock4 {
token r"`{4}" => 31; token r"`{1,3}" => 32; token r"[^`]+" => 37; token r"." => 66; on 31 enter INITIAL;
}
mode InCodeBlock5 {
token r"`{5}" => 33; token r"`{1,4}" => 34; token r"[^`]+" => 37; token r"." => 66; on 33 enter INITIAL;
}
mode InCodeBlock6 {
token r"`{6}" => 35; token r"`{1,5}" => 36; token r"[^`]+" => 37; token r"." => 66; on 35 enter INITIAL;
}
mode InLitStr1 {
token r"'>" => 40; token r"'" => 41; token r"[^']+" => 42; token r"." => 66; on 40 pop;
}
mode InLitStr2 {
token r"'>>" => 39; token r"'" => 41; token r"[^']+" => 42; token r"." => 66; on 39 pop;
}
mode InLitStr3 {
token r"'>>>" => 38; token r"'" => 41; token r"[^']+" => 42; token r"." => 66; on 38 pop;
}
mode InDelimCode1 {
token r"[^`]+" => 37; token r"`>" => 45; token r"`" => 46; token r"." => 66; on 45 enter INITIAL;
}
mode InDelimCode2 {
token r"[^`]+" => 37; token r"`>>" => 44; token r"`" => 46; token r"." => 66; on 44 enter INITIAL;
}
mode InDelimCode3 {
token r"[^`]+" => 37; token r"`>>>" => 43; token r"`" => 46; token r"." => 66; on 43 enter INITIAL;
}
}
}
const MAX_K: usize = 1;
pub const NON_TERMINALS: &[&str; 164] = &[
"Array",
"ArrayBegin",
"ArrayElements",
"ArrayElementsOpt",
"ArrayElementsTail",
"ArrayElementsTailOpt",
"ArrayEnd",
"ArrayMarker",
"ArrayMarkerOpt",
"ArrayMarkerOptGroup",
"ArrayOpt",
"At",
"Backtick2",
"Backtick3",
"Backtick4",
"Backtick5",
"BacktickDelim",
"Begin",
"Bind",
"Binding",
"BindingRhs",
"BlockBody",
"Boolean",
"Caret",
"CodeBlock",
"CodeBlock3",
"CodeBlock3List",
"CodeBlock3ListGroup",
"CodeBlock4",
"CodeBlock4List",
"CodeBlock4ListGroup",
"CodeBlock5",
"CodeBlock5List",
"CodeBlock5ListGroup",
"CodeBlock6",
"CodeBlock6List",
"CodeBlock6ListGroup",
"CodeBlockEnd3",
"CodeBlockEnd4",
"CodeBlockEnd5",
"CodeBlockEnd6",
"CodeBlockStart3",
"CodeBlockStart4",
"CodeBlockStart5",
"CodeBlockStart6",
"Comma",
"Continue",
"DelimCode",
"DelimCode1",
"DelimCode1List",
"DelimCode1ListGroup",
"DelimCode2",
"DelimCode2List",
"DelimCode2ListGroup",
"DelimCode3",
"DelimCode3List",
"DelimCode3ListGroup",
"DelimCodeEnd1",
"DelimCodeEnd2",
"DelimCodeEnd3",
"DelimCodeStart1",
"DelimCodeStart2",
"DelimCodeStart3",
"Dot",
"DotKey",
"End",
"Eure",
"EureList",
"EureList0",
"EureOpt",
"Ext",
"ExtensionNameSpace",
"False",
"FirstKey",
"FlatBody",
"FlatBodyList",
"FlatRootBinding",
"Float",
"GrammarNewline",
"Hole",
"Ident",
"Inf",
"InlineCode",
"InlineCode1",
"Integer",
"Key",
"KeyIdent",
"KeyTail",
"KeyTuple",
"KeyTupleElements",
"KeyTupleElementsOpt",
"KeyTupleElementsTail",
"KeyTupleElementsTailOpt",
"KeyTupleOpt",
"KeyValue",
"Keys",
"KeysList",
"LParen",
"LitStr",
"LitStr1",
"LitStr1End",
"LitStr1List",
"LitStr1ListGroup",
"LitStr1Start",
"LitStr2",
"LitStr2End",
"LitStr2List",
"LitStr2ListGroup",
"LitStr2Start",
"LitStr3",
"LitStr3End",
"LitStr3List",
"LitStr3ListGroup",
"LitStr3Start",
"MapBind",
"NaN",
"NewlineBind",
"NewlineHead",
"NewlineHeadOpt",
"NewlineTextStart",
"NoBacktick",
"NoSQuote",
"Null",
"Number",
"Object",
"ObjectList",
"ObjectOpt",
"ObjectOpt0",
"ObjectOpt1",
"RParen",
"RootBinding",
"RootTextBinding",
"RootTextBindingOpt",
"RootTextBindingOpt0",
"RootTextBindingOpt1",
"RootValueBinding",
"SQuote",
"Section",
"SectionBinding",
"SectionBody",
"SectionBodyOpt",
"SectionHead",
"Str",
"String",
"Strings",
"StringsList",
"Text",
"TextBinding",
"TextBindingOpt",
"TextBindingOpt0",
"TextBindingOpt1",
"TextStart",
"TopLevelBinding",
"True",
"Tuple",
"TupleElements",
"TupleElementsOpt",
"TupleElementsTail",
"TupleElementsTailOpt",
"TupleIndex",
"TupleOpt",
"Value",
"ValueBinding",
"Ws",
];
pub const LOOKAHEAD_AUTOMATA: &[LookaheadDFA; 164] = &[
LookaheadDFA {
prod0: 109,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: 247,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: 112,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: -1,
transitions: &[Trans(0, 55, 2, 114), Trans(0, 61, 1, 113)],
k: 1,
},
LookaheadDFA {
prod0: 115,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: -1,
transitions: &[
Trans(0, 7, 1, 116),
Trans(0, 8, 1, 116),
Trans(0, 9, 1, 116),
Trans(0, 10, 1, 116),
Trans(0, 11, 1, 116),
Trans(0, 12, 1, 116),
Trans(0, 13, 1, 116),
Trans(0, 14, 1, 116),
Trans(0, 15, 1, 116),
Trans(0, 16, 1, 116),
Trans(0, 18, 1, 116),
Trans(0, 19, 1, 116),
Trans(0, 20, 1, 116),
Trans(0, 21, 1, 116),
Trans(0, 22, 1, 116),
Trans(0, 23, 1, 116),
Trans(0, 24, 1, 116),
Trans(0, 25, 1, 116),
Trans(0, 26, 1, 116),
Trans(0, 27, 1, 116),
Trans(0, 28, 1, 116),
Trans(0, 52, 1, 116),
Trans(0, 54, 1, 116),
Trans(0, 55, 2, 117),
Trans(0, 57, 1, 116),
],
k: 1,
},
LookaheadDFA {
prod0: 248,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: 56,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: -1,
transitions: &[Trans(0, 7, 1, 57), Trans(0, 55, 2, 60), Trans(0, 56, 1, 57)],
k: 1,
},
LookaheadDFA {
prod0: -1,
transitions: &[Trans(0, 7, 1, 58), Trans(0, 56, 2, 59)],
k: 1,
},
LookaheadDFA {
prod0: -1,
transitions: &[
Trans(0, 7, 1, 110),
Trans(0, 8, 1, 110),
Trans(0, 9, 1, 110),
Trans(0, 10, 1, 110),
Trans(0, 11, 1, 110),
Trans(0, 12, 1, 110),
Trans(0, 13, 1, 110),
Trans(0, 14, 1, 110),
Trans(0, 15, 1, 110),
Trans(0, 16, 1, 110),
Trans(0, 18, 1, 110),
Trans(0, 19, 1, 110),
Trans(0, 20, 1, 110),
Trans(0, 21, 1, 110),
Trans(0, 22, 1, 110),
Trans(0, 23, 1, 110),
Trans(0, 24, 1, 110),
Trans(0, 25, 1, 110),
Trans(0, 26, 1, 110),
Trans(0, 27, 1, 110),
Trans(0, 28, 1, 110),
Trans(0, 52, 1, 110),
Trans(0, 54, 1, 110),
Trans(0, 55, 2, 111),
Trans(0, 57, 1, 110),
],
k: 1,
},
LookaheadDFA {
prod0: 242,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: 223,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: 225,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: 227,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: 229,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: 239,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: 245,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: 253,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: 19,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: -1,
transitions: &[
Trans(0, 52, 2, 21),
Trans(0, 60, 1, 20),
Trans(0, 64, 3, 22),
],
k: 1,
},
LookaheadDFA {
prod0: 47,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: -1,
transitions: &[Trans(0, 11, 1, 135), Trans(0, 12, 2, 136)],
k: 1,
},
LookaheadDFA {
prod0: 249,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: -1,
transitions: &[
Trans(0, 25, 1, 188),
Trans(0, 26, 2, 189),
Trans(0, 27, 3, 190),
Trans(0, 28, 4, 191),
],
k: 1,
},
LookaheadDFA {
prod0: 192,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: -1,
transitions: &[
Trans(0, 29, 2, 196),
Trans(0, 30, 1, 193),
Trans(0, 37, 1, 193),
],
k: 1,
},
LookaheadDFA {
prod0: -1,
transitions: &[Trans(0, 30, 2, 195), Trans(0, 37, 1, 194)],
k: 1,
},
LookaheadDFA {
prod0: 197,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: -1,
transitions: &[
Trans(0, 31, 2, 201),
Trans(0, 32, 1, 198),
Trans(0, 37, 1, 198),
],
k: 1,
},
LookaheadDFA {
prod0: -1,
transitions: &[Trans(0, 32, 2, 200), Trans(0, 37, 1, 199)],
k: 1,
},
LookaheadDFA {
prod0: 202,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: -1,
transitions: &[
Trans(0, 33, 2, 206),
Trans(0, 34, 1, 203),
Trans(0, 37, 1, 203),
],
k: 1,
},
LookaheadDFA {
prod0: -1,
transitions: &[Trans(0, 34, 2, 205), Trans(0, 37, 1, 204)],
k: 1,
},
LookaheadDFA {
prod0: 207,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: -1,
transitions: &[
Trans(0, 35, 2, 211),
Trans(0, 36, 1, 208),
Trans(0, 37, 1, 208),
],
k: 1,
},
LookaheadDFA {
prod0: -1,
transitions: &[Trans(0, 36, 2, 210), Trans(0, 37, 1, 209)],
k: 1,
},
LookaheadDFA {
prod0: 222,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: 224,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: 226,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: 228,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: 218,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: 219,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: 220,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: 221,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: 254,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: 255,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: -1,
transitions: &[
Trans(0, 22, 1, 170),
Trans(0, 23, 2, 171),
Trans(0, 24, 3, 172),
],
k: 1,
},
LookaheadDFA {
prod0: 173,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: -1,
transitions: &[
Trans(0, 37, 1, 174),
Trans(0, 45, 2, 177),
Trans(0, 46, 1, 174),
],
k: 1,
},
LookaheadDFA {
prod0: -1,
transitions: &[Trans(0, 37, 1, 175), Trans(0, 46, 2, 176)],
k: 1,
},
LookaheadDFA {
prod0: 178,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: -1,
transitions: &[
Trans(0, 37, 1, 179),
Trans(0, 44, 2, 182),
Trans(0, 46, 1, 179),
],
k: 1,
},
LookaheadDFA {
prod0: -1,
transitions: &[Trans(0, 37, 1, 180), Trans(0, 46, 2, 181)],
k: 1,
},
LookaheadDFA {
prod0: 183,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: -1,
transitions: &[
Trans(0, 37, 1, 184),
Trans(0, 43, 2, 187),
Trans(0, 46, 1, 184),
],
k: 1,
},
LookaheadDFA {
prod0: -1,
transitions: &[Trans(0, 37, 1, 185), Trans(0, 46, 2, 186)],
k: 1,
},
LookaheadDFA {
prod0: 238,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: 237,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: 236,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: 217,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: 216,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: 215,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: 244,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: 55,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: 246,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: 0,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: -1,
transitions: &[
Trans(0, 0, 2, 4),
Trans(0, 5, 1, 3),
Trans(0, 7, 1, 3),
Trans(0, 8, 1, 3),
Trans(0, 11, 1, 3),
Trans(0, 12, 1, 3),
Trans(0, 13, 1, 3),
Trans(0, 14, 1, 3),
Trans(0, 15, 1, 3),
Trans(0, 16, 1, 3),
Trans(0, 19, 1, 3),
Trans(0, 20, 1, 3),
Trans(0, 21, 1, 3),
Trans(0, 49, 2, 4),
Trans(0, 50, 1, 3),
Trans(0, 53, 2, 4),
Trans(0, 54, 1, 3),
Trans(0, 57, 1, 3),
Trans(0, 65, 1, 3),
],
k: 1,
},
LookaheadDFA {
prod0: -1,
transitions: &[Trans(0, 0, 2, 2), Trans(0, 49, 1, 1), Trans(0, 53, 2, 2)],
k: 1,
},
LookaheadDFA {
prod0: -1,
transitions: &[
Trans(0, 0, 2, 6),
Trans(0, 5, 2, 6),
Trans(0, 7, 2, 6),
Trans(0, 8, 2, 6),
Trans(0, 11, 2, 6),
Trans(0, 12, 2, 6),
Trans(0, 13, 2, 6),
Trans(0, 14, 2, 6),
Trans(0, 15, 2, 6),
Trans(0, 16, 2, 6),
Trans(0, 19, 2, 6),
Trans(0, 20, 2, 6),
Trans(0, 21, 2, 6),
Trans(0, 49, 2, 6),
Trans(0, 50, 2, 6),
Trans(0, 53, 2, 6),
Trans(0, 54, 2, 6),
Trans(0, 57, 2, 6),
Trans(0, 60, 1, 5),
Trans(0, 64, 1, 5),
Trans(0, 65, 2, 6),
],
k: 1,
},
LookaheadDFA {
prod0: 243,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: 70,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: 138,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: -1,
transitions: &[
Trans(0, 5, 1, 51),
Trans(0, 7, 1, 51),
Trans(0, 8, 1, 51),
Trans(0, 11, 1, 51),
Trans(0, 12, 1, 51),
Trans(0, 13, 1, 51),
Trans(0, 14, 1, 51),
Trans(0, 15, 1, 51),
Trans(0, 16, 1, 51),
Trans(0, 19, 1, 51),
Trans(0, 20, 1, 51),
Trans(0, 21, 1, 51),
Trans(0, 50, 1, 51),
Trans(0, 54, 2, 52),
Trans(0, 57, 1, 51),
Trans(0, 65, 1, 51),
],
k: 1,
},
LookaheadDFA {
prod0: 37,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: -1,
transitions: &[
Trans(0, 0, 2, 39),
Trans(0, 5, 1, 38),
Trans(0, 7, 1, 38),
Trans(0, 8, 1, 38),
Trans(0, 11, 1, 38),
Trans(0, 12, 1, 38),
Trans(0, 13, 1, 38),
Trans(0, 14, 1, 38),
Trans(0, 15, 1, 38),
Trans(0, 16, 1, 38),
Trans(0, 19, 1, 38),
Trans(0, 20, 1, 38),
Trans(0, 21, 1, 38),
Trans(0, 49, 2, 39),
Trans(0, 50, 1, 38),
Trans(0, 53, 2, 39),
Trans(0, 54, 1, 38),
Trans(0, 57, 1, 38),
Trans(0, 65, 1, 38),
],
k: 1,
},
LookaheadDFA {
prod0: -1,
transitions: &[Trans(0, 60, 1, 45), Trans(0, 64, 2, 46)],
k: 1,
},
LookaheadDFA {
prod0: 132,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: 240,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: 140,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: 258,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: 133,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: -1,
transitions: &[
Trans(0, 18, 2, 153),
Trans(0, 22, 1, 152),
Trans(0, 23, 1, 152),
Trans(0, 24, 1, 152),
],
k: 1,
},
LookaheadDFA {
prod0: 154,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: 131,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: -1,
transitions: &[
Trans(0, 5, 7, 67),
Trans(0, 7, 4, 64),
Trans(0, 8, 5, 65),
Trans(0, 11, 1, 61),
Trans(0, 12, 1, 61),
Trans(0, 13, 1, 61),
Trans(0, 14, 8, 68),
Trans(0, 15, 3, 63),
Trans(0, 16, 3, 63),
Trans(0, 19, 3, 63),
Trans(0, 20, 3, 63),
Trans(0, 21, 3, 63),
Trans(0, 50, 2, 62),
Trans(0, 57, 6, 66),
Trans(0, 65, 1, 61),
],
k: 1,
},
LookaheadDFA {
prod0: -1,
transitions: &[
Trans(0, 11, 2, 86),
Trans(0, 12, 3, 87),
Trans(0, 13, 4, 88),
Trans(0, 65, 1, 85),
],
k: 1,
},
LookaheadDFA {
prod0: -1,
transitions: &[Trans(0, 51, 1, 53), Trans(0, 54, 2, 54)],
k: 1,
},
LookaheadDFA {
prod0: 71,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: 74,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: -1,
transitions: &[Trans(0, 58, 2, 76), Trans(0, 61, 1, 75)],
k: 1,
},
LookaheadDFA {
prod0: 77,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: -1,
transitions: &[
Trans(0, 7, 1, 78),
Trans(0, 11, 1, 78),
Trans(0, 12, 1, 78),
Trans(0, 14, 1, 78),
Trans(0, 15, 1, 78),
Trans(0, 57, 1, 78),
Trans(0, 58, 2, 79),
],
k: 1,
},
LookaheadDFA {
prod0: -1,
transitions: &[
Trans(0, 7, 1, 72),
Trans(0, 11, 1, 72),
Trans(0, 12, 1, 72),
Trans(0, 14, 1, 72),
Trans(0, 15, 1, 72),
Trans(0, 57, 1, 72),
Trans(0, 58, 2, 73),
],
k: 1,
},
LookaheadDFA {
prod0: -1,
transitions: &[
Trans(0, 7, 1, 80),
Trans(0, 11, 2, 81),
Trans(0, 12, 2, 81),
Trans(0, 14, 5, 84),
Trans(0, 15, 3, 82),
Trans(0, 57, 4, 83),
],
k: 1,
},
LookaheadDFA {
prod0: 48,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: -1,
transitions: &[
Trans(0, 0, 2, 50),
Trans(0, 6, 2, 50),
Trans(0, 47, 2, 50),
Trans(0, 49, 2, 50),
Trans(0, 51, 1, 49),
Trans(0, 52, 2, 50),
Trans(0, 53, 2, 50),
Trans(0, 54, 1, 49),
Trans(0, 59, 2, 50),
Trans(0, 60, 2, 50),
Trans(0, 63, 2, 50),
Trans(0, 64, 2, 50),
],
k: 1,
},
LookaheadDFA {
prod0: 250,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: 150,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: 155,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: 233,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: -1,
transitions: &[
Trans(0, 40, 2, 159),
Trans(0, 41, 1, 156),
Trans(0, 42, 1, 156),
],
k: 1,
},
LookaheadDFA {
prod0: -1,
transitions: &[Trans(0, 41, 2, 158), Trans(0, 42, 1, 157)],
k: 1,
},
LookaheadDFA {
prod0: 214,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: 160,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: 232,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: -1,
transitions: &[
Trans(0, 39, 2, 164),
Trans(0, 41, 1, 161),
Trans(0, 42, 1, 161),
],
k: 1,
},
LookaheadDFA {
prod0: -1,
transitions: &[Trans(0, 41, 2, 163), Trans(0, 42, 1, 162)],
k: 1,
},
LookaheadDFA {
prod0: 213,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: 165,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: 231,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: -1,
transitions: &[
Trans(0, 38, 2, 169),
Trans(0, 41, 1, 166),
Trans(0, 42, 1, 166),
],
k: 1,
},
LookaheadDFA {
prod0: -1,
transitions: &[Trans(0, 41, 2, 168), Trans(0, 42, 1, 167)],
k: 1,
},
LookaheadDFA {
prod0: 212,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: 108,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: 134,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: 252,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: 42,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: -1,
transitions: &[
Trans(0, 0, 2, 44),
Trans(0, 5, 2, 44),
Trans(0, 7, 2, 44),
Trans(0, 8, 2, 44),
Trans(0, 11, 2, 44),
Trans(0, 12, 2, 44),
Trans(0, 13, 2, 44),
Trans(0, 14, 2, 44),
Trans(0, 15, 2, 44),
Trans(0, 16, 2, 44),
Trans(0, 19, 2, 44),
Trans(0, 20, 2, 44),
Trans(0, 21, 2, 44),
Trans(0, 49, 2, 44),
Trans(0, 50, 2, 44),
Trans(0, 53, 2, 44),
Trans(0, 54, 2, 44),
Trans(0, 57, 2, 44),
Trans(0, 60, 1, 43),
Trans(0, 64, 1, 43),
Trans(0, 65, 2, 44),
],
k: 1,
},
LookaheadDFA {
prod0: 256,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: 230,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: 235,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: 139,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: -1,
transitions: &[
Trans(0, 7, 2, 128),
Trans(0, 8, 1, 127),
Trans(0, 9, 3, 129),
Trans(0, 10, 4, 130),
],
k: 1,
},
LookaheadDFA {
prod0: 99,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: -1,
transitions: &[
Trans(0, 5, 1, 100),
Trans(0, 7, 1, 100),
Trans(0, 8, 1, 100),
Trans(0, 11, 1, 100),
Trans(0, 12, 1, 100),
Trans(0, 13, 1, 100),
Trans(0, 14, 1, 100),
Trans(0, 15, 1, 100),
Trans(0, 16, 1, 100),
Trans(0, 19, 1, 100),
Trans(0, 20, 1, 100),
Trans(0, 21, 1, 100),
Trans(0, 50, 1, 100),
Trans(0, 53, 2, 101),
Trans(0, 54, 1, 100),
Trans(0, 57, 1, 100),
Trans(0, 65, 1, 100),
],
k: 1,
},
LookaheadDFA {
prod0: -1,
transitions: &[
Trans(0, 5, 2, 107),
Trans(0, 7, 2, 107),
Trans(0, 8, 2, 107),
Trans(0, 11, 2, 107),
Trans(0, 12, 2, 107),
Trans(0, 13, 2, 107),
Trans(0, 14, 2, 107),
Trans(0, 15, 2, 107),
Trans(0, 16, 2, 107),
Trans(0, 19, 2, 107),
Trans(0, 20, 2, 107),
Trans(0, 21, 2, 107),
Trans(0, 50, 2, 107),
Trans(0, 53, 2, 107),
Trans(0, 54, 2, 107),
Trans(0, 57, 2, 107),
Trans(0, 60, 1, 104),
Trans(0, 65, 2, 107),
],
k: 1,
},
LookaheadDFA {
prod0: -1,
transitions: &[
Trans(0, 5, 2, 103),
Trans(0, 7, 2, 103),
Trans(0, 8, 2, 103),
Trans(0, 11, 2, 103),
Trans(0, 12, 2, 103),
Trans(0, 13, 2, 103),
Trans(0, 14, 2, 103),
Trans(0, 15, 2, 103),
Trans(0, 16, 2, 103),
Trans(0, 19, 2, 103),
Trans(0, 20, 2, 103),
Trans(0, 21, 2, 103),
Trans(0, 50, 2, 103),
Trans(0, 53, 2, 103),
Trans(0, 54, 2, 103),
Trans(0, 57, 2, 103),
Trans(0, 61, 1, 102),
Trans(0, 65, 2, 103),
],
k: 1,
},
LookaheadDFA {
prod0: -1,
transitions: &[
Trans(0, 5, 2, 106),
Trans(0, 7, 2, 106),
Trans(0, 8, 2, 106),
Trans(0, 11, 2, 106),
Trans(0, 12, 2, 106),
Trans(0, 13, 2, 106),
Trans(0, 14, 2, 106),
Trans(0, 15, 2, 106),
Trans(0, 16, 2, 106),
Trans(0, 19, 2, 106),
Trans(0, 20, 2, 106),
Trans(0, 21, 2, 106),
Trans(0, 50, 2, 106),
Trans(0, 53, 2, 106),
Trans(0, 54, 2, 106),
Trans(0, 57, 2, 106),
Trans(0, 61, 1, 105),
Trans(0, 65, 2, 106),
],
k: 1,
},
LookaheadDFA {
prod0: 251,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: -1,
transitions: &[Trans(0, 59, 1, 9), Trans(0, 63, 2, 10)],
k: 1,
},
LookaheadDFA {
prod0: 12,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: -1,
transitions: &[
Trans(0, 0, 2, 18),
Trans(0, 5, 2, 18),
Trans(0, 7, 2, 18),
Trans(0, 8, 2, 18),
Trans(0, 11, 2, 18),
Trans(0, 12, 2, 18),
Trans(0, 13, 2, 18),
Trans(0, 14, 2, 18),
Trans(0, 15, 2, 18),
Trans(0, 16, 2, 18),
Trans(0, 17, 2, 18),
Trans(0, 19, 2, 18),
Trans(0, 20, 2, 18),
Trans(0, 21, 2, 18),
Trans(0, 47, 2, 18),
Trans(0, 48, 1, 17),
Trans(0, 49, 2, 18),
Trans(0, 50, 2, 18),
Trans(0, 53, 2, 18),
Trans(0, 54, 2, 18),
Trans(0, 57, 2, 18),
Trans(0, 65, 2, 18),
],
k: 1,
},
LookaheadDFA {
prod0: -1,
transitions: &[
Trans(0, 0, 2, 16),
Trans(0, 5, 2, 16),
Trans(0, 7, 2, 16),
Trans(0, 8, 2, 16),
Trans(0, 11, 2, 16),
Trans(0, 12, 2, 16),
Trans(0, 13, 2, 16),
Trans(0, 14, 2, 16),
Trans(0, 15, 2, 16),
Trans(0, 16, 2, 16),
Trans(0, 17, 1, 15),
Trans(0, 19, 2, 16),
Trans(0, 20, 2, 16),
Trans(0, 21, 2, 16),
Trans(0, 47, 2, 16),
Trans(0, 49, 2, 16),
Trans(0, 50, 2, 16),
Trans(0, 53, 2, 16),
Trans(0, 54, 2, 16),
Trans(0, 57, 2, 16),
Trans(0, 65, 2, 16),
],
k: 1,
},
LookaheadDFA {
prod0: -1,
transitions: &[
Trans(0, 0, 2, 14),
Trans(0, 5, 2, 14),
Trans(0, 7, 2, 14),
Trans(0, 8, 2, 14),
Trans(0, 11, 2, 14),
Trans(0, 12, 2, 14),
Trans(0, 13, 2, 14),
Trans(0, 14, 2, 14),
Trans(0, 15, 2, 14),
Trans(0, 16, 2, 14),
Trans(0, 19, 2, 14),
Trans(0, 20, 2, 14),
Trans(0, 21, 2, 14),
Trans(0, 47, 1, 13),
Trans(0, 49, 2, 14),
Trans(0, 50, 2, 14),
Trans(0, 53, 2, 14),
Trans(0, 54, 2, 14),
Trans(0, 57, 2, 14),
Trans(0, 65, 2, 14),
],
k: 1,
},
LookaheadDFA {
prod0: 11,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: 234,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: 32,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: 24,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: -1,
transitions: &[
Trans(0, 0, 1, 33),
Trans(0, 47, 1, 33),
Trans(0, 49, 1, 33),
Trans(0, 52, 2, 34),
Trans(0, 53, 1, 33),
Trans(0, 59, 1, 33),
Trans(0, 63, 1, 33),
],
k: 1,
},
LookaheadDFA {
prod0: -1,
transitions: &[
Trans(0, 0, 2, 36),
Trans(0, 47, 1, 35),
Trans(0, 49, 2, 36),
Trans(0, 53, 2, 36),
Trans(0, 59, 1, 35),
Trans(0, 63, 1, 35),
],
k: 1,
},
LookaheadDFA {
prod0: -1,
transitions: &[
Trans(0, 47, 2, 41),
Trans(0, 59, 1, 40),
Trans(0, 63, 1, 40),
],
k: 1,
},
LookaheadDFA {
prod0: 149,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: -1,
transitions: &[
Trans(0, 15, 1, 141),
Trans(0, 16, 2, 142),
Trans(0, 19, 5, 145),
Trans(0, 20, 4, 144),
Trans(0, 21, 3, 143),
],
k: 1,
},
LookaheadDFA {
prod0: 146,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: -1,
transitions: &[
Trans(0, 0, 2, 148),
Trans(0, 5, 2, 148),
Trans(0, 7, 2, 148),
Trans(0, 8, 2, 148),
Trans(0, 11, 2, 148),
Trans(0, 12, 2, 148),
Trans(0, 13, 2, 148),
Trans(0, 14, 2, 148),
Trans(0, 15, 2, 148),
Trans(0, 16, 2, 148),
Trans(0, 19, 2, 148),
Trans(0, 20, 2, 148),
Trans(0, 21, 2, 148),
Trans(0, 49, 2, 148),
Trans(0, 50, 2, 148),
Trans(0, 53, 2, 148),
Trans(0, 54, 2, 148),
Trans(0, 55, 2, 148),
Trans(0, 57, 2, 148),
Trans(0, 58, 2, 148),
Trans(0, 61, 2, 148),
Trans(0, 62, 1, 147),
Trans(0, 65, 2, 148),
],
k: 1,
},
LookaheadDFA {
prod0: 151,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: 25,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: -1,
transitions: &[
Trans(0, 0, 2, 31),
Trans(0, 5, 2, 31),
Trans(0, 7, 2, 31),
Trans(0, 8, 2, 31),
Trans(0, 11, 2, 31),
Trans(0, 12, 2, 31),
Trans(0, 13, 2, 31),
Trans(0, 14, 2, 31),
Trans(0, 15, 2, 31),
Trans(0, 16, 2, 31),
Trans(0, 17, 2, 31),
Trans(0, 19, 2, 31),
Trans(0, 20, 2, 31),
Trans(0, 21, 2, 31),
Trans(0, 47, 2, 31),
Trans(0, 48, 1, 30),
Trans(0, 49, 2, 31),
Trans(0, 50, 2, 31),
Trans(0, 53, 2, 31),
Trans(0, 54, 2, 31),
Trans(0, 57, 2, 31),
Trans(0, 65, 2, 31),
],
k: 1,
},
LookaheadDFA {
prod0: -1,
transitions: &[
Trans(0, 0, 2, 29),
Trans(0, 5, 2, 29),
Trans(0, 7, 2, 29),
Trans(0, 8, 2, 29),
Trans(0, 11, 2, 29),
Trans(0, 12, 2, 29),
Trans(0, 13, 2, 29),
Trans(0, 14, 2, 29),
Trans(0, 15, 2, 29),
Trans(0, 16, 2, 29),
Trans(0, 17, 1, 28),
Trans(0, 19, 2, 29),
Trans(0, 20, 2, 29),
Trans(0, 21, 2, 29),
Trans(0, 47, 2, 29),
Trans(0, 49, 2, 29),
Trans(0, 50, 2, 29),
Trans(0, 53, 2, 29),
Trans(0, 54, 2, 29),
Trans(0, 57, 2, 29),
Trans(0, 65, 2, 29),
],
k: 1,
},
LookaheadDFA {
prod0: -1,
transitions: &[
Trans(0, 0, 2, 27),
Trans(0, 5, 2, 27),
Trans(0, 7, 2, 27),
Trans(0, 8, 2, 27),
Trans(0, 11, 2, 27),
Trans(0, 12, 2, 27),
Trans(0, 13, 2, 27),
Trans(0, 14, 2, 27),
Trans(0, 15, 2, 27),
Trans(0, 16, 2, 27),
Trans(0, 19, 2, 27),
Trans(0, 20, 2, 27),
Trans(0, 21, 2, 27),
Trans(0, 47, 1, 26),
Trans(0, 49, 2, 27),
Trans(0, 50, 2, 27),
Trans(0, 53, 2, 27),
Trans(0, 54, 2, 27),
Trans(0, 57, 2, 27),
Trans(0, 65, 2, 27),
],
k: 1,
},
LookaheadDFA {
prod0: 257,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: -1,
transitions: &[Trans(0, 60, 1, 7), Trans(0, 64, 2, 8)],
k: 1,
},
LookaheadDFA {
prod0: 137,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: 118,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: 121,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: -1,
transitions: &[Trans(0, 58, 2, 123), Trans(0, 61, 1, 122)],
k: 1,
},
LookaheadDFA {
prod0: 124,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: -1,
transitions: &[
Trans(0, 7, 1, 125),
Trans(0, 8, 1, 125),
Trans(0, 9, 1, 125),
Trans(0, 10, 1, 125),
Trans(0, 11, 1, 125),
Trans(0, 12, 1, 125),
Trans(0, 13, 1, 125),
Trans(0, 14, 1, 125),
Trans(0, 15, 1, 125),
Trans(0, 16, 1, 125),
Trans(0, 18, 1, 125),
Trans(0, 19, 1, 125),
Trans(0, 20, 1, 125),
Trans(0, 21, 1, 125),
Trans(0, 22, 1, 125),
Trans(0, 23, 1, 125),
Trans(0, 24, 1, 125),
Trans(0, 25, 1, 125),
Trans(0, 26, 1, 125),
Trans(0, 27, 1, 125),
Trans(0, 28, 1, 125),
Trans(0, 52, 1, 125),
Trans(0, 54, 1, 125),
Trans(0, 57, 1, 125),
Trans(0, 58, 2, 126),
],
k: 1,
},
LookaheadDFA {
prod0: 69,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: -1,
transitions: &[
Trans(0, 7, 1, 119),
Trans(0, 8, 1, 119),
Trans(0, 9, 1, 119),
Trans(0, 10, 1, 119),
Trans(0, 11, 1, 119),
Trans(0, 12, 1, 119),
Trans(0, 13, 1, 119),
Trans(0, 14, 1, 119),
Trans(0, 15, 1, 119),
Trans(0, 16, 1, 119),
Trans(0, 18, 1, 119),
Trans(0, 19, 1, 119),
Trans(0, 20, 1, 119),
Trans(0, 21, 1, 119),
Trans(0, 22, 1, 119),
Trans(0, 23, 1, 119),
Trans(0, 24, 1, 119),
Trans(0, 25, 1, 119),
Trans(0, 26, 1, 119),
Trans(0, 27, 1, 119),
Trans(0, 28, 1, 119),
Trans(0, 52, 1, 119),
Trans(0, 54, 1, 119),
Trans(0, 57, 1, 119),
Trans(0, 58, 2, 120),
],
k: 1,
},
LookaheadDFA {
prod0: -1,
transitions: &[
Trans(0, 7, 4, 92),
Trans(0, 8, 4, 92),
Trans(0, 9, 4, 92),
Trans(0, 10, 4, 92),
Trans(0, 11, 5, 93),
Trans(0, 12, 5, 93),
Trans(0, 13, 6, 94),
Trans(0, 14, 8, 96),
Trans(0, 15, 7, 95),
Trans(0, 16, 7, 95),
Trans(0, 18, 10, 98),
Trans(0, 19, 7, 95),
Trans(0, 20, 7, 95),
Trans(0, 21, 7, 95),
Trans(0, 22, 10, 98),
Trans(0, 23, 10, 98),
Trans(0, 24, 10, 98),
Trans(0, 25, 9, 97),
Trans(0, 26, 9, 97),
Trans(0, 27, 9, 97),
Trans(0, 28, 9, 97),
Trans(0, 52, 1, 89),
Trans(0, 54, 2, 90),
Trans(0, 57, 3, 91),
],
k: 1,
},
LookaheadDFA {
prod0: 23,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: 241,
transitions: &[],
k: 0,
},
];
pub const PRODUCTIONS: &[Production; 259] = &[
Production {
lhs: 66,
production: &[ParseType::N(68), ParseType::N(67), ParseType::N(69)],
},
Production {
lhs: 68,
production: &[ParseType::N(68), ParseType::N(137)],
},
Production {
lhs: 68,
production: &[],
},
Production {
lhs: 67,
production: &[ParseType::N(67), ParseType::N(19)],
},
Production {
lhs: 67,
production: &[],
},
Production {
lhs: 69,
production: &[ParseType::N(152)],
},
Production {
lhs: 69,
production: &[],
},
Production {
lhs: 152,
production: &[ParseType::N(162)],
},
Production {
lhs: 152,
production: &[ParseType::N(147)],
},
Production {
lhs: 130,
production: &[ParseType::N(135)],
},
Production {
lhs: 130,
production: &[ParseType::N(131)],
},
Production {
lhs: 135,
production: &[ParseType::N(161), ParseType::N(116)],
},
Production {
lhs: 131,
production: &[
ParseType::N(134),
ParseType::N(133),
ParseType::N(132),
ParseType::N(119),
],
},
Production {
lhs: 134,
production: &[ParseType::N(78)],
},
Production {
lhs: 134,
production: &[],
},
Production {
lhs: 133,
production: &[ParseType::N(146)],
},
Production {
lhs: 133,
production: &[],
},
Production {
lhs: 132,
production: &[ParseType::N(163)],
},
Production {
lhs: 132,
production: &[],
},
Production {
lhs: 19,
production: &[ParseType::N(20), ParseType::N(95)],
},
Production {
lhs: 20,
production: &[ParseType::N(162)],
},
Production {
lhs: 20,
production: &[ParseType::N(138)],
},
Production {
lhs: 20,
production: &[ParseType::N(147)],
},
Production {
lhs: 162,
production: &[ParseType::N(161), ParseType::N(18)],
},
Production {
lhs: 138,
production: &[ParseType::N(65), ParseType::N(66), ParseType::N(17)],
},
Production {
lhs: 147,
production: &[
ParseType::N(150),
ParseType::N(149),
ParseType::N(148),
ParseType::N(151),
],
},
Production {
lhs: 150,
production: &[ParseType::N(78)],
},
Production {
lhs: 150,
production: &[],
},
Production {
lhs: 149,
production: &[ParseType::N(146)],
},
Production {
lhs: 149,
production: &[],
},
Production {
lhs: 148,
production: &[ParseType::N(163)],
},
Production {
lhs: 148,
production: &[],
},
Production {
lhs: 137,
production: &[ParseType::N(139), ParseType::N(95), ParseType::N(11)],
},
Production {
lhs: 139,
production: &[ParseType::N(140)],
},
Production {
lhs: 139,
production: &[ParseType::N(21)],
},
Production {
lhs: 140,
production: &[ParseType::N(74)],
},
Production {
lhs: 140,
production: &[],
},
Production {
lhs: 74,
production: &[ParseType::N(75), ParseType::N(141)],
},
Production {
lhs: 75,
production: &[ParseType::N(75), ParseType::N(19)],
},
Production {
lhs: 75,
production: &[],
},
Production {
lhs: 141,
production: &[ParseType::N(130)],
},
Production {
lhs: 141,
production: &[ParseType::N(117)],
},
Production {
lhs: 117,
production: &[ParseType::N(118), ParseType::N(78)],
},
Production {
lhs: 118,
production: &[ParseType::N(76)],
},
Production {
lhs: 118,
production: &[],
},
Production {
lhs: 76,
production: &[ParseType::N(162)],
},
Production {
lhs: 76,
production: &[ParseType::N(147)],
},
Production {
lhs: 21,
production: &[ParseType::N(65), ParseType::N(66), ParseType::N(17)],
},
Production {
lhs: 95,
production: &[ParseType::N(96), ParseType::N(73)],
},
Production {
lhs: 96,
production: &[ParseType::N(96), ParseType::N(87)],
},
Production {
lhs: 96,
production: &[],
},
Production {
lhs: 73,
production: &[ParseType::N(85)],
},
Production {
lhs: 73,
production: &[ParseType::N(7)],
},
Production {
lhs: 87,
production: &[ParseType::N(64)],
},
Production {
lhs: 87,
production: &[ParseType::N(7)],
},
Production {
lhs: 64,
production: &[ParseType::N(85), ParseType::N(63)],
},
Production {
lhs: 7,
production: &[ParseType::N(6), ParseType::N(8), ParseType::N(1)],
},
Production {
lhs: 8,
production: &[ParseType::N(9)],
},
Production {
lhs: 9,
production: &[ParseType::N(84)],
},
Production {
lhs: 9,
production: &[ParseType::N(23)],
},
Production {
lhs: 8,
production: &[],
},
Production {
lhs: 85,
production: &[ParseType::N(86)],
},
Production {
lhs: 85,
production: &[ParseType::N(71)],
},
Production {
lhs: 85,
production: &[ParseType::N(143)],
},
Production {
lhs: 85,
production: &[ParseType::N(84)],
},
Production {
lhs: 85,
production: &[ParseType::N(77)],
},
Production {
lhs: 85,
production: &[ParseType::N(88)],
},
Production {
lhs: 85,
production: &[ParseType::N(159)],
},
Production {
lhs: 85,
production: &[ParseType::N(79)],
},
Production {
lhs: 159,
production: &[ParseType::N(84), ParseType::T(5)],
},
Production {
lhs: 71,
production: &[ParseType::N(86), ParseType::N(70)],
},
Production {
lhs: 88,
production: &[ParseType::N(129), ParseType::N(93), ParseType::N(97)],
},
Production {
lhs: 93,
production: &[ParseType::N(89)],
},
Production {
lhs: 93,
production: &[],
},
Production {
lhs: 89,
production: &[ParseType::N(90), ParseType::N(94)],
},
Production {
lhs: 90,
production: &[ParseType::N(91)],
},
Production {
lhs: 90,
production: &[],
},
Production {
lhs: 91,
production: &[ParseType::N(92), ParseType::N(45)],
},
Production {
lhs: 92,
production: &[ParseType::N(89)],
},
Production {
lhs: 92,
production: &[],
},
Production {
lhs: 94,
production: &[ParseType::N(84)],
},
Production {
lhs: 94,
production: &[ParseType::N(22)],
},
Production {
lhs: 94,
production: &[ParseType::N(142)],
},
Production {
lhs: 94,
production: &[ParseType::N(88)],
},
Production {
lhs: 94,
production: &[ParseType::N(79)],
},
Production {
lhs: 86,
production: &[ParseType::N(80)],
},
Production {
lhs: 86,
production: &[ParseType::N(153)],
},
Production {
lhs: 86,
production: &[ParseType::N(72)],
},
Production {
lhs: 86,
production: &[ParseType::N(122)],
},
Production {
lhs: 161,
production: &[ParseType::N(124)],
},
Production {
lhs: 161,
production: &[ParseType::N(0)],
},
Production {
lhs: 161,
production: &[ParseType::N(154)],
},
Production {
lhs: 161,
production: &[ParseType::N(123)],
},
Production {
lhs: 161,
production: &[ParseType::N(22)],
},
Production {
lhs: 161,
production: &[ParseType::N(122)],
},
Production {
lhs: 161,
production: &[ParseType::N(144)],
},
Production {
lhs: 161,
production: &[ParseType::N(79)],
},
Production {
lhs: 161,
production: &[ParseType::N(24)],
},
Production {
lhs: 161,
production: &[ParseType::N(82)],
},
Production {
lhs: 124,
production: &[
ParseType::N(65),
ParseType::N(125),
ParseType::N(126),
ParseType::N(17),
],
},
Production {
lhs: 125,
production: &[
ParseType::N(125),
ParseType::N(127),
ParseType::N(161),
ParseType::N(114),
ParseType::N(95),
],
},
Production {
lhs: 125,
production: &[],
},
Production {
lhs: 127,
production: &[ParseType::N(45)],
},
Production {
lhs: 127,
production: &[],
},
Production {
lhs: 126,
production: &[ParseType::N(128), ParseType::N(162)],
},
Production {
lhs: 128,
production: &[ParseType::N(45)],
},
Production {
lhs: 128,
production: &[],
},
Production {
lhs: 126,
production: &[],
},
Production {
lhs: 114,
production: &[ParseType::T(6)],
},
Production {
lhs: 0,
production: &[ParseType::N(6), ParseType::N(10), ParseType::N(1)],
},
Production {
lhs: 10,
production: &[ParseType::N(2)],
},
Production {
lhs: 10,
production: &[],
},
Production {
lhs: 2,
production: &[ParseType::N(3), ParseType::N(161)],
},
Production {
lhs: 3,
production: &[ParseType::N(4)],
},
Production {
lhs: 3,
production: &[],
},
Production {
lhs: 4,
production: &[ParseType::N(5), ParseType::N(45)],
},
Production {
lhs: 5,
production: &[ParseType::N(2)],
},
Production {
lhs: 5,
production: &[],
},
Production {
lhs: 154,
production: &[ParseType::N(129), ParseType::N(160), ParseType::N(97)],
},
Production {
lhs: 160,
production: &[ParseType::N(155)],
},
Production {
lhs: 160,
production: &[],
},
Production {
lhs: 155,
production: &[ParseType::N(156), ParseType::N(161)],
},
Production {
lhs: 156,
production: &[ParseType::N(157)],
},
Production {
lhs: 156,
production: &[],
},
Production {
lhs: 157,
production: &[ParseType::N(158), ParseType::N(45)],
},
Production {
lhs: 158,
production: &[ParseType::N(155)],
},
Production {
lhs: 158,
production: &[],
},
Production {
lhs: 123,
production: &[ParseType::N(77)],
},
Production {
lhs: 123,
production: &[ParseType::N(84)],
},
Production {
lhs: 123,
production: &[ParseType::N(81)],
},
Production {
lhs: 123,
production: &[ParseType::N(115)],
},
Production {
lhs: 84,
production: &[ParseType::T(7)],
},
Production {
lhs: 77,
production: &[ParseType::T(8)],
},
Production {
lhs: 81,
production: &[ParseType::T(9)],
},
Production {
lhs: 115,
production: &[ParseType::T(10)],
},
Production {
lhs: 22,
production: &[ParseType::N(153)],
},
Production {
lhs: 22,
production: &[ParseType::N(72)],
},
Production {
lhs: 153,
production: &[ParseType::T(11)],
},
Production {
lhs: 72,
production: &[ParseType::T(12)],
},
Production {
lhs: 122,
production: &[ParseType::T(13)],
},
Production {
lhs: 79,
production: &[ParseType::T(14)],
},
Production {
lhs: 143,
production: &[ParseType::N(142)],
},
Production {
lhs: 143,
production: &[ParseType::N(98)],
},
Production {
lhs: 143,
production: &[ParseType::N(99)],
},
Production {
lhs: 143,
production: &[ParseType::N(104)],
},
Production {
lhs: 143,
production: &[ParseType::N(109)],
},
Production {
lhs: 144,
production: &[ParseType::N(145), ParseType::N(143)],
},
Production {
lhs: 145,
production: &[ParseType::N(145), ParseType::N(143), ParseType::N(46)],
},
Production {
lhs: 145,
production: &[],
},
Production {
lhs: 142,
production: &[ParseType::T(15)],
},
Production {
lhs: 98,
production: &[ParseType::T(16)],
},
Production {
lhs: 146,
production: &[ParseType::T(17)],
},
Production {
lhs: 82,
production: &[ParseType::N(47)],
},
Production {
lhs: 82,
production: &[ParseType::N(83)],
},
Production {
lhs: 83,
production: &[ParseType::T(18)],
},
Production {
lhs: 99,
production: &[ParseType::N(100), ParseType::N(101), ParseType::N(103)],
},
Production {
lhs: 101,
production: &[ParseType::N(101), ParseType::N(102)],
},
Production {
lhs: 102,
production: &[ParseType::N(121)],
},
Production {
lhs: 102,
production: &[ParseType::N(136)],
},
Production {
lhs: 101,
production: &[],
},
Production {
lhs: 104,
production: &[ParseType::N(105), ParseType::N(106), ParseType::N(108)],
},
Production {
lhs: 106,
production: &[ParseType::N(106), ParseType::N(107)],
},
Production {
lhs: 107,
production: &[ParseType::N(121)],
},
Production {
lhs: 107,
production: &[ParseType::N(136)],
},
Production {
lhs: 106,
production: &[],
},
Production {
lhs: 109,
production: &[ParseType::N(110), ParseType::N(111), ParseType::N(113)],
},
Production {
lhs: 111,
production: &[ParseType::N(111), ParseType::N(112)],
},
Production {
lhs: 112,
production: &[ParseType::N(121)],
},
Production {
lhs: 112,
production: &[ParseType::N(136)],
},
Production {
lhs: 111,
production: &[],
},
Production {
lhs: 47,
production: &[ParseType::N(54)],
},
Production {
lhs: 47,
production: &[ParseType::N(51)],
},
Production {
lhs: 47,
production: &[ParseType::N(48)],
},
Production {
lhs: 48,
production: &[ParseType::N(57), ParseType::N(49), ParseType::N(60)],
},
Production {
lhs: 49,
production: &[ParseType::N(49), ParseType::N(50)],
},
Production {
lhs: 50,
production: &[ParseType::N(120)],
},
Production {
lhs: 50,
production: &[ParseType::N(16)],
},
Production {
lhs: 49,
production: &[],
},
Production {
lhs: 51,
production: &[ParseType::N(58), ParseType::N(52), ParseType::N(61)],
},
Production {
lhs: 52,
production: &[ParseType::N(52), ParseType::N(53)],
},
Production {
lhs: 53,
production: &[ParseType::N(120)],
},
Production {
lhs: 53,
production: &[ParseType::N(16)],
},
Production {
lhs: 52,
production: &[],
},
Production {
lhs: 54,
production: &[ParseType::N(59), ParseType::N(55), ParseType::N(62)],
},
Production {
lhs: 55,
production: &[ParseType::N(55), ParseType::N(56)],
},
Production {
lhs: 56,
production: &[ParseType::N(120)],
},
Production {
lhs: 56,
production: &[ParseType::N(16)],
},
Production {
lhs: 55,
production: &[],
},
Production {
lhs: 24,
production: &[ParseType::N(25)],
},
Production {
lhs: 24,
production: &[ParseType::N(28)],
},
Production {
lhs: 24,
production: &[ParseType::N(31)],
},
Production {
lhs: 24,
production: &[ParseType::N(34)],
},
Production {
lhs: 25,
production: &[ParseType::N(37), ParseType::N(26), ParseType::N(41)],
},
Production {
lhs: 26,
production: &[ParseType::N(26), ParseType::N(27)],
},
Production {
lhs: 27,
production: &[ParseType::N(120)],
},
Production {
lhs: 27,
production: &[ParseType::N(12)],
},
Production {
lhs: 26,
production: &[],
},
Production {
lhs: 28,
production: &[ParseType::N(38), ParseType::N(29), ParseType::N(42)],
},
Production {
lhs: 29,
production: &[ParseType::N(29), ParseType::N(30)],
},
Production {
lhs: 30,
production: &[ParseType::N(120)],
},
Production {
lhs: 30,
production: &[ParseType::N(13)],
},
Production {
lhs: 29,
production: &[],
},
Production {
lhs: 31,
production: &[ParseType::N(39), ParseType::N(32), ParseType::N(43)],
},
Production {
lhs: 32,
production: &[ParseType::N(32), ParseType::N(33)],
},
Production {
lhs: 33,
production: &[ParseType::N(120)],
},
Production {
lhs: 33,
production: &[ParseType::N(14)],
},
Production {
lhs: 32,
production: &[],
},
Production {
lhs: 34,
production: &[ParseType::N(40), ParseType::N(35), ParseType::N(44)],
},
Production {
lhs: 35,
production: &[ParseType::N(35), ParseType::N(36)],
},
Production {
lhs: 36,
production: &[ParseType::N(120)],
},
Production {
lhs: 36,
production: &[ParseType::N(15)],
},
Production {
lhs: 35,
production: &[],
},
Production {
lhs: 113,
production: &[ParseType::T(19)],
},
Production {
lhs: 108,
production: &[ParseType::T(20)],
},
Production {
lhs: 103,
production: &[ParseType::T(21)],
},
Production {
lhs: 62,
production: &[ParseType::T(22)],
},
Production {
lhs: 61,
production: &[ParseType::T(23)],
},
Production {
lhs: 60,
production: &[ParseType::T(24)],
},
Production {
lhs: 41,
production: &[ParseType::T(25)],
},
Production {
lhs: 42,
production: &[ParseType::T(26)],
},
Production {
lhs: 43,
production: &[ParseType::T(27)],
},
Production {
lhs: 44,
production: &[ParseType::T(28)],
},
Production {
lhs: 37,
production: &[ParseType::T(29)],
},
Production {
lhs: 12,
production: &[ParseType::T(30)],
},
Production {
lhs: 38,
production: &[ParseType::T(31)],
},
Production {
lhs: 13,
production: &[ParseType::T(32)],
},
Production {
lhs: 39,
production: &[ParseType::T(33)],
},
Production {
lhs: 14,
production: &[ParseType::T(34)],
},
Production {
lhs: 40,
production: &[ParseType::T(35)],
},
Production {
lhs: 15,
production: &[ParseType::T(36)],
},
Production {
lhs: 120,
production: &[ParseType::T(37)],
},
Production {
lhs: 110,
production: &[ParseType::T(38)],
},
Production {
lhs: 105,
production: &[ParseType::T(39)],
},
Production {
lhs: 100,
production: &[ParseType::T(40)],
},
Production {
lhs: 136,
production: &[ParseType::T(41)],
},
Production {
lhs: 121,
production: &[ParseType::T(42)],
},
Production {
lhs: 59,
production: &[ParseType::T(43)],
},
Production {
lhs: 58,
production: &[ParseType::T(44)],
},
Production {
lhs: 57,
production: &[ParseType::T(45)],
},
Production {
lhs: 16,
production: &[ParseType::T(46)],
},
Production {
lhs: 78,
production: &[ParseType::T(47)],
},
Production {
lhs: 163,
production: &[ParseType::T(48)],
},
Production {
lhs: 11,
production: &[ParseType::T(49)],
},
Production {
lhs: 70,
production: &[ParseType::T(50)],
},
Production {
lhs: 63,
production: &[ParseType::T(51)],
},
Production {
lhs: 17,
production: &[ParseType::T(52)],
},
Production {
lhs: 65,
production: &[ParseType::T(53)],
},
Production {
lhs: 1,
production: &[ParseType::T(54)],
},
Production {
lhs: 6,
production: &[ParseType::T(55)],
},
Production {
lhs: 23,
production: &[ParseType::T(56)],
},
Production {
lhs: 97,
production: &[ParseType::T(57)],
},
Production {
lhs: 129,
production: &[ParseType::T(58)],
},
Production {
lhs: 116,
production: &[ParseType::T(59)],
},
Production {
lhs: 18,
production: &[ParseType::T(60)],
},
Production {
lhs: 45,
production: &[ParseType::T(61)],
},
Production {
lhs: 46,
production: &[ParseType::T(62)],
},
Production {
lhs: 119,
production: &[ParseType::T(63)],
},
Production {
lhs: 151,
production: &[ParseType::T(64)],
},
Production {
lhs: 80,
production: &[ParseType::T(65)],
},
];
pub fn parse<'t, T>(
input: &'t str,
file_name: T,
user_actions: &mut Grammar<'t>,
) -> Result<ParseTree, ParolError>
where
T: AsRef<Path>,
{
use parol_runtime::{
parser::{parse_tree_type::SynTree, parser_types::SynTreeFlavor},
syntree::Builder,
};
let mut builder = Builder::<SynTree, SynTreeFlavor>::new_with();
parse_into(input, &mut builder, file_name, user_actions)?;
Ok(builder.build()?)
}
#[allow(dead_code)]
pub fn parse_into<'t, T: TreeConstruct<'t>>(
input: &'t str,
tree_builder: &mut T,
file_name: impl AsRef<Path>,
user_actions: &mut Grammar<'t>,
) -> Result<(), ParolError>
where
ParolError: From<T::Error>,
{
use grammar_scanner::GrammarScanner;
let mut llk_parser = LLKParser::new(
66,
LOOKAHEAD_AUTOMATA,
PRODUCTIONS,
TERMINAL_NAMES,
NON_TERMINALS,
);
let scanner = GrammarScanner::new();
let mut user_actions = GrammarAuto::new(user_actions);
llk_parser.parse_into(
tree_builder,
TokenStream::new(
input,
file_name,
scanner.scanner_impl.clone(),
&GrammarScanner::match_function,
MAX_K,
)
.unwrap(),
&mut user_actions,
)
}