func getProductionsTableUncompressed() (pt *ProdTabU) { pt = new(ProdTabU) pt[0] = &ProdTabUEntry{ String: "S! : Grammar ;", Head: "S!", HeadIndex: -1, NumSymbols: 1, ReduceFunc: func(X []Attrib) (Attrib, error) { return X[0], nil }, } pt[1] = &ProdTabUEntry{ String: "Grammar : LexicalPart SyntaxPart << ast.NewGrammar(X[0], X[1]) >> ;", Head: "Grammar", HeadIndex: NT_Grammar, NumSymbols: 2, ReduceFunc: func(X []Attrib) (Attrib, error) { return ast.NewGrammar(X[0], X[1]) }, } pt[2] = &ProdTabUEntry{ String: "Grammar : LexicalPart << ast.NewGrammar(X[0], nil) >> ;", Head: "Grammar", HeadIndex: NT_Grammar, NumSymbols: 1, ReduceFunc: func(X []Attrib) (Attrib, error) { return ast.NewGrammar(X[0], nil) }, } pt[3] = &ProdTabUEntry{ String: "Grammar : SyntaxPart << ast.NewGrammar(nil, X[0]) >> ;", Head: "Grammar", HeadIndex: NT_Grammar, NumSymbols: 1, ReduceFunc: func(X []Attrib) (Attrib, error) { return ast.NewGrammar(nil, X[0]) }, } pt[4] = &ProdTabUEntry{ String: "LexicalPart : LexProductions << ast.NewLexPart(nil, nil, X[0]) >> ;", Head: "LexicalPart", HeadIndex: NT_LexicalPart, NumSymbols: 1, ReduceFunc: func(X []Attrib) (Attrib, error) { return ast.NewLexPart(nil, nil, X[0]) }, } pt[5] = &ProdTabUEntry{ String: "LexProductions : LexProduction << ast.NewLexProductions(X[0]) >> ;", Head: "LexProductions", HeadIndex: NT_LexProductions, NumSymbols: 1, ReduceFunc: func(X []Attrib) (Attrib, error) { return ast.NewLexProductions(X[0]) }, } pt[6] = &ProdTabUEntry{ String: "LexProductions : LexProductions LexProduction << ast.AppendLexProduction(X[0], X[1]) >> ;", Head: "LexProductions", HeadIndex: NT_LexProductions, NumSymbols: 2, ReduceFunc: func(X []Attrib) (Attrib, error) { return ast.AppendLexProduction(X[0], X[1]) }, } pt[7] = &ProdTabUEntry{ String: "LexProduction : tokId : LexPattern ; << ast.NewLexTokDef(X[0], X[2]) >> ;", Head: "LexProduction", HeadIndex: NT_LexProduction, NumSymbols: 4, ReduceFunc: func(X []Attrib) (Attrib, error) { return ast.NewLexTokDef(X[0], X[2]) }, } pt[8] = &ProdTabUEntry{ String: "LexProduction : regDefId : LexPattern ; << ast.NewLexRegDef(X[0], X[2]) >> ;", Head: "LexProduction", HeadIndex: NT_LexProduction, NumSymbols: 4, ReduceFunc: func(X []Attrib) (Attrib, error) { return ast.NewLexRegDef(X[0], X[2]) }, } pt[9] = &ProdTabUEntry{ String: "LexProduction : ignoredTokId : LexPattern ; << ast.NewLexIgnoredTokDef(X[0], X[2]) >> ;", Head: "LexProduction", HeadIndex: NT_LexProduction, NumSymbols: 4, ReduceFunc: func(X []Attrib) (Attrib, error) { return ast.NewLexIgnoredTokDef(X[0], X[2]) }, } pt[10] = &ProdTabUEntry{ String: "LexPattern : LexAlt << ast.NewLexPattern(X[0]) >> ;", Head: "LexPattern", HeadIndex: NT_LexPattern, NumSymbols: 1, ReduceFunc: func(X []Attrib) (Attrib, error) { return ast.NewLexPattern(X[0]) }, } pt[11] = &ProdTabUEntry{ String: "LexPattern : LexPattern | LexAlt << ast.AppendLexAlt(X[0], X[2]) >> ;", Head: "LexPattern", HeadIndex: NT_LexPattern, NumSymbols: 3, ReduceFunc: func(X []Attrib) (Attrib, error) { return ast.AppendLexAlt(X[0], X[2]) }, } pt[12] = &ProdTabUEntry{ String: "LexAlt : LexTerm << ast.NewLexAlt(X[0]) >> ;", Head: "LexAlt", HeadIndex: NT_LexAlt, NumSymbols: 1, ReduceFunc: func(X []Attrib) (Attrib, error) { return ast.NewLexAlt(X[0]) }, } pt[13] = &ProdTabUEntry{ String: "LexAlt : LexAlt LexTerm << ast.AppendLexTerm(X[0], X[1]) >> ;", Head: "LexAlt", HeadIndex: NT_LexAlt, NumSymbols: 2, ReduceFunc: func(X []Attrib) (Attrib, error) { return ast.AppendLexTerm(X[0], X[1]) }, } pt[14] = &ProdTabUEntry{ String: "LexTerm : . << ast.LexDOT, nil >> ;", Head: "LexTerm", HeadIndex: NT_LexTerm, NumSymbols: 1, ReduceFunc: func(X []Attrib) (Attrib, error) { return ast.LexDOT, nil }, } pt[15] = &ProdTabUEntry{ String: "LexTerm : char_lit << ast.NewLexCharLit(X[0]) >> ;", Head: "LexTerm", HeadIndex: NT_LexTerm, NumSymbols: 1, ReduceFunc: func(X []Attrib) (Attrib, error) { return ast.NewLexCharLit(X[0]) }, } pt[16] = &ProdTabUEntry{ String: "LexTerm : char_lit - char_lit << ast.NewLexCharRange(X[0], X[2]) >> ;", Head: "LexTerm", HeadIndex: NT_LexTerm, NumSymbols: 3, ReduceFunc: func(X []Attrib) (Attrib, error) { return ast.NewLexCharRange(X[0], X[2]) }, } pt[17] = &ProdTabUEntry{ String: "LexTerm : regDefId << ast.NewLexRegDefId(X[0]) >> ;", Head: "LexTerm", HeadIndex: NT_LexTerm, NumSymbols: 1, ReduceFunc: func(X []Attrib) (Attrib, error) { return ast.NewLexRegDefId(X[0]) }, } pt[18] = &ProdTabUEntry{ String: "LexTerm : [ LexPattern ] << ast.NewLexOptPattern(X[1]) >> ;", Head: "LexTerm", HeadIndex: NT_LexTerm, NumSymbols: 3, ReduceFunc: func(X []Attrib) (Attrib, error) { return ast.NewLexOptPattern(X[1]) }, } pt[19] = &ProdTabUEntry{ String: "LexTerm : { LexPattern } << ast.NewLexRepPattern(X[1]) >> ;", Head: "LexTerm", HeadIndex: NT_LexTerm, NumSymbols: 3, ReduceFunc: func(X []Attrib) (Attrib, error) { return ast.NewLexRepPattern(X[1]) }, } pt[20] = &ProdTabUEntry{ String: "LexTerm : ( LexPattern ) << ast.NewLexGroupPattern(X[1]) >> ;", Head: "LexTerm", HeadIndex: NT_LexTerm, NumSymbols: 3, ReduceFunc: func(X []Attrib) (Attrib, error) { return ast.NewLexGroupPattern(X[1]) }, } pt[21] = &ProdTabUEntry{ String: "SyntaxPart : FileHeader SyntaxProdList << ast.NewSyntaxPart(X[0], X[1]) >> ;", Head: "SyntaxPart", HeadIndex: NT_SyntaxPart, NumSymbols: 2, ReduceFunc: func(X []Attrib) (Attrib, error) { return ast.NewSyntaxPart(X[0], X[1]) }, } pt[22] = &ProdTabUEntry{ String: "SyntaxPart : SyntaxProdList << ast.NewSyntaxPart(nil, X[0]) >> ;", Head: "SyntaxPart", HeadIndex: NT_SyntaxPart, NumSymbols: 1, ReduceFunc: func(X []Attrib) (Attrib, error) { return ast.NewSyntaxPart(nil, X[0]) }, } pt[23] = &ProdTabUEntry{ String: "SyntaxProdList : SyntaxProduction << ast.NewSyntaxProdList(X[0]) >> ;", Head: "SyntaxProdList", HeadIndex: NT_SyntaxProdList, NumSymbols: 1, ReduceFunc: func(X []Attrib) (Attrib, error) { return ast.NewSyntaxProdList(X[0]) }, } pt[24] = &ProdTabUEntry{ String: "SyntaxProdList : SyntaxProdList SyntaxProduction << ast.AddSyntaxProds(X[0], X[1]) >> ;", Head: "SyntaxProdList", HeadIndex: NT_SyntaxProdList, NumSymbols: 2, ReduceFunc: func(X []Attrib) (Attrib, error) { return ast.AddSyntaxProds(X[0], X[1]) }, } pt[25] = &ProdTabUEntry{ String: "SyntaxProduction : prodId : Alternatives ; << ast.NewSyntaxProd(X[0], X[2]) >> ;", Head: "SyntaxProduction", HeadIndex: NT_SyntaxProduction, NumSymbols: 4, ReduceFunc: func(X []Attrib) (Attrib, error) { return ast.NewSyntaxProd(X[0], X[2]) }, } pt[26] = &ProdTabUEntry{ String: "Alternatives : SyntaxBody << ast.NewSyntaxAlts(X[0]) >> ;", Head: "Alternatives", HeadIndex: NT_Alternatives, NumSymbols: 1, ReduceFunc: func(X []Attrib) (Attrib, error) { return ast.NewSyntaxAlts(X[0]) }, } pt[27] = &ProdTabUEntry{ String: "Alternatives : Alternatives | SyntaxBody << ast.AddSyntaxAlt(X[0], X[2]) >> ;", Head: "Alternatives", HeadIndex: NT_Alternatives, NumSymbols: 3, ReduceFunc: func(X []Attrib) (Attrib, error) { return ast.AddSyntaxAlt(X[0], X[2]) }, } pt[28] = &ProdTabUEntry{ String: "SyntaxBody : Symbols << ast.NewSyntaxBody(X[0], nil) >> ;", Head: "SyntaxBody", HeadIndex: NT_SyntaxBody, NumSymbols: 1, ReduceFunc: func(X []Attrib) (Attrib, error) { return ast.NewSyntaxBody(X[0], nil) }, } pt[29] = &ProdTabUEntry{ String: "SyntaxBody : Symbols g_sdt_lit << ast.NewSyntaxBody(X[0], X[1]) >> ;", Head: "SyntaxBody", HeadIndex: NT_SyntaxBody, NumSymbols: 2, ReduceFunc: func(X []Attrib) (Attrib, error) { return ast.NewSyntaxBody(X[0], X[1]) }, } pt[30] = &ProdTabUEntry{ String: "SyntaxBody : error << ast.NewErrorBody(nil, nil) >> ;", Head: "SyntaxBody", HeadIndex: NT_SyntaxBody, NumSymbols: 1, ReduceFunc: func(X []Attrib) (Attrib, error) { return ast.NewErrorBody(nil, nil) }, } pt[31] = &ProdTabUEntry{ String: "SyntaxBody : error Symbols << ast.NewErrorBody(X[1], nil) >> ;", Head: "SyntaxBody", HeadIndex: NT_SyntaxBody, NumSymbols: 2, ReduceFunc: func(X []Attrib) (Attrib, error) { return ast.NewErrorBody(X[1], nil) }, } pt[32] = &ProdTabUEntry{ String: "SyntaxBody : error Symbols g_sdt_lit << ast.NewErrorBody(X[1], X[2]) >> ;", Head: "SyntaxBody", HeadIndex: NT_SyntaxBody, NumSymbols: 3, ReduceFunc: func(X []Attrib) (Attrib, error) { return ast.NewErrorBody(X[1], X[2]) }, } pt[33] = &ProdTabUEntry{ String: "SyntaxBody : empty << ast.NewEmptyBody() >> ;", Head: "SyntaxBody", HeadIndex: NT_SyntaxBody, NumSymbols: 1, ReduceFunc: func(X []Attrib) (Attrib, error) { return ast.NewEmptyBody() }, } pt[34] = &ProdTabUEntry{ String: "Symbols : Symbol << ast.NewSyntaxSymbols(X[0]) >> ;", Head: "Symbols", HeadIndex: NT_Symbols, NumSymbols: 1, ReduceFunc: func(X []Attrib) (Attrib, error) { return ast.NewSyntaxSymbols(X[0]) }, } pt[35] = &ProdTabUEntry{ String: "Symbols : Symbols Symbol << ast.AddSyntaxSymbol(X[0], X[1]) >> ;", Head: "Symbols", HeadIndex: NT_Symbols, NumSymbols: 2, ReduceFunc: func(X []Attrib) (Attrib, error) { return ast.AddSyntaxSymbol(X[0], X[1]) }, } pt[36] = &ProdTabUEntry{ String: "Symbol : prodId << ast.NewSyntaxProdId(X[0]) >> ;", Head: "Symbol", HeadIndex: NT_Symbol, NumSymbols: 1, ReduceFunc: func(X []Attrib) (Attrib, error) { return ast.NewSyntaxProdId(X[0]) }, } pt[37] = &ProdTabUEntry{ String: "Symbol : tokId << ast.NewTokId(X[0]) >> ;", Head: "Symbol", HeadIndex: NT_Symbol, NumSymbols: 1, ReduceFunc: func(X []Attrib) (Attrib, error) { return ast.NewTokId(X[0]) }, } pt[38] = &ProdTabUEntry{ String: "Symbol : string_lit << ast.NewStringLit(X[0]) >> ;", Head: "Symbol", HeadIndex: NT_Symbol, NumSymbols: 1, ReduceFunc: func(X []Attrib) (Attrib, error) { return ast.NewStringLit(X[0]) }, } pt[39] = &ProdTabUEntry{ String: "FileHeader : g_sdt_lit << ast.NewFileHeader(X[0]) >> ;", Head: "FileHeader", HeadIndex: NT_FileHeader, NumSymbols: 1, ReduceFunc: func(X []Attrib) (Attrib, error) { return ast.NewFileHeader(X[0]) }, } return }
// [11] ProdTabEntry{ "LexPattern : LexPattern | LexAlt << ast.AppendLexAlt(X[0], X[2]) >> ;", "LexPattern", 3, func(X []Attrib) (Attrib, error) { return ast.AppendLexAlt(X[0], X[2]) }, }, // [12] ProdTabEntry{ "LexAlt : LexTerm << ast.NewLexAlt(X[0]) >> ;", "LexAlt", 1, func(X []Attrib) (Attrib, error) { return ast.NewLexAlt(X[0]) }, }, // [13] ProdTabEntry{ "LexAlt : LexAlt LexTerm << ast.AppendLexTerm(X[0], X[1]) >> ;", "LexAlt", 2, func(X []Attrib) (Attrib, error) { return ast.AppendLexTerm(X[0], X[1]) }, }, // [14] ProdTabEntry{ "LexTerm : . << ast.LexDOT, nil >> ;", "LexTerm",