feat/schema: additional literal types
This commit is contained in:
@@ -93,20 +93,50 @@ var productionsTable = ProdTab{
|
||||
},
|
||||
},
|
||||
ProdTabEntry{
|
||||
String: `Val : number << ast.NewNumberVal(X[0].(*token.Token)) >>`,
|
||||
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.NewNumberVal(X[0].(*token.Token))
|
||||
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: 8,
|
||||
Index: 11,
|
||||
NumSymbols: 1,
|
||||
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
||||
return ast.NewNameVal(X[0].(*token.Token))
|
||||
@@ -116,7 +146,7 @@ var productionsTable = ProdTab{
|
||||
String: `Val : Expr << ast.NewExprVal(X[0]) >>`,
|
||||
Id: "Val",
|
||||
NTType: 4,
|
||||
Index: 9,
|
||||
Index: 12,
|
||||
NumSymbols: 1,
|
||||
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
||||
return ast.NewExprVal(X[0])
|
||||
@@ -126,7 +156,7 @@ var productionsTable = ProdTab{
|
||||
String: `Expr : "(" name Val Val ")" << ast.NewExpr(X[1].(*token.Token), X[2], X[3]) >>`,
|
||||
Id: "Expr",
|
||||
NTType: 5,
|
||||
Index: 10,
|
||||
Index: 13,
|
||||
NumSymbols: 5,
|
||||
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
||||
return ast.NewExpr(X[1].(*token.Token), X[2], X[3])
|
||||
@@ -136,7 +166,7 @@ var productionsTable = ProdTab{
|
||||
String: `Expr : "(" name Val ")" << ast.NewExpr(X[1].(*token.Token), X[2], nil) >>`,
|
||||
Id: "Expr",
|
||||
NTType: 5,
|
||||
Index: 11,
|
||||
Index: 14,
|
||||
NumSymbols: 4,
|
||||
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
||||
return ast.NewExpr(X[1].(*token.Token), X[2], nil)
|
||||
@@ -146,7 +176,7 @@ var productionsTable = ProdTab{
|
||||
String: `Expr : "(" name ")" << ast.NewExpr(X[1].(*token.Token), nil, nil) >>`,
|
||||
Id: "Expr",
|
||||
NTType: 5,
|
||||
Index: 12,
|
||||
Index: 15,
|
||||
NumSymbols: 3,
|
||||
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
||||
return ast.NewExpr(X[1].(*token.Token), nil, nil)
|
||||
@@ -156,7 +186,7 @@ var productionsTable = ProdTab{
|
||||
String: `Expr : "(" "." ValList ")" << ast.ListExpr(X[2]) >>`,
|
||||
Id: "Expr",
|
||||
NTType: 5,
|
||||
Index: 13,
|
||||
Index: 16,
|
||||
NumSymbols: 4,
|
||||
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
||||
return ast.ListExpr(X[2])
|
||||
|
||||
Reference in New Issue
Block a user