// Code generated by gocc; DO NOT EDIT. package parser import ( "azalea/schema/ast" "azalea/schema/token" ) type ( ProdTab [numProductions]ProdTabEntry ProdTabEntry struct { String string Id string NTType int Index int NumSymbols int ReduceFunc func([]Attrib, interface{}) (Attrib, error) } Attrib interface { } ) var productionsTable = ProdTab{ ProdTabEntry{ String: `S' : Schema << >>`, Id: "S'", NTType: 0, Index: 0, NumSymbols: 1, ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) { return X[0], nil }, }, ProdTabEntry{ String: `Schema : ExprList << >>`, Id: "Schema", NTType: 1, Index: 1, NumSymbols: 1, ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) { return X[0], nil }, }, ProdTabEntry{ String: `ExprList : Expr << ast.NewExprList(X[0]) >>`, Id: "ExprList", NTType: 2, Index: 2, NumSymbols: 1, ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) { return ast.NewExprList(X[0]) }, }, ProdTabEntry{ String: `ExprList : ExprList Expr << ast.AppendExpr(X[0], X[1]) >>`, Id: "ExprList", NTType: 2, Index: 3, NumSymbols: 2, ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) { return ast.AppendExpr(X[0], X[1]) }, }, ProdTabEntry{ String: `ValList : Val << ast.NewValList(X[0]) >>`, Id: "ValList", NTType: 3, Index: 4, NumSymbols: 1, ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) { return ast.NewValList(X[0]) }, }, ProdTabEntry{ String: `ValList : ValList Val << ast.AppendVal(X[0], X[1]) >>`, Id: "ValList", NTType: 3, Index: 5, NumSymbols: 2, ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) { return ast.AppendVal(X[0], X[1]) }, }, ProdTabEntry{ String: `Val : string << ast.NewStringVal(X[0].(*token.Token)) >>`, Id: "Val", NTType: 4, Index: 6, NumSymbols: 1, ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) { return ast.NewStringVal(X[0].(*token.Token)) }, }, ProdTabEntry{ String: `Val : rune << ast.NewRuneVal(X[0].(*token.Token)) >>`, Id: "Val", NTType: 4, Index: 7, NumSymbols: 1, ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) { return ast.NewRuneVal(X[0].(*token.Token)) }, }, ProdTabEntry{ String: `Val : int << ast.NewIntVal(X[0].(*token.Token)) >>`, Id: "Val", NTType: 4, Index: 8, NumSymbols: 1, ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) { return ast.NewIntVal(X[0].(*token.Token)) }, }, ProdTabEntry{ String: `Val : float << ast.NewFloatVal(X[0].(*token.Token)) >>`, Id: "Val", NTType: 4, Index: 9, NumSymbols: 1, ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) { return ast.NewFloatVal(X[0].(*token.Token)) }, }, ProdTabEntry{ String: `Val : imaginary << ast.NewComplexVal(X[0].(*token.Token)) >>`, Id: "Val", NTType: 4, Index: 10, NumSymbols: 1, ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) { return ast.NewComplexVal(X[0].(*token.Token)) }, }, ProdTabEntry{ String: `Val : name << ast.NewNameVal(X[0].(*token.Token)) >>`, Id: "Val", NTType: 4, Index: 11, NumSymbols: 1, ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) { return ast.NewNameVal(X[0].(*token.Token)) }, }, ProdTabEntry{ String: `Val : Expr << ast.NewExprVal(X[0]) >>`, Id: "Val", NTType: 4, Index: 12, NumSymbols: 1, ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) { return ast.NewExprVal(X[0]) }, }, ProdTabEntry{ String: `Expr : "(" name Val Val ")" << ast.NewExpr(X[1].(*token.Token), X[2], X[3]) >>`, Id: "Expr", NTType: 5, Index: 13, NumSymbols: 5, ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) { return ast.NewExpr(X[1].(*token.Token), X[2], X[3]) }, }, ProdTabEntry{ String: `Expr : "(" name Val ")" << ast.NewExpr(X[1].(*token.Token), X[2], nil) >>`, Id: "Expr", NTType: 5, Index: 14, NumSymbols: 4, ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) { return ast.NewExpr(X[1].(*token.Token), X[2], nil) }, }, ProdTabEntry{ String: `Expr : "(" name ")" << ast.NewExpr(X[1].(*token.Token), nil, nil) >>`, Id: "Expr", NTType: 5, Index: 15, NumSymbols: 3, ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) { return ast.NewExpr(X[1].(*token.Token), nil, nil) }, }, ProdTabEntry{ String: `Expr : "(" "." ValList ")" << ast.ListExpr(X[2]) >>`, Id: "Expr", NTType: 5, Index: 16, NumSymbols: 4, ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) { return ast.ListExpr(X[2]) }, }, }