mirror of
https://github.com/johnkerl/miller.git
synced 2026-07-22 23:48:30 +00:00
* Update package version * Update makefile targets * Update readme packages * Remaining old packages via rg/sd
4478 lines
128 KiB
Go
4478 lines
128 KiB
Go
// Code generated by gocc; DO NOT EDIT.
|
|
|
|
package parser
|
|
|
|
import "github.com/johnkerl/miller/v6/pkg/dsl"
|
|
|
|
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' : Root << >>`,
|
|
Id: "S'",
|
|
NTType: 0,
|
|
Index: 0,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return X[0], nil
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `Root : StatementBlock << dsl.NewAST(X[0]) >>`,
|
|
Id: "Root",
|
|
NTType: 1,
|
|
Index: 1,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewAST(X[0])
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `StatementBlock : empty << dsl.NewASTNodeZary(nil, dsl.NodeTypeStatementBlock) >>`,
|
|
Id: "StatementBlock",
|
|
NTType: 2,
|
|
Index: 2,
|
|
NumSymbols: 0,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeZary(nil, dsl.NodeTypeStatementBlock)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `StatementBlock : NonEmptyStatementBlock << dsl.Wrap(X[0]) >>`,
|
|
Id: "StatementBlock",
|
|
NTType: 2,
|
|
Index: 3,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.Wrap(X[0])
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `NonEmptyStatementBlock : BracelessStatement << dsl.NewASTNodeUnary(nil, X[0], dsl.NodeTypeStatementBlock) >>`,
|
|
Id: "NonEmptyStatementBlock",
|
|
NTType: 3,
|
|
Index: 4,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeUnary(nil, X[0], dsl.NodeTypeStatementBlock)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `NonEmptyStatementBlock : BracefulStatement << dsl.NewASTNodeUnary(nil, X[0], dsl.NodeTypeStatementBlock) >>`,
|
|
Id: "NonEmptyStatementBlock",
|
|
NTType: 3,
|
|
Index: 5,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeUnary(nil, X[0], dsl.NodeTypeStatementBlock)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `NonEmptyStatementBlock : ";" StatementBlock << dsl.Wrap(X[1]) >>`,
|
|
Id: "NonEmptyStatementBlock",
|
|
NTType: 3,
|
|
Index: 6,
|
|
NumSymbols: 2,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.Wrap(X[1])
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `NonEmptyStatementBlock : BracelessStatement ";" StatementBlock << dsl.PrependChild(X[2], X[0]) >>`,
|
|
Id: "NonEmptyStatementBlock",
|
|
NTType: 3,
|
|
Index: 7,
|
|
NumSymbols: 3,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.PrependChild(X[2], X[0])
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `NonEmptyStatementBlock : BracefulStatement ";" StatementBlock << dsl.PrependChild(X[2], X[0]) >>`,
|
|
Id: "NonEmptyStatementBlock",
|
|
NTType: 3,
|
|
Index: 8,
|
|
NumSymbols: 3,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.PrependChild(X[2], X[0])
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `NonEmptyStatementBlock : BracefulStatement BracefulStatement StatementBlock << dsl.PrependTwoChildren(X[2], X[0], X[1]) >>`,
|
|
Id: "NonEmptyStatementBlock",
|
|
NTType: 3,
|
|
Index: 9,
|
|
NumSymbols: 3,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.PrependTwoChildren(X[2], X[0], X[1])
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `NonEmptyStatementBlock : BracefulStatement BracelessStatement << dsl.NewASTNodeBinary(nil, X[0], X[1], dsl.NodeTypeStatementBlock) >>`,
|
|
Id: "NonEmptyStatementBlock",
|
|
NTType: 3,
|
|
Index: 10,
|
|
NumSymbols: 2,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeBinary(nil, X[0], X[1], dsl.NodeTypeStatementBlock)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `NonEmptyStatementBlock : BracefulStatement BracelessStatement ";" << dsl.NewASTNodeBinary(nil, X[0], X[1], dsl.NodeTypeStatementBlock) >>`,
|
|
Id: "NonEmptyStatementBlock",
|
|
NTType: 3,
|
|
Index: 11,
|
|
NumSymbols: 3,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeBinary(nil, X[0], X[1], dsl.NodeTypeStatementBlock)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `NonEmptyStatementBlock : BracefulStatement BracelessStatement ";" NonEmptyStatementBlock << dsl.PrependTwoChildren(X[3], X[0], X[1]) >>`,
|
|
Id: "NonEmptyStatementBlock",
|
|
NTType: 3,
|
|
Index: 12,
|
|
NumSymbols: 4,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.PrependTwoChildren(X[3], X[0], X[1])
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `StatementBlockInBraces : "{" StatementBlock "}" << dsl.Wrap(X[1]) >>`,
|
|
Id: "StatementBlockInBraces",
|
|
NTType: 4,
|
|
Index: 13,
|
|
NumSymbols: 3,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.Wrap(X[1])
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `BracelessStatement : Assignment << >>`,
|
|
Id: "BracelessStatement",
|
|
NTType: 5,
|
|
Index: 14,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return X[0], nil
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `BracelessStatement : Unset << >>`,
|
|
Id: "BracelessStatement",
|
|
NTType: 5,
|
|
Index: 15,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return X[0], nil
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `BracelessStatement : BareBoolean << >>`,
|
|
Id: "BracelessStatement",
|
|
NTType: 5,
|
|
Index: 16,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return X[0], nil
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `BracelessStatement : FilterStatement << >>`,
|
|
Id: "BracelessStatement",
|
|
NTType: 5,
|
|
Index: 17,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return X[0], nil
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `BracelessStatement : PrintStatement << >>`,
|
|
Id: "BracelessStatement",
|
|
NTType: 5,
|
|
Index: 18,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return X[0], nil
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `BracelessStatement : PrintnStatement << >>`,
|
|
Id: "BracelessStatement",
|
|
NTType: 5,
|
|
Index: 19,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return X[0], nil
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `BracelessStatement : EprintStatement << >>`,
|
|
Id: "BracelessStatement",
|
|
NTType: 5,
|
|
Index: 20,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return X[0], nil
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `BracelessStatement : EprintnStatement << >>`,
|
|
Id: "BracelessStatement",
|
|
NTType: 5,
|
|
Index: 21,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return X[0], nil
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `BracelessStatement : DumpStatement << >>`,
|
|
Id: "BracelessStatement",
|
|
NTType: 5,
|
|
Index: 22,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return X[0], nil
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `BracelessStatement : EdumpStatement << >>`,
|
|
Id: "BracelessStatement",
|
|
NTType: 5,
|
|
Index: 23,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return X[0], nil
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `BracelessStatement : TeeStatement << >>`,
|
|
Id: "BracelessStatement",
|
|
NTType: 5,
|
|
Index: 24,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return X[0], nil
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `BracelessStatement : Emit1Statement << >>`,
|
|
Id: "BracelessStatement",
|
|
NTType: 5,
|
|
Index: 25,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return X[0], nil
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `BracelessStatement : EmitStatement << >>`,
|
|
Id: "BracelessStatement",
|
|
NTType: 5,
|
|
Index: 26,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return X[0], nil
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `BracelessStatement : EmitPStatement << >>`,
|
|
Id: "BracelessStatement",
|
|
NTType: 5,
|
|
Index: 27,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return X[0], nil
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `BracelessStatement : EmitFStatement << >>`,
|
|
Id: "BracelessStatement",
|
|
NTType: 5,
|
|
Index: 28,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return X[0], nil
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `BracelessStatement : DoWhileLoop << >>`,
|
|
Id: "BracelessStatement",
|
|
NTType: 5,
|
|
Index: 29,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return X[0], nil
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `BracelessStatement : BreakStatement << >>`,
|
|
Id: "BracelessStatement",
|
|
NTType: 5,
|
|
Index: 30,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return X[0], nil
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `BracelessStatement : ContinueStatement << >>`,
|
|
Id: "BracelessStatement",
|
|
NTType: 5,
|
|
Index: 31,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return X[0], nil
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `BracelessStatement : ReturnStatement << >>`,
|
|
Id: "BracelessStatement",
|
|
NTType: 5,
|
|
Index: 32,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return X[0], nil
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `BracelessStatement : SubroutineCallsite << >>`,
|
|
Id: "BracelessStatement",
|
|
NTType: 5,
|
|
Index: 33,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return X[0], nil
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `Assignment : Lvalue "=" Rvalue << dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeAssignment) >>`,
|
|
Id: "Assignment",
|
|
NTType: 6,
|
|
Index: 34,
|
|
NumSymbols: 3,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeAssignment)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `Unset : unset FcnArgs << dsl.AdoptChildren(
|
|
dsl.NewASTNodeNestable(
|
|
X[0],
|
|
dsl.NodeTypeUnset,
|
|
),
|
|
X[1],
|
|
) >>`,
|
|
Id: "Unset",
|
|
NTType: 7,
|
|
Index: 35,
|
|
NumSymbols: 2,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.AdoptChildren(
|
|
dsl.NewASTNodeNestable(
|
|
X[0],
|
|
dsl.NodeTypeUnset,
|
|
),
|
|
X[1],
|
|
)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `Lvalue : Rvalue << >>`,
|
|
Id: "Lvalue",
|
|
NTType: 8,
|
|
Index: 36,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return X[0], nil
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `Lvalue : Typedecl LocalVariable << dsl.AppendChild(X[1], X[0]) >>`,
|
|
Id: "Lvalue",
|
|
NTType: 8,
|
|
Index: 37,
|
|
NumSymbols: 2,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.AppendChild(X[1], X[0])
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `BareBoolean : Rvalue << dsl.NewASTNodeUnary(nil, X[0], dsl.NodeTypeBareBoolean) >>`,
|
|
Id: "BareBoolean",
|
|
NTType: 9,
|
|
Index: 38,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeUnary(nil, X[0], dsl.NodeTypeBareBoolean)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `FilterStatement : filter Rvalue << dsl.NewASTNodeUnary(X[0], X[1], dsl.NodeTypeFilterStatement) >>`,
|
|
Id: "FilterStatement",
|
|
NTType: 10,
|
|
Index: 39,
|
|
NumSymbols: 2,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeUnary(X[0], X[1], dsl.NodeTypeFilterStatement)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `Redirector : ">" RedirectTarget << dsl.NewASTNodeUnary(X[0], X[1], dsl.NodeTypeRedirectWrite) >>`,
|
|
Id: "Redirector",
|
|
NTType: 11,
|
|
Index: 40,
|
|
NumSymbols: 2,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeUnary(X[0], X[1], dsl.NodeTypeRedirectWrite)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `Redirector : ">>" RedirectTarget << dsl.NewASTNodeUnary(X[0], X[1], dsl.NodeTypeRedirectAppend) >>`,
|
|
Id: "Redirector",
|
|
NTType: 11,
|
|
Index: 41,
|
|
NumSymbols: 2,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeUnary(X[0], X[1], dsl.NodeTypeRedirectAppend)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `Redirector : "|" RedirectTarget << dsl.NewASTNodeUnary(X[0], X[1], dsl.NodeTypeRedirectPipe) >>`,
|
|
Id: "Redirector",
|
|
NTType: 11,
|
|
Index: 42,
|
|
NumSymbols: 2,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeUnary(X[0], X[1], dsl.NodeTypeRedirectPipe)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `RedirectTarget : stdout << dsl.NewASTNodeZary(X[0], dsl.NodeTypeRedirectTargetStdout) >>`,
|
|
Id: "RedirectTarget",
|
|
NTType: 12,
|
|
Index: 43,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeZary(X[0], dsl.NodeTypeRedirectTargetStdout)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `RedirectTarget : stderr << dsl.NewASTNodeZary(X[0], dsl.NodeTypeRedirectTargetStderr) >>`,
|
|
Id: "RedirectTarget",
|
|
NTType: 12,
|
|
Index: 44,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeZary(X[0], dsl.NodeTypeRedirectTargetStderr)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `RedirectTarget : Rvalue << >>`,
|
|
Id: "RedirectTarget",
|
|
NTType: 12,
|
|
Index: 45,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return X[0], nil
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `PrintStatement : print << dsl.NewASTNodeBinary(
|
|
X[0], // print
|
|
dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no printable
|
|
dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no redirect
|
|
dsl.NodeTypePrintStatement,
|
|
) >>`,
|
|
Id: "PrintStatement",
|
|
NTType: 13,
|
|
Index: 46,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeBinary(
|
|
X[0], // print
|
|
dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no printable
|
|
dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no redirect
|
|
dsl.NodeTypePrintStatement,
|
|
)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `PrintStatement : print Redirector << dsl.NewASTNodeBinary(
|
|
X[0], // print
|
|
dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no printable
|
|
X[1], // redirect
|
|
dsl.NodeTypePrintStatement,
|
|
) >>`,
|
|
Id: "PrintStatement",
|
|
NTType: 13,
|
|
Index: 47,
|
|
NumSymbols: 2,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeBinary(
|
|
X[0], // print
|
|
dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no printable
|
|
X[1], // redirect
|
|
dsl.NodeTypePrintStatement,
|
|
)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `PrintStatement : print FcnArgs << dsl.NewASTNodeBinary(
|
|
X[0], // print
|
|
X[1], // printables
|
|
dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no redirect
|
|
dsl.NodeTypePrintStatement,
|
|
) >>`,
|
|
Id: "PrintStatement",
|
|
NTType: 13,
|
|
Index: 48,
|
|
NumSymbols: 2,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeBinary(
|
|
X[0], // print
|
|
X[1], // printables
|
|
dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no redirect
|
|
dsl.NodeTypePrintStatement,
|
|
)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `PrintStatement : print Redirector "," FcnArgs << dsl.NewASTNodeBinary(
|
|
X[0], // print
|
|
X[3], // printables
|
|
X[1], // redirect
|
|
dsl.NodeTypePrintStatement,
|
|
) >>`,
|
|
Id: "PrintStatement",
|
|
NTType: 13,
|
|
Index: 49,
|
|
NumSymbols: 4,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeBinary(
|
|
X[0], // print
|
|
X[3], // printables
|
|
X[1], // redirect
|
|
dsl.NodeTypePrintStatement,
|
|
)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `PrintnStatement : printn << dsl.NewASTNodeBinary(
|
|
X[0], // printn
|
|
dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no printable
|
|
dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no redirect
|
|
dsl.NodeTypePrintnStatement,
|
|
) >>`,
|
|
Id: "PrintnStatement",
|
|
NTType: 14,
|
|
Index: 50,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeBinary(
|
|
X[0], // printn
|
|
dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no printable
|
|
dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no redirect
|
|
dsl.NodeTypePrintnStatement,
|
|
)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `PrintnStatement : printn Redirector << dsl.NewASTNodeBinary(
|
|
X[0], // printn
|
|
dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no printable
|
|
X[1], // redirect
|
|
dsl.NodeTypePrintnStatement,
|
|
) >>`,
|
|
Id: "PrintnStatement",
|
|
NTType: 14,
|
|
Index: 51,
|
|
NumSymbols: 2,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeBinary(
|
|
X[0], // printn
|
|
dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no printable
|
|
X[1], // redirect
|
|
dsl.NodeTypePrintnStatement,
|
|
)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `PrintnStatement : printn FcnArgs << dsl.NewASTNodeBinary(
|
|
X[0], // printn
|
|
X[1], // printables
|
|
dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no redirect
|
|
dsl.NodeTypePrintnStatement,
|
|
) >>`,
|
|
Id: "PrintnStatement",
|
|
NTType: 14,
|
|
Index: 52,
|
|
NumSymbols: 2,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeBinary(
|
|
X[0], // printn
|
|
X[1], // printables
|
|
dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no redirect
|
|
dsl.NodeTypePrintnStatement,
|
|
)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `PrintnStatement : printn Redirector "," FcnArgs << dsl.NewASTNodeBinary(
|
|
X[0], // printn
|
|
X[3], // printables
|
|
X[1], // redirect
|
|
dsl.NodeTypePrintnStatement,
|
|
) >>`,
|
|
Id: "PrintnStatement",
|
|
NTType: 14,
|
|
Index: 53,
|
|
NumSymbols: 4,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeBinary(
|
|
X[0], // printn
|
|
X[3], // printables
|
|
X[1], // redirect
|
|
dsl.NodeTypePrintnStatement,
|
|
)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `EprintStatement : eprint << dsl.NewASTNodeBinary(
|
|
X[0], // eprint
|
|
dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no printables
|
|
dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no redirect
|
|
dsl.NodeTypeEprintStatement,
|
|
) >>`,
|
|
Id: "EprintStatement",
|
|
NTType: 15,
|
|
Index: 54,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeBinary(
|
|
X[0], // eprint
|
|
dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no printables
|
|
dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no redirect
|
|
dsl.NodeTypeEprintStatement,
|
|
)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `EprintStatement : eprint FcnArgs << dsl.NewASTNodeBinary(
|
|
X[0], // eprint
|
|
X[1], // printables
|
|
dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no redirect
|
|
dsl.NodeTypeEprintStatement,
|
|
) >>`,
|
|
Id: "EprintStatement",
|
|
NTType: 15,
|
|
Index: 55,
|
|
NumSymbols: 2,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeBinary(
|
|
X[0], // eprint
|
|
X[1], // printables
|
|
dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no redirect
|
|
dsl.NodeTypeEprintStatement,
|
|
)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `EprintnStatement : eprintn << dsl.NewASTNodeBinary(
|
|
X[0], // eprint
|
|
dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no printables
|
|
dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no redirect
|
|
dsl.NodeTypeEprintnStatement,
|
|
) >>`,
|
|
Id: "EprintnStatement",
|
|
NTType: 16,
|
|
Index: 56,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeBinary(
|
|
X[0], // eprint
|
|
dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no printables
|
|
dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no redirect
|
|
dsl.NodeTypeEprintnStatement,
|
|
)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `EprintnStatement : eprintn FcnArgs << dsl.NewASTNodeBinary(
|
|
X[0], // eprintn
|
|
X[1], // printables
|
|
dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no redirect
|
|
dsl.NodeTypeEprintnStatement,
|
|
) >>`,
|
|
Id: "EprintnStatement",
|
|
NTType: 16,
|
|
Index: 57,
|
|
NumSymbols: 2,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeBinary(
|
|
X[0], // eprintn
|
|
X[1], // printables
|
|
dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no redirect
|
|
dsl.NodeTypeEprintnStatement,
|
|
)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `DumpStatement : dump << dsl.NewASTNodeBinary(
|
|
X[0], // dump
|
|
dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no dumpable
|
|
dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no redirect
|
|
dsl.NodeTypeDumpStatement,
|
|
) >>`,
|
|
Id: "DumpStatement",
|
|
NTType: 17,
|
|
Index: 58,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeBinary(
|
|
X[0], // dump
|
|
dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no dumpable
|
|
dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no redirect
|
|
dsl.NodeTypeDumpStatement,
|
|
)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `DumpStatement : dump Redirector << dsl.NewASTNodeBinary(
|
|
X[0], // dump
|
|
dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no dumpable
|
|
X[1], // redirect
|
|
dsl.NodeTypeDumpStatement,
|
|
) >>`,
|
|
Id: "DumpStatement",
|
|
NTType: 17,
|
|
Index: 59,
|
|
NumSymbols: 2,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeBinary(
|
|
X[0], // dump
|
|
dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no dumpable
|
|
X[1], // redirect
|
|
dsl.NodeTypeDumpStatement,
|
|
)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `DumpStatement : dump FcnArgs << dsl.NewASTNodeBinary(
|
|
X[0], // dump
|
|
X[1], // printables
|
|
dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no redirect
|
|
dsl.NodeTypeDumpStatement,
|
|
) >>`,
|
|
Id: "DumpStatement",
|
|
NTType: 17,
|
|
Index: 60,
|
|
NumSymbols: 2,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeBinary(
|
|
X[0], // dump
|
|
X[1], // printables
|
|
dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no redirect
|
|
dsl.NodeTypeDumpStatement,
|
|
)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `DumpStatement : dump Redirector "," FcnArgs << dsl.NewASTNodeBinary(
|
|
X[0], // dump
|
|
X[3], // printables
|
|
X[1], // redirect
|
|
dsl.NodeTypeDumpStatement,
|
|
) >>`,
|
|
Id: "DumpStatement",
|
|
NTType: 17,
|
|
Index: 61,
|
|
NumSymbols: 4,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeBinary(
|
|
X[0], // dump
|
|
X[3], // printables
|
|
X[1], // redirect
|
|
dsl.NodeTypeDumpStatement,
|
|
)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `EdumpStatement : edump << dsl.NewASTNodeBinary(
|
|
X[0], // edump
|
|
dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no dumpable
|
|
dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no redirect
|
|
dsl.NodeTypeEdumpStatement,
|
|
) >>`,
|
|
Id: "EdumpStatement",
|
|
NTType: 18,
|
|
Index: 62,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeBinary(
|
|
X[0], // edump
|
|
dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no dumpable
|
|
dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no redirect
|
|
dsl.NodeTypeEdumpStatement,
|
|
)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `EdumpStatement : edump FcnArgs << dsl.NewASTNodeBinary(
|
|
X[0], // edump
|
|
X[1], // printables
|
|
dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no redirect
|
|
dsl.NodeTypeEdumpStatement,
|
|
) >>`,
|
|
Id: "EdumpStatement",
|
|
NTType: 18,
|
|
Index: 63,
|
|
NumSymbols: 2,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeBinary(
|
|
X[0], // edump
|
|
X[1], // printables
|
|
dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no redirect
|
|
dsl.NodeTypeEdumpStatement,
|
|
)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `TeeStatement : tee Redirector "," FullSrec << dsl.NewASTNodeBinary(X[0], X[3], X[1], dsl.NodeTypeTeeStatement) >>`,
|
|
Id: "TeeStatement",
|
|
NTType: 19,
|
|
Index: 64,
|
|
NumSymbols: 4,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeBinary(X[0], X[3], X[1], dsl.NodeTypeTeeStatement)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `EmitFStatement : emitf EmittableList << dsl.NewASTNodeBinary(
|
|
X[0], // emitf
|
|
X[1], // emittables
|
|
dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no redirect
|
|
dsl.NodeTypeEmitFStatement,
|
|
) >>`,
|
|
Id: "EmitFStatement",
|
|
NTType: 20,
|
|
Index: 65,
|
|
NumSymbols: 2,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeBinary(
|
|
X[0], // emitf
|
|
X[1], // emittables
|
|
dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no redirect
|
|
dsl.NodeTypeEmitFStatement,
|
|
)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `EmitFStatement : emitf Redirector "," EmittableList << dsl.NewASTNodeBinary(
|
|
X[0], // emitf
|
|
X[3], // emittables
|
|
X[1], // redirect
|
|
dsl.NodeTypeEmitFStatement,
|
|
) >>`,
|
|
Id: "EmitFStatement",
|
|
NTType: 20,
|
|
Index: 66,
|
|
NumSymbols: 4,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeBinary(
|
|
X[0], // emitf
|
|
X[3], // emittables
|
|
X[1], // redirect
|
|
dsl.NodeTypeEmitFStatement,
|
|
)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `Emit1Statement : emit1 Rvalue << dsl.NewASTNodeUnary(
|
|
X[0], // emit
|
|
X[1], // Emittable
|
|
dsl.NodeTypeEmit1Statement,
|
|
) >>`,
|
|
Id: "Emit1Statement",
|
|
NTType: 21,
|
|
Index: 67,
|
|
NumSymbols: 2,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeUnary(
|
|
X[0], // emit
|
|
X[1], // Emittable
|
|
dsl.NodeTypeEmit1Statement,
|
|
)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `EmitStatement : emit EmittableAsList << dsl.NewASTNodeTernary(
|
|
X[0], // emit
|
|
X[1], // Emittable
|
|
dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no keys
|
|
dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no redirect
|
|
dsl.NodeTypeEmitStatement,
|
|
) >>`,
|
|
Id: "EmitStatement",
|
|
NTType: 22,
|
|
Index: 68,
|
|
NumSymbols: 2,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeTernary(
|
|
X[0], // emit
|
|
X[1], // Emittable
|
|
dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no keys
|
|
dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no redirect
|
|
dsl.NodeTypeEmitStatement,
|
|
)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `EmitStatement : emit Redirector "," EmittableAsList << dsl.NewASTNodeTernary(
|
|
X[0], // emit
|
|
X[3], // Emittable
|
|
dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no keys
|
|
X[1], // redirect
|
|
dsl.NodeTypeEmitStatement,
|
|
) >>`,
|
|
Id: "EmitStatement",
|
|
NTType: 22,
|
|
Index: 69,
|
|
NumSymbols: 4,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeTernary(
|
|
X[0], // emit
|
|
X[3], // Emittable
|
|
dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no keys
|
|
X[1], // redirect
|
|
dsl.NodeTypeEmitStatement,
|
|
)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `EmitStatement : emit "(" EmittableList ")" << dsl.NewASTNodeTernary(
|
|
X[0], // emit
|
|
X[2], // emittables
|
|
dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no keys
|
|
dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no redirect
|
|
dsl.NodeTypeEmitStatement,
|
|
) >>`,
|
|
Id: "EmitStatement",
|
|
NTType: 22,
|
|
Index: 70,
|
|
NumSymbols: 4,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeTernary(
|
|
X[0], // emit
|
|
X[2], // emittables
|
|
dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no keys
|
|
dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no redirect
|
|
dsl.NodeTypeEmitStatement,
|
|
)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `EmitStatement : emit Redirector "," "(" EmittableList ")" << dsl.NewASTNodeTernary(
|
|
X[0], // emit
|
|
X[4], // emittables
|
|
dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no keys
|
|
X[1], // redirect
|
|
dsl.NodeTypeEmitStatement,
|
|
) >>`,
|
|
Id: "EmitStatement",
|
|
NTType: 22,
|
|
Index: 71,
|
|
NumSymbols: 6,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeTernary(
|
|
X[0], // emit
|
|
X[4], // emittables
|
|
dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no keys
|
|
X[1], // redirect
|
|
dsl.NodeTypeEmitStatement,
|
|
)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `EmitStatement : emit EmittableAsList "," EmitKeys << dsl.NewASTNodeTernary(
|
|
X[0], // emit
|
|
X[1], // emittable
|
|
X[3], // keys
|
|
dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no redirect
|
|
dsl.NodeTypeEmitStatement,
|
|
) >>`,
|
|
Id: "EmitStatement",
|
|
NTType: 22,
|
|
Index: 72,
|
|
NumSymbols: 4,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeTernary(
|
|
X[0], // emit
|
|
X[1], // emittable
|
|
X[3], // keys
|
|
dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no redirect
|
|
dsl.NodeTypeEmitStatement,
|
|
)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `EmitStatement : emit Redirector "," EmittableAsList "," EmitKeys << dsl.NewASTNodeTernary(
|
|
X[0], // emit
|
|
X[3], // emittable
|
|
X[5], // keys
|
|
X[1], // redirect
|
|
dsl.NodeTypeEmitStatement,
|
|
) >>`,
|
|
Id: "EmitStatement",
|
|
NTType: 22,
|
|
Index: 73,
|
|
NumSymbols: 6,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeTernary(
|
|
X[0], // emit
|
|
X[3], // emittable
|
|
X[5], // keys
|
|
X[1], // redirect
|
|
dsl.NodeTypeEmitStatement,
|
|
)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `EmitStatement : emit "(" EmittableList ")" "," EmitKeys << dsl.NewASTNodeTernary(
|
|
X[0], // emit
|
|
X[2], // emittable
|
|
X[5], // keys
|
|
dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no redirect
|
|
dsl.NodeTypeEmitStatement,
|
|
) >>`,
|
|
Id: "EmitStatement",
|
|
NTType: 22,
|
|
Index: 74,
|
|
NumSymbols: 6,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeTernary(
|
|
X[0], // emit
|
|
X[2], // emittable
|
|
X[5], // keys
|
|
dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no redirect
|
|
dsl.NodeTypeEmitStatement,
|
|
)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `EmitStatement : emit Redirector "," "(" EmittableList ")" "," EmitKeys << dsl.NewASTNodeTernary(
|
|
X[0], // emit
|
|
X[4], // emittables
|
|
X[7], // keys
|
|
X[1], // redirect
|
|
dsl.NodeTypeEmitStatement,
|
|
) >>`,
|
|
Id: "EmitStatement",
|
|
NTType: 22,
|
|
Index: 75,
|
|
NumSymbols: 8,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeTernary(
|
|
X[0], // emit
|
|
X[4], // emittables
|
|
X[7], // keys
|
|
X[1], // redirect
|
|
dsl.NodeTypeEmitStatement,
|
|
)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `EmitPStatement : emitp EmittableAsList << dsl.NewASTNodeTernary(
|
|
X[0], // emitp
|
|
X[1], // emittable
|
|
dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no keys
|
|
dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no redirect
|
|
dsl.NodeTypeEmitPStatement,
|
|
) >>`,
|
|
Id: "EmitPStatement",
|
|
NTType: 23,
|
|
Index: 76,
|
|
NumSymbols: 2,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeTernary(
|
|
X[0], // emitp
|
|
X[1], // emittable
|
|
dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no keys
|
|
dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no redirect
|
|
dsl.NodeTypeEmitPStatement,
|
|
)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `EmitPStatement : emitp Redirector "," EmittableAsList << dsl.NewASTNodeTernary(
|
|
X[0], // emitp
|
|
X[3], // emittable
|
|
dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no keys
|
|
X[1], // redirect
|
|
dsl.NodeTypeEmitPStatement,
|
|
) >>`,
|
|
Id: "EmitPStatement",
|
|
NTType: 23,
|
|
Index: 77,
|
|
NumSymbols: 4,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeTernary(
|
|
X[0], // emitp
|
|
X[3], // emittable
|
|
dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no keys
|
|
X[1], // redirect
|
|
dsl.NodeTypeEmitPStatement,
|
|
)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `EmitPStatement : emitp "(" EmittableList ")" << dsl.NewASTNodeTernary(
|
|
X[0], // emitp
|
|
X[2], // emittables
|
|
dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no keys
|
|
dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no redirect
|
|
dsl.NodeTypeEmitPStatement,
|
|
) >>`,
|
|
Id: "EmitPStatement",
|
|
NTType: 23,
|
|
Index: 78,
|
|
NumSymbols: 4,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeTernary(
|
|
X[0], // emitp
|
|
X[2], // emittables
|
|
dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no keys
|
|
dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no redirect
|
|
dsl.NodeTypeEmitPStatement,
|
|
)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `EmitPStatement : emitp Redirector "," "(" EmittableList ")" << dsl.NewASTNodeTernary(
|
|
X[0], // emitp
|
|
X[4], // emittables
|
|
dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no keys
|
|
X[1], // redirect
|
|
dsl.NodeTypeEmitPStatement,
|
|
) >>`,
|
|
Id: "EmitPStatement",
|
|
NTType: 23,
|
|
Index: 79,
|
|
NumSymbols: 6,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeTernary(
|
|
X[0], // emitp
|
|
X[4], // emittables
|
|
dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no keys
|
|
X[1], // redirect
|
|
dsl.NodeTypeEmitPStatement,
|
|
)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `EmitPStatement : emitp EmittableAsList "," EmitKeys << dsl.NewASTNodeTernary(
|
|
X[0], // emitp
|
|
X[1], // emittable
|
|
X[3], // keys
|
|
dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no redirect
|
|
dsl.NodeTypeEmitPStatement,
|
|
) >>`,
|
|
Id: "EmitPStatement",
|
|
NTType: 23,
|
|
Index: 80,
|
|
NumSymbols: 4,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeTernary(
|
|
X[0], // emitp
|
|
X[1], // emittable
|
|
X[3], // keys
|
|
dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no redirect
|
|
dsl.NodeTypeEmitPStatement,
|
|
)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `EmitPStatement : emitp Redirector "," EmittableAsList "," EmitKeys << dsl.NewASTNodeTernary(
|
|
X[0], // emitp
|
|
X[3], // emittable
|
|
X[5], // keys
|
|
X[1], // redirect
|
|
dsl.NodeTypeEmitPStatement,
|
|
) >>`,
|
|
Id: "EmitPStatement",
|
|
NTType: 23,
|
|
Index: 81,
|
|
NumSymbols: 6,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeTernary(
|
|
X[0], // emitp
|
|
X[3], // emittable
|
|
X[5], // keys
|
|
X[1], // redirect
|
|
dsl.NodeTypeEmitPStatement,
|
|
)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `EmitPStatement : emitp "(" EmittableList ")" "," EmitKeys << dsl.NewASTNodeTernary(
|
|
X[0], // emitp
|
|
X[2], // emittable
|
|
X[5], // keys
|
|
dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no redirect
|
|
dsl.NodeTypeEmitPStatement,
|
|
) >>`,
|
|
Id: "EmitPStatement",
|
|
NTType: 23,
|
|
Index: 82,
|
|
NumSymbols: 6,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeTernary(
|
|
X[0], // emitp
|
|
X[2], // emittable
|
|
X[5], // keys
|
|
dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no redirect
|
|
dsl.NodeTypeEmitPStatement,
|
|
)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `EmitPStatement : emitp Redirector "," "(" EmittableList ")" "," EmitKeys << dsl.NewASTNodeTernary(
|
|
X[0], // emitp
|
|
X[4], // emittable
|
|
X[7], // keys
|
|
X[1], // redirect
|
|
dsl.NodeTypeEmitPStatement,
|
|
) >>`,
|
|
Id: "EmitPStatement",
|
|
NTType: 23,
|
|
Index: 83,
|
|
NumSymbols: 8,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeTernary(
|
|
X[0], // emitp
|
|
X[4], // emittable
|
|
X[7], // keys
|
|
X[1], // redirect
|
|
dsl.NodeTypeEmitPStatement,
|
|
)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `EmittableList : Emittable << dsl.NewASTNodeUnary(
|
|
nil,
|
|
X[0],
|
|
dsl.NodeTypeEmittableList,
|
|
) >>`,
|
|
Id: "EmittableList",
|
|
NTType: 24,
|
|
Index: 84,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeUnary(
|
|
nil,
|
|
X[0],
|
|
dsl.NodeTypeEmittableList,
|
|
)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `EmittableList : Emittable "," EmittableList << dsl.PrependChild(
|
|
X[2],
|
|
X[0],
|
|
) >>`,
|
|
Id: "EmittableList",
|
|
NTType: 24,
|
|
Index: 85,
|
|
NumSymbols: 3,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.PrependChild(
|
|
X[2],
|
|
X[0],
|
|
)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `EmittableAsList : Emittable << dsl.NewASTNodeUnary(
|
|
nil,
|
|
X[0],
|
|
dsl.NodeTypeEmittableList,
|
|
) >>`,
|
|
Id: "EmittableAsList",
|
|
NTType: 25,
|
|
Index: 86,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeUnary(
|
|
nil,
|
|
X[0],
|
|
dsl.NodeTypeEmittableList,
|
|
)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `Emittable : LocalVariable << >>`,
|
|
Id: "Emittable",
|
|
NTType: 26,
|
|
Index: 87,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return X[0], nil
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `Emittable : DirectOosvarValue << >>`,
|
|
Id: "Emittable",
|
|
NTType: 26,
|
|
Index: 88,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return X[0], nil
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `Emittable : BracedOosvarValue << >>`,
|
|
Id: "Emittable",
|
|
NTType: 26,
|
|
Index: 89,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return X[0], nil
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `Emittable : IndirectOosvarValue << >>`,
|
|
Id: "Emittable",
|
|
NTType: 26,
|
|
Index: 90,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return X[0], nil
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `Emittable : DirectFieldValue << >>`,
|
|
Id: "Emittable",
|
|
NTType: 26,
|
|
Index: 91,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return X[0], nil
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `Emittable : BracedFieldValue << >>`,
|
|
Id: "Emittable",
|
|
NTType: 26,
|
|
Index: 92,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return X[0], nil
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `Emittable : IndirectFieldValue << >>`,
|
|
Id: "Emittable",
|
|
NTType: 26,
|
|
Index: 93,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return X[0], nil
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `Emittable : FullSrec << >>`,
|
|
Id: "Emittable",
|
|
NTType: 26,
|
|
Index: 94,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return X[0], nil
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `Emittable : FullOosvar << >>`,
|
|
Id: "Emittable",
|
|
NTType: 26,
|
|
Index: 95,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return X[0], nil
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `Emittable : MapLiteral << >>`,
|
|
Id: "Emittable",
|
|
NTType: 26,
|
|
Index: 96,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return X[0], nil
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `EmitKeys : Rvalue << dsl.NewASTNodeUnary(
|
|
nil,
|
|
X[0],
|
|
dsl.NodeTypeEmitKeys,
|
|
) >>`,
|
|
Id: "EmitKeys",
|
|
NTType: 27,
|
|
Index: 97,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeUnary(
|
|
nil,
|
|
X[0],
|
|
dsl.NodeTypeEmitKeys,
|
|
)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `EmitKeys : Rvalue "," EmitKeys << dsl.PrependChild(
|
|
X[2],
|
|
X[0],
|
|
) >>`,
|
|
Id: "EmitKeys",
|
|
NTType: 27,
|
|
Index: 98,
|
|
NumSymbols: 3,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.PrependChild(
|
|
X[2],
|
|
X[0],
|
|
)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `FieldValue : DirectFieldValue << >>`,
|
|
Id: "FieldValue",
|
|
NTType: 28,
|
|
Index: 99,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return X[0], nil
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `FieldValue : IndirectFieldValue << >>`,
|
|
Id: "FieldValue",
|
|
NTType: 28,
|
|
Index: 100,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return X[0], nil
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `FieldValue : BracedFieldValue << >>`,
|
|
Id: "FieldValue",
|
|
NTType: 28,
|
|
Index: 101,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return X[0], nil
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `FieldValue : PositionalFieldName << >>`,
|
|
Id: "FieldValue",
|
|
NTType: 28,
|
|
Index: 102,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return X[0], nil
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `FieldValue : PositionalFieldValue << >>`,
|
|
Id: "FieldValue",
|
|
NTType: 28,
|
|
Index: 103,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return X[0], nil
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `DirectFieldValue : field_name << dsl.NewASTNodeStripDollarOrAtSign(X[0], dsl.NodeTypeDirectFieldValue) >>`,
|
|
Id: "DirectFieldValue",
|
|
NTType: 29,
|
|
Index: 104,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeStripDollarOrAtSign(X[0], dsl.NodeTypeDirectFieldValue)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `IndirectFieldValue : "$[" Rvalue "]" << dsl.NewASTNodeUnary(dsl.NewASTToken("$[]", X[0]), X[1], dsl.NodeTypeIndirectFieldValue) >>`,
|
|
Id: "IndirectFieldValue",
|
|
NTType: 30,
|
|
Index: 105,
|
|
NumSymbols: 3,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeUnary(dsl.NewASTToken("$[]", X[0]), X[1], dsl.NodeTypeIndirectFieldValue)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `BracedFieldValue : braced_field_name << dsl.NewASTNodeStripDollarOrAtSignAndCurlyBraces(X[0], dsl.NodeTypeDirectFieldValue) >>`,
|
|
Id: "BracedFieldValue",
|
|
NTType: 31,
|
|
Index: 106,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeStripDollarOrAtSignAndCurlyBraces(X[0], dsl.NodeTypeDirectFieldValue)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `PositionalFieldName : "$[[" Rvalue "]" "]" << dsl.NewASTNodeUnary(dsl.NewASTToken("$[]", X[0]), X[1], dsl.NodeTypePositionalFieldName) >>`,
|
|
Id: "PositionalFieldName",
|
|
NTType: 32,
|
|
Index: 107,
|
|
NumSymbols: 4,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeUnary(dsl.NewASTToken("$[]", X[0]), X[1], dsl.NodeTypePositionalFieldName)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `PositionalFieldValue : "$[[[" Rvalue "]" "]" "]" << dsl.NewASTNodeUnary(dsl.NewASTToken("$[]", X[0]), X[1], dsl.NodeTypePositionalFieldValue) >>`,
|
|
Id: "PositionalFieldValue",
|
|
NTType: 33,
|
|
Index: 108,
|
|
NumSymbols: 5,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeUnary(dsl.NewASTToken("$[]", X[0]), X[1], dsl.NodeTypePositionalFieldValue)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `FullSrec : full_srec << dsl.NewASTNode(X[0], dsl.NodeTypeFullSrec) >>`,
|
|
Id: "FullSrec",
|
|
NTType: 34,
|
|
Index: 109,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNode(X[0], dsl.NodeTypeFullSrec)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `OosvarValue : DirectOosvarValue << >>`,
|
|
Id: "OosvarValue",
|
|
NTType: 35,
|
|
Index: 110,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return X[0], nil
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `OosvarValue : IndirectOosvarValue << >>`,
|
|
Id: "OosvarValue",
|
|
NTType: 35,
|
|
Index: 111,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return X[0], nil
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `OosvarValue : BracedOosvarValue << >>`,
|
|
Id: "OosvarValue",
|
|
NTType: 35,
|
|
Index: 112,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return X[0], nil
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `DirectOosvarValue : oosvar_name << dsl.NewASTNodeStripDollarOrAtSign(X[0], dsl.NodeTypeDirectOosvarValue) >>`,
|
|
Id: "DirectOosvarValue",
|
|
NTType: 36,
|
|
Index: 113,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeStripDollarOrAtSign(X[0], dsl.NodeTypeDirectOosvarValue)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `IndirectOosvarValue : "@[" Rvalue "]" << dsl.NewASTNodeUnary(dsl.NewASTToken("@[]", X[0]), X[1], dsl.NodeTypeIndirectOosvarValue) >>`,
|
|
Id: "IndirectOosvarValue",
|
|
NTType: 37,
|
|
Index: 114,
|
|
NumSymbols: 3,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeUnary(dsl.NewASTToken("@[]", X[0]), X[1], dsl.NodeTypeIndirectOosvarValue)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `BracedOosvarValue : braced_oosvar_name << dsl.NewASTNodeStripDollarOrAtSignAndCurlyBraces(X[0], dsl.NodeTypeDirectOosvarValue) >>`,
|
|
Id: "BracedOosvarValue",
|
|
NTType: 38,
|
|
Index: 115,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeStripDollarOrAtSignAndCurlyBraces(X[0], dsl.NodeTypeDirectOosvarValue)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `FullOosvar : full_oosvar << dsl.NewASTNode(X[0], dsl.NodeTypeFullOosvar) >>`,
|
|
Id: "FullOosvar",
|
|
NTType: 39,
|
|
Index: 116,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNode(X[0], dsl.NodeTypeFullOosvar)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `FullOosvar : all << dsl.NewASTNode(X[0], dsl.NodeTypeFullOosvar) >>`,
|
|
Id: "FullOosvar",
|
|
NTType: 39,
|
|
Index: 117,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNode(X[0], dsl.NodeTypeFullOosvar)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `LocalVariable : non_sigil_name << dsl.NewASTNode(X[0], dsl.NodeTypeLocalVariable) >>`,
|
|
Id: "LocalVariable",
|
|
NTType: 40,
|
|
Index: 118,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNode(X[0], dsl.NodeTypeLocalVariable)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `Typedecl : arr << dsl.NewASTNode(X[0], dsl.NodeTypeTypedecl) >>`,
|
|
Id: "Typedecl",
|
|
NTType: 41,
|
|
Index: 119,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNode(X[0], dsl.NodeTypeTypedecl)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `Typedecl : bool << dsl.NewASTNode(X[0], dsl.NodeTypeTypedecl) >>`,
|
|
Id: "Typedecl",
|
|
NTType: 41,
|
|
Index: 120,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNode(X[0], dsl.NodeTypeTypedecl)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `Typedecl : float << dsl.NewASTNode(X[0], dsl.NodeTypeTypedecl) >>`,
|
|
Id: "Typedecl",
|
|
NTType: 41,
|
|
Index: 121,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNode(X[0], dsl.NodeTypeTypedecl)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `Typedecl : int << dsl.NewASTNode(X[0], dsl.NodeTypeTypedecl) >>`,
|
|
Id: "Typedecl",
|
|
NTType: 41,
|
|
Index: 122,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNode(X[0], dsl.NodeTypeTypedecl)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `Typedecl : map << dsl.NewASTNode(X[0], dsl.NodeTypeTypedecl) >>`,
|
|
Id: "Typedecl",
|
|
NTType: 41,
|
|
Index: 123,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNode(X[0], dsl.NodeTypeTypedecl)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `Typedecl : num << dsl.NewASTNode(X[0], dsl.NodeTypeTypedecl) >>`,
|
|
Id: "Typedecl",
|
|
NTType: 41,
|
|
Index: 124,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNode(X[0], dsl.NodeTypeTypedecl)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `Typedecl : str << dsl.NewASTNode(X[0], dsl.NodeTypeTypedecl) >>`,
|
|
Id: "Typedecl",
|
|
NTType: 41,
|
|
Index: 125,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNode(X[0], dsl.NodeTypeTypedecl)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `Typedecl : var << dsl.NewASTNode(X[0], dsl.NodeTypeTypedecl) >>`,
|
|
Id: "Typedecl",
|
|
NTType: 41,
|
|
Index: 126,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNode(X[0], dsl.NodeTypeTypedecl)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `Typedecl : funct << dsl.NewASTNode(X[0], dsl.NodeTypeTypedecl) >>`,
|
|
Id: "Typedecl",
|
|
NTType: 41,
|
|
Index: 127,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNode(X[0], dsl.NodeTypeTypedecl)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `Assignment : Lvalue "||=" Rvalue << dsl.NewASTNodeBinary(
|
|
dsl.NewASTToken("=", X[1]),
|
|
X[0],
|
|
dsl.NewASTNodeBinaryNestable(dsl.NewASTToken("||", X[1]), X[0], X[2], dsl.NodeTypeOperator),
|
|
dsl.NodeTypeAssignment,
|
|
) >>`,
|
|
Id: "Assignment",
|
|
NTType: 6,
|
|
Index: 128,
|
|
NumSymbols: 3,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeBinary(
|
|
dsl.NewASTToken("=", X[1]),
|
|
X[0],
|
|
dsl.NewASTNodeBinaryNestable(dsl.NewASTToken("||", X[1]), X[0], X[2], dsl.NodeTypeOperator),
|
|
dsl.NodeTypeAssignment,
|
|
)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `Assignment : Lvalue "^^=" Rvalue << dsl.NewASTNodeBinary(
|
|
dsl.NewASTToken("=", X[1]),
|
|
X[0],
|
|
dsl.NewASTNodeBinaryNestable(dsl.NewASTToken("^^", X[1]), X[0], X[2], dsl.NodeTypeOperator),
|
|
dsl.NodeTypeAssignment,
|
|
) >>`,
|
|
Id: "Assignment",
|
|
NTType: 6,
|
|
Index: 129,
|
|
NumSymbols: 3,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeBinary(
|
|
dsl.NewASTToken("=", X[1]),
|
|
X[0],
|
|
dsl.NewASTNodeBinaryNestable(dsl.NewASTToken("^^", X[1]), X[0], X[2], dsl.NodeTypeOperator),
|
|
dsl.NodeTypeAssignment,
|
|
)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `Assignment : Lvalue "&&=" Rvalue << dsl.NewASTNodeBinary(
|
|
dsl.NewASTToken("=", X[1]),
|
|
X[0],
|
|
dsl.NewASTNodeBinaryNestable(dsl.NewASTToken("&&", X[1]), X[0], X[2], dsl.NodeTypeOperator),
|
|
dsl.NodeTypeAssignment,
|
|
) >>`,
|
|
Id: "Assignment",
|
|
NTType: 6,
|
|
Index: 130,
|
|
NumSymbols: 3,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeBinary(
|
|
dsl.NewASTToken("=", X[1]),
|
|
X[0],
|
|
dsl.NewASTNodeBinaryNestable(dsl.NewASTToken("&&", X[1]), X[0], X[2], dsl.NodeTypeOperator),
|
|
dsl.NodeTypeAssignment,
|
|
)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `Assignment : Lvalue "??=" Rvalue << dsl.NewASTNodeBinary(
|
|
dsl.NewASTToken("=", X[1]),
|
|
X[0],
|
|
dsl.NewASTNodeBinaryNestable(dsl.NewASTToken("??", X[1]), X[0], X[2], dsl.NodeTypeOperator),
|
|
dsl.NodeTypeAssignment,
|
|
) >>`,
|
|
Id: "Assignment",
|
|
NTType: 6,
|
|
Index: 131,
|
|
NumSymbols: 3,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeBinary(
|
|
dsl.NewASTToken("=", X[1]),
|
|
X[0],
|
|
dsl.NewASTNodeBinaryNestable(dsl.NewASTToken("??", X[1]), X[0], X[2], dsl.NodeTypeOperator),
|
|
dsl.NodeTypeAssignment,
|
|
)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `Assignment : Lvalue "???=" Rvalue << dsl.NewASTNodeBinary(
|
|
dsl.NewASTToken("=", X[1]),
|
|
X[0],
|
|
dsl.NewASTNodeBinaryNestable(dsl.NewASTToken("???", X[1]), X[0], X[2], dsl.NodeTypeOperator),
|
|
dsl.NodeTypeAssignment,
|
|
) >>`,
|
|
Id: "Assignment",
|
|
NTType: 6,
|
|
Index: 132,
|
|
NumSymbols: 3,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeBinary(
|
|
dsl.NewASTToken("=", X[1]),
|
|
X[0],
|
|
dsl.NewASTNodeBinaryNestable(dsl.NewASTToken("???", X[1]), X[0], X[2], dsl.NodeTypeOperator),
|
|
dsl.NodeTypeAssignment,
|
|
)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `Assignment : Lvalue "|=" Rvalue << dsl.NewASTNodeBinary(
|
|
dsl.NewASTToken("=", X[1]),
|
|
X[0],
|
|
dsl.NewASTNodeBinaryNestable(dsl.NewASTToken("|", X[1]), X[0], X[2], dsl.NodeTypeOperator),
|
|
dsl.NodeTypeAssignment,
|
|
) >>`,
|
|
Id: "Assignment",
|
|
NTType: 6,
|
|
Index: 133,
|
|
NumSymbols: 3,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeBinary(
|
|
dsl.NewASTToken("=", X[1]),
|
|
X[0],
|
|
dsl.NewASTNodeBinaryNestable(dsl.NewASTToken("|", X[1]), X[0], X[2], dsl.NodeTypeOperator),
|
|
dsl.NodeTypeAssignment,
|
|
)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `Assignment : Lvalue "&=" Rvalue << dsl.NewASTNodeBinary(
|
|
dsl.NewASTToken("=", X[1]),
|
|
X[0],
|
|
dsl.NewASTNodeBinaryNestable(dsl.NewASTToken("^", X[1]), X[0], X[2], dsl.NodeTypeOperator),
|
|
dsl.NodeTypeAssignment,
|
|
) >>`,
|
|
Id: "Assignment",
|
|
NTType: 6,
|
|
Index: 134,
|
|
NumSymbols: 3,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeBinary(
|
|
dsl.NewASTToken("=", X[1]),
|
|
X[0],
|
|
dsl.NewASTNodeBinaryNestable(dsl.NewASTToken("^", X[1]), X[0], X[2], dsl.NodeTypeOperator),
|
|
dsl.NodeTypeAssignment,
|
|
)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `Assignment : Lvalue "^=" Rvalue << dsl.NewASTNodeBinary(
|
|
dsl.NewASTToken("=", X[1]),
|
|
X[0],
|
|
dsl.NewASTNodeBinaryNestable(dsl.NewASTToken("^", X[1]), X[0], X[2], dsl.NodeTypeOperator),
|
|
dsl.NodeTypeAssignment,
|
|
) >>`,
|
|
Id: "Assignment",
|
|
NTType: 6,
|
|
Index: 135,
|
|
NumSymbols: 3,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeBinary(
|
|
dsl.NewASTToken("=", X[1]),
|
|
X[0],
|
|
dsl.NewASTNodeBinaryNestable(dsl.NewASTToken("^", X[1]), X[0], X[2], dsl.NodeTypeOperator),
|
|
dsl.NodeTypeAssignment,
|
|
)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `Assignment : Lvalue "<<=" Rvalue << dsl.NewASTNodeBinary(
|
|
dsl.NewASTToken("=", X[1]),
|
|
X[0],
|
|
dsl.NewASTNodeBinaryNestable(dsl.NewASTToken("<<", X[1]), X[0], X[2], dsl.NodeTypeOperator),
|
|
dsl.NodeTypeAssignment,
|
|
) >>`,
|
|
Id: "Assignment",
|
|
NTType: 6,
|
|
Index: 136,
|
|
NumSymbols: 3,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeBinary(
|
|
dsl.NewASTToken("=", X[1]),
|
|
X[0],
|
|
dsl.NewASTNodeBinaryNestable(dsl.NewASTToken("<<", X[1]), X[0], X[2], dsl.NodeTypeOperator),
|
|
dsl.NodeTypeAssignment,
|
|
)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `Assignment : Lvalue ">>=" Rvalue << dsl.NewASTNodeBinary(
|
|
dsl.NewASTToken("=", X[1]),
|
|
X[0],
|
|
dsl.NewASTNodeBinaryNestable(dsl.NewASTToken(">"+">", X[1]), X[0], X[2], dsl.NodeTypeOperator),
|
|
dsl.NodeTypeAssignment,
|
|
) >>`,
|
|
Id: "Assignment",
|
|
NTType: 6,
|
|
Index: 137,
|
|
NumSymbols: 3,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeBinary(
|
|
dsl.NewASTToken("=", X[1]),
|
|
X[0],
|
|
dsl.NewASTNodeBinaryNestable(dsl.NewASTToken(">"+">", X[1]), X[0], X[2], dsl.NodeTypeOperator),
|
|
dsl.NodeTypeAssignment,
|
|
)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `Assignment : Lvalue ">>>=" Rvalue << dsl.NewASTNodeBinary(
|
|
dsl.NewASTToken("=", X[1]),
|
|
X[0],
|
|
dsl.NewASTNodeBinaryNestable(dsl.NewASTToken(">"+">"+">", X[1]), X[0], X[2], dsl.NodeTypeOperator),
|
|
dsl.NodeTypeAssignment,
|
|
) >>`,
|
|
Id: "Assignment",
|
|
NTType: 6,
|
|
Index: 138,
|
|
NumSymbols: 3,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeBinary(
|
|
dsl.NewASTToken("=", X[1]),
|
|
X[0],
|
|
dsl.NewASTNodeBinaryNestable(dsl.NewASTToken(">"+">"+">", X[1]), X[0], X[2], dsl.NodeTypeOperator),
|
|
dsl.NodeTypeAssignment,
|
|
)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `Assignment : Lvalue "+=" Rvalue << dsl.NewASTNodeBinary(
|
|
dsl.NewASTToken("=", X[1]),
|
|
X[0],
|
|
dsl.NewASTNodeBinaryNestable(dsl.NewASTToken("+", X[1]), X[0], X[2], dsl.NodeTypeOperator),
|
|
dsl.NodeTypeAssignment,
|
|
) >>`,
|
|
Id: "Assignment",
|
|
NTType: 6,
|
|
Index: 139,
|
|
NumSymbols: 3,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeBinary(
|
|
dsl.NewASTToken("=", X[1]),
|
|
X[0],
|
|
dsl.NewASTNodeBinaryNestable(dsl.NewASTToken("+", X[1]), X[0], X[2], dsl.NodeTypeOperator),
|
|
dsl.NodeTypeAssignment,
|
|
)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `Assignment : Lvalue ".=" Rvalue << dsl.NewASTNodeBinary(
|
|
dsl.NewASTToken("=", X[1]),
|
|
X[0],
|
|
dsl.NewASTNodeBinaryNestable(dsl.NewASTToken(".", X[1]), X[0], X[2], dsl.NodeTypeDotOperator),
|
|
dsl.NodeTypeAssignment,
|
|
) >>`,
|
|
Id: "Assignment",
|
|
NTType: 6,
|
|
Index: 140,
|
|
NumSymbols: 3,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeBinary(
|
|
dsl.NewASTToken("=", X[1]),
|
|
X[0],
|
|
dsl.NewASTNodeBinaryNestable(dsl.NewASTToken(".", X[1]), X[0], X[2], dsl.NodeTypeDotOperator),
|
|
dsl.NodeTypeAssignment,
|
|
)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `Assignment : Lvalue "-=" Rvalue << dsl.NewASTNodeBinary(
|
|
dsl.NewASTToken("=", X[1]),
|
|
X[0],
|
|
dsl.NewASTNodeBinaryNestable(dsl.NewASTToken("-", X[1]), X[0], X[2], dsl.NodeTypeOperator),
|
|
dsl.NodeTypeAssignment,
|
|
) >>`,
|
|
Id: "Assignment",
|
|
NTType: 6,
|
|
Index: 141,
|
|
NumSymbols: 3,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeBinary(
|
|
dsl.NewASTToken("=", X[1]),
|
|
X[0],
|
|
dsl.NewASTNodeBinaryNestable(dsl.NewASTToken("-", X[1]), X[0], X[2], dsl.NodeTypeOperator),
|
|
dsl.NodeTypeAssignment,
|
|
)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `Assignment : Lvalue "*=" Rvalue << dsl.NewASTNodeBinary(
|
|
dsl.NewASTToken("=", X[1]),
|
|
X[0],
|
|
dsl.NewASTNodeBinaryNestable(dsl.NewASTToken("*", X[1]), X[0], X[2], dsl.NodeTypeOperator),
|
|
dsl.NodeTypeAssignment,
|
|
) >>`,
|
|
Id: "Assignment",
|
|
NTType: 6,
|
|
Index: 142,
|
|
NumSymbols: 3,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeBinary(
|
|
dsl.NewASTToken("=", X[1]),
|
|
X[0],
|
|
dsl.NewASTNodeBinaryNestable(dsl.NewASTToken("*", X[1]), X[0], X[2], dsl.NodeTypeOperator),
|
|
dsl.NodeTypeAssignment,
|
|
)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `Assignment : Lvalue "/=" Rvalue << dsl.NewASTNodeBinary(
|
|
dsl.NewASTToken("=", X[1]),
|
|
X[0],
|
|
dsl.NewASTNodeBinaryNestable(dsl.NewASTToken("/", X[1]), X[0], X[2], dsl.NodeTypeOperator),
|
|
dsl.NodeTypeAssignment,
|
|
) >>`,
|
|
Id: "Assignment",
|
|
NTType: 6,
|
|
Index: 143,
|
|
NumSymbols: 3,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeBinary(
|
|
dsl.NewASTToken("=", X[1]),
|
|
X[0],
|
|
dsl.NewASTNodeBinaryNestable(dsl.NewASTToken("/", X[1]), X[0], X[2], dsl.NodeTypeOperator),
|
|
dsl.NodeTypeAssignment,
|
|
)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `Assignment : Lvalue "//=" Rvalue << dsl.NewASTNodeBinary(
|
|
dsl.NewASTToken("=", X[1]),
|
|
X[0],
|
|
dsl.NewASTNodeBinaryNestable(dsl.NewASTToken("//", X[1]), X[0], X[2], dsl.NodeTypeOperator),
|
|
dsl.NodeTypeAssignment,
|
|
) >>`,
|
|
Id: "Assignment",
|
|
NTType: 6,
|
|
Index: 144,
|
|
NumSymbols: 3,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeBinary(
|
|
dsl.NewASTToken("=", X[1]),
|
|
X[0],
|
|
dsl.NewASTNodeBinaryNestable(dsl.NewASTToken("//", X[1]), X[0], X[2], dsl.NodeTypeOperator),
|
|
dsl.NodeTypeAssignment,
|
|
)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `Assignment : Lvalue "%=" Rvalue << dsl.NewASTNodeBinary(
|
|
dsl.NewASTToken("=", X[1]),
|
|
X[0],
|
|
dsl.NewASTNodeBinaryNestable(dsl.NewASTToken("%", X[1]), X[0], X[2], dsl.NodeTypeOperator),
|
|
dsl.NodeTypeAssignment,
|
|
) >>`,
|
|
Id: "Assignment",
|
|
NTType: 6,
|
|
Index: 145,
|
|
NumSymbols: 3,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeBinary(
|
|
dsl.NewASTToken("=", X[1]),
|
|
X[0],
|
|
dsl.NewASTNodeBinaryNestable(dsl.NewASTToken("%", X[1]), X[0], X[2], dsl.NodeTypeOperator),
|
|
dsl.NodeTypeAssignment,
|
|
)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `Assignment : Lvalue "**=" Rvalue << dsl.NewASTNodeBinary(
|
|
dsl.NewASTToken("=", X[1]),
|
|
X[0],
|
|
dsl.NewASTNodeBinaryNestable(dsl.NewASTToken("**", X[1]), X[0], X[2], dsl.NodeTypeOperator),
|
|
dsl.NodeTypeAssignment,
|
|
) >>`,
|
|
Id: "Assignment",
|
|
NTType: 6,
|
|
Index: 146,
|
|
NumSymbols: 3,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeBinary(
|
|
dsl.NewASTToken("=", X[1]),
|
|
X[0],
|
|
dsl.NewASTNodeBinaryNestable(dsl.NewASTToken("**", X[1]), X[0], X[2], dsl.NodeTypeOperator),
|
|
dsl.NodeTypeAssignment,
|
|
)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `Rvalue : PrecedenceChainStart << >>`,
|
|
Id: "Rvalue",
|
|
NTType: 42,
|
|
Index: 147,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return X[0], nil
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `PrecedenceChainStart : TernaryTerm << >>`,
|
|
Id: "PrecedenceChainStart",
|
|
NTType: 43,
|
|
Index: 148,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return X[0], nil
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `TernaryTerm : LogicalOrTerm "?" TernaryTerm ":" TernaryTerm << dsl.NewASTNodeTernary(dsl.NewASTToken("?:", X[1]), X[0], X[2], X[4], dsl.NodeTypeOperator) >>`,
|
|
Id: "TernaryTerm",
|
|
NTType: 44,
|
|
Index: 149,
|
|
NumSymbols: 5,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeTernary(dsl.NewASTToken("?:", X[1]), X[0], X[2], X[4], dsl.NodeTypeOperator)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `TernaryTerm : LogicalOrTerm << >>`,
|
|
Id: "TernaryTerm",
|
|
NTType: 44,
|
|
Index: 150,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return X[0], nil
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `LogicalOrTerm : LogicalOrTerm "||" LogicalXORTerm << dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator) >>`,
|
|
Id: "LogicalOrTerm",
|
|
NTType: 45,
|
|
Index: 151,
|
|
NumSymbols: 3,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `LogicalOrTerm : LogicalXORTerm << >>`,
|
|
Id: "LogicalOrTerm",
|
|
NTType: 45,
|
|
Index: 152,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return X[0], nil
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `LogicalXORTerm : LogicalXORTerm "^^" LogicalAndTerm << dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator) >>`,
|
|
Id: "LogicalXORTerm",
|
|
NTType: 46,
|
|
Index: 153,
|
|
NumSymbols: 3,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `LogicalXORTerm : LogicalAndTerm << >>`,
|
|
Id: "LogicalXORTerm",
|
|
NTType: 46,
|
|
Index: 154,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return X[0], nil
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `LogicalAndTerm : LogicalAndTerm "&&" EqneTerm << dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator) >>`,
|
|
Id: "LogicalAndTerm",
|
|
NTType: 47,
|
|
Index: 155,
|
|
NumSymbols: 3,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `LogicalAndTerm : EqneTerm << >>`,
|
|
Id: "LogicalAndTerm",
|
|
NTType: 47,
|
|
Index: 156,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return X[0], nil
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `EqneTerm : EqneTerm "=~" CmpTerm << dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator) >>`,
|
|
Id: "EqneTerm",
|
|
NTType: 48,
|
|
Index: 157,
|
|
NumSymbols: 3,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `EqneTerm : EqneTerm "!=~" CmpTerm << dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator) >>`,
|
|
Id: "EqneTerm",
|
|
NTType: 48,
|
|
Index: 158,
|
|
NumSymbols: 3,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `EqneTerm : EqneTerm "==" CmpTerm << dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator) >>`,
|
|
Id: "EqneTerm",
|
|
NTType: 48,
|
|
Index: 159,
|
|
NumSymbols: 3,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `EqneTerm : EqneTerm "!=" CmpTerm << dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator) >>`,
|
|
Id: "EqneTerm",
|
|
NTType: 48,
|
|
Index: 160,
|
|
NumSymbols: 3,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `EqneTerm : EqneTerm "<=>" CmpTerm << dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator) >>`,
|
|
Id: "EqneTerm",
|
|
NTType: 48,
|
|
Index: 161,
|
|
NumSymbols: 3,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `EqneTerm : CmpTerm << >>`,
|
|
Id: "EqneTerm",
|
|
NTType: 48,
|
|
Index: 162,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return X[0], nil
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `CmpTerm : CmpTerm ">" BitwiseORTerm << dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator) >>`,
|
|
Id: "CmpTerm",
|
|
NTType: 49,
|
|
Index: 163,
|
|
NumSymbols: 3,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `CmpTerm : CmpTerm ">=" BitwiseORTerm << dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator) >>`,
|
|
Id: "CmpTerm",
|
|
NTType: 49,
|
|
Index: 164,
|
|
NumSymbols: 3,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `CmpTerm : CmpTerm "<" BitwiseORTerm << dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator) >>`,
|
|
Id: "CmpTerm",
|
|
NTType: 49,
|
|
Index: 165,
|
|
NumSymbols: 3,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `CmpTerm : CmpTerm "<=" BitwiseORTerm << dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator) >>`,
|
|
Id: "CmpTerm",
|
|
NTType: 49,
|
|
Index: 166,
|
|
NumSymbols: 3,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `CmpTerm : BitwiseORTerm << >>`,
|
|
Id: "CmpTerm",
|
|
NTType: 49,
|
|
Index: 167,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return X[0], nil
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `BitwiseORTerm : BitwiseORTerm "|" BitwiseXORTerm << dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator) >>`,
|
|
Id: "BitwiseORTerm",
|
|
NTType: 50,
|
|
Index: 168,
|
|
NumSymbols: 3,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `BitwiseORTerm : BitwiseXORTerm << >>`,
|
|
Id: "BitwiseORTerm",
|
|
NTType: 50,
|
|
Index: 169,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return X[0], nil
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `BitwiseXORTerm : BitwiseXORTerm "^" BitwiseANDTerm << dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator) >>`,
|
|
Id: "BitwiseXORTerm",
|
|
NTType: 51,
|
|
Index: 170,
|
|
NumSymbols: 3,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `BitwiseXORTerm : BitwiseANDTerm << >>`,
|
|
Id: "BitwiseXORTerm",
|
|
NTType: 51,
|
|
Index: 171,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return X[0], nil
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `BitwiseANDTerm : BitwiseANDTerm "&" BitwiseShiftTerm << dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator) >>`,
|
|
Id: "BitwiseANDTerm",
|
|
NTType: 52,
|
|
Index: 172,
|
|
NumSymbols: 3,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `BitwiseANDTerm : BitwiseShiftTerm << >>`,
|
|
Id: "BitwiseANDTerm",
|
|
NTType: 52,
|
|
Index: 173,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return X[0], nil
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `BitwiseShiftTerm : BitwiseShiftTerm "<<" AddsubdotTerm << dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator) >>`,
|
|
Id: "BitwiseShiftTerm",
|
|
NTType: 53,
|
|
Index: 174,
|
|
NumSymbols: 3,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `BitwiseShiftTerm : BitwiseShiftTerm ">>" AddsubdotTerm << dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator) >>`,
|
|
Id: "BitwiseShiftTerm",
|
|
NTType: 53,
|
|
Index: 175,
|
|
NumSymbols: 3,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `BitwiseShiftTerm : BitwiseShiftTerm ">>>" AddsubdotTerm << dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator) >>`,
|
|
Id: "BitwiseShiftTerm",
|
|
NTType: 53,
|
|
Index: 176,
|
|
NumSymbols: 3,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `BitwiseShiftTerm : AddsubdotTerm << >>`,
|
|
Id: "BitwiseShiftTerm",
|
|
NTType: 53,
|
|
Index: 177,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return X[0], nil
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `AddsubdotTerm : AddsubdotTerm "+" MuldivTerm << dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator) >>`,
|
|
Id: "AddsubdotTerm",
|
|
NTType: 54,
|
|
Index: 178,
|
|
NumSymbols: 3,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `AddsubdotTerm : AddsubdotTerm "-" MuldivTerm << dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator) >>`,
|
|
Id: "AddsubdotTerm",
|
|
NTType: 54,
|
|
Index: 179,
|
|
NumSymbols: 3,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `AddsubdotTerm : AddsubdotTerm ".+" MuldivTerm << dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator) >>`,
|
|
Id: "AddsubdotTerm",
|
|
NTType: 54,
|
|
Index: 180,
|
|
NumSymbols: 3,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `AddsubdotTerm : AddsubdotTerm ".-" MuldivTerm << dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator) >>`,
|
|
Id: "AddsubdotTerm",
|
|
NTType: 54,
|
|
Index: 181,
|
|
NumSymbols: 3,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `AddsubdotTerm : MuldivTerm << >>`,
|
|
Id: "AddsubdotTerm",
|
|
NTType: 54,
|
|
Index: 182,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return X[0], nil
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `MuldivTerm : MuldivTerm "*" DotTerm << dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator) >>`,
|
|
Id: "MuldivTerm",
|
|
NTType: 55,
|
|
Index: 183,
|
|
NumSymbols: 3,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `MuldivTerm : MuldivTerm "/" DotTerm << dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator) >>`,
|
|
Id: "MuldivTerm",
|
|
NTType: 55,
|
|
Index: 184,
|
|
NumSymbols: 3,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `MuldivTerm : MuldivTerm "//" DotTerm << dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator) >>`,
|
|
Id: "MuldivTerm",
|
|
NTType: 55,
|
|
Index: 185,
|
|
NumSymbols: 3,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `MuldivTerm : MuldivTerm "%" DotTerm << dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator) >>`,
|
|
Id: "MuldivTerm",
|
|
NTType: 55,
|
|
Index: 186,
|
|
NumSymbols: 3,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `MuldivTerm : MuldivTerm ".*" DotTerm << dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator) >>`,
|
|
Id: "MuldivTerm",
|
|
NTType: 55,
|
|
Index: 187,
|
|
NumSymbols: 3,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `MuldivTerm : MuldivTerm "./" DotTerm << dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator) >>`,
|
|
Id: "MuldivTerm",
|
|
NTType: 55,
|
|
Index: 188,
|
|
NumSymbols: 3,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `MuldivTerm : MuldivTerm ".//" DotTerm << dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator) >>`,
|
|
Id: "MuldivTerm",
|
|
NTType: 55,
|
|
Index: 189,
|
|
NumSymbols: 3,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `MuldivTerm : DotTerm << >>`,
|
|
Id: "MuldivTerm",
|
|
NTType: 55,
|
|
Index: 190,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return X[0], nil
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `DotTerm : DotTerm "." UnaryOpTerm << dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeDotOperator) >>`,
|
|
Id: "DotTerm",
|
|
NTType: 56,
|
|
Index: 191,
|
|
NumSymbols: 3,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeDotOperator)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `DotTerm : UnaryOpTerm << >>`,
|
|
Id: "DotTerm",
|
|
NTType: 56,
|
|
Index: 192,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return X[0], nil
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `UnaryOpTerm : "+" UnaryOpTerm << dsl.NewASTNodeUnary(X[0], X[1], dsl.NodeTypeOperator) >>`,
|
|
Id: "UnaryOpTerm",
|
|
NTType: 57,
|
|
Index: 193,
|
|
NumSymbols: 2,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeUnary(X[0], X[1], dsl.NodeTypeOperator)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `UnaryOpTerm : "-" UnaryOpTerm << dsl.NewASTNodeUnary(X[0], X[1], dsl.NodeTypeOperator) >>`,
|
|
Id: "UnaryOpTerm",
|
|
NTType: 57,
|
|
Index: 194,
|
|
NumSymbols: 2,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeUnary(X[0], X[1], dsl.NodeTypeOperator)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `UnaryOpTerm : ".+" UnaryOpTerm << dsl.NewASTNodeUnary(X[0], X[1], dsl.NodeTypeOperator) >>`,
|
|
Id: "UnaryOpTerm",
|
|
NTType: 57,
|
|
Index: 195,
|
|
NumSymbols: 2,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeUnary(X[0], X[1], dsl.NodeTypeOperator)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `UnaryOpTerm : ".-" UnaryOpTerm << dsl.NewASTNodeUnary(X[0], X[1], dsl.NodeTypeOperator) >>`,
|
|
Id: "UnaryOpTerm",
|
|
NTType: 57,
|
|
Index: 196,
|
|
NumSymbols: 2,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeUnary(X[0], X[1], dsl.NodeTypeOperator)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `UnaryOpTerm : "!" UnaryOpTerm << dsl.NewASTNodeUnary(X[0], X[1], dsl.NodeTypeOperator) >>`,
|
|
Id: "UnaryOpTerm",
|
|
NTType: 57,
|
|
Index: 197,
|
|
NumSymbols: 2,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeUnary(X[0], X[1], dsl.NodeTypeOperator)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `UnaryOpTerm : "~" UnaryOpTerm << dsl.NewASTNodeUnary(X[0], X[1], dsl.NodeTypeOperator) >>`,
|
|
Id: "UnaryOpTerm",
|
|
NTType: 57,
|
|
Index: 198,
|
|
NumSymbols: 2,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeUnary(X[0], X[1], dsl.NodeTypeOperator)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `UnaryOpTerm : AbsentCoalesceTerm << >>`,
|
|
Id: "UnaryOpTerm",
|
|
NTType: 57,
|
|
Index: 199,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return X[0], nil
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `AbsentCoalesceTerm : AbsentCoalesceTerm "??" EmptyCoalesceTerm << dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator) >>`,
|
|
Id: "AbsentCoalesceTerm",
|
|
NTType: 58,
|
|
Index: 200,
|
|
NumSymbols: 3,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `AbsentCoalesceTerm : EmptyCoalesceTerm << >>`,
|
|
Id: "AbsentCoalesceTerm",
|
|
NTType: 58,
|
|
Index: 201,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return X[0], nil
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `EmptyCoalesceTerm : EmptyCoalesceTerm "???" PowTerm << dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator) >>`,
|
|
Id: "EmptyCoalesceTerm",
|
|
NTType: 59,
|
|
Index: 202,
|
|
NumSymbols: 3,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `EmptyCoalesceTerm : PowTerm << >>`,
|
|
Id: "EmptyCoalesceTerm",
|
|
NTType: 59,
|
|
Index: 203,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return X[0], nil
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `PowTerm : PrecedenceChainEnd "**" PowTerm << dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator) >>`,
|
|
Id: "PowTerm",
|
|
NTType: 60,
|
|
Index: 204,
|
|
NumSymbols: 3,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `PowTerm : PrecedenceChainEnd "**" "-" PowTerm << dsl.NewASTNodeBinary( X[1], X[0],
|
|
dsl.NewASTNodeUnaryNestable( X[2], X[3], dsl.NodeTypeOperator,), dsl.NodeTypeOperator,) >>`,
|
|
Id: "PowTerm",
|
|
NTType: 60,
|
|
Index: 205,
|
|
NumSymbols: 4,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeBinary(X[1], X[0],
|
|
dsl.NewASTNodeUnaryNestable(X[2], X[3], dsl.NodeTypeOperator), dsl.NodeTypeOperator)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `PowTerm : PrecedenceChainEnd "**" "+" PowTerm << dsl.NewASTNodeBinary(
|
|
X[1],
|
|
X[0],
|
|
dsl.NewASTNodeUnaryNestable(
|
|
X[2],
|
|
X[3],
|
|
dsl.NodeTypeOperator,
|
|
),
|
|
dsl.NodeTypeOperator,
|
|
) >>`,
|
|
Id: "PowTerm",
|
|
NTType: 60,
|
|
Index: 206,
|
|
NumSymbols: 4,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeBinary(
|
|
X[1],
|
|
X[0],
|
|
dsl.NewASTNodeUnaryNestable(
|
|
X[2],
|
|
X[3],
|
|
dsl.NodeTypeOperator,
|
|
),
|
|
dsl.NodeTypeOperator,
|
|
)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `PowTerm : PrecedenceChainEnd << >>`,
|
|
Id: "PowTerm",
|
|
NTType: 60,
|
|
Index: 207,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return X[0], nil
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `PrecedenceChainEnd : "(" Rvalue ")" << dsl.Nestable(X[1]) >>`,
|
|
Id: "PrecedenceChainEnd",
|
|
NTType: 61,
|
|
Index: 208,
|
|
NumSymbols: 3,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.Nestable(X[1])
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `PrecedenceChainEnd : MlrvalOrFunction << >>`,
|
|
Id: "PrecedenceChainEnd",
|
|
NTType: 61,
|
|
Index: 209,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return X[0], nil
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `MlrvalOrFunction : FieldValue << >>`,
|
|
Id: "MlrvalOrFunction",
|
|
NTType: 62,
|
|
Index: 210,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return X[0], nil
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `MlrvalOrFunction : FullSrec << >>`,
|
|
Id: "MlrvalOrFunction",
|
|
NTType: 62,
|
|
Index: 211,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return X[0], nil
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `MlrvalOrFunction : OosvarValue << >>`,
|
|
Id: "MlrvalOrFunction",
|
|
NTType: 62,
|
|
Index: 212,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return X[0], nil
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `MlrvalOrFunction : FullOosvar << >>`,
|
|
Id: "MlrvalOrFunction",
|
|
NTType: 62,
|
|
Index: 213,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return X[0], nil
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `MlrvalOrFunction : LocalVariable << >>`,
|
|
Id: "MlrvalOrFunction",
|
|
NTType: 62,
|
|
Index: 214,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return X[0], nil
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `MlrvalOrFunction : UnnamedFunctionDefinition << >>`,
|
|
Id: "MlrvalOrFunction",
|
|
NTType: 62,
|
|
Index: 215,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return X[0], nil
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `MlrvalOrFunction : string_literal << dsl.NewASTNodeStripDoubleQuotePair(X[0], dsl.NodeTypeStringLiteral) >>`,
|
|
Id: "MlrvalOrFunction",
|
|
NTType: 62,
|
|
Index: 216,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeStripDoubleQuotePair(X[0], dsl.NodeTypeStringLiteral)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `MlrvalOrFunction : regex_case_insensitive << dsl.NewASTNode(X[0], dsl.NodeTypeRegexCaseInsensitive) >>`,
|
|
Id: "MlrvalOrFunction",
|
|
NTType: 62,
|
|
Index: 217,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNode(X[0], dsl.NodeTypeRegexCaseInsensitive)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `MlrvalOrFunction : int_literal << dsl.NewASTNode(X[0], dsl.NodeTypeIntLiteral) >>`,
|
|
Id: "MlrvalOrFunction",
|
|
NTType: 62,
|
|
Index: 218,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNode(X[0], dsl.NodeTypeIntLiteral)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `MlrvalOrFunction : float_literal << dsl.NewASTNode(X[0], dsl.NodeTypeFloatLiteral) >>`,
|
|
Id: "MlrvalOrFunction",
|
|
NTType: 62,
|
|
Index: 219,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNode(X[0], dsl.NodeTypeFloatLiteral)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `MlrvalOrFunction : boolean_literal << dsl.NewASTNode(X[0], dsl.NodeTypeBoolLiteral) >>`,
|
|
Id: "MlrvalOrFunction",
|
|
NTType: 62,
|
|
Index: 220,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNode(X[0], dsl.NodeTypeBoolLiteral)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `MlrvalOrFunction : null_literal << dsl.NewASTNode(X[0], dsl.NodeTypeNullLiteral) >>`,
|
|
Id: "MlrvalOrFunction",
|
|
NTType: 62,
|
|
Index: 221,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNode(X[0], dsl.NodeTypeNullLiteral)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `MlrvalOrFunction : inf_literal << dsl.NewASTNode(X[0], dsl.NodeTypeFloatLiteral) >>`,
|
|
Id: "MlrvalOrFunction",
|
|
NTType: 62,
|
|
Index: 222,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNode(X[0], dsl.NodeTypeFloatLiteral)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `MlrvalOrFunction : nan_literal << dsl.NewASTNode(X[0], dsl.NodeTypeFloatLiteral) >>`,
|
|
Id: "MlrvalOrFunction",
|
|
NTType: 62,
|
|
Index: 223,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNode(X[0], dsl.NodeTypeFloatLiteral)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `MlrvalOrFunction : const_M_PI << dsl.NewASTNode(
|
|
X[0],
|
|
dsl.NodeTypeConstant,
|
|
) >>`,
|
|
Id: "MlrvalOrFunction",
|
|
NTType: 62,
|
|
Index: 224,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNode(
|
|
X[0],
|
|
dsl.NodeTypeConstant,
|
|
)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `MlrvalOrFunction : const_M_E << dsl.NewASTNode(
|
|
X[0],
|
|
dsl.NodeTypeConstant,
|
|
) >>`,
|
|
Id: "MlrvalOrFunction",
|
|
NTType: 62,
|
|
Index: 225,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNode(
|
|
X[0],
|
|
dsl.NodeTypeConstant,
|
|
)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `MlrvalOrFunction : panic << dsl.NewASTNode(X[0], dsl.NodeTypePanic) >>`,
|
|
Id: "MlrvalOrFunction",
|
|
NTType: 62,
|
|
Index: 226,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNode(X[0], dsl.NodeTypePanic)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `MlrvalOrFunction : ArrayLiteral << >>`,
|
|
Id: "MlrvalOrFunction",
|
|
NTType: 62,
|
|
Index: 227,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return X[0], nil
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `ArrayLiteral : "[" "]" << dsl.NewASTNodeZary(
|
|
dsl.NewASTToken("[]", X[0]),
|
|
dsl.NodeTypeArrayLiteral,
|
|
) >>`,
|
|
Id: "ArrayLiteral",
|
|
NTType: 63,
|
|
Index: 228,
|
|
NumSymbols: 2,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeZary(
|
|
dsl.NewASTToken("[]", X[0]),
|
|
dsl.NodeTypeArrayLiteral,
|
|
)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `ArrayLiteral : "[" ArrayLiteralElements "]" << dsl.AdoptChildren(
|
|
dsl.NewASTNodeNestable(
|
|
dsl.NewASTToken("[]", X[0]),
|
|
dsl.NodeTypeArrayLiteral,
|
|
),
|
|
X[1],
|
|
) >>`,
|
|
Id: "ArrayLiteral",
|
|
NTType: 63,
|
|
Index: 229,
|
|
NumSymbols: 3,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.AdoptChildren(
|
|
dsl.NewASTNodeNestable(
|
|
dsl.NewASTToken("[]", X[0]),
|
|
dsl.NodeTypeArrayLiteral,
|
|
),
|
|
X[1],
|
|
)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `ArrayLiteralElements : Rvalue << dsl.NewASTNodeUnary(
|
|
nil,
|
|
X[0],
|
|
dsl.NodeTypeArrayLiteral,
|
|
) >>`,
|
|
Id: "ArrayLiteralElements",
|
|
NTType: 64,
|
|
Index: 230,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeUnary(
|
|
nil,
|
|
X[0],
|
|
dsl.NodeTypeArrayLiteral,
|
|
)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `ArrayLiteralElements : Rvalue "," << dsl.NewASTNodeUnary(
|
|
nil,
|
|
X[0],
|
|
dsl.NodeTypeArrayLiteral,
|
|
) >>`,
|
|
Id: "ArrayLiteralElements",
|
|
NTType: 64,
|
|
Index: 231,
|
|
NumSymbols: 2,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeUnary(
|
|
nil,
|
|
X[0],
|
|
dsl.NodeTypeArrayLiteral,
|
|
)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `ArrayLiteralElements : Rvalue "," ArrayLiteralElements << dsl.PrependChild(
|
|
X[2],
|
|
X[0],
|
|
) >>`,
|
|
Id: "ArrayLiteralElements",
|
|
NTType: 64,
|
|
Index: 232,
|
|
NumSymbols: 3,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.PrependChild(
|
|
X[2],
|
|
X[0],
|
|
)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `MlrvalOrFunction : MapLiteral << >>`,
|
|
Id: "MlrvalOrFunction",
|
|
NTType: 62,
|
|
Index: 233,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return X[0], nil
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `MapLiteral : "{" "}" << dsl.NewASTNodeZary(
|
|
dsl.NewASTToken("{}", X[0]),
|
|
dsl.NodeTypeMapLiteral,
|
|
) >>`,
|
|
Id: "MapLiteral",
|
|
NTType: 65,
|
|
Index: 234,
|
|
NumSymbols: 2,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeZary(
|
|
dsl.NewASTToken("{}", X[0]),
|
|
dsl.NodeTypeMapLiteral,
|
|
)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `MapLiteral : "{" MapLiteralKeyValuePairs "}" << dsl.AdoptChildren(
|
|
dsl.NewASTNodeNestable(
|
|
dsl.NewASTToken("{}", X[0]),
|
|
dsl.NodeTypeMapLiteral,
|
|
),
|
|
X[1],
|
|
) >>`,
|
|
Id: "MapLiteral",
|
|
NTType: 65,
|
|
Index: 235,
|
|
NumSymbols: 3,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.AdoptChildren(
|
|
dsl.NewASTNodeNestable(
|
|
dsl.NewASTToken("{}", X[0]),
|
|
dsl.NodeTypeMapLiteral,
|
|
),
|
|
X[1],
|
|
)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `MapLiteralKeyValuePairs : MapLiteralKeyValuePair << dsl.NewASTNodeUnary(
|
|
nil,
|
|
X[0],
|
|
dsl.NodeTypeMapLiteral,
|
|
) >>`,
|
|
Id: "MapLiteralKeyValuePairs",
|
|
NTType: 66,
|
|
Index: 236,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeUnary(
|
|
nil,
|
|
X[0],
|
|
dsl.NodeTypeMapLiteral,
|
|
)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `MapLiteralKeyValuePairs : MapLiteralKeyValuePair "," << dsl.NewASTNodeUnary(
|
|
nil,
|
|
X[0],
|
|
dsl.NodeTypeMapLiteral,
|
|
) >>`,
|
|
Id: "MapLiteralKeyValuePairs",
|
|
NTType: 66,
|
|
Index: 237,
|
|
NumSymbols: 2,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeUnary(
|
|
nil,
|
|
X[0],
|
|
dsl.NodeTypeMapLiteral,
|
|
)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `MapLiteralKeyValuePairs : MapLiteralKeyValuePair "," MapLiteralKeyValuePairs << dsl.PrependChild(
|
|
X[2],
|
|
X[0],
|
|
) >>`,
|
|
Id: "MapLiteralKeyValuePairs",
|
|
NTType: 66,
|
|
Index: 238,
|
|
NumSymbols: 3,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.PrependChild(
|
|
X[2],
|
|
X[0],
|
|
)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `MapLiteralKeyValuePair : Rvalue ":" Rvalue << dsl.NewASTNodeBinary(
|
|
X[1],
|
|
X[0],
|
|
X[2],
|
|
dsl.NodeTypeMapLiteralKeyValuePair,
|
|
) >>`,
|
|
Id: "MapLiteralKeyValuePair",
|
|
NTType: 67,
|
|
Index: 239,
|
|
NumSymbols: 3,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeBinary(
|
|
X[1],
|
|
X[0],
|
|
X[2],
|
|
dsl.NodeTypeMapLiteralKeyValuePair,
|
|
)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `MlrvalOrFunction : ContextVariable << >>`,
|
|
Id: "MlrvalOrFunction",
|
|
NTType: 62,
|
|
Index: 240,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return X[0], nil
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `ContextVariable : ctx_IPS << dsl.NewASTNode(X[0], dsl.NodeTypeContextVariable) >>`,
|
|
Id: "ContextVariable",
|
|
NTType: 68,
|
|
Index: 241,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNode(X[0], dsl.NodeTypeContextVariable)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `ContextVariable : ctx_IFS << dsl.NewASTNode(X[0], dsl.NodeTypeContextVariable) >>`,
|
|
Id: "ContextVariable",
|
|
NTType: 68,
|
|
Index: 242,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNode(X[0], dsl.NodeTypeContextVariable)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `ContextVariable : ctx_IRS << dsl.NewASTNode(X[0], dsl.NodeTypeContextVariable) >>`,
|
|
Id: "ContextVariable",
|
|
NTType: 68,
|
|
Index: 243,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNode(X[0], dsl.NodeTypeContextVariable)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `ContextVariable : ctx_OPS << dsl.NewASTNode(X[0], dsl.NodeTypeContextVariable) >>`,
|
|
Id: "ContextVariable",
|
|
NTType: 68,
|
|
Index: 244,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNode(X[0], dsl.NodeTypeContextVariable)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `ContextVariable : ctx_OFS << dsl.NewASTNode(X[0], dsl.NodeTypeContextVariable) >>`,
|
|
Id: "ContextVariable",
|
|
NTType: 68,
|
|
Index: 245,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNode(X[0], dsl.NodeTypeContextVariable)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `ContextVariable : ctx_ORS << dsl.NewASTNode(X[0], dsl.NodeTypeContextVariable) >>`,
|
|
Id: "ContextVariable",
|
|
NTType: 68,
|
|
Index: 246,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNode(X[0], dsl.NodeTypeContextVariable)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `ContextVariable : ctx_FLATSEP << dsl.NewASTNode(X[0], dsl.NodeTypeContextVariable) >>`,
|
|
Id: "ContextVariable",
|
|
NTType: 68,
|
|
Index: 247,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNode(X[0], dsl.NodeTypeContextVariable)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `ContextVariable : ctx_NF << dsl.NewASTNode(X[0], dsl.NodeTypeContextVariable) >>`,
|
|
Id: "ContextVariable",
|
|
NTType: 68,
|
|
Index: 248,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNode(X[0], dsl.NodeTypeContextVariable)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `ContextVariable : ctx_NR << dsl.NewASTNode(X[0], dsl.NodeTypeContextVariable) >>`,
|
|
Id: "ContextVariable",
|
|
NTType: 68,
|
|
Index: 249,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNode(X[0], dsl.NodeTypeContextVariable)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `ContextVariable : ctx_FNR << dsl.NewASTNode(X[0], dsl.NodeTypeContextVariable) >>`,
|
|
Id: "ContextVariable",
|
|
NTType: 68,
|
|
Index: 250,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNode(X[0], dsl.NodeTypeContextVariable)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `ContextVariable : ctx_FILENAME << dsl.NewASTNode(X[0], dsl.NodeTypeContextVariable) >>`,
|
|
Id: "ContextVariable",
|
|
NTType: 68,
|
|
Index: 251,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNode(X[0], dsl.NodeTypeContextVariable)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `ContextVariable : ctx_FILENUM << dsl.NewASTNode(X[0], dsl.NodeTypeContextVariable) >>`,
|
|
Id: "ContextVariable",
|
|
NTType: 68,
|
|
Index: 252,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNode(X[0], dsl.NodeTypeContextVariable)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `MlrvalOrFunction : ENV << >>`,
|
|
Id: "MlrvalOrFunction",
|
|
NTType: 62,
|
|
Index: 253,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return X[0], nil
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `ENV : env "[" Rvalue "]" << dsl.NewASTNodeUnary(
|
|
X[0],
|
|
X[2],
|
|
dsl.NodeTypeEnvironmentVariable,
|
|
) >>`,
|
|
Id: "ENV",
|
|
NTType: 69,
|
|
Index: 254,
|
|
NumSymbols: 4,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeUnary(
|
|
X[0],
|
|
X[2],
|
|
dsl.NodeTypeEnvironmentVariable,
|
|
)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `ENV : env "." non_sigil_name << dsl.NewASTNodeUnary(
|
|
X[0],
|
|
dsl.NewASTNodeNestable(X[2], dsl.NodeTypeStringLiteral),
|
|
dsl.NodeTypeEnvironmentVariable,
|
|
) >>`,
|
|
Id: "ENV",
|
|
NTType: 69,
|
|
Index: 255,
|
|
NumSymbols: 3,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeUnary(
|
|
X[0],
|
|
dsl.NewASTNodeNestable(X[2], dsl.NodeTypeStringLiteral),
|
|
dsl.NodeTypeEnvironmentVariable,
|
|
)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `MlrvalOrFunction : ArrayOrMapIndexAccess << >>`,
|
|
Id: "MlrvalOrFunction",
|
|
NTType: 62,
|
|
Index: 256,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return X[0], nil
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `MlrvalOrFunction : ArrayOrMapPositionalNameAccess << >>`,
|
|
Id: "MlrvalOrFunction",
|
|
NTType: 62,
|
|
Index: 257,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return X[0], nil
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `MlrvalOrFunction : ArrayOrMapPositionalValueAccess << >>`,
|
|
Id: "MlrvalOrFunction",
|
|
NTType: 62,
|
|
Index: 258,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return X[0], nil
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `MlrvalOrFunction : ArraySliceAccess << >>`,
|
|
Id: "MlrvalOrFunction",
|
|
NTType: 62,
|
|
Index: 259,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return X[0], nil
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `ArrayOrMapIndexAccess : MlrvalOrFunction "[" Rvalue "]" << dsl.NewASTNodeBinary(
|
|
dsl.NewASTToken("[]", X[1]),
|
|
X[0],
|
|
X[2],
|
|
dsl.NodeTypeArrayOrMapIndexAccess,
|
|
) >>`,
|
|
Id: "ArrayOrMapIndexAccess",
|
|
NTType: 70,
|
|
Index: 260,
|
|
NumSymbols: 4,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeBinary(
|
|
dsl.NewASTToken("[]", X[1]),
|
|
X[0],
|
|
X[2],
|
|
dsl.NodeTypeArrayOrMapIndexAccess,
|
|
)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `ArrayOrMapPositionalNameAccess : MlrvalOrFunction "[[" Rvalue "]" "]" << dsl.NewASTNodeBinary(
|
|
dsl.NewASTToken("[]", X[1]),
|
|
X[0],
|
|
X[2],
|
|
dsl.NodeTypeArrayOrMapPositionalNameAccess,
|
|
) >>`,
|
|
Id: "ArrayOrMapPositionalNameAccess",
|
|
NTType: 71,
|
|
Index: 261,
|
|
NumSymbols: 5,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeBinary(
|
|
dsl.NewASTToken("[]", X[1]),
|
|
X[0],
|
|
X[2],
|
|
dsl.NodeTypeArrayOrMapPositionalNameAccess,
|
|
)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `ArrayOrMapPositionalValueAccess : MlrvalOrFunction "[[[" Rvalue "]" "]" "]" << dsl.NewASTNodeBinary(
|
|
dsl.NewASTToken("[]", X[1]),
|
|
X[0],
|
|
X[2],
|
|
dsl.NodeTypeArrayOrMapPositionalValueAccess,
|
|
) >>`,
|
|
Id: "ArrayOrMapPositionalValueAccess",
|
|
NTType: 72,
|
|
Index: 262,
|
|
NumSymbols: 6,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeBinary(
|
|
dsl.NewASTToken("[]", X[1]),
|
|
X[0],
|
|
X[2],
|
|
dsl.NodeTypeArrayOrMapPositionalValueAccess,
|
|
)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `ArraySliceAccess : MlrvalOrFunction "[" Rvalue ":" Rvalue "]" << dsl.NewASTNodeTernary(
|
|
dsl.NewASTToken("[]", X[1]),
|
|
X[0],
|
|
X[2],
|
|
X[4],
|
|
dsl.NodeTypeArraySliceAccess,
|
|
) >>`,
|
|
Id: "ArraySliceAccess",
|
|
NTType: 73,
|
|
Index: 263,
|
|
NumSymbols: 6,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeTernary(
|
|
dsl.NewASTToken("[]", X[1]),
|
|
X[0],
|
|
X[2],
|
|
X[4],
|
|
dsl.NodeTypeArraySliceAccess,
|
|
)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `ArraySliceAccess : MlrvalOrFunction "[" ":" Rvalue "]" << dsl.NewASTNodeTernary(
|
|
dsl.NewASTToken("[]", X[1]),
|
|
X[0],
|
|
dsl.NewASTNodeNestable(
|
|
X[2],
|
|
dsl.NodeTypeArraySliceEmptyLowerIndex,
|
|
),
|
|
X[3],
|
|
dsl.NodeTypeArraySliceAccess,
|
|
) >>`,
|
|
Id: "ArraySliceAccess",
|
|
NTType: 73,
|
|
Index: 264,
|
|
NumSymbols: 5,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeTernary(
|
|
dsl.NewASTToken("[]", X[1]),
|
|
X[0],
|
|
dsl.NewASTNodeNestable(
|
|
X[2],
|
|
dsl.NodeTypeArraySliceEmptyLowerIndex,
|
|
),
|
|
X[3],
|
|
dsl.NodeTypeArraySliceAccess,
|
|
)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `ArraySliceAccess : MlrvalOrFunction "[" Rvalue ":" "]" << dsl.NewASTNodeTernary(
|
|
dsl.NewASTToken("[]", X[1]),
|
|
X[0],
|
|
X[2],
|
|
dsl.NewASTNodeNestable(
|
|
X[3],
|
|
dsl.NodeTypeArraySliceEmptyUpperIndex,
|
|
),
|
|
dsl.NodeTypeArraySliceAccess,
|
|
) >>`,
|
|
Id: "ArraySliceAccess",
|
|
NTType: 73,
|
|
Index: 265,
|
|
NumSymbols: 5,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeTernary(
|
|
dsl.NewASTToken("[]", X[1]),
|
|
X[0],
|
|
X[2],
|
|
dsl.NewASTNodeNestable(
|
|
X[3],
|
|
dsl.NodeTypeArraySliceEmptyUpperIndex,
|
|
),
|
|
dsl.NodeTypeArraySliceAccess,
|
|
)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `ArraySliceAccess : MlrvalOrFunction "[" ":" "]" << dsl.NewASTNodeTernary(
|
|
dsl.NewASTToken("[]", X[1]),
|
|
X[0],
|
|
dsl.NewASTNodeNestable(
|
|
X[2],
|
|
dsl.NodeTypeArraySliceEmptyLowerIndex,
|
|
),
|
|
dsl.NewASTNodeNestable(
|
|
X[2],
|
|
dsl.NodeTypeArraySliceEmptyUpperIndex,
|
|
),
|
|
dsl.NodeTypeArraySliceAccess,
|
|
) >>`,
|
|
Id: "ArraySliceAccess",
|
|
NTType: 73,
|
|
Index: 266,
|
|
NumSymbols: 4,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeTernary(
|
|
dsl.NewASTToken("[]", X[1]),
|
|
X[0],
|
|
dsl.NewASTNodeNestable(
|
|
X[2],
|
|
dsl.NodeTypeArraySliceEmptyLowerIndex,
|
|
),
|
|
dsl.NewASTNodeNestable(
|
|
X[2],
|
|
dsl.NodeTypeArraySliceEmptyUpperIndex,
|
|
),
|
|
dsl.NodeTypeArraySliceAccess,
|
|
)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `MlrvalOrFunction : FunctionCallsite << >>`,
|
|
Id: "MlrvalOrFunction",
|
|
NTType: 62,
|
|
Index: 267,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return X[0], nil
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `FunctionCallsite : FunctionName "(" ")" << dsl.NewASTNodeZary(
|
|
X[0],
|
|
dsl.NodeTypeFunctionCallsite,
|
|
) >>`,
|
|
Id: "FunctionCallsite",
|
|
NTType: 74,
|
|
Index: 268,
|
|
NumSymbols: 3,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeZary(
|
|
X[0],
|
|
dsl.NodeTypeFunctionCallsite,
|
|
)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `FunctionCallsite : FunctionName "(" FcnArgs ")" << dsl.AdoptChildren(
|
|
dsl.NewASTNodeNestable(
|
|
X[0],
|
|
dsl.NodeTypeFunctionCallsite,
|
|
),
|
|
X[2],
|
|
) >>`,
|
|
Id: "FunctionCallsite",
|
|
NTType: 74,
|
|
Index: 269,
|
|
NumSymbols: 4,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.AdoptChildren(
|
|
dsl.NewASTNodeNestable(
|
|
X[0],
|
|
dsl.NodeTypeFunctionCallsite,
|
|
),
|
|
X[2],
|
|
)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `FunctionName : non_sigil_name << >>`,
|
|
Id: "FunctionName",
|
|
NTType: 75,
|
|
Index: 270,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return X[0], nil
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `FunctionName : int << >>`,
|
|
Id: "FunctionName",
|
|
NTType: 75,
|
|
Index: 271,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return X[0], nil
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `FunctionName : float << >>`,
|
|
Id: "FunctionName",
|
|
NTType: 75,
|
|
Index: 272,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return X[0], nil
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `FcnArgs : Rvalue << dsl.NewASTNodeUnary(
|
|
nil,
|
|
X[0],
|
|
dsl.NodeTypeFunctionCallsite,
|
|
) >>`,
|
|
Id: "FcnArgs",
|
|
NTType: 76,
|
|
Index: 273,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeUnary(
|
|
nil,
|
|
X[0],
|
|
dsl.NodeTypeFunctionCallsite,
|
|
)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `FcnArgs : Rvalue "," << dsl.NewASTNodeUnary(
|
|
nil,
|
|
X[0],
|
|
dsl.NodeTypeFunctionCallsite,
|
|
) >>`,
|
|
Id: "FcnArgs",
|
|
NTType: 76,
|
|
Index: 274,
|
|
NumSymbols: 2,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeUnary(
|
|
nil,
|
|
X[0],
|
|
dsl.NodeTypeFunctionCallsite,
|
|
)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `FcnArgs : Rvalue "," FcnArgs << dsl.PrependChild(
|
|
X[2],
|
|
X[0],
|
|
) >>`,
|
|
Id: "FcnArgs",
|
|
NTType: 76,
|
|
Index: 275,
|
|
NumSymbols: 3,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.PrependChild(
|
|
X[2],
|
|
X[0],
|
|
)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `SubroutineCallsite : call SubroutineName "(" ")" << dsl.NewASTNodeZary(
|
|
X[1],
|
|
dsl.NodeTypeSubroutineCallsite,
|
|
) >>`,
|
|
Id: "SubroutineCallsite",
|
|
NTType: 77,
|
|
Index: 276,
|
|
NumSymbols: 4,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeZary(
|
|
X[1],
|
|
dsl.NodeTypeSubroutineCallsite,
|
|
)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `SubroutineCallsite : call SubroutineName "(" FcnArgs ")" << dsl.AdoptChildren(
|
|
dsl.NewASTNodeNestable(
|
|
X[1],
|
|
dsl.NodeTypeSubroutineCallsite,
|
|
),
|
|
X[3],
|
|
) >>`,
|
|
Id: "SubroutineCallsite",
|
|
NTType: 77,
|
|
Index: 277,
|
|
NumSymbols: 5,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.AdoptChildren(
|
|
dsl.NewASTNodeNestable(
|
|
X[1],
|
|
dsl.NodeTypeSubroutineCallsite,
|
|
),
|
|
X[3],
|
|
)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `SubroutineName : non_sigil_name << >>`,
|
|
Id: "SubroutineName",
|
|
NTType: 78,
|
|
Index: 278,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return X[0], nil
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `BracefulStatement : BeginBlock << >>`,
|
|
Id: "BracefulStatement",
|
|
NTType: 79,
|
|
Index: 279,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return X[0], nil
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `BracefulStatement : EndBlock << >>`,
|
|
Id: "BracefulStatement",
|
|
NTType: 79,
|
|
Index: 280,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return X[0], nil
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `BracefulStatement : CondBlock << >>`,
|
|
Id: "BracefulStatement",
|
|
NTType: 79,
|
|
Index: 281,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return X[0], nil
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `BracefulStatement : IfChain << >>`,
|
|
Id: "BracefulStatement",
|
|
NTType: 79,
|
|
Index: 282,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return X[0], nil
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `BracefulStatement : WhileLoop << >>`,
|
|
Id: "BracefulStatement",
|
|
NTType: 79,
|
|
Index: 283,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return X[0], nil
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `BracefulStatement : ForLoop << >>`,
|
|
Id: "BracefulStatement",
|
|
NTType: 79,
|
|
Index: 284,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return X[0], nil
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `BracefulStatement : NamedFunctionDefinition << >>`,
|
|
Id: "BracefulStatement",
|
|
NTType: 79,
|
|
Index: 285,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return X[0], nil
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `BracefulStatement : SubroutineDefinition << >>`,
|
|
Id: "BracefulStatement",
|
|
NTType: 79,
|
|
Index: 286,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return X[0], nil
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `BeginBlock : begin StatementBlockInBraces << dsl.NewASTNodeUnary(nil, X[1], dsl.NodeTypeBeginBlock) >>`,
|
|
Id: "BeginBlock",
|
|
NTType: 80,
|
|
Index: 287,
|
|
NumSymbols: 2,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeUnary(nil, X[1], dsl.NodeTypeBeginBlock)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `EndBlock : end StatementBlockInBraces << dsl.NewASTNodeUnary(nil, X[1], dsl.NodeTypeEndBlock) >>`,
|
|
Id: "EndBlock",
|
|
NTType: 81,
|
|
Index: 288,
|
|
NumSymbols: 2,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeUnary(nil, X[1], dsl.NodeTypeEndBlock)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `CondBlock : Rvalue StatementBlockInBraces << dsl.NewASTNodeBinary(nil, X[0], X[1], dsl.NodeTypeCondBlock) >>`,
|
|
Id: "CondBlock",
|
|
NTType: 82,
|
|
Index: 289,
|
|
NumSymbols: 2,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeBinary(nil, X[0], X[1], dsl.NodeTypeCondBlock)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `IfChain : IfElifStar << >>`,
|
|
Id: "IfChain",
|
|
NTType: 83,
|
|
Index: 290,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return X[0], nil
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `IfChain : IfElifStar ElseBlock << dsl.AppendChild(X[0], X[1]) >>`,
|
|
Id: "IfChain",
|
|
NTType: 83,
|
|
Index: 291,
|
|
NumSymbols: 2,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.AppendChild(X[0], X[1])
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `IfElifStar : IfBlock << dsl.NewASTNodeUnary(nil, X[0], dsl.NodeTypeIfChain) >>`,
|
|
Id: "IfElifStar",
|
|
NTType: 84,
|
|
Index: 292,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeUnary(nil, X[0], dsl.NodeTypeIfChain)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `IfElifStar : IfElifStar ElifBlock << dsl.AppendChild(X[0], X[1]) >>`,
|
|
Id: "IfElifStar",
|
|
NTType: 84,
|
|
Index: 293,
|
|
NumSymbols: 2,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.AppendChild(X[0], X[1])
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `IfBlock : if "(" Rvalue ")" StatementBlockInBraces << dsl.NewASTNodeBinary(X[0], X[2], X[4], dsl.NodeTypeIfItem) >>`,
|
|
Id: "IfBlock",
|
|
NTType: 85,
|
|
Index: 294,
|
|
NumSymbols: 5,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeBinary(X[0], X[2], X[4], dsl.NodeTypeIfItem)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `ElifBlock : elif "(" Rvalue ")" StatementBlockInBraces << dsl.NewASTNodeBinary(X[0], X[2], X[4], dsl.NodeTypeIfItem) >>`,
|
|
Id: "ElifBlock",
|
|
NTType: 86,
|
|
Index: 295,
|
|
NumSymbols: 5,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeBinary(X[0], X[2], X[4], dsl.NodeTypeIfItem)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `ElseBlock : else StatementBlockInBraces << dsl.NewASTNodeUnary(X[0], X[1], dsl.NodeTypeIfItem) >>`,
|
|
Id: "ElseBlock",
|
|
NTType: 87,
|
|
Index: 296,
|
|
NumSymbols: 2,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeUnary(X[0], X[1], dsl.NodeTypeIfItem)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `WhileLoop : while "(" Rvalue ")" StatementBlockInBraces << dsl.NewASTNodeBinary(X[0], X[2], X[4], dsl.NodeTypeWhileLoop) >>`,
|
|
Id: "WhileLoop",
|
|
NTType: 88,
|
|
Index: 297,
|
|
NumSymbols: 5,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeBinary(X[0], X[2], X[4], dsl.NodeTypeWhileLoop)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `DoWhileLoop : do StatementBlockInBraces while "(" Rvalue ")" << dsl.NewASTNodeBinary(X[0], X[1], X[4], dsl.NodeTypeDoWhileLoop) >>`,
|
|
Id: "DoWhileLoop",
|
|
NTType: 89,
|
|
Index: 298,
|
|
NumSymbols: 6,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeBinary(X[0], X[1], X[4], dsl.NodeTypeDoWhileLoop)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `ForLoop : ForLoopOneVariable << >>`,
|
|
Id: "ForLoop",
|
|
NTType: 90,
|
|
Index: 299,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return X[0], nil
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `ForLoop : ForLoopTwoVariable << >>`,
|
|
Id: "ForLoop",
|
|
NTType: 90,
|
|
Index: 300,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return X[0], nil
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `ForLoop : ForLoopMultivariable << >>`,
|
|
Id: "ForLoop",
|
|
NTType: 90,
|
|
Index: 301,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return X[0], nil
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `ForLoop : TripleForLoop << >>`,
|
|
Id: "ForLoop",
|
|
NTType: 90,
|
|
Index: 302,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return X[0], nil
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `ForLoopOneVariable : for "(" LocalVariable in Rvalue ")" StatementBlockInBraces << dsl.NewASTNodeTernary(
|
|
X[0], // "for"
|
|
X[2], // k, etc.
|
|
X[4], // $*, etc.
|
|
X[6], // { ... }
|
|
dsl.NodeTypeForLoopOneVariable,
|
|
); >>`,
|
|
Id: "ForLoopOneVariable",
|
|
NTType: 91,
|
|
Index: 303,
|
|
NumSymbols: 7,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeTernary(
|
|
X[0], // "for"
|
|
X[2], // k, etc.
|
|
X[4], // $*, etc.
|
|
X[6], // { ... }
|
|
dsl.NodeTypeForLoopOneVariable,
|
|
)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `ForLoopTwoVariable : for "(" LocalVariable "," LocalVariable in Rvalue ")" StatementBlockInBraces << dsl.NewASTNodeQuaternary(
|
|
X[0], // "for"
|
|
X[2], // k, etc.
|
|
X[4], // v, etc.
|
|
X[6], // $*, etc.
|
|
X[8], // { ... }
|
|
dsl.NodeTypeForLoopTwoVariable,
|
|
); >>`,
|
|
Id: "ForLoopTwoVariable",
|
|
NTType: 92,
|
|
Index: 304,
|
|
NumSymbols: 9,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeQuaternary(
|
|
X[0], // "for"
|
|
X[2], // k, etc.
|
|
X[4], // v, etc.
|
|
X[6], // $*, etc.
|
|
X[8], // { ... }
|
|
dsl.NodeTypeForLoopTwoVariable,
|
|
)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `ForLoopMultivariable : for "(" "(" MultiIndex ")" "," LocalVariable in Rvalue ")" StatementBlockInBraces << dsl.NewASTNodeQuaternary(
|
|
X[0], // "for"
|
|
X[3], // (k1, k2), etc.
|
|
X[6], // v, etc.
|
|
X[8], // $*, etc.
|
|
X[10], // { ... }
|
|
dsl.NodeTypeForLoopMultivariable,
|
|
); >>`,
|
|
Id: "ForLoopMultivariable",
|
|
NTType: 93,
|
|
Index: 305,
|
|
NumSymbols: 11,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeQuaternary(
|
|
X[0], // "for"
|
|
X[3], // (k1, k2), etc.
|
|
X[6], // v, etc.
|
|
X[8], // $*, etc.
|
|
X[10], // { ... }
|
|
dsl.NodeTypeForLoopMultivariable,
|
|
)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `MultiIndex : LocalVariable "," LocalVariable << dsl.NewASTNodeBinary(
|
|
nil,
|
|
X[0],
|
|
X[2],
|
|
dsl.NodeTypeParameterList,
|
|
) >>`,
|
|
Id: "MultiIndex",
|
|
NTType: 94,
|
|
Index: 306,
|
|
NumSymbols: 3,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeBinary(
|
|
nil,
|
|
X[0],
|
|
X[2],
|
|
dsl.NodeTypeParameterList,
|
|
)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `MultiIndex : MultiIndex "," LocalVariable << dsl.AppendChild(
|
|
X[0],
|
|
X[2],
|
|
) >>`,
|
|
Id: "MultiIndex",
|
|
NTType: 94,
|
|
Index: 307,
|
|
NumSymbols: 3,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.AppendChild(
|
|
X[0],
|
|
X[2],
|
|
)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `TripleForLoop : for "(" TripleForStart ";" TripleForContinuation ";" TripleForUpdate ")" StatementBlockInBraces << dsl.NewASTNodeQuaternary(
|
|
X[0], // for
|
|
X[2], // start
|
|
X[4], // continuation
|
|
X[6], // update
|
|
X[8], // body
|
|
dsl.NodeTypeTripleForLoop,
|
|
); >>`,
|
|
Id: "TripleForLoop",
|
|
NTType: 95,
|
|
Index: 308,
|
|
NumSymbols: 9,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeQuaternary(
|
|
X[0], // for
|
|
X[2], // start
|
|
X[4], // continuation
|
|
X[6], // update
|
|
X[8], // body
|
|
dsl.NodeTypeTripleForLoop,
|
|
)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `TripleForStart : empty << dsl.NewASTNodeZary(nil, dsl.NodeTypeStatementBlock) >>`,
|
|
Id: "TripleForStart",
|
|
NTType: 96,
|
|
Index: 309,
|
|
NumSymbols: 0,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeZary(nil, dsl.NodeTypeStatementBlock)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `TripleForStart : Assignment << dsl.NewASTNodeUnary(nil, X[0], dsl.NodeTypeStatementBlock) >>`,
|
|
Id: "TripleForStart",
|
|
NTType: 96,
|
|
Index: 310,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeUnary(nil, X[0], dsl.NodeTypeStatementBlock)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `TripleForStart : TripleForStart "," Assignment << dsl.AppendChild(X[0], X[2]) >>`,
|
|
Id: "TripleForStart",
|
|
NTType: 96,
|
|
Index: 311,
|
|
NumSymbols: 3,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.AppendChild(X[0], X[2])
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `TripleForContinuation : empty << dsl.NewASTNodeZary(nil, dsl.NodeTypeStatementBlock) >>`,
|
|
Id: "TripleForContinuation",
|
|
NTType: 97,
|
|
Index: 312,
|
|
NumSymbols: 0,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeZary(nil, dsl.NodeTypeStatementBlock)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `TripleForContinuation : TripleForContinuationItem << dsl.NewASTNodeUnary(nil, X[0], dsl.NodeTypeStatementBlock) >>`,
|
|
Id: "TripleForContinuation",
|
|
NTType: 97,
|
|
Index: 313,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeUnary(nil, X[0], dsl.NodeTypeStatementBlock)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `TripleForContinuation : TripleForContinuation "," TripleForContinuationItem << dsl.AppendChild(X[0], X[2]) >>`,
|
|
Id: "TripleForContinuation",
|
|
NTType: 97,
|
|
Index: 314,
|
|
NumSymbols: 3,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.AppendChild(X[0], X[2])
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `TripleForContinuationItem : Assignment << >>`,
|
|
Id: "TripleForContinuationItem",
|
|
NTType: 98,
|
|
Index: 315,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return X[0], nil
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `TripleForContinuationItem : BareBoolean << >>`,
|
|
Id: "TripleForContinuationItem",
|
|
NTType: 98,
|
|
Index: 316,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return X[0], nil
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `TripleForUpdate : empty << dsl.NewASTNodeZary(nil, dsl.NodeTypeStatementBlock) >>`,
|
|
Id: "TripleForUpdate",
|
|
NTType: 99,
|
|
Index: 317,
|
|
NumSymbols: 0,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeZary(nil, dsl.NodeTypeStatementBlock)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `TripleForUpdate : Assignment << dsl.NewASTNodeUnary(nil, X[0], dsl.NodeTypeStatementBlock) >>`,
|
|
Id: "TripleForUpdate",
|
|
NTType: 99,
|
|
Index: 318,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeUnary(nil, X[0], dsl.NodeTypeStatementBlock)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `TripleForUpdate : TripleForUpdate "," Assignment << dsl.AppendChild(X[0], X[2]) >>`,
|
|
Id: "TripleForUpdate",
|
|
NTType: 99,
|
|
Index: 319,
|
|
NumSymbols: 3,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.AppendChild(X[0], X[2])
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `BreakStatement : break << dsl.NewASTNodeZary(X[0], dsl.NodeTypeBreak) >>`,
|
|
Id: "BreakStatement",
|
|
NTType: 100,
|
|
Index: 320,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeZary(X[0], dsl.NodeTypeBreak)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `ContinueStatement : continue << dsl.NewASTNodeZary(X[0], dsl.NodeTypeContinue) >>`,
|
|
Id: "ContinueStatement",
|
|
NTType: 101,
|
|
Index: 321,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeZary(X[0], dsl.NodeTypeContinue)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `NamedFunctionDefinition : func non_sigil_name "(" FuncOrSubrParameterList ")" StatementBlockInBraces << dsl.NewASTNodeBinary(
|
|
X[1],
|
|
X[3], // parameter list
|
|
X[5], // { ... }
|
|
dsl.NodeTypeNamedFunctionDefinition,
|
|
); >>`,
|
|
Id: "NamedFunctionDefinition",
|
|
NTType: 102,
|
|
Index: 322,
|
|
NumSymbols: 6,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeBinary(
|
|
X[1],
|
|
X[3], // parameter list
|
|
X[5], // { ... }
|
|
dsl.NodeTypeNamedFunctionDefinition,
|
|
)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `NamedFunctionDefinition : func non_sigil_name "(" FuncOrSubrParameterList ")" ":" Typedecl StatementBlockInBraces << dsl.NewASTNodeTernary(
|
|
X[1],
|
|
X[3], // parameter list
|
|
X[7], // {...}
|
|
X[6], // return type
|
|
dsl.NodeTypeNamedFunctionDefinition,
|
|
); >>`,
|
|
Id: "NamedFunctionDefinition",
|
|
NTType: 102,
|
|
Index: 323,
|
|
NumSymbols: 8,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeTernary(
|
|
X[1],
|
|
X[3], // parameter list
|
|
X[7], // {...}
|
|
X[6], // return type
|
|
dsl.NodeTypeNamedFunctionDefinition,
|
|
)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `UnnamedFunctionDefinition : func "(" FuncOrSubrParameterList ")" StatementBlockInBraces << dsl.NewASTNodeBinary(
|
|
X[0],
|
|
X[2], // parameter list
|
|
X[4], // { ... }
|
|
dsl.NodeTypeUnnamedFunctionDefinition,
|
|
); >>`,
|
|
Id: "UnnamedFunctionDefinition",
|
|
NTType: 103,
|
|
Index: 324,
|
|
NumSymbols: 5,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeBinary(
|
|
X[0],
|
|
X[2], // parameter list
|
|
X[4], // { ... }
|
|
dsl.NodeTypeUnnamedFunctionDefinition,
|
|
)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `UnnamedFunctionDefinition : func "(" FuncOrSubrParameterList ")" ":" Typedecl StatementBlockInBraces << dsl.NewASTNodeTernary(
|
|
X[0],
|
|
X[2], // parameter list
|
|
X[6], // {...}
|
|
X[5], // return type
|
|
dsl.NodeTypeUnnamedFunctionDefinition,
|
|
); >>`,
|
|
Id: "UnnamedFunctionDefinition",
|
|
NTType: 103,
|
|
Index: 325,
|
|
NumSymbols: 7,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeTernary(
|
|
X[0],
|
|
X[2], // parameter list
|
|
X[6], // {...}
|
|
X[5], // return type
|
|
dsl.NodeTypeUnnamedFunctionDefinition,
|
|
)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `SubroutineDefinition : subr non_sigil_name "(" FuncOrSubrParameterList ")" StatementBlockInBraces << dsl.NewASTNodeBinary(
|
|
X[1],
|
|
X[3], // parameter list
|
|
X[5], // { ... }
|
|
dsl.NodeTypeSubroutineDefinition,
|
|
); >>`,
|
|
Id: "SubroutineDefinition",
|
|
NTType: 104,
|
|
Index: 326,
|
|
NumSymbols: 6,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeBinary(
|
|
X[1],
|
|
X[3], // parameter list
|
|
X[5], // { ... }
|
|
dsl.NodeTypeSubroutineDefinition,
|
|
)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `FuncOrSubrParameterList : empty << dsl.NewASTNodeZary(nil, dsl.NodeTypeParameterList) >>`,
|
|
Id: "FuncOrSubrParameterList",
|
|
NTType: 105,
|
|
Index: 327,
|
|
NumSymbols: 0,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeZary(nil, dsl.NodeTypeParameterList)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `FuncOrSubrParameterList : FuncOrSubrNonEmptyParameterList << dsl.Wrap(X[0]) >>`,
|
|
Id: "FuncOrSubrParameterList",
|
|
NTType: 105,
|
|
Index: 328,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.Wrap(X[0])
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `FuncOrSubrNonEmptyParameterList : FuncOrSubrParameter << dsl.NewASTNodeUnary(nil, X[0], dsl.NodeTypeParameterList) >>`,
|
|
Id: "FuncOrSubrNonEmptyParameterList",
|
|
NTType: 106,
|
|
Index: 329,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeUnary(nil, X[0], dsl.NodeTypeParameterList)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `FuncOrSubrNonEmptyParameterList : FuncOrSubrParameter "," << dsl.NewASTNodeUnary(nil, X[0], dsl.NodeTypeParameterList) >>`,
|
|
Id: "FuncOrSubrNonEmptyParameterList",
|
|
NTType: 106,
|
|
Index: 330,
|
|
NumSymbols: 2,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeUnary(nil, X[0], dsl.NodeTypeParameterList)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `FuncOrSubrNonEmptyParameterList : FuncOrSubrParameter "," FuncOrSubrNonEmptyParameterList << dsl.PrependChild(X[2], X[0]) >>`,
|
|
Id: "FuncOrSubrNonEmptyParameterList",
|
|
NTType: 106,
|
|
Index: 331,
|
|
NumSymbols: 3,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.PrependChild(X[2], X[0])
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `FuncOrSubrParameter : UntypedFuncOrSubrParameterName << dsl.NewASTNodeUnary(
|
|
nil,
|
|
X[0],
|
|
dsl.NodeTypeParameter,
|
|
) >>`,
|
|
Id: "FuncOrSubrParameter",
|
|
NTType: 107,
|
|
Index: 332,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeUnary(
|
|
nil,
|
|
X[0],
|
|
dsl.NodeTypeParameter,
|
|
)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `FuncOrSubrParameter : TypedFuncOrSubrParameterName << dsl.NewASTNodeUnary(
|
|
nil,
|
|
X[0],
|
|
dsl.NodeTypeParameter,
|
|
) >>`,
|
|
Id: "FuncOrSubrParameter",
|
|
NTType: 107,
|
|
Index: 333,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeUnary(
|
|
nil,
|
|
X[0],
|
|
dsl.NodeTypeParameter,
|
|
)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `UntypedFuncOrSubrParameterName : non_sigil_name << dsl.NewASTNode(X[0], dsl.NodeTypeParameterName) >>`,
|
|
Id: "UntypedFuncOrSubrParameterName",
|
|
NTType: 108,
|
|
Index: 334,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNode(X[0], dsl.NodeTypeParameterName)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `TypedFuncOrSubrParameterName : Typedecl UntypedFuncOrSubrParameterName << dsl.AppendChild(X[1], X[0]) >>`,
|
|
Id: "TypedFuncOrSubrParameterName",
|
|
NTType: 109,
|
|
Index: 335,
|
|
NumSymbols: 2,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.AppendChild(X[1], X[0])
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `ReturnStatement : return Rvalue << dsl.NewASTNodeUnary(X[0], X[1], dsl.NodeTypeReturn) >>`,
|
|
Id: "ReturnStatement",
|
|
NTType: 110,
|
|
Index: 336,
|
|
NumSymbols: 2,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeUnary(X[0], X[1], dsl.NodeTypeReturn)
|
|
},
|
|
},
|
|
ProdTabEntry{
|
|
String: `ReturnStatement : return << dsl.NewASTNodeZary(X[0], dsl.NodeTypeReturn) >>`,
|
|
Id: "ReturnStatement",
|
|
NTType: 110,
|
|
Index: 337,
|
|
NumSymbols: 1,
|
|
ReduceFunc: func(X []Attrib, C interface{}) (Attrib, error) {
|
|
return dsl.NewASTNodeZary(X[0], dsl.NodeTypeReturn)
|
|
},
|
|
},
|
|
}
|