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; 66] = &[
"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",
"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"=" => 59; token r"," => 60; token r"\\" => 61; token r":" => 63; token r"[\p{XID_Start}_][\p{XID_Continue}-]*" => 64; token r"." => 65; 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 63 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"(\r\n|\r|\n)*=" => 58; token r"," => 60; token r"(\r\n|\r|\n)*:" => 62; token r"[\p{XID_Start}_][\p{XID_Continue}-]*" => 64; token r"." => 65; on 19 push InLitStr3;
on 20 push InLitStr2;
on 21 push InLitStr1;
on 47 enter INITIAL;
on 52 enter INITIAL;
on 58 enter INITIAL;
on 62 enter Text;
}
mode Text {
token r"[^\r\n]*" => 17; token r"\r\n|\r|\n" => 47; token r"[\s--\r\n]+" => 48; token r"." => 65; on 17 enter INITIAL;
on 47 enter INITIAL;
}
mode InCodeBlock3 {
token r"`{3}" => 29; token r"`{1,2}" => 30; token r"[^`]+" => 37; token r"." => 65; on 29 enter INITIAL;
}
mode InCodeBlock4 {
token r"`{4}" => 31; token r"`{1,3}" => 32; token r"[^`]+" => 37; token r"." => 65; on 31 enter INITIAL;
}
mode InCodeBlock5 {
token r"`{5}" => 33; token r"`{1,4}" => 34; token r"[^`]+" => 37; token r"." => 65; on 33 enter INITIAL;
}
mode InCodeBlock6 {
token r"`{6}" => 35; token r"`{1,5}" => 36; token r"[^`]+" => 37; token r"." => 65; on 35 enter INITIAL;
}
mode InLitStr1 {
token r"'>" => 40; token r"'" => 41; token r"[^']+" => 42; token r"." => 65; on 40 pop;
}
mode InLitStr2 {
token r"'>>" => 39; token r"'" => 41; token r"[^']+" => 42; token r"." => 65; on 39 pop;
}
mode InLitStr3 {
token r"'>>>" => 38; token r"'" => 41; token r"[^']+" => 42; token r"." => 65; on 38 pop;
}
mode InDelimCode1 {
token r"[^`]+" => 37; token r"`>" => 45; token r"`" => 46; token r"." => 65; on 45 enter INITIAL;
}
mode InDelimCode2 {
token r"[^`]+" => 37; token r"`>>" => 44; token r"`" => 46; token r"." => 65; on 44 enter INITIAL;
}
mode InDelimCode3 {
token r"[^`]+" => 37; token r"`>>>" => 43; token r"`" => 46; token r"." => 65; on 43 enter INITIAL;
}
}
}
const MAX_K: usize = 1;
pub const NON_TERMINALS: &[&str; 162] = &[
"Array",
"ArrayBegin",
"ArrayElements",
"ArrayElementsOpt",
"ArrayElementsTail",
"ArrayElementsTailOpt",
"ArrayEnd",
"ArrayMarker",
"ArrayMarkerOpt",
"ArrayOpt",
"At",
"Backtick2",
"Backtick3",
"Backtick4",
"Backtick5",
"BacktickDelim",
"Begin",
"Bind",
"Binding",
"BindingRhs",
"BlockBody",
"Boolean",
"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; 162] = &[
LookaheadDFA {
prod0: 107,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: 245,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: 110,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: -1,
transitions: &[Trans(0, 55, 2, 112), Trans(0, 60, 1, 111)],
k: 1,
},
LookaheadDFA {
prod0: 113,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: -1,
transitions: &[
Trans(0, 7, 1, 114),
Trans(0, 8, 1, 114),
Trans(0, 9, 1, 114),
Trans(0, 10, 1, 114),
Trans(0, 11, 1, 114),
Trans(0, 12, 1, 114),
Trans(0, 13, 1, 114),
Trans(0, 14, 1, 114),
Trans(0, 15, 1, 114),
Trans(0, 16, 1, 114),
Trans(0, 18, 1, 114),
Trans(0, 19, 1, 114),
Trans(0, 20, 1, 114),
Trans(0, 21, 1, 114),
Trans(0, 22, 1, 114),
Trans(0, 23, 1, 114),
Trans(0, 24, 1, 114),
Trans(0, 25, 1, 114),
Trans(0, 26, 1, 114),
Trans(0, 27, 1, 114),
Trans(0, 28, 1, 114),
Trans(0, 52, 1, 114),
Trans(0, 54, 1, 114),
Trans(0, 55, 2, 115),
Trans(0, 56, 1, 114),
],
k: 1,
},
LookaheadDFA {
prod0: 246,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: 56,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: -1,
transitions: &[Trans(0, 7, 1, 57), Trans(0, 55, 2, 58)],
k: 1,
},
LookaheadDFA {
prod0: -1,
transitions: &[
Trans(0, 7, 1, 108),
Trans(0, 8, 1, 108),
Trans(0, 9, 1, 108),
Trans(0, 10, 1, 108),
Trans(0, 11, 1, 108),
Trans(0, 12, 1, 108),
Trans(0, 13, 1, 108),
Trans(0, 14, 1, 108),
Trans(0, 15, 1, 108),
Trans(0, 16, 1, 108),
Trans(0, 18, 1, 108),
Trans(0, 19, 1, 108),
Trans(0, 20, 1, 108),
Trans(0, 21, 1, 108),
Trans(0, 22, 1, 108),
Trans(0, 23, 1, 108),
Trans(0, 24, 1, 108),
Trans(0, 25, 1, 108),
Trans(0, 26, 1, 108),
Trans(0, 27, 1, 108),
Trans(0, 28, 1, 108),
Trans(0, 52, 1, 108),
Trans(0, 54, 1, 108),
Trans(0, 55, 2, 109),
Trans(0, 56, 1, 108),
],
k: 1,
},
LookaheadDFA {
prod0: 240,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: 221,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: 223,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: 225,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: 227,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: 237,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: 243,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: 250,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: 19,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: -1,
transitions: &[
Trans(0, 52, 2, 21),
Trans(0, 59, 1, 20),
Trans(0, 63, 3, 22),
],
k: 1,
},
LookaheadDFA {
prod0: 47,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: -1,
transitions: &[Trans(0, 11, 1, 133), Trans(0, 12, 2, 134)],
k: 1,
},
LookaheadDFA {
prod0: -1,
transitions: &[
Trans(0, 25, 1, 186),
Trans(0, 26, 2, 187),
Trans(0, 27, 3, 188),
Trans(0, 28, 4, 189),
],
k: 1,
},
LookaheadDFA {
prod0: 190,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: -1,
transitions: &[
Trans(0, 29, 2, 194),
Trans(0, 30, 1, 191),
Trans(0, 37, 1, 191),
],
k: 1,
},
LookaheadDFA {
prod0: -1,
transitions: &[Trans(0, 30, 2, 193), Trans(0, 37, 1, 192)],
k: 1,
},
LookaheadDFA {
prod0: 195,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: -1,
transitions: &[
Trans(0, 31, 2, 199),
Trans(0, 32, 1, 196),
Trans(0, 37, 1, 196),
],
k: 1,
},
LookaheadDFA {
prod0: -1,
transitions: &[Trans(0, 32, 2, 198), Trans(0, 37, 1, 197)],
k: 1,
},
LookaheadDFA {
prod0: 200,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: -1,
transitions: &[
Trans(0, 33, 2, 204),
Trans(0, 34, 1, 201),
Trans(0, 37, 1, 201),
],
k: 1,
},
LookaheadDFA {
prod0: -1,
transitions: &[Trans(0, 34, 2, 203), Trans(0, 37, 1, 202)],
k: 1,
},
LookaheadDFA {
prod0: 205,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: -1,
transitions: &[
Trans(0, 35, 2, 209),
Trans(0, 36, 1, 206),
Trans(0, 37, 1, 206),
],
k: 1,
},
LookaheadDFA {
prod0: -1,
transitions: &[Trans(0, 36, 2, 208), Trans(0, 37, 1, 207)],
k: 1,
},
LookaheadDFA {
prod0: 220,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: 222,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: 224,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: 226,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: 216,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: 217,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: 218,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: 219,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: 251,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: 252,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: -1,
transitions: &[
Trans(0, 22, 1, 168),
Trans(0, 23, 2, 169),
Trans(0, 24, 3, 170),
],
k: 1,
},
LookaheadDFA {
prod0: 171,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: -1,
transitions: &[
Trans(0, 37, 1, 172),
Trans(0, 45, 2, 175),
Trans(0, 46, 1, 172),
],
k: 1,
},
LookaheadDFA {
prod0: -1,
transitions: &[Trans(0, 37, 1, 173), Trans(0, 46, 2, 174)],
k: 1,
},
LookaheadDFA {
prod0: 176,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: -1,
transitions: &[
Trans(0, 37, 1, 177),
Trans(0, 44, 2, 180),
Trans(0, 46, 1, 177),
],
k: 1,
},
LookaheadDFA {
prod0: -1,
transitions: &[Trans(0, 37, 1, 178), Trans(0, 46, 2, 179)],
k: 1,
},
LookaheadDFA {
prod0: 181,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: -1,
transitions: &[
Trans(0, 37, 1, 182),
Trans(0, 43, 2, 185),
Trans(0, 46, 1, 182),
],
k: 1,
},
LookaheadDFA {
prod0: -1,
transitions: &[Trans(0, 37, 1, 183), Trans(0, 46, 2, 184)],
k: 1,
},
LookaheadDFA {
prod0: 236,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: 235,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: 234,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: 215,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: 214,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: 213,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: 242,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: 55,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: 244,
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, 56, 1, 3),
Trans(0, 64, 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, 56, 2, 6),
Trans(0, 59, 1, 5),
Trans(0, 63, 1, 5),
Trans(0, 64, 2, 6),
],
k: 1,
},
LookaheadDFA {
prod0: 241,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: 68,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: 136,
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, 56, 1, 51),
Trans(0, 64, 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, 56, 1, 38),
Trans(0, 64, 1, 38),
],
k: 1,
},
LookaheadDFA {
prod0: -1,
transitions: &[Trans(0, 59, 1, 45), Trans(0, 63, 2, 46)],
k: 1,
},
LookaheadDFA {
prod0: 130,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: 238,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: 138,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: 255,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: 131,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: -1,
transitions: &[
Trans(0, 18, 2, 151),
Trans(0, 22, 1, 150),
Trans(0, 23, 1, 150),
Trans(0, 24, 1, 150),
],
k: 1,
},
LookaheadDFA {
prod0: 152,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: 129,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: -1,
transitions: &[
Trans(0, 5, 7, 65),
Trans(0, 7, 4, 62),
Trans(0, 8, 5, 63),
Trans(0, 11, 1, 59),
Trans(0, 12, 1, 59),
Trans(0, 13, 1, 59),
Trans(0, 14, 8, 66),
Trans(0, 15, 3, 61),
Trans(0, 16, 3, 61),
Trans(0, 19, 3, 61),
Trans(0, 20, 3, 61),
Trans(0, 21, 3, 61),
Trans(0, 50, 2, 60),
Trans(0, 56, 6, 64),
Trans(0, 64, 1, 59),
],
k: 1,
},
LookaheadDFA {
prod0: -1,
transitions: &[
Trans(0, 11, 2, 84),
Trans(0, 12, 3, 85),
Trans(0, 13, 4, 86),
Trans(0, 64, 1, 83),
],
k: 1,
},
LookaheadDFA {
prod0: -1,
transitions: &[Trans(0, 51, 1, 53), Trans(0, 54, 2, 54)],
k: 1,
},
LookaheadDFA {
prod0: 69,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: 72,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: -1,
transitions: &[Trans(0, 57, 2, 74), Trans(0, 60, 1, 73)],
k: 1,
},
LookaheadDFA {
prod0: 75,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: -1,
transitions: &[
Trans(0, 7, 1, 76),
Trans(0, 11, 1, 76),
Trans(0, 12, 1, 76),
Trans(0, 14, 1, 76),
Trans(0, 15, 1, 76),
Trans(0, 56, 1, 76),
Trans(0, 57, 2, 77),
],
k: 1,
},
LookaheadDFA {
prod0: -1,
transitions: &[
Trans(0, 7, 1, 70),
Trans(0, 11, 1, 70),
Trans(0, 12, 1, 70),
Trans(0, 14, 1, 70),
Trans(0, 15, 1, 70),
Trans(0, 56, 1, 70),
Trans(0, 57, 2, 71),
],
k: 1,
},
LookaheadDFA {
prod0: -1,
transitions: &[
Trans(0, 7, 1, 78),
Trans(0, 11, 2, 79),
Trans(0, 12, 2, 79),
Trans(0, 14, 5, 82),
Trans(0, 15, 3, 80),
Trans(0, 56, 4, 81),
],
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, 58, 2, 50),
Trans(0, 59, 2, 50),
Trans(0, 62, 2, 50),
Trans(0, 63, 2, 50),
],
k: 1,
},
LookaheadDFA {
prod0: 247,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: 148,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: 153,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: 231,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: -1,
transitions: &[
Trans(0, 40, 2, 157),
Trans(0, 41, 1, 154),
Trans(0, 42, 1, 154),
],
k: 1,
},
LookaheadDFA {
prod0: -1,
transitions: &[Trans(0, 41, 2, 156), Trans(0, 42, 1, 155)],
k: 1,
},
LookaheadDFA {
prod0: 212,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: 158,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: 230,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: -1,
transitions: &[
Trans(0, 39, 2, 162),
Trans(0, 41, 1, 159),
Trans(0, 42, 1, 159),
],
k: 1,
},
LookaheadDFA {
prod0: -1,
transitions: &[Trans(0, 41, 2, 161), Trans(0, 42, 1, 160)],
k: 1,
},
LookaheadDFA {
prod0: 211,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: 163,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: 229,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: -1,
transitions: &[
Trans(0, 38, 2, 167),
Trans(0, 41, 1, 164),
Trans(0, 42, 1, 164),
],
k: 1,
},
LookaheadDFA {
prod0: -1,
transitions: &[Trans(0, 41, 2, 166), Trans(0, 42, 1, 165)],
k: 1,
},
LookaheadDFA {
prod0: 210,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: 106,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: 132,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: 249,
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, 56, 2, 44),
Trans(0, 59, 1, 43),
Trans(0, 63, 1, 43),
Trans(0, 64, 2, 44),
],
k: 1,
},
LookaheadDFA {
prod0: 253,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: 228,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: 233,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: 137,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: -1,
transitions: &[
Trans(0, 7, 2, 126),
Trans(0, 8, 1, 125),
Trans(0, 9, 3, 127),
Trans(0, 10, 4, 128),
],
k: 1,
},
LookaheadDFA {
prod0: 97,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: -1,
transitions: &[
Trans(0, 5, 1, 98),
Trans(0, 7, 1, 98),
Trans(0, 8, 1, 98),
Trans(0, 11, 1, 98),
Trans(0, 12, 1, 98),
Trans(0, 13, 1, 98),
Trans(0, 14, 1, 98),
Trans(0, 15, 1, 98),
Trans(0, 16, 1, 98),
Trans(0, 19, 1, 98),
Trans(0, 20, 1, 98),
Trans(0, 21, 1, 98),
Trans(0, 50, 1, 98),
Trans(0, 53, 2, 99),
Trans(0, 54, 1, 98),
Trans(0, 56, 1, 98),
Trans(0, 64, 1, 98),
],
k: 1,
},
LookaheadDFA {
prod0: -1,
transitions: &[
Trans(0, 5, 2, 105),
Trans(0, 7, 2, 105),
Trans(0, 8, 2, 105),
Trans(0, 11, 2, 105),
Trans(0, 12, 2, 105),
Trans(0, 13, 2, 105),
Trans(0, 14, 2, 105),
Trans(0, 15, 2, 105),
Trans(0, 16, 2, 105),
Trans(0, 19, 2, 105),
Trans(0, 20, 2, 105),
Trans(0, 21, 2, 105),
Trans(0, 50, 2, 105),
Trans(0, 53, 2, 105),
Trans(0, 54, 2, 105),
Trans(0, 56, 2, 105),
Trans(0, 59, 1, 102),
Trans(0, 64, 2, 105),
],
k: 1,
},
LookaheadDFA {
prod0: -1,
transitions: &[
Trans(0, 5, 2, 101),
Trans(0, 7, 2, 101),
Trans(0, 8, 2, 101),
Trans(0, 11, 2, 101),
Trans(0, 12, 2, 101),
Trans(0, 13, 2, 101),
Trans(0, 14, 2, 101),
Trans(0, 15, 2, 101),
Trans(0, 16, 2, 101),
Trans(0, 19, 2, 101),
Trans(0, 20, 2, 101),
Trans(0, 21, 2, 101),
Trans(0, 50, 2, 101),
Trans(0, 53, 2, 101),
Trans(0, 54, 2, 101),
Trans(0, 56, 2, 101),
Trans(0, 60, 1, 100),
Trans(0, 64, 2, 101),
],
k: 1,
},
LookaheadDFA {
prod0: -1,
transitions: &[
Trans(0, 5, 2, 104),
Trans(0, 7, 2, 104),
Trans(0, 8, 2, 104),
Trans(0, 11, 2, 104),
Trans(0, 12, 2, 104),
Trans(0, 13, 2, 104),
Trans(0, 14, 2, 104),
Trans(0, 15, 2, 104),
Trans(0, 16, 2, 104),
Trans(0, 19, 2, 104),
Trans(0, 20, 2, 104),
Trans(0, 21, 2, 104),
Trans(0, 50, 2, 104),
Trans(0, 53, 2, 104),
Trans(0, 54, 2, 104),
Trans(0, 56, 2, 104),
Trans(0, 60, 1, 103),
Trans(0, 64, 2, 104),
],
k: 1,
},
LookaheadDFA {
prod0: 248,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: -1,
transitions: &[Trans(0, 58, 1, 9), Trans(0, 62, 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, 56, 2, 18),
Trans(0, 64, 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, 56, 2, 16),
Trans(0, 64, 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, 56, 2, 14),
Trans(0, 64, 2, 14),
],
k: 1,
},
LookaheadDFA {
prod0: 11,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: 232,
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, 58, 1, 33),
Trans(0, 62, 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, 58, 1, 35),
Trans(0, 62, 1, 35),
],
k: 1,
},
LookaheadDFA {
prod0: -1,
transitions: &[
Trans(0, 47, 2, 41),
Trans(0, 58, 1, 40),
Trans(0, 62, 1, 40),
],
k: 1,
},
LookaheadDFA {
prod0: 147,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: -1,
transitions: &[
Trans(0, 15, 1, 139),
Trans(0, 16, 2, 140),
Trans(0, 19, 5, 143),
Trans(0, 20, 4, 142),
Trans(0, 21, 3, 141),
],
k: 1,
},
LookaheadDFA {
prod0: 144,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: -1,
transitions: &[
Trans(0, 0, 2, 146),
Trans(0, 5, 2, 146),
Trans(0, 7, 2, 146),
Trans(0, 8, 2, 146),
Trans(0, 11, 2, 146),
Trans(0, 12, 2, 146),
Trans(0, 13, 2, 146),
Trans(0, 14, 2, 146),
Trans(0, 15, 2, 146),
Trans(0, 16, 2, 146),
Trans(0, 19, 2, 146),
Trans(0, 20, 2, 146),
Trans(0, 21, 2, 146),
Trans(0, 49, 2, 146),
Trans(0, 50, 2, 146),
Trans(0, 53, 2, 146),
Trans(0, 54, 2, 146),
Trans(0, 55, 2, 146),
Trans(0, 56, 2, 146),
Trans(0, 57, 2, 146),
Trans(0, 60, 2, 146),
Trans(0, 61, 1, 145),
Trans(0, 64, 2, 146),
],
k: 1,
},
LookaheadDFA {
prod0: 149,
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, 56, 2, 31),
Trans(0, 64, 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, 56, 2, 29),
Trans(0, 64, 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, 56, 2, 27),
Trans(0, 64, 2, 27),
],
k: 1,
},
LookaheadDFA {
prod0: 254,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: -1,
transitions: &[Trans(0, 59, 1, 7), Trans(0, 63, 2, 8)],
k: 1,
},
LookaheadDFA {
prod0: 135,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: 116,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: 119,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: -1,
transitions: &[Trans(0, 57, 2, 121), Trans(0, 60, 1, 120)],
k: 1,
},
LookaheadDFA {
prod0: 122,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: -1,
transitions: &[
Trans(0, 7, 1, 123),
Trans(0, 8, 1, 123),
Trans(0, 9, 1, 123),
Trans(0, 10, 1, 123),
Trans(0, 11, 1, 123),
Trans(0, 12, 1, 123),
Trans(0, 13, 1, 123),
Trans(0, 14, 1, 123),
Trans(0, 15, 1, 123),
Trans(0, 16, 1, 123),
Trans(0, 18, 1, 123),
Trans(0, 19, 1, 123),
Trans(0, 20, 1, 123),
Trans(0, 21, 1, 123),
Trans(0, 22, 1, 123),
Trans(0, 23, 1, 123),
Trans(0, 24, 1, 123),
Trans(0, 25, 1, 123),
Trans(0, 26, 1, 123),
Trans(0, 27, 1, 123),
Trans(0, 28, 1, 123),
Trans(0, 52, 1, 123),
Trans(0, 54, 1, 123),
Trans(0, 56, 1, 123),
Trans(0, 57, 2, 124),
],
k: 1,
},
LookaheadDFA {
prod0: 67,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: -1,
transitions: &[
Trans(0, 7, 1, 117),
Trans(0, 8, 1, 117),
Trans(0, 9, 1, 117),
Trans(0, 10, 1, 117),
Trans(0, 11, 1, 117),
Trans(0, 12, 1, 117),
Trans(0, 13, 1, 117),
Trans(0, 14, 1, 117),
Trans(0, 15, 1, 117),
Trans(0, 16, 1, 117),
Trans(0, 18, 1, 117),
Trans(0, 19, 1, 117),
Trans(0, 20, 1, 117),
Trans(0, 21, 1, 117),
Trans(0, 22, 1, 117),
Trans(0, 23, 1, 117),
Trans(0, 24, 1, 117),
Trans(0, 25, 1, 117),
Trans(0, 26, 1, 117),
Trans(0, 27, 1, 117),
Trans(0, 28, 1, 117),
Trans(0, 52, 1, 117),
Trans(0, 54, 1, 117),
Trans(0, 56, 1, 117),
Trans(0, 57, 2, 118),
],
k: 1,
},
LookaheadDFA {
prod0: -1,
transitions: &[
Trans(0, 7, 4, 90),
Trans(0, 8, 4, 90),
Trans(0, 9, 4, 90),
Trans(0, 10, 4, 90),
Trans(0, 11, 5, 91),
Trans(0, 12, 5, 91),
Trans(0, 13, 6, 92),
Trans(0, 14, 8, 94),
Trans(0, 15, 7, 93),
Trans(0, 16, 7, 93),
Trans(0, 18, 10, 96),
Trans(0, 19, 7, 93),
Trans(0, 20, 7, 93),
Trans(0, 21, 7, 93),
Trans(0, 22, 10, 96),
Trans(0, 23, 10, 96),
Trans(0, 24, 10, 96),
Trans(0, 25, 9, 95),
Trans(0, 26, 9, 95),
Trans(0, 27, 9, 95),
Trans(0, 28, 9, 95),
Trans(0, 52, 1, 87),
Trans(0, 54, 2, 88),
Trans(0, 56, 3, 89),
],
k: 1,
},
LookaheadDFA {
prod0: 23,
transitions: &[],
k: 0,
},
LookaheadDFA {
prod0: 239,
transitions: &[],
k: 0,
},
];
pub const PRODUCTIONS: &[Production; 256] = &[
Production {
lhs: 64,
production: &[ParseType::N(66), ParseType::N(65), ParseType::N(67)],
},
Production {
lhs: 66,
production: &[ParseType::N(66), ParseType::N(135)],
},
Production {
lhs: 66,
production: &[],
},
Production {
lhs: 65,
production: &[ParseType::N(65), ParseType::N(18)],
},
Production {
lhs: 65,
production: &[],
},
Production {
lhs: 67,
production: &[ParseType::N(150)],
},
Production {
lhs: 67,
production: &[],
},
Production {
lhs: 150,
production: &[ParseType::N(160)],
},
Production {
lhs: 150,
production: &[ParseType::N(145)],
},
Production {
lhs: 128,
production: &[ParseType::N(133)],
},
Production {
lhs: 128,
production: &[ParseType::N(129)],
},
Production {
lhs: 133,
production: &[ParseType::N(159), ParseType::N(114)],
},
Production {
lhs: 129,
production: &[
ParseType::N(132),
ParseType::N(131),
ParseType::N(130),
ParseType::N(117),
],
},
Production {
lhs: 132,
production: &[ParseType::N(76)],
},
Production {
lhs: 132,
production: &[],
},
Production {
lhs: 131,
production: &[ParseType::N(144)],
},
Production {
lhs: 131,
production: &[],
},
Production {
lhs: 130,
production: &[ParseType::N(161)],
},
Production {
lhs: 130,
production: &[],
},
Production {
lhs: 18,
production: &[ParseType::N(19), ParseType::N(93)],
},
Production {
lhs: 19,
production: &[ParseType::N(160)],
},
Production {
lhs: 19,
production: &[ParseType::N(136)],
},
Production {
lhs: 19,
production: &[ParseType::N(145)],
},
Production {
lhs: 160,
production: &[ParseType::N(159), ParseType::N(17)],
},
Production {
lhs: 136,
production: &[ParseType::N(63), ParseType::N(64), ParseType::N(16)],
},
Production {
lhs: 145,
production: &[
ParseType::N(148),
ParseType::N(147),
ParseType::N(146),
ParseType::N(149),
],
},
Production {
lhs: 148,
production: &[ParseType::N(76)],
},
Production {
lhs: 148,
production: &[],
},
Production {
lhs: 147,
production: &[ParseType::N(144)],
},
Production {
lhs: 147,
production: &[],
},
Production {
lhs: 146,
production: &[ParseType::N(161)],
},
Production {
lhs: 146,
production: &[],
},
Production {
lhs: 135,
production: &[ParseType::N(137), ParseType::N(93), ParseType::N(10)],
},
Production {
lhs: 137,
production: &[ParseType::N(138)],
},
Production {
lhs: 137,
production: &[ParseType::N(20)],
},
Production {
lhs: 138,
production: &[ParseType::N(72)],
},
Production {
lhs: 138,
production: &[],
},
Production {
lhs: 72,
production: &[ParseType::N(73), ParseType::N(139)],
},
Production {
lhs: 73,
production: &[ParseType::N(73), ParseType::N(18)],
},
Production {
lhs: 73,
production: &[],
},
Production {
lhs: 139,
production: &[ParseType::N(128)],
},
Production {
lhs: 139,
production: &[ParseType::N(115)],
},
Production {
lhs: 115,
production: &[ParseType::N(116), ParseType::N(76)],
},
Production {
lhs: 116,
production: &[ParseType::N(74)],
},
Production {
lhs: 116,
production: &[],
},
Production {
lhs: 74,
production: &[ParseType::N(160)],
},
Production {
lhs: 74,
production: &[ParseType::N(145)],
},
Production {
lhs: 20,
production: &[ParseType::N(63), ParseType::N(64), ParseType::N(16)],
},
Production {
lhs: 93,
production: &[ParseType::N(94), ParseType::N(71)],
},
Production {
lhs: 94,
production: &[ParseType::N(94), ParseType::N(85)],
},
Production {
lhs: 94,
production: &[],
},
Production {
lhs: 71,
production: &[ParseType::N(83)],
},
Production {
lhs: 71,
production: &[ParseType::N(7)],
},
Production {
lhs: 85,
production: &[ParseType::N(62)],
},
Production {
lhs: 85,
production: &[ParseType::N(7)],
},
Production {
lhs: 62,
production: &[ParseType::N(83), ParseType::N(61)],
},
Production {
lhs: 7,
production: &[ParseType::N(6), ParseType::N(8), ParseType::N(1)],
},
Production {
lhs: 8,
production: &[ParseType::N(82)],
},
Production {
lhs: 8,
production: &[],
},
Production {
lhs: 83,
production: &[ParseType::N(84)],
},
Production {
lhs: 83,
production: &[ParseType::N(69)],
},
Production {
lhs: 83,
production: &[ParseType::N(141)],
},
Production {
lhs: 83,
production: &[ParseType::N(82)],
},
Production {
lhs: 83,
production: &[ParseType::N(75)],
},
Production {
lhs: 83,
production: &[ParseType::N(86)],
},
Production {
lhs: 83,
production: &[ParseType::N(157)],
},
Production {
lhs: 83,
production: &[ParseType::N(77)],
},
Production {
lhs: 157,
production: &[ParseType::N(82), ParseType::T(5)],
},
Production {
lhs: 69,
production: &[ParseType::N(84), ParseType::N(68)],
},
Production {
lhs: 86,
production: &[ParseType::N(127), ParseType::N(91), ParseType::N(95)],
},
Production {
lhs: 91,
production: &[ParseType::N(87)],
},
Production {
lhs: 91,
production: &[],
},
Production {
lhs: 87,
production: &[ParseType::N(88), ParseType::N(92)],
},
Production {
lhs: 88,
production: &[ParseType::N(89)],
},
Production {
lhs: 88,
production: &[],
},
Production {
lhs: 89,
production: &[ParseType::N(90), ParseType::N(43)],
},
Production {
lhs: 90,
production: &[ParseType::N(87)],
},
Production {
lhs: 90,
production: &[],
},
Production {
lhs: 92,
production: &[ParseType::N(82)],
},
Production {
lhs: 92,
production: &[ParseType::N(21)],
},
Production {
lhs: 92,
production: &[ParseType::N(140)],
},
Production {
lhs: 92,
production: &[ParseType::N(86)],
},
Production {
lhs: 92,
production: &[ParseType::N(77)],
},
Production {
lhs: 84,
production: &[ParseType::N(78)],
},
Production {
lhs: 84,
production: &[ParseType::N(151)],
},
Production {
lhs: 84,
production: &[ParseType::N(70)],
},
Production {
lhs: 84,
production: &[ParseType::N(120)],
},
Production {
lhs: 159,
production: &[ParseType::N(122)],
},
Production {
lhs: 159,
production: &[ParseType::N(0)],
},
Production {
lhs: 159,
production: &[ParseType::N(152)],
},
Production {
lhs: 159,
production: &[ParseType::N(121)],
},
Production {
lhs: 159,
production: &[ParseType::N(21)],
},
Production {
lhs: 159,
production: &[ParseType::N(120)],
},
Production {
lhs: 159,
production: &[ParseType::N(142)],
},
Production {
lhs: 159,
production: &[ParseType::N(77)],
},
Production {
lhs: 159,
production: &[ParseType::N(22)],
},
Production {
lhs: 159,
production: &[ParseType::N(80)],
},
Production {
lhs: 122,
production: &[
ParseType::N(63),
ParseType::N(123),
ParseType::N(124),
ParseType::N(16),
],
},
Production {
lhs: 123,
production: &[
ParseType::N(123),
ParseType::N(125),
ParseType::N(159),
ParseType::N(112),
ParseType::N(93),
],
},
Production {
lhs: 123,
production: &[],
},
Production {
lhs: 125,
production: &[ParseType::N(43)],
},
Production {
lhs: 125,
production: &[],
},
Production {
lhs: 124,
production: &[ParseType::N(126), ParseType::N(160)],
},
Production {
lhs: 126,
production: &[ParseType::N(43)],
},
Production {
lhs: 126,
production: &[],
},
Production {
lhs: 124,
production: &[],
},
Production {
lhs: 112,
production: &[ParseType::T(6)],
},
Production {
lhs: 0,
production: &[ParseType::N(6), ParseType::N(9), ParseType::N(1)],
},
Production {
lhs: 9,
production: &[ParseType::N(2)],
},
Production {
lhs: 9,
production: &[],
},
Production {
lhs: 2,
production: &[ParseType::N(3), ParseType::N(159)],
},
Production {
lhs: 3,
production: &[ParseType::N(4)],
},
Production {
lhs: 3,
production: &[],
},
Production {
lhs: 4,
production: &[ParseType::N(5), ParseType::N(43)],
},
Production {
lhs: 5,
production: &[ParseType::N(2)],
},
Production {
lhs: 5,
production: &[],
},
Production {
lhs: 152,
production: &[ParseType::N(127), ParseType::N(158), ParseType::N(95)],
},
Production {
lhs: 158,
production: &[ParseType::N(153)],
},
Production {
lhs: 158,
production: &[],
},
Production {
lhs: 153,
production: &[ParseType::N(154), ParseType::N(159)],
},
Production {
lhs: 154,
production: &[ParseType::N(155)],
},
Production {
lhs: 154,
production: &[],
},
Production {
lhs: 155,
production: &[ParseType::N(156), ParseType::N(43)],
},
Production {
lhs: 156,
production: &[ParseType::N(153)],
},
Production {
lhs: 156,
production: &[],
},
Production {
lhs: 121,
production: &[ParseType::N(75)],
},
Production {
lhs: 121,
production: &[ParseType::N(82)],
},
Production {
lhs: 121,
production: &[ParseType::N(79)],
},
Production {
lhs: 121,
production: &[ParseType::N(113)],
},
Production {
lhs: 82,
production: &[ParseType::T(7)],
},
Production {
lhs: 75,
production: &[ParseType::T(8)],
},
Production {
lhs: 79,
production: &[ParseType::T(9)],
},
Production {
lhs: 113,
production: &[ParseType::T(10)],
},
Production {
lhs: 21,
production: &[ParseType::N(151)],
},
Production {
lhs: 21,
production: &[ParseType::N(70)],
},
Production {
lhs: 151,
production: &[ParseType::T(11)],
},
Production {
lhs: 70,
production: &[ParseType::T(12)],
},
Production {
lhs: 120,
production: &[ParseType::T(13)],
},
Production {
lhs: 77,
production: &[ParseType::T(14)],
},
Production {
lhs: 141,
production: &[ParseType::N(140)],
},
Production {
lhs: 141,
production: &[ParseType::N(96)],
},
Production {
lhs: 141,
production: &[ParseType::N(97)],
},
Production {
lhs: 141,
production: &[ParseType::N(102)],
},
Production {
lhs: 141,
production: &[ParseType::N(107)],
},
Production {
lhs: 142,
production: &[ParseType::N(143), ParseType::N(141)],
},
Production {
lhs: 143,
production: &[ParseType::N(143), ParseType::N(141), ParseType::N(44)],
},
Production {
lhs: 143,
production: &[],
},
Production {
lhs: 140,
production: &[ParseType::T(15)],
},
Production {
lhs: 96,
production: &[ParseType::T(16)],
},
Production {
lhs: 144,
production: &[ParseType::T(17)],
},
Production {
lhs: 80,
production: &[ParseType::N(45)],
},
Production {
lhs: 80,
production: &[ParseType::N(81)],
},
Production {
lhs: 81,
production: &[ParseType::T(18)],
},
Production {
lhs: 97,
production: &[ParseType::N(98), ParseType::N(99), ParseType::N(101)],
},
Production {
lhs: 99,
production: &[ParseType::N(99), ParseType::N(100)],
},
Production {
lhs: 100,
production: &[ParseType::N(119)],
},
Production {
lhs: 100,
production: &[ParseType::N(134)],
},
Production {
lhs: 99,
production: &[],
},
Production {
lhs: 102,
production: &[ParseType::N(103), ParseType::N(104), ParseType::N(106)],
},
Production {
lhs: 104,
production: &[ParseType::N(104), ParseType::N(105)],
},
Production {
lhs: 105,
production: &[ParseType::N(119)],
},
Production {
lhs: 105,
production: &[ParseType::N(134)],
},
Production {
lhs: 104,
production: &[],
},
Production {
lhs: 107,
production: &[ParseType::N(108), ParseType::N(109), ParseType::N(111)],
},
Production {
lhs: 109,
production: &[ParseType::N(109), ParseType::N(110)],
},
Production {
lhs: 110,
production: &[ParseType::N(119)],
},
Production {
lhs: 110,
production: &[ParseType::N(134)],
},
Production {
lhs: 109,
production: &[],
},
Production {
lhs: 45,
production: &[ParseType::N(52)],
},
Production {
lhs: 45,
production: &[ParseType::N(49)],
},
Production {
lhs: 45,
production: &[ParseType::N(46)],
},
Production {
lhs: 46,
production: &[ParseType::N(55), ParseType::N(47), ParseType::N(58)],
},
Production {
lhs: 47,
production: &[ParseType::N(47), ParseType::N(48)],
},
Production {
lhs: 48,
production: &[ParseType::N(118)],
},
Production {
lhs: 48,
production: &[ParseType::N(15)],
},
Production {
lhs: 47,
production: &[],
},
Production {
lhs: 49,
production: &[ParseType::N(56), ParseType::N(50), ParseType::N(59)],
},
Production {
lhs: 50,
production: &[ParseType::N(50), ParseType::N(51)],
},
Production {
lhs: 51,
production: &[ParseType::N(118)],
},
Production {
lhs: 51,
production: &[ParseType::N(15)],
},
Production {
lhs: 50,
production: &[],
},
Production {
lhs: 52,
production: &[ParseType::N(57), ParseType::N(53), ParseType::N(60)],
},
Production {
lhs: 53,
production: &[ParseType::N(53), ParseType::N(54)],
},
Production {
lhs: 54,
production: &[ParseType::N(118)],
},
Production {
lhs: 54,
production: &[ParseType::N(15)],
},
Production {
lhs: 53,
production: &[],
},
Production {
lhs: 22,
production: &[ParseType::N(23)],
},
Production {
lhs: 22,
production: &[ParseType::N(26)],
},
Production {
lhs: 22,
production: &[ParseType::N(29)],
},
Production {
lhs: 22,
production: &[ParseType::N(32)],
},
Production {
lhs: 23,
production: &[ParseType::N(35), ParseType::N(24), ParseType::N(39)],
},
Production {
lhs: 24,
production: &[ParseType::N(24), ParseType::N(25)],
},
Production {
lhs: 25,
production: &[ParseType::N(118)],
},
Production {
lhs: 25,
production: &[ParseType::N(11)],
},
Production {
lhs: 24,
production: &[],
},
Production {
lhs: 26,
production: &[ParseType::N(36), ParseType::N(27), ParseType::N(40)],
},
Production {
lhs: 27,
production: &[ParseType::N(27), ParseType::N(28)],
},
Production {
lhs: 28,
production: &[ParseType::N(118)],
},
Production {
lhs: 28,
production: &[ParseType::N(12)],
},
Production {
lhs: 27,
production: &[],
},
Production {
lhs: 29,
production: &[ParseType::N(37), ParseType::N(30), ParseType::N(41)],
},
Production {
lhs: 30,
production: &[ParseType::N(30), ParseType::N(31)],
},
Production {
lhs: 31,
production: &[ParseType::N(118)],
},
Production {
lhs: 31,
production: &[ParseType::N(13)],
},
Production {
lhs: 30,
production: &[],
},
Production {
lhs: 32,
production: &[ParseType::N(38), ParseType::N(33), ParseType::N(42)],
},
Production {
lhs: 33,
production: &[ParseType::N(33), ParseType::N(34)],
},
Production {
lhs: 34,
production: &[ParseType::N(118)],
},
Production {
lhs: 34,
production: &[ParseType::N(14)],
},
Production {
lhs: 33,
production: &[],
},
Production {
lhs: 111,
production: &[ParseType::T(19)],
},
Production {
lhs: 106,
production: &[ParseType::T(20)],
},
Production {
lhs: 101,
production: &[ParseType::T(21)],
},
Production {
lhs: 60,
production: &[ParseType::T(22)],
},
Production {
lhs: 59,
production: &[ParseType::T(23)],
},
Production {
lhs: 58,
production: &[ParseType::T(24)],
},
Production {
lhs: 39,
production: &[ParseType::T(25)],
},
Production {
lhs: 40,
production: &[ParseType::T(26)],
},
Production {
lhs: 41,
production: &[ParseType::T(27)],
},
Production {
lhs: 42,
production: &[ParseType::T(28)],
},
Production {
lhs: 35,
production: &[ParseType::T(29)],
},
Production {
lhs: 11,
production: &[ParseType::T(30)],
},
Production {
lhs: 36,
production: &[ParseType::T(31)],
},
Production {
lhs: 12,
production: &[ParseType::T(32)],
},
Production {
lhs: 37,
production: &[ParseType::T(33)],
},
Production {
lhs: 13,
production: &[ParseType::T(34)],
},
Production {
lhs: 38,
production: &[ParseType::T(35)],
},
Production {
lhs: 14,
production: &[ParseType::T(36)],
},
Production {
lhs: 118,
production: &[ParseType::T(37)],
},
Production {
lhs: 108,
production: &[ParseType::T(38)],
},
Production {
lhs: 103,
production: &[ParseType::T(39)],
},
Production {
lhs: 98,
production: &[ParseType::T(40)],
},
Production {
lhs: 134,
production: &[ParseType::T(41)],
},
Production {
lhs: 119,
production: &[ParseType::T(42)],
},
Production {
lhs: 57,
production: &[ParseType::T(43)],
},
Production {
lhs: 56,
production: &[ParseType::T(44)],
},
Production {
lhs: 55,
production: &[ParseType::T(45)],
},
Production {
lhs: 15,
production: &[ParseType::T(46)],
},
Production {
lhs: 76,
production: &[ParseType::T(47)],
},
Production {
lhs: 161,
production: &[ParseType::T(48)],
},
Production {
lhs: 10,
production: &[ParseType::T(49)],
},
Production {
lhs: 68,
production: &[ParseType::T(50)],
},
Production {
lhs: 61,
production: &[ParseType::T(51)],
},
Production {
lhs: 16,
production: &[ParseType::T(52)],
},
Production {
lhs: 63,
production: &[ParseType::T(53)],
},
Production {
lhs: 1,
production: &[ParseType::T(54)],
},
Production {
lhs: 6,
production: &[ParseType::T(55)],
},
Production {
lhs: 95,
production: &[ParseType::T(56)],
},
Production {
lhs: 127,
production: &[ParseType::T(57)],
},
Production {
lhs: 114,
production: &[ParseType::T(58)],
},
Production {
lhs: 17,
production: &[ParseType::T(59)],
},
Production {
lhs: 43,
production: &[ParseType::T(60)],
},
Production {
lhs: 44,
production: &[ParseType::T(61)],
},
Production {
lhs: 117,
production: &[ParseType::T(62)],
},
Production {
lhs: 149,
production: &[ParseType::T(63)],
},
Production {
lhs: 78,
production: &[ParseType::T(64)],
},
];
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(
64,
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,
)
}